Agifall - Combining Waterfall and Agile Development Process for Digital and Software Projects


Published on

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.

Published in: Technology, Business

Agifall - Combining Waterfall and Agile Development Process for Digital and Software Projects

  1. 1. Vancouver Digital Project Managers Meetup AGIFALL Presented by Mark Fromson
  2. 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. 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. 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. 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. 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. 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. 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. 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.