We all know waterfall has generally fallen out of favour and agile is the new process wunderkind. However, is pure agile really appropriate, or even possible, for the majority of our current digital projects? If the technical team is driving the agile development process from the start, just how and when do we integrate the user experience and creative contribution into the project lifecycle? Does agile really mean development first with no upfront design or specification, or, is there a better way to make agile development more effective when it begins? Certainly agile can be problematic for client projects when the statement of work contract is king for establishing project scope ahead of time. So how do we successfully integrate the benefits of agile into client-vendor engagements without putting either party at risk? This presentation topic is on how to effectively combine the best of waterfall and agile into a hybrid process model called “Agifall.” No process is perfect, but Agifall just might be the one that works best for your next project.
2. What is Waterfall?
Waterfall is a sequential method of phased activities in a project where
progress seems to flow downward through the finished phases.
Research/Strategy
Planning (Requirements)
Design (Specification)
Development
Quality Assurance
Implementation
Maintenance
3. What is Agile?
Multiple smaller iterative and incremental cycles of development called Sprints
that start with developing the most important core of the project/application and
building on it incrementally with feedback to come up with a release candidate,
then adding more features and improvements on each subsequent release.
4. What is Waterfall good for and Agile bad for?
Client projects where contracting scope for budget need to be
defined up front and legally binding. “You mean you spent all my
budget and this isn’t even finished or what I expected!?”
Client (or any) Project where there is not nearly enough
information up front to begin development.
Multi-faceted larger projects where there are many different
project owners who all need time to plan, contribute and tie
together functionality in a complex way.
Projects where an overall approach to design, usability and
organization needs to be coherently applied across the product.
“What, we have to connect all these killer features now in a
beautifully designed way that users understand? Time for lipstick
on the pig, call the design department!”
5. What is Agile good for and Waterfall bad for?
Proof of concept projects where the viability of the technical form
factor and functionality is the main business driver for the project’s
undertaking.
Lean start-ups that need to create a working proof of concept or a
beta quickly and cheaply.
Any market sensitive product with lots of competition that needs to
be able to “pivot” quickly.
Updating existing software incrementally with smaller product
update cycles.
Projects where schedule is by far the most important determinant
(not budget or scope).
Projects with project owner(s) who are completely bought in on
sprint-based agile methodology from the start.
Internal projects where there is no need for legally binding scope
contracts.
6. What is Agifall?
Agifall combines the best of both worlds, injecting
agile methodologies into a loose waterfall process to
increase speed, decrease cost and improve quality.
7. Some Main Tenets of Agifall:
Complete all Waterfall Phases with Agile.
Break out research, strategy and planning phases into stories and tasks, prioritize them
and proceed with sprints to get them done. Run your development phase just like you
would any agile project, you just have more information up front now so your teams can
focus on the actual work.
Adopt a “What’s Next” methodology across
the entire project.
Don’t wait for a Waterfall phase to end before you start the next phase unless you
absolutely have to. Agifall says that when parts of the project can begin, they should
begin. Tighten up your critical path across phases.
8. Apply these techniques to your Planning Phase
o!Approach planning in a user-centric way. Involve design and usability up front to
ensure you aren’t just lumping together killer features, but creating a comprehensive
product that users will love.
o!Use Rapid Prototyping Tools. Clickable wireframes can be done to plan out a
substantial mock-up of the product before development begins. It’s fast and easy to
modify and get client feedback on. It also allows a user-centric view of the
connected parts of the application so usability, design and development can
collaborate together and still be fast! Axure or Balsamic are great tools for clickable
wireframes. Use static wireframes if you can’t do clickable.
o!Define and get approval on Metadata ahead of development. Often simple
spreadsheets can be constructed and presented to the project owner for revisions
and sign-off during planning. Your developers can then concentrate on the actual
features when dev begins.
o!Start technically difficult but independent feature development during planning.
There is no reason why a really difficult technical feature can’t be started on early
to get schedule traction. What if it can’t be done and you have to pivot? Find out
early!
o!Define all your development sprints at the end of lean planning. Use Basecamp or Jira
to define every story and to do you can think of. Get buy in from the product owner
on story priority.
9. Do your graphic design in development, not in
planning.
Start your design team off at the same time as development
begins, they are both starting with the same wireframe info so
they should be able to go in tandem.
Don’t wait to start QA until the end.
Inject sprint testing into your waterfall development phase. Risky
to do with client until you have a solid beta of your release
candidate.