I know that some developers our there use the Hope methodology, some might use the Pray methodology, but those don’t really work for real, mission critical, high volume applications like the ones we build.
So we went on a search for the kind of methodology that would facilitate fast, iterative, user centric application development. Most traditional methodologies are very “Waterfall” oriented (i.e. they focus heavily on sequential development), which does not really work well when the cycles are short and iterative. Others are very document rich – but in many cases very redundant and bureaucratic.
All of the senior team at Zemoga had used one form or another of the Agile Process. So we all believed we could deliver superb applications, solid software, and have the ability to respond quickly to changes in scope and business environment if we adopted the Agile Process on an organizational level.
The agile process is based on four almost dogmatic truths:
– Individuals and interactions over processes and tools
– Working software over comprehensive documentation
– Customer collaboration over contract negotiation
– Responding to change over following a plan
For more about the guiding principles behind the Agile Process, there’s no better place to look than the source itself: the Agile Manifesto (http://agilemanifesto.org/) (which was first published in February 2001 by a group of software developers).
One of the reasons we decided the Agile process works best for us, is it breaks down even the largest projects into short iterations, that deliver usable software in small chunks. We decided that the time-box that fit our needs best was a two week “sprint”. At the end of each sprint, we can deliver usable software for review.
For our clients, this creates an unprecedented experience. They can see progress, identify design issues very early in the life-cycle, and establish true ownership of the end product – because they were an integral part of the development. This is a true breath of fresh air to those clients that were used to months and months of requirements gathering followed by months of “black box” development that ended in products that only vaguely resembled what they needed in the first place.
One thing really needs to be clear: The Agile Process is NOT Cowboy Coding – It is disciplined, based on team accountability, client input, and true transparency. The short cycles, and limited documentation are not a symptom of lack of discipline or process: On the contrary – in short cycles each team member’s accountability to the team and the client is heightened. Each Sprint truly needs the team’s commitment to high quality, and on time delivery. There is nowhere to hide and no time to waste. The process is results driven and all team members share responsibility for the quality of the deliverables.
We believe that the Agile Process unleashes the true creative and technological power of our development teams. Without the need for excessive documentation or countless negotiation sessions our team members are given much more time to think and design. The results are superior products that meet client and end user needs and a working partnership between developers and clients from day one.
Agile is not a perfect methodology. But it is a great tool and one that we’ve been using very effectively. Most importantly, it provides a structured approach to problems that allows everyone involved to have input and ownership in the development process. And that will yield better results than “Hope” and “Pray” every time.