O'Reilly logo

97 Things Every Software Architect Should Know by Richard Monson-Haefel

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 46. Fight Repetition

Niclas Nilsson is a software development coach, consultant, educator, and writer with a deep passion for the software development craft, and he loves good design and architecture. He is a cofounder of factor10 and the lead editor of the architecture community at InfoQ.

Niclas Nilsson
image with no caption

ARE YOUR DEVELOPERS performing recurring tasks that need little thinking? Can you find recurring patterns in the code? Can you spot code that's been written copy-paste-modify style? If that's the case, your team is moving slower than it should and, oddly enough, you may be the cause.

Before explaining why, let's agree on a couple of truths about software development:

  • Duplication is evil.

  • Repetitive work slows down development.

As an architect, you set the tone. You've got the best overall grasp of the system and you probably wrote a trend-setting, end-to-end, vertical slice of the system that serves as an example for the team—an example that has been copied many times by now. Whenever a developer copies anything—be it a few lines of code, an XML file, or a class—that's a clear indication that something could be made simpler or even completely abstracted away. Most often, it's not the domain logic that is copied; it's the infrastructure code that just has to be there to make it work. For that reason, it's crucial that you can envision the effects your examples have. Any code and ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required