Be Disciplined

Instead of looking at systematic reuse a separate analysis, design, and implementation effort that requires lots of time and resources view it as being part of what you do. Practice a few techniques with every project, every single day. When your development activities are aligned with a systematic reuse roadmap your activities are aligned towards delivering today’s needs and positioning you for the future. Think of this as your team’s practice routine before the game. You won’t win if you don’t practice, would you?

Here are some ideas for aligning reuse efforts as part of your everyday development:

  1. When you review user stories look for patterns and similarities with stories from the past. Or stories from other applications in your team or within your shop

  2. When doing design always look to existing legacy assets for ideas and refactoring (see wrapping legacy assets). You will be surprised how much code you already have that is worth reusing when you change the assumptions and decouple it from the existing code

  3. Be on the look out for opportunities to help other teams with what you own. Got a great algorithm, user interface widget, data service, process flow, content fragment that is reusable? spread the word – establish partnerships with your peers, colleagues, and keep sharing. The good karma is bound to help your team and your organization as a whole by increasing consistency and reducing development time.

  4. Keep overlapping requirements, functionality, and feature variations in mind while you design, implement, and refactor code. If you get ideas for a reusable component add it to your list of refactorings or to-dos. Come back and finish it when there is a real need.

  5. Get your team to review existing code. All the code all the time. Code reviews are just about the most effective way to get the most out of reuse – your codebase will continually get leaner and better. Prepare code review check lists for targeted assets (services, features, user interface widgets, classes, etc.) and make sure you use them over and over.

Last updated