If you polled 10 random software development organizations about Software Architecture and the role of a Software Architect, you'd get a wide range of opinions and probably some mixed reviews.
An architect is a Staff+ Engineer, mixed with a Staff+ Product Manager, who has strategic communication skills and has experience evolving products over significant time.
Staff+ Engineer
-
Lead by example groups of cross team contributors towards a significant technical solution
-
Often hands on implementor during prototype, or critical bits
-
Pairs, Reviews, is actively involved during development
-
Produces design documents and complex implementations
-
-
Designs Solutions that are simple, appropriate, mitigate risk, and align with technical strategy
-
Understands industry patterns, available stable tools, platform features
-
Can survey and understand current state of technical systems in reasonable time, ask probing questions, identify risks and health
-
-
Documents significant decisions taken, meaningful complex implementations, and proposed directions clearly, simply and effectively. (includes /*code*/, docs, ADRs, statuses, RFCs)
Staff+ PM lite
-
Understand and evolve overall product strategy, active and desired customer segments, value created, and competition
-
Current and desired capabilities, costs, revenue sources, operational efforts
-
Current business objectives and sales expectations
-
-
Design and manage complex projects, including costs, resourcing, and dependencies to deliver on time and on budget
-
Understands resourcing, team strengths/weaknesses, existing commitments, context switching costs
-
Comfortable managing Stakeholders and incorporating feedback appropriately
-
Monitors and communicates status and deviations from plans for feedback
-
-
Defines, evolves and maintains the domain language and concepts that prescribe the details of our solution - maintaining conceptual integrity and striving for simplicity.
Staff+ Communicator
-
Can discuss relevant parts of complex system with any part of the organization on their terms.
-
contributors - product, designers, developers, eng managers, tech leads, operations, infrastructure, content creators
-
stakeholders - domain experts, security, marketing, compliance, legal, executives, business analyst
-
3rd parties - Cloud provider, SaaS vendor, integration partners
-
-
Understand and distill requirements / needs to their key parts and "barter" alternatives to arrive as minimal and simplest requirements or changes.
- Firmness, Reasons Why, Traceability
-
Draft and present efficient, understandable, audience appropriate documents and presentations of complex initiatives