This is my natural dialectical holiday homework, if you feel uncomfortable, please bear it ~
ST1 /: * {Behavior: URL (#ieooui)}
Programmer's tomorrow - from the high degree of illustration of the software industry development trend
Wizzsoft.com
Abstract: The general rules of science and technology development are one of the three major research objects of natural dialectics. This paper uses the basic views and methods of natural dialectics, combining the development of other industries, analyzes the overall development trend of the software industry. It is pointed out that the current software industry is facing a large division of labor, and now the programmer team will differentiate into software designers and professional codes.
Keywords: natural dialectics, software, programmer, development trend
I. Introduction
Natural dialectics is the science of general regulations for nature and science and technology and general methods of human understanding and renovation of nature. According to Marxism, from the relationship between people and nature, the nature of the entity is analyzed as the entity, and as the main body of the person and the science and technology as a medium constitute three research objects of the natural dialectic. Specifically, this is the general rule of nature, namely the dialectics of nature; human beings understand the general law of nature and renovation, the dialectics of science and technology research; the general law of science and technology, that is, the dialectics of science and technology development.
The dialectics of this paper trial science and technology development, compare the development of other industries, analyzes the development trend of software industry, and professional prospects for programmers for software basic power.
Second, the current situation of software
Whenever we review the technical progress of the 20th century, it will agree that information technology is one of the most developed technologies. In particular, the permeability of information technology applications can be seen in various fields in production and life. Software as the soul of information technology, is playing an extremely important role. It is hard to imagine how there is no software in modern society.
At the same time, we have seen the birth of the first computer, and the cost of hardware is reduced by half every 2-3 years, and performance prices have increased a quantitude than every decade. The development of software is relatively lagging behind. Software development is often done in a state of disorder, advocating personal skills. Programming lacks norms, the proportion of programmers and poor production efficiency is 10: 1, and the product quality ratio is 5: 1. It is difficult to control the development process of the project, and the modification maintenance after development is extremely difficult. In particular, large software systems, its technical complexity and management complex index rise. The software reliability is not guaranteed, and the software maintenance costs are constantly rising, and the progress cannot be predicted. The cost growth cannot be controlled, and the programmer is not limited. This is the so-called software crisis burst in the late 1960s. At that time, IBM's OS / 360 system and the US Air Force have spent thousands of people's labor, and the results are disappointing.
In 1968, NATO officially proposed the term "Software Engineering" in the academic conference held in Germish Garmish, from this software engineering concept. The software industry begins to systematically draw on the principles of traditional engineering, and the method is organized. Today, software engineering has become the core of the information industry. As an emerging cross-discipline, although there are still many theories to be developed, it has been widely used in production practice, and has made significant contributions to software production levels.
Third, the comparison of software industry and construction industry
In the development of software engineering, we can often see the impact from the construction industry. The building is a very old industry, starting from the pyramid, has experienced a long development process for thousands of years. Among them, the management method of engineering projects, the division of engineering staff, the segmentation of engineering progress, the idea of engineering design, is a valuable wealth of human civilization, which contains many universal principles, worthy of our profound experience.
According to the principles of Marxist natural dialectics, we see the development trend of modern science and technology presenting a consolidated, mathematical, integrated characteristics. This principle also guides us to analyze the development direction of the software industry from the height of interdisciplinary.
For example, today's software engineering community is in full swing of software design patterns, in a sense, it is also inspired by the construction industry. The model in the building has been shown that it is a long time. China's royal architecture is an outstanding representative: each building has its common qualities, but there is a change in the formation of a free, complete, comfortable, harmonious, and open. If there is no mode application, the scale is so macro, and the structure of such a complex construction is also impossible to completely design. The theoretical theory about the model is only a comprehensive system summary of American Architecture Master Christopher Alexander in his "The Timeless Way Of Building". This book is a book that "explain the example of architecture". The software industry that was being plagued by the software crisis seems to have seen the dawn from it. In 1991, Erich Gamma applied Alexander's theory in the software field in his paper, and the concept of design mode is proposed, indicating that design experience can be reused by design mode. Since then, the number of participating model research is explosive growth, and the model is also continuously applied to various aspects of software engineering.
I think the software industry should imagine the maturity of the construction industry, the biggest problem is that the division of labor must be fine. The division of labor is increasingly meticulous is the inevitable law of human social development. The first social major division of society has brought about the growth of agriculture in the history of human history; the second social division has produced the rise of handicrafts; the third social division has paved the road for the rise of the commodity economy. Engels has also pointed out that division of labor is "the most powerful production lever for the establishment of large industries."
The division of labor inside an industry is also the same. The division of labor is specialized, helping to improve the proficiency of the workers, improve techniques, and improve labor productivity. In the construction industry, at least in such a variety of different professional roles: architects, structural, hydropower, machinery and other professional design engineers, engineering subsidiaries, supervisors, project management personnel, project construction personnel. It can be said that there is no finely and reasonable division of labor without the strength of the building. And our software is far from such a system. Although the software architect, the system analyst has been generated in the promotion of software engineering. But it is not a climate on the entire industry. Software architects or system analysts in individual companies are now the programmers who write code, relying on personal understanding, opportunity and experience. This phenomenon is like ancient architects who started slowly understand when the apprentices began. But developing now, if all architects are cultivated from construction workers, it is incredible. Now the history of the software industry is almost decades, it can be said that it is still in the baby period. We now set a software professional in the school. Most of the workers work in graduation is the whole process of analysis from demand to code implementation. This is like a building, which is the same as the whole process of designing to the construction from the same team. On the one hand, the staff is very hard, and the quality of the project is not guaranteed. It is believed that the future software industry will inevitably produce a large division of labor between design and implementation, and therefore reached a leap in his history.
Speaking here, you may have to question, how does the designer's intention after division? How to convey to realist? In the construction engineering, you can rely on design drawings to achieve communication. But have the software engineering drawn by a drawing? Not yet, but there will be some. It seems that the best candidates are the UML (Unified Modeling Language, which is first proposed by Booch and Rumbau, in 1994). It specifies a series of formalized languages that combines graphics and text, and try to make simple, intuitive, and clearly describe the characteristics of software behavior, structure, relationship, and other aspects. After several years of development, UML has been widely supported by industry and academia. Although it is not possible to describe all characteristics from the UML file, it has been described in the realm of the graph, but the UML appearance has been a solid step towards this goal. Fourth, the development trend of software industry
"Boston Global News" published on January 20, 2003, published the article title "Software Industry" article, believed that software programming has begun to comply with the development model of the US textile industry, which has become a low-level manual industry that can be completed overseas. Forrester estimates that by 2015, approximately 500,000 computer-related jobs related to overseas, most are in India. Obviously this trend is another embodiment of the division of labor described above. In order to pursue maximization of profits, multinational companies is working hard to transfer relatively simple coding efforts to overseas, completed by cheap labor. The core part of system design is still firmly controlled in their hands.
Is this the future of the software industry? I think it is right or wrong.
The trend of software industry refinement division is unstoppable. Nowadays, a programmer will rise to system analysts, software architects, and another part will make more purely encoding. Simple coding work will be more simpler than the programmers, because only the local function is done according to the system design when encoding. It is very likely that the codec to the project does not know what the busy project is used throughout the day. The functional streamlined code staff will have a qualified codec to reduce production costs through fewer training, and the source of labor is expanded. The production mode of "Software Factory" will appear in the "Software Factory". Software production can take out the mode of the hand workshop, move toward high efficiency industrial production.
We see that in 2002, the last shirt factory in Maine is closed in Maine. This piece of murderous wool worker is now there is no wool worker. Of course, the US clothing industry does not disappear. Nowadays wear clothes from China, from Malaysia, but their design is done in the United States. Americans firmly control the design links of clothing, which sends the most abundant profits in the entire value chain.
Obviously, this international division of labor based on my country's providing cheap labor is definitely what we don't want to see. This requires us to study foreign advanced technology, pay attention to innovation, pay attention to mastering its design philosophy, cultivate your design team, forming your own R & D, design capabilities, core technology and independent intellectual property rights. I believe that the current software industry is in the eve of rapid changes and development, and China's software industry will certainly seize opportunities and establish their status in the process of world division of labor.
references:
[1] Hu Lianggui, Liu Ning "Science and Technology Methodology" Sichuan University Press 2000
[2] Xue Xiaodong "Introduction to Nature Dialectics" Electronic Science and Technology Press 1998
[3] Zhu Sanmin, Qianleqiu, etc. "Software Engineering Technology Introduction" Science Press 2002
[4] Christopher Alexander, Zhao Bingzhi "The Eternal Road of Architecture" Intellectual Property Publishing House 2002
[5]
Frederick
P. Brooks, Jr., umlchina translation group Wang Ying translated "Moon Myth" Tsinghua University Press 2002