This article briefly summarizes the key modern software development methodologies. When conducting a comparative comparison, one can be guided by a large range of criteria: life cycle, roles, practices, metrics, etc. This article proposes the following formula for comparing methodologies:
Values + Principles + Practices
')
Values are a set of beliefs that govern development, govern decision making. The minimum set of beliefs that are important and meaningful for each project participant. An analogue of values can serve the 10 commandments of Moses. It is very difficult for many to change their beliefs. If a team accepts these values, its team behavior, working principles, and even habits will be rearranged. Beliefs determine the style of thinking and how to interact in a team.
Principles - the bridge between values and practices, carry an explanatory character to values. Principles in a general way reveal the content of a particular value, express the requirements developed in successful projects concerning the organization of the project, team structure, etc.
Practices - a set of activities, respecting which you increase the likelihood of success. Mostly the set of practices can vary from team to team according to the situation in the current project, but the values and principles remain the same. For example, the practice of pair programming in one project may be approved, and in another it may be useless.
So, what alignment give methodologies:
Agile Manifesto = 4 + 12 + 0
Extreme Programming = 5 + 14 +24
Scrum = 5 + 5 + 7
Agile Modeling = 5 + 13 + 21
Lean = 0 + 7 + 7
Feature Driven Development = 0 + 8 +16
Adaptive Software Development = 0 + 6 + 18
Kanban = 0 + 6 + 3
RUP = 0 + 7 + 120
Comparison table in details available:
link