Getting Started with Agile Development

March 11th 2011

Agile development is a popular project management methodology for small software development teams.

Working at OpenFinder we have found that people don’t always know what to expect when working in this way for the first time. In this post I aim to explain the basic principles and how they effect someone working alongside an Agile team.

This post is not designed to teach you how to be an Agile developer, however it should make life a little easier when you start working alongside an Agile team for the first time.

Release early, release often

Agile development’s main focus is on frequent delivery of a product. Time will be divided into small time boxes (often between 1 and 4 weeks), referred to as iterations. The team will deliver a product at the end of each of these iterations.

Releases are small increments on top of the previous product

The traditional development lifecycle follows the process Analyze ➙ Design ➙ Develop ➙ Test ➙ Release.

These methodologies are often refereed to as BRUF (Big Requirements Up Front). The focus here is on gathering all the requirements at the start of the project and testing and releasing the whole product at once at the end.

It is usual for requirements to evolve during a project. At the start of each iteration, an Agile team will check for any requirements which have evolved since the last iteration.

Using an Agile methodology often produces a different product than was visioned at the start of the project, however it will produce a product that fits the evolving requirements better.

Timescale is fixed

Always adding requirements has the potential to make the development time for the project grow and grow. Agile developers counter this by setting the project in a fixed timescale.

At the start of each iteration, requirements are prioritized and the most important functionality is included as early as possible. This means that when the final release date is reached, the released product includes the most important functionality that fits the timescale (and your budget).

User Involvement

A big difference between Agile development and traditional methodologies is the focus on user involvement.

It may not always practical to have users directly involved with the development and in this case the team would work closely with someone who would represent these users.

Having user representation is imperative to identifying emerging and evolving requirements while also ensuring that the prioritization of requirements accurately represents the views of the end users and/or customers.

The relationship between developers and the user’s representative is close. The representative becomes a member of the team as valuable as any of the developers.

Team Work

This will be the biggest change for you while working along side an Agile team. Agile teams tend to have a large focus on communicating with you, including you in their team and working together to build you the best product that fits your needs and your budget.

Comments blog comments powered by Disqus