CIOReview
8CIOReview | | OCTOBER 2023By Joao Amorim, Software Engineering Manager, AvantStayBack 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 re-written 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. Streamlining focus by concentrating on a single metricOptimizing 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 decision-making 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 high-quality 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 BE AGILE:SPEED UP YOUR FEEDBACK CYCLES Joao Amorim IN MY OPINION
< Page 7 | Page 9 >