Become an architect

When did everyone become architects?
Believe that either the company will be promoted within the company or a new company will be quit.
If you are already an architect, I believe there have been such questions:
How can the responsibilities defined by the company and recruitment requirements be done?
How to start an architect's career?
How to balance the pursuit of professional technology and the pursuit of making money first?

What does the architect do

The responsibilities of a qualified architect are as follows:

  • Design software system architecture;
  • The system is decomposed into multiple achievable modules;
  • Take into account the overall situation and ensure the overall stability and effectiveness of the system;
  • Weigh quality attributes (non-functional requirements);
  • Control the inevitable technical debt;
  • Exercise and improve the architecture design capabilities of the entire team.

In short, it is to design, decompose the system, assign tasks, ensure the smooth development and launch of the system, and use this knowledge to enhance the team's ability under the knowledge of overall system planning, avoiding system risks, abstraction, etc.

What is software architecture

Software architecture is a collection of major design decisions and intentions about how to organize software in order to achieve desired quality attributes and other goals.

The above definition is a bit abstract, and the following quotes the definition of Carnegie Mellon University Software Engineering Institute (SEI):
The software architecture of a computer system is a collection of structures required to explain the system, including: software elements and inter-element Mutual relations, and their respective attributes.

This definition describes the essential elements that make up the software architecture: elements, relationships, and attributes.
That is: element (attribute) + relationship (attribute) = architecture . To put it simply, multiple elements with certain attributes are connected together in a relationship with certain attributes to form a framework. You can think of elements and relationships as bricks and cement on construction sites. There are many types and properties of bricks and cement. Elements are the basic components of software (classes, packages, layers, database tables, etc.), and relationships describe how the elements collaborate to complete tasks (call, depend, run on, etc.).

However, it cannot be simply considered that these structures constitute the architecture, but that the architecture is integrated to explain the structure required by the system, because the architecture also contains design decisions and intentions. Just like the naming convention of JavaBean, the included intention is to standardize the code and improve the maintainability of the code.

In summary, the software architecture should be:
element (attribute) + relationship (attribute) + decision + intention = architecture

Become a team architect

Generally speaking, you should have participated in the development of at least three to five systems before becoming an architect, and your technical responsibilities should continue to increase, but the most important thing is to sum up experience and form a comprehensive knowledge system.

From a programmer to an architect, you should first record and summarize the knowledge you have learned during the development process. For each project, make the following records and summaries:

  • Document stakeholders and main business goals.
  • Record and summarize the overall solution of the project.
  • Record the technology involved and the reason for its selection.
  • Record the greatest risk and the process of overcoming it.
  • Analyze the shortcomings of the project and summarize the improvement methods.

Whether you want an internal promotion or a job-hopping promotion, you must have patience to improve your professional level. Opportunities are only for those who are prepared.

Remember, the architect is not only a role in the team, but also a way of thinking. Even if you are a programmer, you will make a lot of design decisions when you write code every day. Certainly some of these decisions are of architectural significance. A soldier who does not want to be a general will not be a good soldier, so no matter what your title is, you should use the thought of architecture design to make appropriate decisions and let the architecture develop in a sound direction. Then you are actually an architect. .

Develop great software

When developing a software system, we must avoid risks as much as possible. The Buddha blesses that there will never be bugs, and the architecture is the basis for the success of the software.

An excellent software architecture should look like this:

  • The framework divides the problem and conquer . The architecture accurately explains how to divide the system into small independent, lightweight and easy-to-handle modules, while ensuring that the entire system works together, so that the total value of the system is higher than the sum of the values ​​of the modules, that is, 1+1 is greater than 2.

  • The framework provides guidelines for working together . Software development is not only a technology, it is also a human-oriented art. The software architecture describes how the entire system is composed and intended. Mastering the architecture will also make it clear how everyone should work together to develop software.

  • The architecture provides knowledge for complex designs . Providing a unified vocabulary, terminology, concepts, etc., has brought great convenience to communication and understanding. Knowledge is accumulated and improved over time. With knowledge, the occurrence of repetitive problems can be avoided.

  • Architecture is the result of optimal decisions . The architecture not only considers the basic realization of the function, but also considers the cost, constraints, schedule, risk, the delivery ability of the team, and the most important quality attributes. Weighing these and carrying out appropriate architectural design is the optimal decision.

  • The architecture allows you to avoid making major mistakes . Architecture design is not a panacea, but at least it must be able to avoid major and common risks. Prevention is greater than cure. Therefore, the framework can help us prevent possible risks and problems in the future, rather than being blessed by the Buddha.

  • The architecture makes the system more flexible . Business is constantly changing over time, and the corresponding system should also change accordingly, rather than overthrowing. Therefore, the architecture needs to provide a flexible structure for software development.

to sum up

Titles and titles are not the essence of architecture design. You must focus on the core responsibilities of architecture design, gradually learn and accumulate the corresponding architecture design knowledge, and use this knowledge to develop excellent software, which truly becomes an architect.

Guess you like

Origin blog.csdn.net/u010435615/article/details/115298739