Common practices for all agile methods
- Common practices related to human resources
- Participation of end-user workgroups.
- Working groups with decision-making power.
- Autonomy and centralized organization of the team (motivation).
- Specification and permanent validation requirements.
- Common practices related to project pilot
- Variable methodological level based on project issues.
- Management according to challenges and risks.
- Overall strategic planning based on rapid iterations.
- Achieving milestones by iterative and incremental active prototyping.
- Permanent research to improve practices.
- Common practices related to the quality of production
- Search for technical excellence in design.
- Graphic vision of a necessary and sufficient modeling.
- Vision of the necessary and sufficient documentation.
- Reasonable standards and techniques of code quality (metric).
- Architecture based on components.
- Automated management changes.
Differentiating practices of agile methods
Only a few complementary techniques together, or better adapted to the types and sizes of project data, differentiate the agile methods. The most significant differentiating practices are:
- The RAD method recommended in Phase Construction the application of similar techniques to those of XP but not extreme in their implementation: personal code reviews, then collective and integration before each focus (or show) . By cons, RAD limit pair programming in the most strategic parts. Any project management method should include a procedure for emergency stops (Go/NoGo). On this point RAD’s strength lies in the presence of a facilitator-moderator. This resource, preferably external, must be neutral in relation to the others. It answers to a higher authority to all project participants. Thus, when the strategic, economic and technical context of a project evolves, or if the conditions of realization are deteriorating, the leader postpones the problem to the manager who commissioned. The latter can then decide as soon as possible, and with the objective information necessary decisions.
- The RAD version 2 recommends the variability in size and maturity of the working groups based on project phases in order to optimize resource commitment and maintain their interest by work adapted to their concerns. The most serious contribution to RAD2 to the communication project and formalization of application requirements is the animation and group report (GAR). With RAD 2, the successful organization of meetings is based on a procedure of interviews and ongoing validation techniques. RAD offers strategic management techniques such as delivery in reduced functionality or delivery by theme.
- The DSDM method (the name given to the consortium marketing the RAD method in England) is distinguished by the expertise of project stakeholders in a concept of “roles”. Thus we find in the DSDM meetings executive sponsors, ambassadors, visionary users, consultants users, plus the animator facilitator, reporter and of course developers.
- The scrum method affirms its difference in the spread of ceremonial practices based on short meetings at every stage of the project life (retrospective). These common working hours are aimed to improve the motivation of the participants, synchronize tasks to unlock difficult situations and increase the sharing of knowledge.
- For FDD, the particularity named Mission Focused lies in a strong orientation towards a measurable immediate goal guided by the concept of business value. This is actually the overall ambition of an iteration that is thus reinforced. This aspect is also reflected in the RAD method as Focus goals or in Scrum in the notion of Sprint goals.
- XP (extreme programming) is very focused on the game application construction. One of its originality lies in the planning approach that materializes in the form of a game called game schedule and simultaneously involves users and developers. Note also specific techniques related to the production code as test driven development (TDD), pair programming, the collective ownership of the code, refactoring and continuous integration.