Search code examples
models

Differences between Agile, Incremental and Waterfall development model?


What is the key difference between agile and Incremental and waterfall models? As a beginner software developer what model should I follow? I need to be clear.


Solution

  • In addtion to the Gishu's answer

    • Incremental - you build as much as you need right now. You don't over-engineer or add flexibility unless the need is proven. When the need arises, you build on top of whatever already exists. (Note: differs from iterative in that you're adding new things.. vs refining something).
    • Agile - you are agile if you value the same things as listed in the agile manifesto. It also means that there is no standard template or checklist or procedure to "do agile". It doesn't overspecify.. it just states that you can use whatever practices you need to "be agile". Scrum, XP, Kanban are some of the more prescriptive 'agile' methodologies because they share the same set of values. Continuous and early feedback, frequent releases/demos, evolve design, etc.. hence they can be iterative and incremental.

    • Waterfall involves discrete development stages: specification, design, implementation, testing, and maintenance. In principle, one stage must be complete before progress to the next stage is possible.

    Selecting a process is difficult sometimes.Choosing the right Software development life cycle model Read this article it is helpful.