In previous posts we’ve looked at the role of QA in agile along with agile estimation from a software testers prospective, we’re now going to take a look at some of the benefits of agile in general.
Using various estimation techniques, agile helps teams plan out how much work can be done in a given amount of time. Sprint planning helps both the team and the client understand where progress is, what’s coming up next, and when things will be looked at.
“One of the biggest benefits is being able to establish our velocity. That is, how much work we can typically accomplish in a given sprint (usually two weeks). This has greatly increased our ability to estimate budgets and timelines.”
– Molly Hegarty – LookFar
Adaptability / Flexibility
Short sprints allow for the backlog to be reprioritized and refined. Working in sprints means changes can be seen in a matter of days/weeks and the team can learn from each iteration. As the team completes sprints, decisions can be made on what to work on next. Taking the project on in these smaller “chunks” promotes an iterative process which leads to more quality and better decisions throughout the project.
“The thing that highlights agile in front of waterfall is planning flexibility and long-term success as a result. This planning structure is a very task-focused one; everyone knows what to do, when to do it, and why to do it, so the stress has been reduced dramatically.”
– Anna Boyarkina – RealtimeBoard
Agile methodology strives for close collaboration between the team and client during each sprint. This allows the team to gain a strong understanding of the client’s vision through rapid feedback. By delivering working features frequently, the team builds trust with the client and encourages them to be more engaged throughout the project.
Clarity of Priorities & Workload
Priorities are front and center with agile. The team, management, and client all know what’s important and what must be worked on in order to support future sprints. This ultimately leads to more productivity and encourages the team to stay focused.
Visibility & Transparency
Agile promotes transparency between the team and the client by involving the client in prioritization, planning, and review sessions. This level of transparency is one of the biggest benefits of agile as it provides the client the opportunity to always be giving feedback, asking questions, etc.
On the other hand, the team has visibility into what other team members are working on. This helps encourage collaboration between team members.
“Because of the transparency, all stakeholders are constantly following the development and deliver input along the development process, making sure the product market fit is still optimal once it is launched.”
– Jos de Schiffart – MyAlbum
Testing is done frequently and early on. During each sprint, tests are ran to help identify critical bugs. By practicing test-driven-development, the team ensures just enough code is written to pass each test. After delivering a prototype, you can use each iteration to improve quality.
By understanding the benefits of agile and how it works, you can decide whether or not it’s for your team. Agile can be a powerful component to software development. It helps gain control of cost and schedule, and allows the customer to be more directly involved in the development and design process. This inherently leads to a shorter feedback loop, transparency, and a higher quality product.