Posts Tagged ‘TechnicalDebt’
[DevoxxGR2024] Small Steps Are the Fastest Way Forward: Navigating Chaos in Software Development
Sander Hoogendoorn, CTO at iBOOD, delivered an engaging and dynamic talk at Devoxx Greece 2024, addressing the challenges of software development in a rapidly changing world. Drawing from his extensive experience as a programmer, architect, and leader, Sander explored how organizations can overcome technical debt and the innovator’s dilemma by embracing continuous experimentation, small teams, and short delivery cycles. His narrative, peppered with real-world anecdotes, offered practical strategies for navigating complexity and fostering innovation in a post-agile landscape.
Understanding Technical Debt and Quality
Sander opened by tackling the elusive concept of software quality, contrasting it with tangible products like coffee or cars, where higher quality correlates with higher cost. In software, quality—encompassing maintainability, testability, and reliability—is harder to quantify and often lacks a direct price relationship. He introduced Ward Cunningham’s concept of technical debt, where initial shortcuts accelerate development but, if unaddressed, can cripple organizations. Sander shared an example from an insurance company with 18 million lines of COBOL and 12 million lines of Java, where outdated code and retiring developers created a maintenance nightmare. Similarly, at iBOOD, a patchwork of systems led to “technical death,” where maintenance consumed all resources, stifling innovation.
To mitigate technical debt, Sander advocated for continuous refactoring as part of daily work, rather than a separate task requiring approval. He emphasized finding a balance between quality and cost, tailored to the organization’s goals—whether building a quick mobile app or a long-lasting banking system.
The Innovator’s Dilemma and Continuous Renovation
Sander introduced the innovator’s dilemma, where successful products reach a saturation point, and new entrants with innovative technologies disrupt the market. He recounted his experience at a company that pioneered smart thermostats but failed to reinvent itself, leading to its acquisition and dissolution. To avoid this fate, organizations must operate in “continuous renovation mode,” maintaining existing systems while incrementally building new features. This approach, inspired by John Gall’s law—that complex systems evolve from simple, working ones—requires small, iterative steps rather than large-scale rebuilds.
At iBOOD, Sander implemented this by allocating 70% of resources to innovation and 30% to maintenance, ensuring the “shop stays open” while progressing toward strategic goals. He emphasized the importance of defining a clear “dot on the horizon,” such as iBOOD’s ambition to become Europe’s leading deal site, to guide these efforts.
Navigating Complexity with the Cynefin Framework
To navigate the chaotic and complex nature of modern software development, Sander introduced the Cynefin framework, which categorizes problems into clear, complicated, complex, and chaotic zones. Most software projects reside in the complex zone, where no best practices exist, and experimentation is essential. He cautioned against treating complex problems as complicated, citing failed attempts at iBOOD’s insurance client to rebuild systems from scratch. Instead, organizations should run small experiments, accepting the risk of failure as a path to learning.
Sander illustrated this with iBOOD’s decision-making process, where a cross-functional team evaluates ideas based on their alignment with strategic goals, feasibility, and size. Ideas too large are broken into smaller pieces, ensuring manageable experiments that deliver quick feedback.
Delivering Features in Short Cycles
Sander argued that traditional project-based approaches and even Scrum’s sprint model are outdated in a world demanding rapid iteration. He advocated for continuous delivery, where features are deployed multiple times daily, minimizing dependencies and enabling immediate feedback. At iBOOD, features are released in basic versions, refined based on business input, and prioritized over less critical tasks. This approach, supported by automated CI/CD pipelines and extensive testing, ensures quality is built into the process, reducing reliance on manual inspections.
He shared iBOOD’s pipeline, which includes unit tests, static code analysis, and production testing, allowing developers to code with confidence. By breaking features into small, independent services, iBOOD achieves flexibility and resilience, avoiding the pitfalls of monolithic systems.
Empowering Autonomous Micro-Teams
Finally, Sander addressed the human element of software development, arguing that the team, not the individual, is the smallest unit of delivery. He advocated for autonomous “micro-teams” that self-organize around tasks, drawing an analogy to jazz ensembles where musicians form sub-groups based on skills. At iBOOD, developers choose their tasks and collaborators, fostering learning and flexibility. This autonomy, while initially uncomfortable for some, encourages ownership and innovation.
Sander emphasized minimizing rules to promote critical thinking, citing an Amsterdam experiment where removing traffic signs improved road safety through communication. By eliminating Scrum rituals like sprints and retrospectives, iBOOD’s teams focus on solving one problem daily, enhancing efficiency and morale.
Conclusion
Sander Hoogendoorn’s talk at Devoxx Greece 2024 offered a refreshing perspective on thriving in software development’s chaotic landscape. By addressing technical debt, embracing the innovator’s dilemma, and leveraging the Cynefin framework, organizations can navigate complexity through small, experimental steps. Continuous delivery and autonomous micro-teams further empower teams to innovate rapidly and sustainably. Sander’s practical insights, grounded in his leadership at iBOOD, provide a compelling blueprint for organizations seeking to evolve in a post-agile world.
Links:
[PHPForumParis2021] Trust Your Team’s Developers – Sofia Lescano
Sofia Lescano, a developer at Bedrock, delivered an inspiring talk at Forum PHP 2021, advocating for trust in development teams to drive innovation beyond mere feature delivery. With a background in embedded systems and mobile applications, Sofia emphasized the value of empowering developers to address technical debt and propose creative solutions. Her presentation, enriched by her commitment to diversity, resonated with the audience. This post explores four themes: empowering developers, tackling technical debt, fostering consensus, and promoting diversity.
Empowering Developers
Sofia Lescano began by highlighting the importance of trusting developers to take ownership of their work. At Bedrock, she encourages teams to propose improvements that enhance application quality. By giving developers autonomy, companies can unlock innovative solutions that align with technical and business goals. Sofia’s experience underscores how trust fosters a culture of accountability, enabling teams to deliver more than just functional requirements.
Tackling Technical Debt
A key focus of Sofia’s talk was addressing technical debt through continuous improvement. She shared examples from Bedrock, where developers proactively refactor code to maintain system health. By prioritizing small, incremental changes, teams can prevent debt from accumulating, ensuring long-term maintainability. Sofia’s approach emphasizes collaboration between developers and stakeholders to balance feature development with system sustainability, creating robust applications.
Fostering Consensus
Responding to an audience question about handling disagreements, Sofia explained Bedrock’s consensus-driven decision-making process. While the majority’s view often guides technical choices, she noted that transverse perspectives, such as those from engineering leads, help align decisions with broader company goals. This collaborative approach ensures that teams grow together, making informed choices that reflect collective expertise while respecting individual input.
Promoting Diversity
Sofia passionately advocated for diversity, noting the all-female speaker lineup during her session as a step toward inclusivity. She emphasized the role of visible role models in attracting more women to tech, drawing from her own experience as a speaker. By fostering an inclusive environment, Sofia believes teams can leverage diverse perspectives to drive innovation, encouraging companies like Bedrock to support underrepresented groups through mentorship and opportunity.