The Blue Book of IT application technology in China 2006-2007 released by it168, where software talents are analyzed from the perspective of professional structure in a unique way. I tried to interpret the data according to the traditional software engineering theory, and found that the professional structure of China's software industry is seriously unbalanced.
1. Unique Perspective: career structure
Recently, it168 released the Chinese Blue Book of IT Application Technology 2006-2007 (hereinafter referred to as the Blue Book). The book contains more than 0.2 million words and covers more than two hundred and sixty pages, it also covers all aspects of the software development industry, such as talents, applications, and processes ,. net, database, enterprise applications, middleware and other mainstream software development technologies, and more than a dozen excellent papers attached, the content is not detailed. Enthusiastic editors sent me a link to the document and quickly downloaded the document. After reading the document, I felt a lot of benefits. I am afraid to hide it and try to share it with readers.
The second chapter of the Blue Book "Analysis of the current situation of IT technology development talents in China" is about software talents. In section 3rd "career structure", developers under investigation are classified according to their responsibilities, the proportion of each occupation type is given. Since the statistical data comes from nearly samples and all of the respondents are real software practitioners, the reliability is quite high. To be honest, although I have been focusing on the development of the Chinese software industry for more than a decade in the IT industry, I have not paid attention to the professional classification of developers. This chapter of the Blue Book is a different path and is unconventional, reading is quite innovative, and it gives people who care about the Chinese software industry a different form from the official one.Article.
The software industry in China has been experiencing ups and downs for 20 years. I have the honor to experience most of the time in the past 20 years and have witnessed the ups and downs of the software industry. Those people, those things, have gone with the wind, and only have the drawbacks of the Chinese software industry. From the subsequent analysis, we can see that this unique perspective provided by the Blue Book exposes some disadvantages of the Chinese software industry.
The division of developers' responsibilities is becoming more and more diversified as the scope of software applications expands, reflecting the development trend of division of labor towards refinement. For example, web designers do not have such a role in traditional software engineering theories. However, due to the popularity of the Internet and the emergence of a large number of Internet applications, web designers have become indispensable roles in software projects.
The increasing role makes it difficult for developers to classify their career structures. Different software engineering theories have different classification standards. Although the software engineering theory is a hundred years old, the traditional software engineering theory advocated by IBM in the 1960s S is still deep-rooted, no matter how sudden changes occur in the life cycle of software development, the classic waterfall model is an unshakable foundation. Therefore, we may divide the responsibilities of developers into four categories based on the traditional software development process theory, namely, project managers, system analysts, and seniorProgramMembers and programmers. Based on the statistical data of the Technical Blue Book, the statistical data of developers' career structure can be classified and combined according to the preceding classification methods.
2. Project Manager and System Analyst
Start with the project manager. Maybe the role of a project manager is the least controversial in software engineering theory. With regard to the responsibilities of the project manager, the various theories are surprisingly consistent, that is, to find ways to within the prescribed duration and cost budget, the task of completing the project with acceptable quality, specific to the software project, is to implement the software function. In the theory of project management, the project manager has a great deal of power, which can decide whether the project developers can move up or down to stay.
On the other hand, the project manager is also the focal point of various contradictions. It is called the "contract" of the project, the pressure of the boss, the difficulties of the customer, the resistance of developers, and the constraints from the same level, project managers must undertake, accept, adapt, and resolve the issue unconditionally. In a complex project environment, they are shocked and constantly looking for the best balance point, it is very similar to the daughter-in-law who looks at the eyes of her father-in-law.
The Project Manager account for 11.7% of the projects in the survey.
The next step is the system analyst. The system analyst is a bridge between the customer and the programmer and serves as a communication between both parties. System analysts must have two aspects of knowledge: business and computer. Customers do not understand computers, but do not know how to express their business needs in computer terms. programmers do not understand business and do not knowCodeWhat is the relationship with business needs? Only the system analyst can understand the business needs of the customer and the computer terminology of the programmer, then write the requirement specification and tell the programmer what to do.
Obviously, the role of a system analyst determines that he cannot leave the business, understand the business, or establish a business model through demand research. Even if the software technology level is higher, he cannot become a qualified system analyst. In the blue book, "business analysts" and "consultants" clearly belong to system analysts. There is no doubt that "sa/SD (System Analysis/designer)" is only "SA (System Analyst) "belongs to system analysts, while" SD (designer) "is more reasonable to senior programmers. Therefore, we only take half of the Data." senior consultants "share similar situations, some senior consultants are engaged in business modeling and belong to system analysts, while others are responsible for system architecture. They are senior programmers and we only take half of the data. In this way, after simple calculation, the proportion of system analysts is 7.8%.
3. Senior programmers and programmers
The third category is senior programmers. The difference between a Senior Programmer and a programmer lies in the word "advanced. So what is the so-called "advanced" reflected in? It is reflected in the breadth and depth of software technology. With the development of software technology, it is unlikely that only one of the functional requirements can be achieved. There must be a large number of technologies to choose from. Almost any technology, they both claim how they can be, but they do, but they have their own focus. For example, a website can be. net, Java, PHP, or Ruby. Why? There are even a variety of solutions for the same technology, such as using Java to build websites, JSP, JSF, struts, spring, etc. The candidate solutions are dazzling. If you are confused and lost in the face of so many choices, you are a programmer. If you know this well, the solution remains unchanged, and you are a Senior Programmer.
Another term for senior programmers is "software architect" or "system designer". Of course, there are also "senior consultants". Therefore, we include all the "senior programmers" in the technical blue book, all the "software architects", half of the "sa/SD (System Analysis/designer)" and half of the "Senior Consultant, general is classified as "Senior Programmer" in the traditional theory, the proportion of "Senior Programmer" is 15.1%.
Finally, let's look at programmers. The role of a programmer is the biggest change among all roles, because they work at the front line and have the most direct contact with specific technologies, and the software technology has changed dramatically over the past decade, as new technologies emerge, many new programmer occupations are derived. For example, in the traditional software engineering theory, each role is responsible for writing its own documents, and there is no independent "Document engineer", but with the degradation of human face-to-face interaction functions, although "talking with the candle" does not exist, "talking with others" is more and more excited than the Chinese New Year. The "humans" hiding behind the computer screen are increasingly relying on the so-called documents to exchange ideas. Therefore, the workload of documents increases, so that additional "Document engineers" are required ". Of course, the role of the document is far more than that.
In the technical blue paper, "programmers", "document engineers", and "test engineers" can be classified as programmers in the traditional software engineering theory. In this way, the proportion of programmers is 17.3%.
4. Data tells us that the occupation structure is unbalanced.
Now, from the statistical data in the Blue Book, we have split and combined the proportion of four types of roles in the traditional software engineering theory. For clarity, let's summarize the results, as shown in table 1.
Proportion of role names
Project Manager 11.7%
System Analyst 7.8%
Senior Programmer 15.1%
Programmer 17.3%
Table 1: Percentage of jobs in the Blue Book after the four roles of traditional Software Engineering Theory
What does the data tell us when it comes to data? This is an age in which data is spoken. It is not as convincing as it is to say anything without saying anything. Of course, the Chinese people tend to divide things into two parts and refuse to draw conclusions easily. Different people have different interpretations of the same things. Sometimes, even the conclusions are quite different and not surprising. There was a joke that a man who said that he had done good deeds and said that he had only received one cent of money every day and asked him why. He explained that because of his wife and son, the overhead had increased, then, the beggar said, "How can you take my money to marry and have children! ", It can be seen that even if the money is so small, there are still benevolent and wise people, not to mention the statistical data related to national economy and livelihood. Therefore, the following analysis is just a personal statement of the author. I believe that smart readers have their own unique insights.
Careful readers will surely find that the statistical data in table 1 does not include all occupations in the Blue Book. For example, "CIT/CTO", "Configuration Management Personnel", "dba Database Administrator", "Network Administrator", and "technical support engineer" are not included in the calculation. Here we need to explain that the analysis in this article is based on projects, but not included in the calculation of these occupations, are cross-project, theoretically not completely subordinate to a project team, therefore, we exclude it.
According to the traditional software engineering theory, a project team consists of project managers, system analysts, Senior programmers and programmers. From the roles and responsibilities of these four roles, it is not difficult to understand that the number of roles in the project team is in the pyramid shape, the ratio is roughly from 1: 2: 4: 8 to 1: 5: 25: 125. This ratio is obtained in this way. In traditional software engineering theory, the upper level of the pyramid has management responsibility for the lower level, while the general management theory holds that in the industrial society, the number of individuals who can directly manage is between 7 and 13, while software is an intellectual-intensive industry. Therefore, it is reasonable to directly manage the number of people between 2 and 5.
If we compare the data in table 1 according to this ratio, it is not difficult to find that, on average, the occupation structure of China's software project team is seriously unbalanced. The concrete manifestation is that there are too many project managers, and there are too few programmers, which should have shown a pyramid shape, but it actually became almost a straight bucket. What is the cause of a serious imbalance in the occupation structure? This question deserves further consideration.