Deliver Fast with Confidence
May 2017 • Presentation
This talk examines various practices and techniques that lead to better software quality, all of which enable teams to deliver faster and with more confidence.
Software Engineering Institute
This presentation was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.
Being agile, with its attention on extensive testing, frequent integration, and important product features, has proven invaluable to many software teams. When building complex systems, it is easy to focus on features and overlook software qualities, specifically those related to software architecture. Time has shown that agile practices are not sufficient to prevent or eliminate technical debt, which can affect maintainability and reliability. Without good validation through tests and constant attention to the architecture and code quality, many issues arise. It is important to recognize what is core to the architecture and the problem at hand while evolving it. Insufficient attention to the architecture and code can allow technical debt to creep in and become muddy, making it hard to deliver new features quickly and reliably. Two principles that can help teams deliver more quickly and with confidence is to focus on code quality and delivery size. Small, frequent deliveries with constant attention to a good codebase are crucial to sustaining faster reliable delivery. Practices that can help keep the code clean or prevent it from getting muddier include Testing, Divide & Conquer, Gentrification, Quarantine, Refactoring, and Craftsmanship. This talk examines various practices and techniques that lead to better software quality, all of which enable teams to deliver faster and with more confidence.