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 ...

Get 97 Things Every Software Architect Should Know now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.