Foreword: This is a pure Udo tied article, but can you get some enlightenment from it after reading?
Nirvana
Author: Larry Huang
In 1999, Computer Scientists Brooocks, JR. Brought the Turing Award in Nearly 70 years old - this hardware and software expert in the world in decades, educator has "no silver" (1986) One article proposes a famous anchor that has not been broken so far: "There is no pure technology or management progress, can independently undertake the productivity, reliability and simplicity of software in 10 years. ". Brox's metaphor of the image discusses the "trap" in software engineering - "in the monsters of all terrorist folklore, the most terrible is the wolf, because they can completely unexpectedly become terrible from familiar faces into terrible "Monster", "And" The familiar software project has some people's wolves (at least in non-technical manager), often seem simple and clear, but it is possible to become a backward schedule, beyond the budget, there is a lot of defective monster". In the thrilling story, people only use silver bombs (silver bullets) to eliminate people's wolves, while Brooz believes that in software engineering, "no silver bomb", no one can contain software to "monsters", while still significantly Improve the development efficiency and weapons of product quality.
In a sense, Brooks' view (or prediction) is correct - if you don't have a thorough innovation based on code-based software system, then we will still be buurous in the future 10 years (or even longer) The code maze encounters "monsters".
Software death
First, large enterprise-class applications have died
At the end of August 2003, the annual DCI CRM exhibition was held in the New York Javitz Center, 21% of the exhibitions were CXO from global companies (an average of more than 6,600 employees), 60% of these companies are middle management staff. As a predictor and leading sheep in the CRM market, Siebel president Tom Siebel's annual theme speech is waiting for everyone. However, this year TOM Siebel's speech title made the participants shocked: "Death of CRM".
"CRM products have no market." According to Siebel's expectation: IT department will no longer purchase universal CRM software, then adjust the software according to its internal business processes. If Siebel's foresee is correct, the end of the CRM market also means that the company relationship management market, supply chain, human resource management market, and the end of other large application software markets. Through market research, we found that several international mainstream enterprise management software vendors, including SAP, PeopleSoft, Siebel, etc. In recent years, the revenue has been in the past, and the profit has more declined. Currently, almost every large enterprise application is encountering a deep crisis that occurs endangered or even dying symptoms. A study of the National Institute of Standards and Technology shows that "occupying 85% of the world software sales is large-scale software, while the failure rate of its development is as high as 70%!"
Large enterprise-class applications are going to death, which is manifested in various aspects.
First, large enterprise-class applications developed in traditional ways difficult to break through Brooks' "no silver bombism", find software engineering or project management methods, can greatly improve the development efficiency of application software - long development cycle, development The cost is high, and the cost of the cost is overdue and the construction period is extended. More terrible is that as the environmental and demand changes, "built is idle", forming a disaster of software engineering.
Second, the customer's expectations for large enterprise applications are almost unable to meet. For example, customers expect business integration and collaboration, build an efficient enterprise application system on the basis of collaboration; customer expects information on the information on the supply chain to achieve faster market response ability; customer expectation can be implemented quickly And low-cost deployment software systems that meet individualized needs, and adapt to future business environment ... Under this market demand, it is necessary to realize the integration of all levels of enterprises, it will inevitably lead to unprecedented software in size, complexity and function. Not only that, but the crisis of enterprise applications also behave as the "crisis" of the system deployment and maintenance. Application Environment From a stand-alone application, transitions to the client / server environment, and then transitions to the browser / server environment, and further migrates to the network environment of the multilayer (N-Tier) distributed system. Today, the Internet-based enterprise-based application requires software to achieve cross-space, cross-time, cross-devices, cross users, software is in an extremely complex heterogeneous environment, in which case the traditional software development thinking should be the current crisis It can only be a boat as a sword, and the wood is asking fish.
A similar crisis is particularly prominent in China. China is a rapid development and continuous transformation of countries, and Chinese companies are therefore more complicated, and the change in the reform of Chinese companies is even greater. Because of this, the crisis of Chinese enterprise application development and operation is more serious, and the risk of enterprise informationization is more, the failure rate is higher.
I think it is a traditional software system brewing and aggravating the crisis of enterprise applications.
The software system mainly includes software structure and production. The main features of traditional large enterprise-class applications are: coded development methods and development of continuous operation - coded development methods, making it difficult to realize quickly developing enterprise applications; once the development continues to run The way the software is rigid and endangered. .
The traditional software system is going to death under the serious crisis in inside and outside!
Second, explore the cause of software death
The Internet Age has brought infinite imagination space to enterprises. The marketing model of the company is leading the Internet-based ABC model (any time based on network, communication marketing) based on traditional 4P (product, pricing, location, promotion). The enterprise system has been applied from department-level, enterprise-level, and real-time online applications, and the scope of the application in depth and breadth.
Shi Yi time shift, change the "law". When the application needs have risen from the department, the company has risen to the society, we must re-examine the needs of enterprise applications.
On the one hand, the user needs individual software. Under the market economy, successful enterprises must be personalized, unique management methods and corporate culture, with this from competitors to win market space. The value of the enterprise must be personalized. Enterprise information must start from personality: the implementation of enterprise applications should fully reflect and enlarge the individual value associated with core competitiveness, thus enhance the value of the company. It should be the core contribution of information on the enterprise. If an informationization project not only does not highlight the individuality of the company - but exacerbates the "value homoification" of the company and the peers, it can be judged that this informationization project failed to succeed.
On the other hand, companies need flexible software. The business cycle of the company is a dynamic change process. In each growth stage, companies need to distinguish policies and management; as the environment changes, the business and management methods should change accordingly; coupled with the extension of the company's concept, now become A virtual organization that covers suppliers, customers, and various partners. Therefore, companies have become very important for flexibility or elastic demand. Correspondingly, enterprise applications also require higher flexibility. Currently, traditional enterprise applications often use two typical delivery modes.
First, the package software plus secondary development delivery customers. The function of the software is cured on this manner, leaving only a small part of the parameter configuration. Such software also requires a lot of secondary development in the process, even in this way, often does not meet the needs of the enterprise. Application software vendors usually promote their own products contain "industry best business practices", and inform customers' management models to adapt to this standardized "industry best business practice". However, each company is worth having a difference, the company's strategy, core competitiveness is different, and the company only maintains its own distinct personality, and maintains a high flexibility to the environment, ready to adjust management strategy, is survival The key to development. Where is this management truth with this "four seas," can solve all enterprises? It can be seen that the so-called "industry best practice" is inevitably achieved with the cost of erase the enterprise characteristics and not adaptation of future development. The way "open box is used" often has good system architecture and stable system performance, which can adapt to market demand in a certain field, but it is difficult to meet the individual needs of different users.
Second, for our customers, develop customized software systems from code levels. This custom development method is basically starting from the personalized demand from the customer. It is true that this custom-developed software system can meet most of the needs of a particular user, but developers are always difficult to fully consider structural factors such as software scalability, stability, and the product cannot quickly adapt to customer demand changes. It is also difficult to improve the efficiency of development. Many software companies are caught in the mashtacks in software customized development - software knowledge is not effective, and the cost is high, which constitutes a software company or the development bottleneck of system integration company, and is also a certain degree The development of the software industry is damaged.
Obviously, the above two software development methods can not solve the problem of software on demand - software development mode is low, and the software structure is rigid. In this corporate morphology, the company's extension is continuously expanded, the environment of the enterprise is constantly changing, and the era of continuous adjustment of the business of the company, this company has sustainedly used as a year to expire and drop.
Third, find a silver bomb
"No silver!" Brooks said that there is no technical or management of progress, can independently enhance the productivity, reliability and simplicity of software development?
Indeed, until the end of the last century, more than 20 years, the production efficiency of the software industry still has no orders, and software has become the most original "hand industry" while helping traditional industries improve efficiency. Although many large enterprise applications have adopted large-scale production and collaboration, this software often has long development time, low efficiency, and cannot be dynamically adjusted, and cannot be flexible and agile by stiffness. The software industry also needs to be separated from the era of hand workshop and industrial era, and enter the reusable industrial era of agile.
The backwardness of the software production, the further complexity of the demand and the environment, making the traditional software production method not only mitigated the crisis of software engineering, but is in a continuous deepening crisis. Internet application era, companies expect to get high quality, high-quality software with lower cost, faster, high-spirited software. Obviously, relying on the traditional software industry's backward production methods and rigid software structures, it is impossible to face the challenge of Internet applications. Contradictions are constantly intensifying, and the crisis is constantly deepening. My opinion is that traditional software engineering methods cannot solve the problem of "software crisis"; in other words, do not expect to find true "silver bombs" from traditional software systems.
The rigid software structure cannot produce a silver bomb - software from the code level, emphasizing the functional implementation, is naturally a disadvantage that is huge, rigid and unable to adapt. Coded software, no matter what kind of way, it is unable to realize "agile custom". Code level programming, code level maintenance makes efficiency impossible to improve.
The backward production method is unable to produce silver bombs - from the code started from the code level, experienced a large number of repetitive demand analysis, design, coding, testing, maintenance, long production cycle, poor software reuse. Relying on such a production method, how is the production efficiency improve? How can I guarantee the high quality of the software?
Since the traditional software system is the fundamental reason that leads to the software crisis, the software system will never get rid of the "software crisis" nightmare, and it is more unable to achieve a large-scale unclear dream, then that is uniform. Where is the silver bomb of "Software Wolf"?