Predictive vs Adaptive Development

2 models of development

  • Predictive – Plan driver – Waterfall model
  • Adaptive – Agile model

Which approach works better for you, depends on the type of project your company works on.

For example, you want to build a house – there are specific, sequential steps to be followed. You do the first step, then second step, third step, like this. The process is well defined. You don’t need agility here.

Also, say for example you are developing a software with many features and customers are frequently changing requirements, then you need to be agile. You need to be adaptive to reflect these changes.

The customers don’t know what they want before they see the product. Being agile will help you to deal with uncertainty and complexity.

Waterfall model

Creating an elaborate full of details plan upfront that must be followed.

The waterfall model is a linear sequential approach to software development, where the development process is divided into distinct phases. The phases of the waterfall model are typically:

  1. Requirements gathering: The requirements of the software are defined in detail.
  2. Design: The software architecture and system design are planned and documented.
  3. Implementation: The software is coded according to the design.
  4. Testing: The software is tested to ensure that it meets the requirements and works as intended.
  5. Deployment: The software is installed and made available to end-users.
  6. Documentation: The software is well documented
  7. Maintenance: The software is maintained and updated as needed.

Each phase of the waterfall model must be completed before moving on to the next phase, and changes made in one phase may not be easily accommodated in later phases.

Every team that’s handing a phase of the waterfall model follows the plan. One team does one phase of the sequential development.

The model assumes that requirements are well-understood and static, and that there will be no major changes to the software during the development process.

Limitations – While the waterfall model can be a straightforward and simple approach to software development, it has limitations, particularly when it comes to handling change and adaptability.

The waterfall model works best when things are predictive. However, it doesn’t work in a dynamic environment with many unknowns.

Many modern software development methodologies, such as Agile and Scrum, have emerged as alternatives to the waterfall model that prioritize adaptability and flexibility.

Agile Model

It’s an adaptive approach – and is great for dealing with complexity and uncertainty.

It works better when there are many unknowns – the project is complex and frequent changes that reflect market are required.

We work on small increments. We develop, collect feedback and we adapt.

We develop software/product incrementally.

Agile approach is better for dealing with complexity and frequently changing requirements.

Few Agile Principles

Where does Scrum stay in this ?

Adaptive (or Agile) approach needs methodologies or frameworks that support agile principles. Scrum is such a framework.

Few of the other agile frameworks

  • The Scrum Framework
  • Extreme programming
  • Crystal
  • Dynamic systems Development method (DSDM)
  • Kanban