Adaptive & Predictive
Adaptive & Predictive
Adaptive & Predictive
vendor. Why is the model so important? A wise man once said that if you fail to plan, you plan to fail, and the
Systems Development Life Cycle (SDLC) model is a critical component in planning a project. The SLDC is a
conceptual framework that outlines all the activities in software development — in other words, it’s the key planning
tool that will guide your developers step by step through the project. You need a model that can maintain all the
business requirements, ensure every feature is designed and built properly, and ensure the project operates as it
should.
SDLC models fall into two major groups: predictive and adaptive. Both approaches are equally valid, and it’s the project type
that should drive the model selection. The choice will depend on evaluation of all the pros and cons of each model in the
context of the particular project’s goals and constraints.
Predictive, or Incremental, development is a method of software development where the model is designed, implemented,
and tested incrementally (piece by piece) until the product is finished — or until all the requirements have been satisfied. This
model combines the elements of the waterfall model with the iterative philosophy of prototyping. In this model, each module
passes through the requirements, design, implementation, and testing phases.
As this model involves delivering system components as they’re completed, it allows for partial utilization of product —
meaning completed features can be used before the full project is finished — and avoids a long development time. That
means this model helps ease the traumatic effect of introducing a completely new system all at once.
Pros:
The predictive model generates a working software product quicker than the adaptive model.
It’s easier to manage risk with this model because potential obstacles are identified and handled during their first
iterations.
It is easier to test and debug during iterations of smaller pieces than on the full product.
This model allows for more flexibility, as changes to scope and requirements may be made to every increment.
Cons:
This model requires good planning and design. If tasks aren't done properly in each phase, the entire project can
be impacted.
A clear and complete definition of the whole system is required before it can be broken down and built
incrementally.
Additional efforts are required to integrate each individual component of the system.
When the requirements are clear and can be implemented in logical phases, even though some details may evolve
with time.
When there are some high-risk features and goals or when the product calls for new technology.
When the client needs clarity on and strict adherence to the target delivery/end date based on the agreed-upon
scope.
Adaptive Development
Adaptive life cycles like SCRUM or Kanban (also known as agile or change-driven) are designed to iterate rapidly on projects
that are a little more experimental or less certain. They’re dependent on ongoing stakeholder contribution, and they react
quickly to the changes in project scope and system requirements. This approach is sometimes referred to as freeform
software design as it offers an incredibly flexible design model, promoting adaptive planning and evolutionary development
when the end goal is not quite as concrete.
Pros:
This model allows for evolving requirements so change can be implemented very easily given the shorter planning
cycles (sprints).
This model encourages customer satisfaction through fast and continuous delivery.
Adaptive development encourages active involvement and interaction from key project stakeholders, which allows
for product build based on priority and accuracy.
Cons:
Team members must be highly skilled and cross-skilled as core teams are small.
The project can easily get thrown off track if the customer is not clear on the desired final outcome.
When it’s important that the implementation process starts faster. (For large and dynamic projects with quickly
evolving requirements, it makes no sense to belabor the process of predefining requirements in minute detail.)
When it comes down to it, neither the predictive nor adaptive model is inherently better than the other. Both approaches have
their uses, and there is not a right or wrong choice. Incremental development tends to be best for static projects where the
requirements aren’t likely to change during the development process. In contrast, adaptive models tend to be a better option
for projects in which changes are likely.