So have you heard the buzzword 'Agile' too? Seems to be all the rage these days when it comes to web application/website development. Why?
Agile is a methodology, which when well executed, can ensure team coordination, a product more on target to user needs, and keep project budgets on target. It entails smaller delivery sets. Delivery Sets are feature/task prioritization, and daily Scrum meetings, led by a Scrum Master to ensure team coordination and collaboration. In easier terms, scrum meetings are usually less than 15 minutes long, and are just a status check to see where everybody is, and if there is anyone who has a problem where others can solve it. Code sprints are when the developer just focuses on building the site. When dealing with a dynamic business that needs to continually evolve and adapt, it can also lead to endless cycles of code sprints and never reaching a product launch. Here is a diagram to help visualize this process.
This process makes it easier to add features or aspects you discovered into your product. However, agile process can create a never ending loop through many different aspects. The finished product can often become something completely different than what was originally planned for and if mismanaged can greatly overrun budget expectations.
Waterfall is a more sequential approach to development. It requires intensive upfront planning to ensure that intricate details are accounted for and aren't discovered midstream in the project. When done well, this approach can lead to a faster project launch, the client understands what is being launched before development even begins, and project budgets can be more accurately estimated.
However, this process design also comes with its own set of problems. When dealing with a business that continually evolves and requires adaptation, it can lead to scope creep, budget overruns, or a project launch that doesn't hit the clients evolving needs. Re-entering a waterfall process over and over because of a continually evolving business can cause a project to head over budget.
So what is the right solution for you? How about Wagilfall? Is it professionally acceptable to combine the two? Many companies have coined their own phrases like 'Nimble' or 'Wet Agile'. Combining both of the processes are great, but developing a lean process that is unique from the experience we have had throughout the past 14 years is what we frequently recommend, and here's how and why;
We recommend spending the appropriate effort in a Planning exercise to define a Waterfall approach to a 'Site Stand Up'. Once the Planning is complete, we'll estimate/re-estimate the Development to the Stand Up. We then have a code sprint to a defined scope. If new ideas/features come up during the development cycle, unless it is mandatory for that initial project launch, we'll add it to a bucket list. Our goal is to get our clients to a launch-able product as quickly and efficiently as possible to get revenue generation activities initiated. Then evolve into an Agile approach to enhance the site, add bucket list items, respond to the client's client needs. Here's how our process looks.
Two key components to this process are to understand the long term goals of the site, and also limiting the initial Stand Up to the core business drivers needed for launch. The appropriate technology or framework needs to be chosen in order to provide the required level of scalabilty to adapt to the needs later defined by an evolving market need, as with any Agile process. Additionally the Site Stand Up should be limited to the key business drivers to keep it manageable in a waterfall process.
We are curious to hear what you think? Is there an approach you have used in the past that worked/didn't work? Why?