Search

Agile methods are used as an alternative to traditional system development methods. Agile allows teams to respond to changing requirements in a business through incremental, iterative work cadences, known as sprints. Agile is based around empowered teams, shorter development cycles, frequent releases, increased collaboration and increased emphasis on quality. It aims to eliminate waste, deliver fast feedback, continuous improvement, and simplicity.

Users discover what they need once they have time to play around with the system, they then request changes to the system or identify new requirements. The aim of agile software development is to deliver the system in iterations, each of which can be seen as a small software project.

Teamwork is vital to agile software success and the customer should be involved in every step to ensure the system is meeting all of their requirements.

Agile Modelling process

Listen for users stories from the customer

Draw up a logical workflow to get a feel for the business decisions represented in the user story

Create new user stories based on the logical model

Develop some visual prototypes which will show customers what sort of interface they will have

Using feedback form the prototype, develop the system.

The analyst relationship with the customer is very important. The analyst delivers software quickly so the customers can test the prototype and give feedback and request new requirements. This helps to reduce the risk of not meeting the terms of the contract.

The benefits of using agile methods

Reduced risk as you can go back and change/ add requirements

Increases visibility of progress

Increased predictability

Increased productivity

Scrum is the most common agile method used today. Scrum is a framework which leaves a lot of the system development up to the software team instead of setting out detailed design steps for them to follow. The team is expected to know best how to solve the problem. Scrum relies on a self-organising and cross functional team. A self-organising team means that there is no one leader who gives the orders, a problem is discussed by the whole team and together they come up with the best possible solution. A cross functional team comprises everyone necessary to take a feature from idea to implementation.

A scrum master and a product owner support the teams, the scrum master can be seen as coach for the team, teaching the members to use the scrum framework to achieve the highest levels. The product owner is a representative of the business and the users. It is his job to guide the team towards building the right system for the business.

Scrum projects make progress in a series of sprints, which are time boxed iterations no more than a month long. At the start of each sprint team members commit to deliver a certain amount of features that are listed on the project scrum product backlog. These features are coded, tested and integrated into the evolving system. A sprint review is conducted where the team demonstrate the new functionality to the product owner and other interested stakeholders who will provide valuable feedback that will be useful in the next sprint.