Nine Practices to Extend the Life (and Value) of Your Software
David Scott Bernstein

#software_development
We're losing tens of billions of dollars a year on broken software, and great new ideas such as agile development and Scrum don't always pay off. But there's hope. The nine software development practices in Beyond Legacy Code are designed to solve the problems facing our industry. Discover why these practices work, not just how they work, and dramatically increase the quality and maintainability of any software project.
These nine practices could save the software industry. Beyond Legacy Code is filled with practical, hands-on advice and a common-sense exploration of why technical practices such as refactoring and test-first development are critical to building maintainable software. Discover how to avoid the pitfalls teams encounter when adopting these practices, and how to dramatically reduce the risk associated with building software--realizing significant savings in both the short and long term. With a deeper understanding of the principles behind the practices, you'll build software that's easier and less costly to maintain and extend.
By adopting these nine key technical practices, you'll learn to say what, why, and for whom before how; build in small batches; integrate continuously; collaborate; create CLEAN code; write the test first; specify behaviors with tests; implement the design last; and refactor legacy code.
Software developers will find hands-on, pragmatic advice for writing higher quality, more maintainable, and bug-free code. Managers, customers, and product owners will gain deeper insight into vital processes. By moving beyond the old-fashioned procedural thinking of the Industrial Revolution, and working together to embrace standards and practices that will advance software development, we can turn the legacy code crisis into a true Information Revolution.
Table of Contents
Part I-The Legacy Code Crisis
1. Something's Wrong
2. Out of CHAOS
3. Smart People, New Ideas
Part II-Nine Practices to Extend the Life (and Value) of Your Software
4. The Nine Practices
5. Practice 1: Say What, Why, and for Whom Before How
6. Practice 2: Build in Small Batches
7. Practice 3: Integrate Continuously
8. Practice 4: Collaborate
9. Practice 5: Create CLEAN Code
10. Practice 6: Write the Test First
11. Practice 7: Specify Behaviors with Tests
12. Practice 8: Implement the Design Last
13. Practice 9: Refactor Legacy Code
14. Learning from Our Legacy
David Bernstein'scontinuing passion for software design and construction has led him to trainmore than 8,000 developers since 1989 at hundreds of companies around the worldincluding IBM, Yahoo, and Microsoft--where his book's advice has beensuccessfully applied. Since 2006, David has been devoted to coaching andtraining developers at organizations transitioning to Agile and Scrum. His consultingfirm, To Be Agile (ToBeAgile.com), helpsdevelopers adopt Extreme Programming practices such as test-first development, continuousintegration, and refactoring. David is a Certified Scrum Professional, CertifiedScrum Developer and Certified ScrumMaster.









