Be Agile: Speed Up Your Feedback Cycles
CIOREVIEW >> Enterprise Data Quality Monitoring >> NEWS

AvantStay

Joao Amorim, Software Engineering Manager

Be Agile: Speed Up Your Feedback Cycles

Joao Amorim, Software Engineering Manager
Joao Amorim, Software Engineering Manager, AvantStay

Back in the day, when I was a junior software engineer, an experience profoundly shaped my perspective on agile software development. I was collaborating with a product manager who, despite having a solid grasp of the business problem we aimed to solve, had limited experience in the role. Nevertheless, we embarked on creating a budget management system whose first version was delivered in just a couple of months, meeting clients' demands and operating seamlessly. Even as the system evolved and grew in complexity, maintenance costs remained low, with infrequent and straightforward bug fixes.

Reflecting on subsequent projects that involved teams that were more experienced but failed to achieve similar outcomes, I pondered the factors that contributed to that early success. The answer eventually crystallized: the key lay in maintaining short feedback cycles across all aspects of our work. Feedback flowed swiftly from the software to the developer, from the developer to the product manager, and from the team to the clients. This relentless optimization for rapid feedback inherently embodied all 12 principles outlined in the Agile Manifesto.

Below, each principle has been rewritten concisely. Notice how some of them refer to desired goals and others to actual suggestions on how to achieve those goals:

1. Customer satisfaction

2. Quick incorporation of change

3. Delivering working software frequently

4. Close interaction between business people and developers

5. Building projects around motivated individuals

6. Prioritize face-to-face conversations

7. Working software as the primary measure of progress

8. Maintaining a constant pace of delivery

9. Technical excellence

10. Simplicity

11. Emergent design from self-organizing teams

12. Continuous improvement

Agile frameworks such as Scrum, Kanban and others provide useful techniques that can be systematically applied with larger teams to move towards these principles while addressing the challenges of specific contexts. However, many teams get lost in rituals and lose clarity of their aim. By Focusing on first principles and understanding their foundation, leaders are empowered to extract maximum value from any of those frameworks.

“By integrating the principles of the Agile Manifesto with short feedback cycles, teams can navigate the complexities of software development with agility, adaptability, and continuous improvement”

Streamlining focus by concentrating on a single metric

Optimizing for multiple goals often leads to inefficiency. When teams optimize for multiple goals simultaneously, it often leads to inefficiency and confusion. However, honing in on the single metric of a short feedback cycle leads to coherent decisionmaking across the board.

In any software development process, waste can manifest in various forms, such as rework, miscommunication, and redundant efforts. Minimizing waste is crucial not only for optimizing efficiency but also for ensuring the delivery of highquality products. When feedback flows seamlessly and swiftly between stakeholders, enabling teams to identify and address issues early on, the likelihood of wasteful practices is reduced as problems are caught and resolved in their nascent stages.

One key advantage of short feedback cycles is the ability to iterate quickly. As feedback is received promptly, teams can make necessary adjustments and course correct swiftly, saving time and resources that would otherwise be wasted on misguided efforts. This iterative process empowers teams to enhance their work incrementally, leading to more efficient and effective outcomes.

Software Quality: A Prerequisite for Quick Feedback Cycles

A solid foundation of high-quality software is essential to establish and maintain short feedback cycles. Without robust and reliable software, the feedback process becomes convoluted and inefficient. Among the several key factors that contribute to the creation of quality software and enable the establishment of quick feedback cycles, it is worth highlighting three: simplicity, decoupling and automated testing.

Simplicity is achieved in different ways. Firstly, writing small functions that do one thing. Secondly, avoid generating side effects from multiple parts of the system. Lastly, focus on decoupling software components. When developers follow these principles they are able to evolve the system in a way that early lower-quality components do not slow down progress later when more experience enables the creation of higher-quality ones. When in doubt, repetition is preferred to incurring a bad implementation of reusability - which is a form of premature optimization. This allows for easier testing, maintenance, and modification of individual components, enabling faster and more targeted feedback cycles. Always inquire if the open/closed principle is being followed: Are your software entities open for extension and closed for modification?

Automated testing is another crucial practice in achieving high-quality software and enabling quick feedback cycles. Automated tests - especially with TDD in certain cases - provide fast and reliable feedback. They help identify gaps in requirements and defects early on, allowing for rapid remediation and preventing issues from propagating through subsequent stages. Additionally, automated testing facilitates regression testing, ensuring that new changes do not inadvertently introduce bugs in existing functionality. Ultimately, quickening feedback cycles reinforces all the core values of the Agile Manifesto. It empowers teams to embrace change, deliver value iteratively, collaborate effectively, and prioritize customer satisfaction. By integrating the principles of the Agile Manifesto with short feedback cycles, teams can navigate the complexities of software development with agility, adaptability, and continuous improvement.

The articles from these contributors are based on their personal expertise and viewpoints, and do not necessarily reflect the opinions of their employers or affiliated organizations.