Enterprise application development and open source project

zhaozj2021-02-16  46

Beijing Ojette Communication Technology Co., Ltd. Technical Director Liu Tianbei

1 Open source movement is a rare guest in the home. Just when it has settled in the door of the software industry, it is a difficult to drive and underestimated power. Traditional software companies have wake up, began to seriously appreciate the difficulty to give the entire industry. Transformation. And this arrogant is also a change. As the open source movement continues to deepening, it has cast a deep-long figure in various specific areas developed. At present, a visible trend is that the trend of open source has taken out the field of operating systems, database management systems, web servers and other system development, and began to develop this new territory to find its market share in enterprise applications. Like other places, people's nerves have been agitated again. How should I face this trend? What effect does it affect the ecological strand in this field? The developers and end users of the company are secretly thinking about this problem.

We first outline the status quo of enterprise application development industries. What is an enterprise application? This problem even even Martin Fowler I feel hard to answer. In the classic "Patterns of Enterprise Application Architecture", he is only satisfied with a number of common enterprise applications as an example and does not provide more general concepts. Tolerate a blurred definition, maybe we can consider enterprise applications as "serving software systems for business purposes, processing corporate business information, data". Enterprise applications are different from system platforms, control systems, personal desktop applications, embedded applications and other software systems. Common Order / Booking Processing, Supply Chain Management (SCM), financial / asset management is a clear example of enterprise application. With its own development, modern enterprises require specialized information system processing, bonts to improve automation, information transmission speed, information security, and information processing / analysis capabilities. This is the reason why the company is generated. Therefore, from the perspective of demand, the core of enterprise applications is the computerization of corporate business. Whether to successfully achieve business processes needed by software systems, it has become the key to the success or failure of enterprise application development.

Enterprises should build their own business applications, and the options are mainly: 1. Buy out-of-shelf products 2. Self-developed 3. The commissioned developer special development 1.2 requires the internal development team to have a strong development team, which is for most companies and Unrealistic. And 1 requires off-the-shelf products directly to meet the needs of corporate business. Due to the different enterprises, the same enterprises are inconsistent with different development period, so it is difficult to meet the needs of business needs. Therefore, the general practice of business development is a compromise between 1 and 3: Software product suppliers provide "business platform" products, and then developers "customized" development. The so-called "business platform" refers to a software system that is independent of a particular business process, but encapsulates the field, the industry's general business model. The so-called "custom development" refers to the application system that meets specific enterprises in accordance with the above-mentioned business platforms, through the profile different forms of programming development. We are currently familiar with e-commerce, corporate website content management, ERP, SCM, Enterprise Management Information System (MIS) and other fields have a large number of software product suppliers to provide platform products. According to the current status and business strategy, consulting company gives the target business process and implementation plan, system integrator and software developers complete the system construction and actual implementation.

2 Talk above is the general form of enterprise application development. What is this form of hassles? Can an open source software bring how much change? Many people just use open source software as a low-cost choice to reduce overall cost (TCO), and I will argue in the following: Open source software has more important roles in enterprise application development, that is, reducing the risk of projects. Improve customer control capabilities on the project. Enterprise application development has a considerable complexity and risk. According to information, the US enterprise application project in 1998 is as high as 75%, of which 28% of the projects are ultimately revoked, and 40% lead to unlimited dragging or funds over budget. At present, in the domestic software industry, the failure rate of enterprise application development is high, and the sad failed to have a few recent large ERP projects is a certification. Why does it fail in this field? I think this is often related to the awareness of participants in the development of enterprises. On the one hand, in the initial planning phase, corporate customers often have only blurred knowledge of the system, such as that customers will require development of "e-commerce systems", but they cannot give specific business details; and in system development, After investing in for a while, as the user is familiar with the system, many demand changes and new business needs will appear. On the other hand, the platform supplier often exaggerates its flexibility and scalability, and gives customers a simple installation, the configuration can realize the illusion of business needs; and the developer responsible for the implementation period in order to shorten the implementation cycle And tend to limit the changes to customers' demand, and try to achieve "UP-Front Design", that is, once again complete the analysis, design, and get the most ideal system at shortest hours. As a result, suppliers and developers promised customers will always be a perfect system and fast implementation plan, and the actual implementation process is definitely long, and it is constantly chaos that customers feedback and demand. This contrast between this optimistic estimate and pessimism, I think it is an important factor in the development of enterprises.

