Agile Process: Why You Need Feedback Loops Both During and After Sprints
Agile Process: Why You Need Feedback Loops Both During and After Sprints by Maria DiCesare
As an iterative and incremental approach to software development, Agile is synonymous with collaboration. The goal is to satisfy business stakeholders, end users, and partners through the early and continuous delivery of working software that provides the anticipated business value and meets user expectations.
One way the Agile development process facilitates high levels of communication and collaboration is through feedback loops. Continuous feedback prevents development teams from spending long periods of time building solutions that are no longer feasible and helps teams stay in the loop and up to date on changing requirements.
But how and when should feedback loops happen? Read on for the details:
Feedback loops come in the form of recurring meetings, best practices, automation tools, and other tactics to keep an open flow of communication and collaboration.
Feedback loops are built into the Agile application development process to:
- maintain communication throughout the development process
- gather feedback (good and bad) on the app from different teams
- identify areas for improvement
- increase developer productivity
- accelerate the application development lifecycle
- build the highest quality app possible
In the Scrum framework, teams work in sprints, which are time-boxed periods of one to four weeks. During each sprint, there are a few different types of meetings where feedback can happen:
- The daily standup meeting allows members of the development team to share status updates and identify obstacles standing in their way.
- The sprint review meeting is an opportunity to present a shippable increment of software to a broader group, including the product owner, management, and end users. In addition to assessing the project against the sprint goals, the group can provide feedback on the current solution and as-yet-unmet needs that is fed into the next sprint planning meeting.
- Lastly, there’s the project retrospective, which allows the development team to look back at what went well and what could be done better in future Agile projects.
Frequent feedback from business stakeholders and end users keeps the development team focused on the solution’s intended goals, and helps ensure that they deliver high-value features. Feedback loops also allow the team to accommodate changes later in the development process, particularly as new or refined requirements emerge.
Waiting until the end of a sprint is too long to solicit feedback, especially from business stakeholders and end users.
Software development is an embodiment of the butterfly effect, where even minor changes can result in a significantly different outcome. This is particularly true for applications with unclear or changing requirements. Without the opportunity to discuss and validate users’ needs early and often, developers will inevitably make assumptions that, left unchecked, could steer the solution off course and become increasingly harder to unravel.
Agile teams typically understand the importance of collecting feedback after a sprint, but they should also be thinking about how to collect feedback while building their shippable iteration. As Henrik Kniberg and Mattias Skarin wrote in their book Kanban and Scrum: Making the Most of Both, “Generally speaking, you want as short a feedback loop as possible, so you can adapt your process quickly.”
The challenge is that while working software can be evaluated at the sprint review meeting, it’s not possible while the software is being built. And in the absence of working software, the only representation of what is being built is the code itself.
Have you ever seen a developer sit with an end user to review a piece of Java or .NET code as a means of validating whether the right functionality is being built? Probably not, because 3GL programming languages simply aren’t readily accessible to or understood by business users.
To implement short feedback loops both during and after sprints, Agile teams need a common language to create mutual understanding. This facilitates constant communication and collaboration to ensure that the right solution is being built.
One approach for the enterprise is low-code app development. Low-code platforms employ visual, model-driven development techniques for defining an application’s user interfaces, data models, and logic. Because these visual models are easily understood by the entire team, they facilitate frequent, ongoing collaboration between developers and the business.
At any point — even early in the development process — teams can sit together to discuss and review functionality to gather feedback, validate assumptions, and identify improvements. In many cases, application changes stemming from feedback can be implemented on the spot, and the updated application re-deployed for instant validation.
Texas Life uses the Mendix low-code Platform to execute on its digital transformation strategy by digitizing workflows, rewriting legacy applications, and creating self-service portals for customers and brokers. According to Brad Kendrick, Vice President of IT at Texas Life, the value of a low-code platform is that it enables iterative, collaborative development. “The developer and a business person can sit together, bounce ideas off each other, build workflows, design and easily hone applications on-screen — innovating without getting stalled by technical detail,” he says.
While virtually every low-code platform employs visual development techniques, few are built from the ground up to embed business-IT collaboration in each step of the application lifecycle.
In addition to leveraging visual models as a common language, the following capabilities help facilitate short feedback loops and ongoing collaboration:
- User-friendly Agile project management: Developer-centric tools are often complex to use, limiting the participation of business users. An easy-to-use project portal creates a shared space for the entire team to create user stories and communicate throughout the project.
- Instant app sharing: Collaboration is further enhanced with the ability to preview and share live working apps instantly, across device form factors. This enables end users to see and react to the app early and often in the process, encouraging ongoing feedback.
- User feedback loop: Embedded user feedback widgets enable users to provide instant feedback directly within an application. A closed loop brings feedback directly into the development environment, facilitating rapid iteration.
The Agile process is a major step forward in shortening feedback loops from several months to two weeks (or whatever the sprint duration is). However, enterprises under pressure to deliver high-value applications in support of digital transformation strategies need more frequent feedback and collaboration. Low-code platforms shrink feedback loops down to near real time, helping to ensure that the development team delivers a solution that meets both user needs and business objectives.
This blog post was originally published on April 17, 2018, and has been updated to include the most current information.