Agile development – Why is it worth it?
As an organization Druid strives to act agilely in every facet of its operation and to keep decision making as close to employees as possible. A flat organization structure should be easy to understand - no superiors, no needless bureaucracy - but what about agility?
Although agile methods became widely recognized at the turn of the 90's, many of our clients first become acquainted with them through us. That's why I decided to write some clarifying thoughts about agile development to shed light on the topic. Let's start with the basics.
What does agile development mean?
Reacting agilely is man's natural way of acting; adapting to varying conditions used to be a matter of life and death to us. These days that form of agility is mainly visible in children, who make up games, change their rules, and shift into other games on the fly. Unfortunately in working life agility regularly falls victim to rigid processes. Luckily not so with us!
Traditional waterfall projects progress in a very straightforward, phase by phase manner: you create a project plan which is then implemented, tested, and delivered. Once a plan is in place, it's difficult to change it, and you might have to wait for feedback from the operational environment for a very long time indeed. In worst case scenarios it takes years to plan a project, and when the implementation phase finally begins, the product or service has already become obsolete.
On the other hand, in agile projects, the planning, development and testing is done in repeating cycles. Projects are carried out in short, maybe 1-4 week iterations, each of which is like a small project in and of itself. The goal of each iteration is to produce shippable software that brings value to the customer. The project's priorities are then evaluated and the content of the next iteration is planned between each iteration. The functionality of the software is more important than comprehensive documentation, which is why each plan is fluid and evolves depending on the situation.
The Agile Manifesto published in 2001 is considered the defining work on agile development, clarifying the values and principles that agile thinking is based on.
The waterfall model was originally developed for structured industrial manufacturing processes, and it has been criticized since the 70's as an unfit model for software development. But the waterfall model has its uses if the desired goal is very clearly defined and changes in project planning are very improbable. However, this is rarely the case in software development.
What does agility provide?
Speed: Agile projects are carried out piece by piece so that the parts of the web service that are most important to your business are implemented first. Continuous releases enable a fast deployment. That means you start gaining commercial benefits faster.
Transparency: The projects are run in close co-operation with the client using direct communication, preferably face to face. You will always be on top of what is in the works and when.
Adaptability: Short iterations make it possible to react and to adapt to changes fast. The project's plan can be changed when there is need. You have a very real chance to affect the development of your web service.
Minimal risk: Short iterations also make it possible to fix errors quickly. The earlier an issue is spotted, the cheaper it is to fix it. That means you won't encounter nasty surprises after your web service is completed.
When carried out properly, agile projects will always stay on schedule and within budget, since the scope of the project evolves according to time and money - prioritizing is done constantly. Even though you may not get everything you want, you will get everything you need. The project's active tasks should always aim towards bringing the most value to the customer.
Studies have shown that projects utilizing agile development methods are far more successful than waterfall projects. Communication and client co-operation have an especially great impact when it comes to successful projects.
There are several different agile development methods. Scrum has clearly defined roles, events and artifacts, so that even inexperienced individuals will easily understand how the Scrum framework operates. We at Druid carry out most of our projects using Scrum, and almost all of our employees are certified Scrum Masters. However, Scrum will require a whole post of its own, or maybe several, so there will be more about that later!