This page documents the development practices recommended by the TSC.
It is not an exhaustive list but summarizes the minimum expected to deliver good working code.
It has been tailored according to the project state (Incubation, Mature, Core).
The intend is to provide a balance between project autonomy, consistency in quality, and ability for new comers to quickly come up to speed and get involved.
Projects should be free to choose how they implement these recommendations. However, the adopted practices should be clearly documented during the Release Planning Review for all teams to comply with.
Alternatively to Scrum, depending on the nature of the project, Kanban may be adopted in lieu of Scrum.
Kanban is a tool used to organize work for the sake of efficiency.
Key point in Kanban is for the team to find out the limit of WIP (Work In Progress).
We are all humans, we make mistakes and we don't like repetitive tasks. Thus we have to automate testing
Perform Automated Unit testing, feature testing, integration testing
- All Unit Test must be automated
- Unit tests should be as short, fast and reliable
- Don't use ''sleep()''. We need result fast and do not have the luxury to wait an hour to see that the build failed.
- Keep tests small, and only test one thing per test
- Feature Testing and System Integration Testing should be automated as much as possible
- Used Code Coverage indicator to set the bar
Test stability: watch out for test that Fail and suddenly Pass (by chance) without any reasons. This is a sign that something is wrong, and it has to be fixed.
We are working in the Open Source community and thus opening our meetings is critical to success. It provides transparency and facilitates onboarding.
This practices should be applied for all Scrum-Kanban ceremonies, Architecture discussions, Team meetings.
Provide logistics to attend meeting in the team wiki and send out email to firstname.lastname@example.org