System Architect
The architect is responsible for understanding the business needs of the system and creating a reasonable and sound system architecture. Architects are also responsible for determining the main technical options through the software architecture. This typical architecture includes important aspects of the identification and documentation system, including system requirements, design, implementation, and deployment of "views ".
Responsibilities
- Responsible for System Architecture Design and R & D;
- Serves as a bridge from business to technology transformation;
- Assists the project manager in formulating the project plan and controlling the project progress;
- Assists and guides SA in designing;
- Organizes technical research and research work;
- Organizes and manages internal technical training;
- Organizes and leads internal employees to study new project-related technologies;
- Manage the Technical Support Team and provide technical support to the project and product development and implementation teams.
Capability required
- At least 8 years working experience in the software industry;
- At least 4 years experience in C/S or B/S architecture software product development, architecture and design;
- More than 3 years of coding experience;
- Rich experience in overall planning, solution design, and technical team management of large and medium-sized development projects;
- Have a deep understanding of relevant technical standards and have a good grasp of software engineering standards and norms;
- Related programming technologies (such as PHP /. net/Java) and the entire solution has a deep understanding and skilled application, and is proficient in architecture and design patterns (such as WebService/J2EE), and on this basis designs the product framework;
- Has Object-Oriented Analysis, Design, development capabilities (OOA, Ood, oop), proficient in UML and Rose, skilled in using Rational Rose, powerdesigner and other tools for design and development;
- Proficient in development of large databases such as Oracle, SQL Server, and MySQL;
- Have a comprehensive understanding of computer systems, networks and security, and application system architecture, be familiar with the project management theory, and have a practical basis;
- It has a profound foundation in the application system development platform and project management, and has successful cases in the development and implementation of large and medium-sized application systems;
- Good team spirit and collaboration spirit, strong internal and external communication skills.
Relationships with other roles and their differences
- Relationship between System Architects and product managers
-
A product manager is usually a "person in charge" of product design ". An excellent and ideal product manager should have a high commercial quality and a strong technical background at the same time. Product managers must have a deep understanding
Field experienceThat is to say, the software system is very familiar with the business areas to be applied. For example, product managers who develop real estate sales software should be familiar with the standard sales process of real estate companies, even more clear than most sales personnel. If a general product is developed, he/she also has deep insights into the market and potential customer needs.
-
So what is the difference between the System Architect and the product manager? We should not confuse the two. This is a common mistake in discussion and practice. In my opinion, if we compare software development to filming, the product manager to the System Architect is just like the scriptwriter to the Director. Although the product manager must have a certain technical background, it should still belong to "business people", while the system architect must be a technical expert. Their positions, perspectives, and starting points are completely different.
- Relationship between System Architects and project managers and their differences
-
A software project manager is the person in charge of project control/management, focusing on the progress and quality of the project, and allocating, mobilizing, coordinating, and managing resources such as good people, finance, and things. For software project managers, including project planning, progress tracking/monitoring, quality assurance, configuration/release/version/change management, and personnel performance evaluation. The quality required by an excellent project manager is not only to use several types of software or to understand several abstract methodological principles, but also to the valuable experience gained from a large number of project practices, as well as the ability to communicate, coordinate, motivate, and even have a certain personality charm or leader temperament (charisma ).
-
In terms of personality factors, simply technical staff tend to ignore the "human" factor, which is a major aspect of management activities. The project manager is able to cope with a large number of incidents and chores during the development process.
-
In a project, the System Architect rather than the project manager promotes the development of the project. The project manager is only responsible for cooperating with the System Architect to provide support from various aspects. It is mainly responsible for communicating with internal and external personnel and managing resources (including persons ). The System Architect proposes the overall architecture of the system and provides development guidance.
- Relationship between System Architects and system analysts and their differences
-
System Analyst refers to the person who analyzes, designs, and leads system development. In general, the level of system analysts will affect the quality of system development, or even the success or failure. However, a complete system development team also needs business experts, technical experts, and other support personnel. Therefore, system analysts are only one of the roles. However, many IT companies in China generally only have system analysts rather than technical experts.
-
System analysts analyze and design specific systems. Therefore, his tasks and objectives are clear. He only executes the task to complete the final design of the system.
-
System Architects should be separated from system analysts,
The architect must have all the capabilities of the system analystAt the same time, there should be a lot of capabilities that designers do not have.
-
System Architects guide and supervise the work of system analysts, and require system analysts to design systems based on what standards, tools, models, and technologies. At the same time, the System Architect should promptly propose solutions to the problems raised by the system analyst. Check and review the work of system analysts.
Evaluation System Architect
- Whether the System Architect is an expert in a certain technical field;
- Can the System Architect guide the system analyst's design work, discover and point out existing design problems, propose solutions, and review their work;
- Can the System Architect instruct the software engineers in the development work, discover and point out the existing coding problems, propose solutions, and review their work;
- Can the System Architect assist the project manager in formulating the project plan and controlling the project progress;
- Whether the System Architect can promptly and effectively solve the problems raised by design and developers and solve technical difficulties;
- Whether the System Architect can develop and standardize system design and development documents, tools, and models; whether the system architects can make it easy for others to understand;
- Can System Architects organize and lead internal employees to study and learn new project-related technologies;
- Whether the System Architect can organize and manage technical training, technical research, and research work within the company;
- Whether the System Architect can organize and manage technical training, technical research, and research work within the company;
- Whether the system architect has a good team spirit and collaboration spirit, and strong internal and external communication skills;
- Whether the System Architect can manage the technical support team and provide technical support to the project and product development implementation teams;
- Whether the system architecture designed by the System Architect is reasonable, whether the technology is advanced, and whether the system architecture meets the requirements of the customer;
- Whether the system architecture is scalable and secure, whether it can withstand stress testing, how to control network traffic under the number of users, how to deal with system boundaries, and how to solve bottlenecks;
- Whether the problems to be solved in the early, middle and later stages of the system design are identified by stages and milestones;
- Whether it has the ability to analyze, identify and avoid risks as much as possible, and reduce the cost of problems caused by risks;
- Can the company reduce development costs and improve efficiency;
Original article: Li Yu: a comprehensive analysis of the system architecture
Articles from IBM: Features of software architects
As the technical director of the project, architects need a wide range of technologies, which is more important than technical depth (of course, architects need a certain degree of technical depth in a specific field ).
- The software architect is the technical director
- The architect may have a group to complete the process.
- Architects should understand the software development process
- Software architects need knowledge in the business field
- Software architects should have technical knowledge
- Software architects should have good design skills
- Software architects need good programming skills
- The architect is a good communicator.
- Architects need to make decisions
- Software architects need to be aware of organizational policies
- The software architect is a negotiating representative