Like many software development companies, we develop our projects using Agile methodology. Agile is an iterative way of developing projects. Mostly used by software development agencies, Agile methodology means delivering sections of the project to the client incrementally when each section is completed. Rather than all together at the end. This is beneficial for both the client and the development team, as changes can be made, and communication with the client is frequent. Clients also get to see deliverables faster.
There is a lot of components that make up the Agile way of working. Making it one of the most beneficial and efficient ways to develop software projects.
How is Agile different to other development methods?
The main differentiator between Agile and other methods is the fact that it is iterative. The development of the project starts simple, then components are added incrementally to build the project.
Another factor is that the planning is different. Rarely does an original project plan go smoothly or mirrors the original. Changes will need to be made due to numerous things. With Agile, the planning is adaptive. Meaning plans can be more easily changed when problems occur.
Agile also welcomes change. Whilst more traditional methods tend to think of change as a negative thing because of cost, Agile believes the cost of change can still be kept relatively low. Through its honest planning and practices Agile tends to believe change can be embraced and will benefit the end project.
What role do user stories play in Agile?
A big part of Agile is user stories. User stories are the features that the customer would like their software to have.
With Agile the customer knows what is happening every step of the way. This is because user stories require lots of face to face communication with the client. This is beneficial due to the fact you actually get to see your customers on a regular basis. Providing the opportunity to discuss with them their requirements and features. This, in turn, makes it easier to plan your user stories. You will also get to know your customer better. Learning their likes and dislikes and their general personality. Sitting with your customer in person allows them to ask questions and allows you to explain user stories in a way that the customer understands so they can fully know what is going on with their project.
Iterations, Scrums and Sprints
An agile iteration is a period of usually one or two weeks where the development team takes on a user story and begins building it into the product. After the iteration is over the team will take part in the retrospective meeting. This is to discuss how the sprint went, the progress made and how to improve next time.
Everything happens during an iteration. Design, analysis, coding. This means that the customer will get to see the finished section of that product after each iteration.
People sometimes don’t know the difference between some of the Agile terminologies.
Iteration – An iteration is a single development cycle.
Scrum – A scrum is a specialised Agile method which uses the word sprint in place of iteration. Therefore, one development cycle in scrum is a sprint.
Sprint – A sprint is an iteration when used in a scrum.
Agile is very people focused. Focusing on the people working on the project, the client and the user. Rather than focusing on systems and money, it aims to focus on the best possible outcome for the project. Making sure progress is monitored and that both the team and customer are satisfied.