Summary of Seven Strategies Series
David Scott Bernstein
Reclaiming Agile Through Software Craftsmanship | AI & Agile Technical Coach | Helping Teams Build Software That Evolves
I finished my “Seven Strategies†series of 72 blog posts with seven strategies for implementing each of the nine practices from my book, Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software. These posts are filled with practical advice for implementing the nine core practices from Scrum, Extreme Programming, and Lean.
Here are the posts, enjoy!
Why Practice 1: Say What, Why, and for Whom Before How
- Be the SME
- Use Development for Discovery
- Help Developers Understand Why and for Whom
- Describe What You Want Not How to Get It
- Answer Questions Quickly
- Remove Dependencies
- Support Refactoring
Why Practice 2: Build in Small Batches
- Measure Time-to-Value
- Measure Time Spent Coding
- Measure Defect Density
- Measure Time to Detect Defects
- Measure Customer Value of Features
- Measure Costs of Not Delivering Features
- Measure Efficiency of Feedback Loops
Why Practice 3: Integrate Continuously
- Use Version Control for Everything
- One-Click Builds End-to-End
- Integrate Continuously
- Define Acceptance Criteria
- Write Testable Code
- Keep Test Coverage Where it is Needed
- Fix Broken Builds Immediately
Why Practice 4: Collaborate
- Try It, You’ll Like It
- Engage Driver and Navigator
- Swap Roles Frequently
- Put in an Honest Day
- Try All Configurations
- Let Teams Decide on the Details
- Track Progress
Why Practice 5: Create CLEAN Code
- Get Crisp on the Definition of Quality
- Share Common Quality Practices
- Let Go of Perfectionism
- Understand Trade-Offs
- Hide How with What
- Name Things Well
- Keep Code Testable
Why Practice 6: Write the Test First
- Get Clear on the Benefits of What You are Building
- Know Who it’s for and Why They Want it
- Automate Acceptance Criteria
- Specify Edge Cases
- Use Examples
- Split Behaviors on Acceptance Criteria
- Make Each Test Unique
Why Practice 7: Specify Behaviors with Tests
- Instrument Your TestsUse Helper Methods
- Use Helper Methods
- Show What’s Important
- Test Behaviors, Not Implementations
- Use Mocks to Test Workflows
- Avoid Over-Specifying Tests
- Use Accurate Examples
Why Practice 8: Implement the Design Last
- Understand Object-Oriented Design
- Understand Design Patterns
- Understand Test-Driven Development
- Understand Refactoring
- Focus on Code Quality
- Be Merciless
- Practice Good Development Habits
Why Practice 9: Refactor Legacy Code
- Refactor to Learn an Existing System
- Refactor to Make Small Improvements
- Refactor to Retrofit Tests in Legacy Code
- Refactor to Clean Up as You Go
- Refactor to Redesign When You Know More
- Refactor to Clean Up Before Moving On
- Refactor to Learn What Not to Do
I support your IT projects in Japan. (Disclaimer: I use AI but not on LinkedIn. Everything I post is in my own wording without using any AI or bot)
4 å¹´Excellent advice and food for thought. Thanks for this post!