-1

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.

GavinBrelstaff
  • 3,016
  • 2
  • 21
  • 39
Revel Yusuf
  • 25
  • 1
  • 6

2 Answers2

5

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.

Community
  • 1
  • 1
Hamza Anis
  • 2,475
  • 1
  • 26
  • 36
1

Waterfall is sequential while agile is an incremental approach.

Waterfall: Conception, initiation, analysis, design, construction, testing, implementation and maintenance. All eight steps will be done in sequential manner (one after another). Once a step is completed, you can’t go back to the previous step. If you make a little change, the whole project will start from zero. So, there's no room for error or change.

When to use waterfall:

  • If the client has complete knowledge of what they want (size, cost & timeline of project), then go for waterfall.

Advantages:

  • If any employer leaves the job, the new employer will suddenly grip down the project as all the steps are sequential, so new resources will easily understand the current situation of the project.
  • Client knows what the final product will look like.

Disadvantages:

  • If one step is completed, you cannot go back.
  • Waterfalls demand heavy initial requirements, false requirements will lead your project to somewhere else, not to destination.
  • If any error is found or any change needs to be made, the project has to start from the beginning.
  • The whole project is only tested at the end, if bugs are written early but discovered late, their existence may have affected how other code was written.

Agile: Developers start with simple design and then begin to work on small modules. The work on these modules is done on a weekly or monthly basis. After completion of a module, module sent to testing phase, and if any bug comes, then developer first removes that bug and then result is deployed in order to take client review, if client demands any change then first developer has to implement that change. At the end of each module, project priorities are evaluated, on which module we should start work.

When to use agile:

  • When rapid production is more important than the quality of the product.
  • When there's no clear picture of what the final product looks like.

Advantages:

  • Each module is tested after its completion that trains developers not to make such mistakes in the next module.
  • Agile allows developers and clients to add change at any time.
  • After each module, the client reviews the application, so the client knows about the progress of the project after each module.

Disadvantages:

  • It highly demands the successful project manager. As making modules, prioritizing them and setting time period of a module really requires a lot of experience.
  • As no one has initial requirements, so the final product can be grossly different than what was initially intended.
Muhammad Bilal
  • 1,840
  • 1
  • 18
  • 16
  • So agile could be seen as a series of short waterfalls each for a splashback? And I should try and avoid waterfall or imperative career planning and instead stay agile and declarative? +1 for your client focus. –  Aug 13 '20 at 04:10