I thought it was interesting to discuss the large-scale production of software with several colleagues a few days ago. I would like to discuss with you that we have been familiar with the software industry for more than N years around the world, but it has not been able to achieve large-scale production, such as the manufacturing industry or other industries after 10-20 years, pipeline operations can be formed. I personally think it may be related to the following factors:
1. software production and software production except brainstorming and computers, there are no other raw materials;
2. Due to human factors, the software industry has been unable to achieve large-scale production in the near future and the labor flow problem in the industry;
3. Software Development Model. Large domestic software is developed by an elite team;
4. Software personalization issues, whether in the same industry or different industries, software is too closely linked with the company's business, and cannot be generalized;
5. The academic focus on software development is more important than practice. It is not hard to see that a certain achievement is very mature in the academic field, but it must be pushed at least 5-10 years later to enter the operational stage;
6. Software development technologies are constantly updated. To continuously improve development efficiency and simplicity, technologies are constantly updated. That is why most of the time relevant personnel are not only learning but also learning;
7. Proportion of software R & D and outsourcing in China;
8. for software development cycle problems, it may take 2-3 years or longer to follow up on a project;
9. There are no complete standards;
And other issues!
Of course, the development of the software industry in this year is also gradually standardized. I initially imagined that we need to use the industry as a classification for software to achieve large-scale production of software, because we know that, we develop software based on our needs, and the needs of the same industry should be the most similar. For example, we take the tobacco industry as an example, we have set up a specialized tobacco pipeline (which does not care about development jobs or language issues), which is what we usually call business. I use this as a classification to form different pipelines for different industries (if the development cost is low enough, the quality is high, and the cycle is short, the project should not be a problem ). With software workers, software workers do not need to hold too much technology or business, but only need to have a better understanding of the business in the industry. This will not only reduce our development requirements, labor costs, but also improve our development efficiency. Because we can perform their respective duties. We will transfer the analysis of business and needs to the departments of our experts. The Development Department only needs to do development, and there is no need to worry about demand analysis. Separate their respective responsibilities, minimize and clarify their responsibilities. Each industry is subject to the Development specifications of each industry. The industry and the industry are mutually independent!
Of course, the above is just an idea. The first thing we need to solve is to enable the development of Human elites to popularize people. Most of domestic development projects, especially large projects, are elite teams, and I do not think they have played an excellent role. This is because people may not be skilled in their business, but not necessarily in their business. Therefore, we should do our best to transform an elite team into a professional team and a dedicated team.
Secondly, I personally think that the flow of IT staff is between 20-25%, because of the source material for software development, the most important raw material for other software development is people, people are not machines, and companies are too many people to turn people into machines. They still need to move manufacturing experience to the IT industry, this is unrealistic. Machines are dead and live. Human factors should be considered too much. Although many development models propose the importance of people, it is basically a permanent cure. We should consider how psychology works in the IT industry.
Is it really a long time for our software development cycle to continue with the software development cycle? I personally think I have to make a question mark. We often have requirements five years ago and are still developing in five years. Long cycle is also an important factor in the inability to scale software. If we can achieve software pipeline. I believe that many problems can be solved. Similar to this kind of software, many important theories are often discussed in academic circles for several years. It is better to put them into practice for testing.
Of course, the above is my personal point of view. You are welcome to discuss it!