Advantages of Agile model:
- Customer
satisfaction by rapid, continuous delivery of useful software.
- People
and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.
- Working
software is delivered frequently (weeks rather than months).
- Face-to-face
conversation is the best form of communication.
- Close,
daily cooperation between business people and developers.
- Continuous
attention to technical excellence and good design.
- Regular
adaptation to changing circumstances.
- Even
late changes in requirements are welcomed
1.
Revenue
The
iterative nature of agile development means features are delivered
incrementally, enabling some benefits to be realised early as the product
continues to develop.
2.
Speed-to-market
Research
suggests about 80% of all market leaders were first to market. As well as the
higher revenue from incremental delivery, agile development philosophy also
supports the notion of early and regular releases, and ‘perpetual beta’.
3.
Quality
A
key principle of agile development is that testing is integrated throughout the
lifecycle, enabling regular inspection of the working product as it develops.
This allows the product owner to make adjustments if necessary and gives the
product team early sight of any quality issues.
4.
Visibility
Agile
development principles encourage active ‘user’ involvement throughout the
product’s development and a very cooperative collaborative approach. This
provides excellent visibility for key stakeholders, both of the project’s
progress and of the product itself, which in turn helps to ensure that
expectations are effectively managed.
5.
Risk Management
Small
incremental releases made visible to the product owner and product team through
its development help to identify any issues early and make it easier to respond
to change. The clear visibility in agile development helps to ensure that any
necessary decisions can be taken at the earliest possible opportunity, while
there’s still time to make a material difference to the outcome.
6.
Flexibility / Agility
In
traditional development projects, we write a big spec up-front and then tell
business owners how expensive it is to change anything, particularly as the
project goes on. In fear of scope creep and a never-ending project, we resist
changes and put people through a change control committee to keep them to the
essential minimum. Agile development principles are different. In agile
development, change is accepted. In fact, it’s expected. Because the one thing
that’s certain in life is change. Instead the timescale is fixed and
requirements emerge and evolve as the product is developed. Of course for this
to work, it’s imperative to have an actively involved stakeholder who
understands this concept and makes the necessary trade-off decisions, trading
existing scope for new.
7.
Cost Control
The
above approach of fixed timescales and evolving requirements enables a fixed
budget. The scope of the product and its features are variable, rather than the
cost.
8.
Business Engagement/Customer Satisfaction
The
active involvement of a user representative and/or product owner, the high
visibility of the product and progress, and the flexibility to change when
change is needed, create much better business engagement and customer
satisfaction. This is an important benefit that can create much more positive
and enduring working relationships.
9.
Right Product
Above
all other points, the ability for agile development requirements to emerge and
evolve, and the ability to embrace change (with the appropriate trade-offs), the
team build the right product. It’s all too common in more traditional projects
to deliver a “successful” project in IT terms and find that the product is not
what was expected, needed or hoped for. In agile development, the emphasis is
absolutely on building the right product.
10.
More Enjoyable!
The
active involvement, cooperation and collaboration make agile development teams
a much more enjoyable place for most people. Instead of big specs, we discuss
requirements in workshops. Instead of lengthy status reports, we collaborate
around a task-board discussing progress. Instead of long project plans and
change management committees, we discuss what’s right for the product and
project and the team is empowered to make decisions. In my experience this makes
it a much more rewarding approach for everyone. In turn this helps to create
highly motivated, high performance teams that are highly cooperative.