Articles
Articles, thoughts and opinions relating to Software development and Technical Project Management.

Agile development and your business
Thursday, 22 September 2011 09:34

Introduction

Over the last few years Agile development practices have become more widely used on software projects. The Term Agile refers to a way of developing software that aims to increase the return on investment to the business. Agile practices favor frequent face to face meetings with the client and emphasize early releases of working software. The term Agile was first used 10 years ago by Software professionals all concerned with the high rate of failure or delay of their IT projects. They found that by working in short release cycles of 2-4 weeks, they could engage their clients better in the development process and more frequently deliver what was required. If you are thinking of embarking on a software project, or commissioning a project with a third party it is worth considering an Agile Approach. It is generally accepted by the industry that organizations that work in an Agile way deliver better quality, quicker at a lower cost.

What you should expect from an Agile Project

  • Frequent releases of working software
  • A project able to adapt and respond quickly to change
  • A highly motivated development team committed to quality
  • A team focused on developing what is most relevant to business requirements
  • Comprehensive and frequent progress reports

What you should expect from an Agile Organization

It feels a little different working on an Agile project. Firstly you should expect much more communication with your development team. You’ll be asked to review working software at regular intervals which allows you to feedback new ideas and better shape your final vision. You’ll notice that software is of the best quality and feel confident that each release is production ready. Planning is also responsive to change, which allows you to re prioritize your requirements to best suit your needs. As a customer you’ll feel part of the team and feel completely in control of how and when your money is being spent. You’ll understand the software better and be able to make informed decisions with your developers about where best to allocate development budget.

How to work in an Agile way

The emphasis on good communication with a team responsive to change is key to the success of an Agile project. For this communication to work you’ll need to spend some time as a business being involved in planning and decision making. You are best placed to understand the business benefit of your software and the development team is best placed to assess the technical scale of the work. Only together can you achieve results and build a relationship based on mutual respect and trust. In practice this usually means committing some one who really understands the needs of your business initially for 1 or 2 days to participate in an initial scoping phase. From then on this business expert should be made highly available to the development team and formally review working software every two weeks.

What about the contract ?

A key concern when starting an Agile project is the contract. On a fixed price contract its important to make clear what you are going to receive and when. However it is important not to make the contract too specific. Its nice to keep your options open, especially as your business needs change rapidly and you generate more ideas along the way. Of course this change will come at a cost, but you’ll be able to have open discussions with your development team in order to make informed decisions about which features are the most cost effective to implement. It’s usually possible to write a contract that is flexible enough to allow change but precise enough to ensure there is a common agreement of the main requirements.

Conclusion

Agile is a proven development methodology that delivers better results, quicker at a lower cost. This is achieved working closely with the development team. The trust relationship that develops is the most beneficial for making informed management decisions to help steer the project to success.