We are experienced in delivering software using agile principles and practices. We provide agile training and ongoing coaching to help both management and delivery teams on the agile journey.
What is agile, how does it work and how do we deliver through agile?
The Agile manifesto was created in 2001 by 17 individuals from various backgrounds that had been working for many years to solve some of the big problems associated with software development. (see agilemanifesto.org/). Agile is now mainstream with 94% of organizations practicing agile in at least some areas of their organisations ( see Version One state of Agile report).
Agile helps teams to deliver world class, user centered software quickly and affordably. This way of working is very different to delivering using long specifications and procurement processes, but it is essential to produce quality services that your users will love and that will meet their needs.
Agile uses short iterations to create software based on the feedback of real users. It is the regular releasing of small pieces of functionality that meet your users needs. The team works together closely with clear communication and a common end to end goal. The progress and status of the work is displayed clearly, typically using whiteboards or agile based software tools.
User understanding is the most important part of delivering software services, so you need to have a clear understanding of your users needs and to make sure those needs are meet. In traditional waterfall software projects, requirements are written in a large document and signed off before any development begins. A vast amount of energy is spent debating what should be written, instead of doing what needs to be done. While in Agile the user story allows a high level view of what the user wants that can be then expounded at a later time when the user story is about to be worked on. Think of a user story as a promise of a conversation that at sometime we will dive into deeply, but we are not going to do that until just before we need it.
A user story is generally one or two sentences that describe the following in a clear way:
- Who the user is
- What they need from the service
- Why they need the service
The user stories should always be written in simple terms that are understood by the users of the software. A user story should go from end to end, not just one technical area such as adding a field to a SQL table. They should be independent, negotiable, testable and be able to be done in one or two weeks.
If you write user stories like this, it will enable your team to get a high level understanding of user needs and allow them to expand them just before they are needed. Writing user stories well is critical to timely delivered software that is inline with your users needs.
Main features of agile
Agile’s goal is the regular delivery of working software. To do this, work needs to be broken down into small pieces and then have the team focus their energy on delivering one piece at a time. Agile is to move away from having the team split into silos, to have a team that works in harmony for the end goal of meeting the user needs.
As a customer what would you like delivered? Would you like piles of documents, plans and reports delivered or would you like the regular delivery of working software the meets the needs of your users. Agile focuses the team to look at what the customer wants from the customer perspective and to deliver only that, to eliminate as much as possible the non value added activities and focus the team on deliver value at all time for the customer.
There are a number of different agile methodologies with the most popular being Scrum and Kanban. Both methodologies have their strengths and weaknesses, but if applied correctly both can provide a significant benefit to your team’s ability to deliver what the customer wants. Scrum has an iteration based delivery, where the team is delivering working software every week or two, whereas Kanban is the continual delivery of working software that is not constrained by fixed iterations.
If you need us to provide agile training or coaching to your organisation contact us.