It is also here, open source software can dramatically change the original commercial dynamics and development models, resulting in revolutionary changes to this field. Please consider such a metaphor: parents are the child's child, assume that the child's body is special, and there is no suitable garment. It can only be customized; if the clothing is cheap enough, the problem here is easy to solve, just find it Handling tailor all-year-old service is - but, it is very scarce that the local clothing is very scarce, only special shops can be bought, and even these shops still have to emphasize all clothing for this child. In this way, after paying the expensive clothing cost, the parents are hard to make a reasonable budget for tailors - even the idea: simply "step by step" to make a big dress, let the child wear a lifetime! Through this absurd and bitter story, we can find the crux of enterprise application development. Initial Investment, an enterprise investment, but an enterprise application system is also a " Special "is also in development, it is impossible to use ready-made software (" ready-to-wear "), and it is more impossible to completely solve all problems encountered in the future through the system. However, if it does not rely on reusable platform products ("clothing"), it will greatly reduce development efficiency every time, it will greatly reduce the development efficiency and extend delivery time. Yes, the answer has already come out: Open source software is exactly needed here cheap clothing. Since the open source software does not need to pay high-income software costs in the initial stage of the project, the "software" and "service" are really realized in this development mode. The focus of work is transferred to frequent interactions between customers and software developers, feedback. Enterprise customers can consider a software project as a new year's service, including the periodic release and iteration process, each release can be short to several weeks, focus on solving the most urgent issues of the company . Benefiting from low-end investment and fast release cycles, corporate customers can maximize the risks mentioned earlier and maximize the original decision-making and design. Specifically, at any time at the project, customers can choose at a small price: * Change business needs. The modern enterprise self-business model is in turn; the system's users will also propose different business processes and business models with the original design. Here, the original open source code is like to form the sand of pearls, through the constant shape, development, development, and form the most cost-effective system. In contrast, the platform software of the closed source code can only be developed as an open interface, which is faster than the former. * Expand the business area. The border of enterprise applications is often blurred. For example, many customers have requested to develop an "e-commerce system", but their functional demand is not limited to online shopping, product management, order processing, etc., including supply chain management, financial / asset management, website content management and even customer relationships The management module, where each module has a special field software complete. The free characteristics of open source software can allow customers to select multiple different open source software to implement the application integration of "source code level" when the customer is most suitable. Compared to this, the enclosed source product or "large and complete" "business suite" (also implies higher initial investment), or complete interface-based integration based on special enterprise application integration solutions (the effect is a long time Berth to open source software). * Postpone Project Development or Abandon Project.

Because the initial investment is far low, the customer can also make the choice to postpone or abandon the project when we think it is most appropriate, while still enjoying the results developed so far. Briefly, the open source software introduces the company's application development, far from cost, and more should pay more attention to its affinity between the progressive development model. Progressive strategy, the minimum initial investment, through multiple issues and feedback to improve the system, and advocate "change" rather than refusal to even denial. The relative strategy is to lock all changes in the translation of all changes by including Bravanne-like platform products and one-step implementation. These two strategies should have a winner in different fields of software development, but for enterprise application systems, I think the former has stronger resistance to the risk of surging here. A large number of ripe open source products have emerged in various specializies in enterprise applications, such as network portal / content management, e-commerce, electronic office, ERP, SCM, CRM, etc. have emerged. For development projects that are eager to improve flexibility, avoid risk-wide development projects, it is no longer just fantasy, but is being successfully practiced by many companies.

3 So, for a plan to build an enterprise application system, once you choose to use open source products, how can you ensure that the project is successful? I think there is at least the following important considerations: * Strategy and attitude As mentioned above, it is definitely harmful to corporate application development, excessive optimism, and fast winning attitude. Enterprise application projects should be regarded as a long-term, cautious process, and even when it is even applied to the "back step, two steps" strategies. Application should be formed from a specific problem, especially business bottlenecks, without pursuit of pursuit, or from "e-commerce" or "ERP" abstract concept to determine system function. * The experience and quality of developer developers are also critical to enterprise application development. Qualified developers should have a deeper understanding and development experience in the industry, which is very familiar with the selection of open source products - many manufacturers who use open source products itself also participate in the development of the product, or It is a special certification of open source project organizations, which are important advantages for actual projects. In addition, openers should agree that software development is the concept of service, and can adopt an attitude of hugs rather than refusal. * The product is facing increasingly rich open source products, there is no doubt that you should choose the most mature (not the most functional). General open source software has a relatively complete user community. In the process of investigation, you should pay attention to user issues in these communities, especially the response speed for specific issues. There is also a significant level of gap between enterprise application platforms formed by different open source software. Mature platforms often include a large number of reusable components that form a complete solution for certification / authority, workflow, report, data cache. Priority Consider similar platform products significantly increase the development speed. * Planning progressive development emphasizes small and regular release. Based on this, in project planning, the long-term goals and clear short-term goals should be maintained in project planning. Short-term goals are constructed by the most urgent set of system features of the company's current demand. The general approach is that each function is implemented, and the priority between the functions is determined by the customer, the developer determines the time required to complete these functions. * Feedback progressive development requires close cooperation and feedback between developers and customers, thereby adjusting the development direction at any time to determine the implementation details. Therefore, in the initial stage of each release cycle, developers do not need to spend too long over-design, but through the customer's timely feedback to determine if the development result is qualified. A considerable approach is that a client represents a long-term and development team to work together, thereby enabling the customer's feedback mechanism more institutionalize. * Licensing issues are different from many people, open source products do not mean completely free - although prices are often low. Different open source projects have different licensing methods, common like GPL (GNU General Public License), LGPL (GNU Lesser General Public License), MPL (Mozilla Public License), Apache License, Open Software License, etc. The species contain more stringent usage terms and specific legal implications. Especially in the development of project development, not only the open source component library is called, but also modify the original code, it should thoroughly study the authorization mode of the relevant software to finally determine the copyright ownership of the development results.

转载请注明原文地址:https://www.9cbs.com/read-27332.html

New Post(0)