WHAT IS AGILE DEVELOPMENT?
The Agile Development Methodology stems from the Agile Manifesto, drafted in 2001, which is a set of twelve project management principles that guide development teams toward quick, lean solutions, which are then reviewed and improved over time. The original guiding principles are really quite simple and seem on the surface to be almost common sense.
RocketBuild, like many software and web development agencies, works in an iterative, “agile-ish” process. We are not a fully agile shop. But that doesn’t stop us from implementing the parts of agile that can work for us. We do draw a lot of our systems, concepts, and processes from Agile Methodology because we believe strongly in the philosophy’s means and ends.
How it works
A primary goal of agile development is to get pieces of functioning software into the hands of users as fast as possible. This is accomplished by engaging in a series of “sprints,” each followed by a round of testing and quality assurance. Ideally, after each sprint, the customer will have one or more requirements (pieces of working software) that they can play with, review and use to explore more ideas. These requirements will most often be embodied by a set of user stories that the team can test against.
A big piece of what makes agile and its derivatives work is the regular meetings and communications that occur during and between sprints. The development team stays in regular contact with the customer, asking questions, seeking clarity about use cases, and providing ongoing suggestions for improvement. Meetings will usually be held bi-weekly, and often more frequently, with email or phone conversations throughout the sprint.
Agile provides value for three primary reasons…
First, delivering working code frequently helps build and maintain confidence while also improving outcomes. Customers can see what their money is buying them on a recurring basis, and seeing the software in action is satisfying. The development team is getting constant feedback on how they are performing, which can improve future outcomes.
Second, building the product in sprints allows costs to be spread out, and can often lower overall costs considerably. Customers can pay for large software solutions in bite-sized chunks, as the requirements are delivered to their satisfaction. Iterating on the requirements over time, rather than waiting until the whole solution is built, means that any changes that need to be made can be implemented earlier. This often reduces costs associated with re-working the code after the fact.
Lastly, regular communication allows for greater flexibility and creativity. Change is inevitable during the course of a several-month software build. Agile allows for the teams to plan for change and embrace flexibility. If all goes well the teams will come up with even better ideas for how to make the product work as they build it and test it, and they don’t need to worry about change orders or scope creep.