10 Important Principles of Agile Development Methodology
The term ‘agile development’ has become something of a buzzword in the IT industry in the last decade. It refers to a new method of IT development distinct from the traditional approach through its lack of structure and its focus on people rather than processes. The term itself originates from 2001, when a group of 17 like-minded software developers met to share their ideas about the future of development and different ways to streamline and improve the process. The result of their time together was the penning of the Agile Manifesto. This outlined a set of principles - initially 12 - for those wishing to adopt their new approach.
The Agile Manifesto
The Agile Manifesto also clearly sets out the key values of agile software development. A focus on individual team members and their interactions with one another is paramount. Agile development also requires that working software is produced as early in the process as possible. In order to achieve this, writing up comprehensive documentation is recommended against while a more hands on approach is taken. This can also benefit the customer during the process as they get to see a working model much earlier when normally they might only be seeing a plan or a presentation.
Another way in which agile development favours people over process is how the customer is treated. Rather than lengthy contract negotiations, collaboration is prefered. A flexible, more informal contract allows developers to have more constructive interaction with the customer throughout the process. This also better reflects the nature of most software development projects, where requirements change during the process and cannot realistically be agreed in full at the beginning. Another of the manifesto’s key values is reaction over planning. Hand-in-hand with the point about documentation, is the idea that instead of following a rigid plan developers should be adaptive rather than predictive. Developing continuously allows for a more fluid workflow and better overall results.
10 Key Points
These values, and other important aspects of agile development can be summarised by 10 key points. The first of these regards active user involvement. Whether building a product to be used by a company directly or for its customers, it’s important to have a senior member from your client involved at every step. This ensures that user requirements are always at the forefront and will reduce the overall back-and-forth between developer and client.
The next key principle involves a team including all the necessary members to make key decisions. Together with a key figure from the client, when decisions can be made quickly and without outside interference, the efficiency of the project can be maintained. The third principle looks at the timescale. While requirements should naturally evolve throughout the process, it’s important to keep a fixed timescale as with any usual project. With this in mind agile development proposes that work is started with core features set out which must be functional by the end of the project, rather than a comprehensive specification sheet. This flexibility also offers the best value for the client.
The fourth key principle states that for development work to proceed, there must be a bare minimum requirement. As development continues, that requirement can be built upon and improved, as long as the developers have enough information to make a start. As the next key principle states; incremental, iterative releases are another key strength of the agile development process. There are clear advantages to this approach.
Risk is reduced as there is greater visibility at each step of the way, adaptation is more flexible and can lead to a better overall experience and it’s likely a deliverable product can be achieved in a shorter amount of time. Cost can also be better managed, as with each iteration the customer has complete control over the direction of the project.
The iterative development approach, coupled with the idea of minimum requirements being met combine to make the next key principle, which calls for much quicker delivery times. Developing on a feature-by-feature basis means a product can be released much earlier, with more basic functionality than it’s final iteration.
Essentially, a product can be released as soon as it’s useful, allowing for much earlier user feedback and projects ideally lasting 3-6 months rather than a year. Key to the last 2 principles is that every feature must be finished before moving onto the next. Planning, development and testing should be completed for each individual feature before progressing. If this process isn’t adhered to the project can easily falter.
Pareto’s Law is the subject of the eighth key principle of agile development. According to Italian economist Vilfredo Pareto, it is typical that just 20% of your work makes accounts for up to 80% of your results. Agile developers should try to identify which 20% they need to focus on most, as this will streamline their processes and improve overall their output.
The penultimate principle is again related to testing, a common theme of agile development, and states that it should be integrated throughout development of each feature rather than an afterthought. There is to be no separate test phase. The final principle echoes the first, a focus on collaboration between all relevant parties. Developing without a pre-agreed specification is only possible with regular client-developer collaboration and this is arguably the most important feature of agile development.
There are many different methods which follow the agile development manifesto, such as DSDM, Scrum or XP and each of these have their pros and cons. It is also undeniable that many projects, at large scale companies in particular, may be unsuitable for the the agile approach. For many projects, however, the benefits of agile development methodologies are numerous.
As well as a more exciting, collaborative process, businesses can save large amounts of money while introducing products in a more timely fashion. The agile process can also be far more efficient, allowing teams on both sides to spend their time more constructively, focusing far less on laborious documentation and planning for the good of the final product.
For more information about our agile methodology, get in touch with dsp today. Call 08701 999 377 or contact us online.