Github.com/justinamill…

1. Curious: What exactly does an architect do?

1.1 Roles and Responsibilities

role Duties and responsibilities
1. Software experts Make high-level design decisions for software architecture, and communicate technical standards, including coding specifications, tools, platforms
2. Infrastructure designer Software architecture design, including components and their relationships, operating environment, system evolution path, etc
3. Communicators among stakeholders “Horizontal” communication between business people and developers, “vertical” communication between developers and managers, and “technical” communication integrating different technologies or applications

1.2 Architect Hierarchy

Architect level instructions
Application level Focus on a single application, dealing with low-level, detailed design. Application-level architects usually communicate on a team basis
Package level Focuses on the design of one or more applications that meet a business requirement, mainly dealing with low-level details, but also some high-level design. Schema-level architects typically communicate across multiple teams
enterprise Focusing on multiple solutions, dealing with high-level, abstract designs that are implemented by solution and application architects. Enterprise architects typically communicate within organizations

1.3 Typical Activities

The architect is an ongoing activity, and the following activities are ongoing:

  • Define and decide development technology and development platform;
  • Define development standards: including coding specifications, tools, audit procedures, test methods, etc.
  • Understand and clarify business requirements;
  • Design the system according to requirements and make design decisions;
  • Document and communicate architectural definitions, architectural definitions, and architectural design decisions;
  • Check and review architecture and code: for example, whether defined schemas and coding specifications are implemented effectively;
  • Collaborate with other architects and stakeholders;
  • Train and guide developers;
  • Refine the high-level design into the low-level design and optimize it.

2. What skills do you need to be a software architect?

Architect capability instructions
1.Design ability Familiar with basic design patterns, in-depth understanding of architectural design patterns, anti-patterns, understanding of quality measurement methods and indicators, willing to try and understand different technology stacks, analysis and understanding of pattern application scenarios, curiosity
2. Decide determination Understand design priorities, set priorities, know your boundaries, and evaluate design decisions
3.Simplify Design The process of design simplification is also a process of reflecting on design, “bird’s eye view” one’s own design from a higher level, divide and conquer problems and reconstruct one’s own design
4.Code ability Architect coding, the goal is to understand what the developers are doing, and better get the developers to adopt the design
5.Document writing ability Distinguish good code from bad code, document as much as possible, focus as you write from a reader’s point of view, and learn about architectural frameworks
Communicate ability Learn how to express your opinions, speak at important occasions, find the right way to communicate with different stakeholders’ concerns, communicate frequently, deliver important information correctly to those who are not involved in design decisions, and report anytime and anywhere
7.Estimate and Evaluate project management ability Knowledge of project management fundamentals and ability to evaluate “unknown” frameworks
8.Balance Balance quality and cost, resolve conflicting objectives, conflict management
Consult and Coach skills Have a vision, build communities of practice and organize open meetings
Market capability Be persuasive, persistent, defend your point of view, find supportive partners, repeat, believe

3. Summary

Architects are “full stack” engineers in terms of output. Curiosity, communication skills (understanding, persuasion, writing), learning ability, product and marketing skills, project management skills, self-motivation.