For the team to truly own the architecture, the software architect must support them fully. Instead of acting as the sole design authority, we’ll infuse our teams with the knowledge and skills they need to make design decisions for themselves. When things are going well, architects look more like coaches or mentors than authoritative leaders who make all the design decisions. Above all else, when possible, we let the team design the architecture instead of making the decisions ourselves.
Here are some examples of how architects can make this happen:
OK Software Architects | Great Software Architects |
---|---|
Select patterns and technology without input | Collaboratively select patterns and technologies with input from the team |
Write detailed documents, release only once, fully complete | Create document templates for the team to use, build and review documents with the team incrementally |
Make or approve all design decisions | Teach the team how to decide, provide design guidance, delegate decision making, provide reviews and feedback |
Dictate who builds specific elements | Help the group self-organize and choose work |
Avoid changes to the architecture | Embrace the inevitability of change and make the architecture easy to change |
Mandate technology decisions | Build consensus for technology decisions |
It’s never easy to replace a great software architect, but great software architects can leave their team when the time is right. Software architects can safely move to a new team, not because they finished all the hard design work, but because the team has learned what it takes to be great software architects themselves. The only way this can happen is with practice.
18.191.92.107