What Is System Architecture?
The system architect is a technician who finally confirms and evaluates system requirements, gives development specifications, sets up the core framework for system implementation, and clarifies technical details and clears major difficulties. The main focus is on the "technical implementation" of the system. Therefore, he / she should be a master of a specific development platform, language, and tool, and can give the most appropriate solution for common application scenarios. At the same time, he / she must have sufficient understanding of the development team to which he belongs, and be able to evaluate his team to achieve specific The cost of functional requirements. The system architect is responsible for designing the overall architecture of the system. Every detail from requirements to design must be considered, and the entire project should be grasped to make the designed project as efficient as possible, easy to develop, convenient to maintain, and simple to upgrade.
- The comprehensive knowledge capabilities of software system architects include 9 aspects, namely:
- 1. Strategic planning capabilities.
- 2. Business process modeling capabilities.
- 3. Information and data structure capabilities.
- 4. Technical architecture selection and implementation capabilities.
- 5. Application system architecture's solution and implementation capabilities.
- 6. Basic IT knowledge and infrastructure and resource deployment capabilities.
- 7. Information security technology support and management support capabilities.
- 8. IT audit, governance and basic needs analysis and acquisition capabilities.
- 9. Quality assurance service capabilities for software system reliability and system life cycle.
- As a system architect, you must be the technical route guide of your development team;
- (1) Technical capabilities
- Technical competence is undoubtedly the most important. An architecture with weak technical capabilities is not a good architecture. Therefore, you need to know the basic principles of all mainstream technologies, application scenarios, and the ability to quickly solve problems. Therefore, the architect must be knowledgeable, and the required knowledge must be continuously expanded. You need to be clear about what kind of technology is appropriate in what scenarios, and know what risks may exist. Here comes the demand. Your head is empty. I don't know what technology to use. This is the scariest thing.
- (2) Architecture capability
- This can be expressed as
- The system architecture is to implement the architecture and plan for the technology with the identified requirements, and use complete and complete tools to complete the tasks in the planning steps. As the designer of the system architecture, the system architect is the key to the success of the application system. [2]
- The main functions of the system architect include:
(1) The system architect is the overall designer of the software project, and is the builder of new product development and integration of the software organization and the new technology system.
(2) The system architect is the person who makes technical decisions on all important matters. (The system architect plays an important role in the entire software development process, and its responsibilities or concerns are continuously increased as the development process advances. Variety).
(3) In the requirements phase, the software architect is responsible for understanding and managing non-functional system requirements, such as software maintainability, performance, reusability, reliability, effectiveness, and testability. Review the requirements put forward by customers and market personnel, confirm the design proposed by the development team; organize the definition of the development team members and the development process; assist the requirements analyst to complete the "User Requirements Specification" and "Requirement Change Specification".
(4) In the design phase, the architect is responsible for the design of the entire software architecture, key components, and interfaces. Assist the system analyst to complete the System Outline Design Specification.
(5) During the coding phase, the architect becomes a consultant to the programmer, and often holds technical seminars, technical training courses, etc.
(6) During the testing and implementation phase, as the software begins testing, integration, and delivery, integration and test support will become the focus of the software architect's work. [3]
- The role of a system architect is to design a company's infrastructure and provide information on how to build
- The first is the design and planning of the infrastructure, such as: OS, hardware, network, various application servers, and so on.
- The second is the architect of software development and design. They are responsible for planning the operating mode of the program, the hierarchical structure, the calling relationship, planning the specific implementation technology types, and even assisting the entire team to do a good job of project management in software development.
- The System Architect is a position that has grown rapidly and developed well at home and abroad recently. Its importance and its impact on the IT industry are self-evident. Although there is still some controversy, unpredictability, incomprehension and uncertainty in our country,
- How can system architects achieve the functions of their "architectural" enterprise? How to reflect the value of architects, especially when designing corporate IT strategies? Here are examples to illustrate:
- As a software architect's design architect, you must have certain programming skills, as well as superb learning of new architecture design and programming skills. In addition, I think that as a software architect, you must also understand certain basic knowledge of hardware, network, and server. Otherwise, you don't know what materials can be used, how do you plan your software architecture according to the actual situation? Ignoring the continuous updating of programming capabilities is never able to become a successful system architect. [4]
- Relationship and difference between system architect and product manager
- A product manager is usually a "specialist" who is responsible for product design. An excellent ideal product manager should have both a high commercial quality and a strong technical background. Product managers must have deep domain experience, that is, they are very familiar with the business domain to which the software system is applied. For example, a product manager who develops real estate sales software should be familiar with the standard sales processes of real estate companies, even better than most sales staff. If developing a general-purpose product, he / she also has deep insight into the market and the needs of potential customers. So how is a system architect different from a product manager? We should not confuse the two, which is a common mistake made in discussion and practice. In my opinion, if you compare software development to filming, product managers are to system architects, just like screenwriters are to directors. Although the product manager must have a certain technical background, he should still belong to "business people", and the system architect must be a technical expert. The two have completely different positions, angles and starting points on the issue.
- Relationship and difference between system architect and project manager
- Software project manager refers to the person who controls / manages the project, pays attention to the progress and quality of the project, and allocates, mobilizes, coordinates, and manages resources such as people, finances, and materials. For software project managers, it includes project planning, progress tracking / monitoring, quality assurance, configuration / release / version / change management, personnel performance evaluation, and so on. The quality required for a good project manager is not only the use of several kinds of software or understanding of some abstract methodological principles, but also the valuable experience gained from a large number of project practices, as well as the ability to communicate, coordinate, and motivate, and even Should have some charisma or charisma. This shows that project managers and system architects have very different responsibilities. Mixing these two roles often leads to inefficient and out-of-order development. In particular, in terms of personality factors, purely technical personnel tend to ignore the "human" factor, which is a major aspect of management activities. In addition, just like the Air Cover in war, a full-time project manager can deal with a large number of incidents and chores during the development process. For a slightly larger project, these chores themselves can occupy a full-time staff author. Almost all the time. In a project, it is the system architect, not the project manager, that drives the development of the project. The responsibility of the project manager is only to cooperate with the system architect to provide support in all aspects. The main responsibility is to communicate and manage resources (including people) with internal and external. The system architect proposes the overall architecture of the system and gives development guidance. What is the role of the project manager in a project? If he is a designer even if he is a manager, he must be stronger than others and be able to have something to convince others. If he is only a project manager and the system architect has a special person, he does not need to be proficient or understand all aspects of it, if he understands better. In addition, if no one takes full responsibility for technical architecture and development guidance on a project, but everyone is responsible for rapid architecture, analysis, design, code, and implementation, etc., it will definitely lose management.
- Relationship and difference between system architect and system analyst
- The general monthly salary of a system architect ranges from $ 2,000 to $ 100,000. The system architect is the chief designer of a software project, the builder of new products and new technology systems for software companies, and a high-level technical talent urgently needed in software development. It is developed by a system development engineer, and can develop to high-level directions such as research and development director and senior technical director.