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