Joseph (Joe) Yoder (agilist, computer scientist, speaker and pattern author) is the founder and principle of The Refactory (www.refactory.com), a company focused on software architecture, design, implementation, consulting and mentoring on all facets of software development. Joe serves as president of the board of The Hillside Group, a group dedicated to improving the quality of life of everyone who uses, builds, and encounters software systems. He is best known as an author of the Big Ball of Mud pattern, which illuminates many fallacies in software architecture. Joe teaches and mentors developers on agile and lean practices, architecture, building flexible systems, clean design, patterns, refactoring, and testing.
Joe has recently been working with organizations and thought leaders on the best practices for including quality aspects throughout the complete software life-cycle. In 2015 he won the New Directions award with a colleague at Saturn 2015, given to the presentation that best describes innovative new approaches and thought leadership in the application of architecture-centric practices for the presentation “QA to AQ: Shifting from Quality Assurance to Agile Quality”. Joe thinks software is still too hard to change. He wants to do something about this and believes that you can start solving this problem through the use of proven practices (patterns) and by putting the ability to change software into the hands of the people with the knowledge to change it.
Deliver Fast with Confidence
Being agile, with its attention on extensive testing, frequent integration, and focusing on important product features, has proven invaluable to many software teams. When building complex systems it can be too easy to focus on features and overlook software qualities, especially those related to software architecture. Time has shown that agile practices are not sufficient to prevent technical debt, which can affect reliability. Many issues arise when there isn’t good validation through tests and constant attention to the architecture and code quality. It is important to recognize what is core to the architecture and the problem at hand while evolving it.
There are a set of practices that can be used during development to help sustain delivery at a good pace while maintaining confidence in the system. Some of these are related to agile or lean practices such as short delivery cycles, good testing, clean code, and continuous integration. Small delivery size with regular feedback through incremental releases has proven itself over the years and has become the de-facto standard for most agile practices.
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 such as Continuous Integration, Continuous Delivery, Continuous Inspection, along with techniques to pay good attention to software quality, all of which enable teams to deliver fast and with confidence.