An Introduction to Agile Development
Once there was a waterfall. This waterfall represented a linear solution to the problem of how to organise the development of a piece of software. It looked something like this:
This waterfall method of development works perfectly well when a project goes completely to plan, but unfortunately that’s not always the case. What happens when you’re in the testing phase and your client informs you that they want a big change to the functionality? The design has already been completed for the original specification, so now you have the option of starting from scratch, or trying to make this functionality change fit within your tightly controlled product.
As developers started to realise that the real world tends to have quite an impact on the development of any process or product, they realised that a new strategy was required.
They called this new development model Agile.
Agile Development was a phrase originally coined in the 1990s. It described a process that offered far more adaptability than any previous method for putting together a product. Essentially the importance of an agility project is that anything can be changed, allowing for future developments to be easily incorporated within the finished product at any stage throughout the development lifecycle. This doesn’t mean that you don’t plan at all. It is always important to put pen to paper to describe what your software, product or process must do at the end of its development. However rather than simply planning for a finished product, in agile development you must be prepared to adapt your plans based on the results that you find.
Let’s put this into context by going back to the software development example. If your initial plan simply describes what the product will be like at the end of the project, with all bells and whistles included, you will have no way of checking along the way if that finished piece of software is actually suitable for its purpose. By choosing to develop the software in a more agile and modular fashion, you can plan to release launchable products at the end of each development cycle iteration. Rather than waiting until the end of development to test things, you can test as you go, catching awkward bugs as you go and making tweaks to the functionality to ensure it is completely fit for purpose.
The benefits of agile development are obvious, however in order to see success in your project the project manager must be willing to adhere to some key principles:
- Be transparent. Do you want your employees to admit to their mistakes, be willing to discuss any problems and communicate successfully with their colleagues? By being completely transparent and modelling the behaviour that you would like to see in your staff you will start to see it replicated through your workforce.
- Be encouraging. It doesn’t take a lot of time for you to offer a word of encouragement to those on your team. Sincere encouragement will help to make your team more motivated, leading to more success in the long run. Your encouragement may come in the form of empowering those within your team by allowing them to think for themselves when it comes to organisation and independent thought.
- Be adaptable. The whole purpose of an agile development cycle is to recognise that complications often arise in the real world, and to be adaptable enough to work with them. This is also true of the agile process itself! If something is obviously not working for your employees then be prepared to make a change for the ultimate success of the project.