What’s the difference between Architect & a normal Developer?
Software architecture is about the significant design decisions, where significance is measured by cost of change”
I see the difference between a normal developer and a software architect being that a normal developer primarily has a high involvment in maintenance and development of the system at hand. The architect still has a level of involvement in maintenance and development at hand, but also is a key player in providing guidance to a team when they are looking at significant design decisions.
I also see part of the role of the architect to get involved in
- Championing cross cutting concerns between systems
- Challenges the development team to help them implement a better design.
- Championing and identifying and balancing functional requirements a system (scalability, compatability, performance, etc).
- Championing and identifying suitable technology stacks and frameworks for a system
Mentoriship & Knowledge Share
- Architect should be providing technical leadership in teams, they should be helping teams identify technical areas of improvment at a regular cadence
- Provide regular (weekly) 1-on-1 mentorship for one or two experienced developers
- Reguarly pair/mob with teams to provide hands on mentorship in crafting code, TDD, design, etc
How much architecture should you have?
Just enough architecture
References
The role of a TA in Development
Software Architecture for Developers by Simon Brown