Internet architect Essential Skills
This article describes some of the skills that an Internet architect must have:
Internet architect skills Every good architect is an excellent programmer abstract thinking technology forward-looking through problems to see the nature of cross-domain knowledge communication ability
Every good architect is an excellent programmer.
This is undoubtedly not a good architect if you are not an excellent programmer who has written n-year code. "Architect" This is a somewhat false position, its main value lies in the process of "landing", rather than "Jiangshan". The architect of ebay summarizes the responsibilities of the architect in the project: the product team is going to make a product, the architect will help the team to make the technical feasibility, the technical plan trade-offs one by one clear , the technical solution trade-offs, the architect to design the overall technical implementation steps, This process must be done with the rest of the team, the common practice is that 1 to 2 core members out of a first draft, and then we discuss the improvement; The technical implementation steps come out, the architect is coding with the development team, the architect may not necessarily scrutiny to any details, and the common practice is that The most difficult and most critical part of the system is often carried out by the architect; The first edition of the system is implemented, and the architect will work with the development team, the Test team, the operations team to complete various tests, help solve the most difficult bugs, and complete the online deployment together with the team to eliminate the initial system failure;
In the course of the project, at least half of the architect's time was with the development team, and the good architect could not put the implementation details behind him, more bluntly, by writing code to guide the other members of the team in understanding and implementing the details of the architecture.
The reverse example is that after the project failed, the architect feedback "the team's technical ability is not enough", the team feedback "This is a line of code will not write a big flicker." Abstract Thinking
"Logical thinking, abstract thinking" is more important to architects than "encoded time", and if you can't get a non-it person to understand what a concept is saying, the architect is doomed to fail (communication skills are important, see 6th).
Logical thinking does not need to expand, the programmer's Code is logic, if XXX on yyy, if AAA on BBB, lack of good logical thinking ability is basically impossible to become a good architect, even good programmers.
Abstract thinking is divided into two points, one is to conceptualize the real thing, one is to the vague feeling of quantity. An apple, abstract as quality, size, color, shape, taste, and so on, this is conceptualized, is the architect's essential thinking. As for the quality, size, color, shape, taste How to change the number to describe, this is the architect must think.
With the above two points, the architect can describe a "virtual" architectural concept clearly. Technology Foresight
The difference between an architect and a technical master is that architects are not only limited to how to invoke, how to concurrency, and so on, but they are also very skilled at it, and jump out of the three realms to address future problems and potential risks.
To develop their own technology forward-looking, the first is to learn English (not many then, I hope the most advanced technology in the future from the birth of the first), read foreign technical articles, can communicate with the industry experts, learning others practice.
The reverse example is that the terminology of technology preface to the mouth, big talk about "cloud computing, SaaS" These things, every day to blow water, and can not fall to the ground (it is possible that he himself can not understand how the concept landed).
Technology foresight also mention the selection of new technologies, which are suitable for their own team and which are not suitable. Learning costs, maintenance costs, hardware costs, and potential risks are all things architects need to consider. through the question to see the essence
Seeing the nature of the problem is the quality that architects must have.
The ability of architects to translate "business requirements" into "Technical requirements" is an essential mining. For example, the business level sees an "e-commerce Web Site System", the architect sees a multiplayer online, concurrent transactions, the need to ensure data consistency of the site, services, data systems, functionality, performance, scalability, maintainability, security, usability these words will jump into the architect's mind.
Architect is the architect, he is in front of the large system, still can be keenly aware of its underlying truth, which requires that he has many years of knowledge and experience of the precipitation. cross-domain knowledge
Architects, as a technology leader, need to warm up the development team through the light of knowledge, and if only one field of knowledge is memorized in the chest, it is only a technical master. To go further, need to understand the app level, service level, data level (System layering), to research and development, testing, operation, security also have to understand (function), on the interface, the principle (interface and implementation) have some understanding, even, in a number of business areas have been covered.
The primary architect is afraid to jump out of his own "unique stunt", to a certain extent, in a certain depth to become a "Zajia" there is nothing wrong. Communication Skills
Architects and project managers have a high level of communication skills, and many internet companies are even directly represented by architects as project managers. These two roles are still biased, the project manager is more inclined to communicate with customers, customers, cross-team collaboration and communication, the architect is mainly in favor of the technical team internal communication and communication, pure technical communication.
How to become a "good communicator" architect. Under the premise of clear objectives, first of all to achieve peace, can not be their own ivory tower, dictating the orders, such an attitude must be hated, we are technical personnel, but the division of labor is different, why should be affected by your anger. Second, the architect must have a certain ability to draw. People's understanding of graphics is much larger than the understanding of the text, a level diagram, a small whiteboard, a few pens, really so easy to describe the problem clearly.