Trying to decide whether to stay with Waterfall or make the
move to Agile on your next project?
There are some big differences between the two methodologies that you
need to be aware prior to making the switch.
In this post I’ll highlight the differences and call out key areas to
consider prior to moving to Agile.
There are four key themes
that separate the two methodologies. When
considering a change, it is important that you and your organization are ready
to move from the “old” waterfall thinking on the left in the chart below to the
“new” Agile thinking on the right.
|
Waterfall | Agile |
Waterfall is release driven, with a defined critical path
and sequence for delivery
|
Agile is based on short iterative delivery cycles usually 2-4 weeks in duration
|
|
Estimates are based on the work required to meet the
requirements
|
Estimates are done based on the amount of work the team
can accomplish in a set period of time
|
|
Requires clearly defined requirements upfront
|
Requirements are expected to evolve and change is embraced
|
|
Success is measured by the IT organization
|
Success is measured by business value delivered |
Should you stay with
Waterfall?
Agile is not right
for every project team and is absolutely not a silver bullet that will solve
your organizations delivery problems. In fact, if you are already struggling,
trying to change to a new methodology might make things worse. Prior to making
the transition to Agile there are two key areas to consider – resources and
organization.
Resources
A large number of resources
will not be able to handle working in an Agile environment. Prior to selecting
project team members it is important to know if the resources you have in
mind are ready for life on an Agile team.
There are three areas to think about before selecting team members:
- Co-location – Tight collaboration is a
key tenant of Agile but it is not for everyone. The collocation and continual back and
forth between team members can cause tension and create stressful team
dynamics.
- Discreet Work – Many team members like
to finish their work and move on rather than stay with the same team of
people for an extended time.
- Performance – Agile is quick to single
out individual performance issues. Not
everyone is ready for this type of scrutiny.
Organization
Having committed
resources is important, but having buy in from your organization is
critical. If the leadership team is not
ready to support the Agile methodology, you can almost guarantee that Agile
will not be successful. When assessing
your organizations readiness, consider the following:
- Is the
leadership team ready to support a shift in thinking from the big bang
approach to smaller iterative delivery cycles?
- Can
the organization accommodate the frequent delivery of increments?
- Is
there a commitment to push Agile to other parts of the organization such
as release management and production support?
- Has
the business bought in to Agile?
They will be required members of the project team and must actively
participate to make Agile work. In
many cases they are not willing to give up their “day job” to support the
project team.
Getting Started
If you have the right project team selected and commitment
from business and IT leadership to support the Agile philosophy you are off to
a great start, but it is only the beginning.
As you start your first project, consider the following:
- Make
sure requirements are prioritized by the business up front
- Start small and prove success, don’t try
to build enterprise system 2.0 out of the gate
- Plan for resistance – even though you
have leadership buy in, not everyone will be supportive
- Keep Iterations/Sprints short in
duration (2-6 weeks)
- Deliver business value early and
often. Naysayer’s quiet down
quickly when the team is delivering working software
- If at all possible have the team
co-located. While a distributed
team can work, there is a tremendous amount of intangible value you get
from co-location
- Do not start the project unless you have
business representation. Without the business, Agile will not work.
With these tips in mind, you should have a smooth entry into
the world of Agile software development.