Shao Kai Interview
Reporter / Yan Hui
Shao Kai, the directors, senior vice president, general manager of NC business unit. Gained a master's degree in Computer Science, Harbin Institute of Technology, joined UF in 1991, served as Vice President, General Manager of Product R & D Center, Quality Director, and Information Director. Mr. Shaoai has a member of the Standing Director of the Beijing Software Industry Association and the National Standardization Commission TC151 Technical Committee.
UF software is a software company listed on the domestic motherboard, which has injected new vitality for the development of China's software industry. This makes us not to invest in the attention of this "giant Mac" software company, of course, we can find inside, but the programmer culture in User's company. In this issue, we will take you into the UF Building in Beijing, the senior vice president of direct use of friends, and look at the programmer culture of the user software in his eyes and his view of the development of programmer. .
The success of UF is reflected in the programmer, there are three aspects: focus on finance and management software, users demand first, emphasize program reliability.
"Programmer": UF software is now a number of software companies in China, but also a banner of domestic software, how do you see the success of users and programmers?
Shao Kai: User's development is still successful. As a senior management personnel of UF, I think, first, users are very focused. In the first few years, we only focus on financial software. Since 1988, we have been developing financial software to have now taken more than ten years. Many core programmers write a lot of financial software, and the program code is also very stable. I have been in contact with many programs since 1991. I have experienced many versions. I'm responsible for NC. I feel that every version has integrated the core and ideas of previous versions. Each upgrade is a big version, the software has one Large improvement, the company has also developed to a new stage.
The second is to treat users as God. Many other company programmers do not take this issue as a matter. But UF can write a financial software for more than ten years, what is written? In fact, it is to listen to the various needs of the user. We think that users' needs are reasonable. User's programmers will not directly accuse the user's request is unreasonable, but at the same time respecting user opinions, analyzing users need, refining and abstract, doing software better.
The third is the reliability of the program. I have heard that the programmer looks like a friend's product, thinks the technology of utilies software. But what is the technical advancement of the application software, many people are unclear. In fact, whether it is VB or C , Java development, product stability is the most important, and users have been doing tireless efforts in this regard. Our programmers are very clear, users have thousands of users (currently reached 300,000 users), if our products have been sent in the case of legacy, it is possible to cause tens of thousands of users to have errors. The loss of users will not be estimated, and tens of thousands of errors may have tens of thousands of calls to the company headquarters, and the entire user's maintenance network will be paralyzed. Therefore, we write a line of programs to test many times. There are 1/3 of the full-time testers in UF developers, and there are many part-time testers, we call "Battle Test" - Thousands of hammers.
In UF software, the programmer does not have the superior feeling of the stars, they are limited by many regulations, but these restrictions ensure steady development of their software career. Software culture of UF is not a cultural culture.
"Programmer": Is the programmer in a single position in UF Software? Where is their development space? What do you think of programmers cultural core?
Shao Kai: Relatively, UF company is a software company that has been developing for a long time, so some of its own programmer culture. In UF, the programmer will encounter a lot of things that they are not willing to accept, such as a lot of documents, strict testing. Especially for new hands, they will be uncomfortable to adapt to the environment here. For example, the UF development department has a very important and frequent work, which is the review of the various stages and links of the software, in the program design phase, this review code comment. Use the projector to write the code written on the big screen, call a lot of related programmers, and come together to review this code.
In the face of a design requirement, how is the code written, this is not difficult. The process and atmosphere of the review are also very peaceful (Peer Review), and in the previse, others were prevented from their own code, the author's feeling is still different. Different from writing programs and doing questions, the test is generally only one correct answer, as long as the last result is right, everyone will not say anything. However, there are more problems involved in writing procedures, and everyone will see if they meet the standards and functions. For example, an algorithm, the number of lines used in a function cannot be too long (generally must not exceed 50 rows). And it will also check if this algorithm is in combination with the design requirements, how to implement the method, the correctness of the algorithm, the author of the program is more uncomfortable. Especially many programmers have strong self-confidence. But more people think this is an incentive, challenges and proof. In any case, the program code needs to be brainstorming, repeated consideration, excellence, rather than writing the car.
In UF, we call application experts, system analysts, architect designers, programmers, testers are technicians. In this group, the programmer is not a family of tip, nor does it have a sense of superiority in small software. Among the programmers of UF, there is a very important group that is the software architect designer, and some people call Architect. They grow up from programmers, they are proficient in programming, large-scale software development first by them, and then the components of programmers are designed, and these people are also very high. Another important group is an application expert. model.
UF is a private enterprise, software is only sold out, and only a long-term occupation market can be considered successful. Therefore, the role of pre-sales consultants, implementing experts, sales and other personnel are very important. A successful pre-sales support and business negotiations can give users a great value solution, while bringing rich income to user friends. Therefore, in UF, senior sales staff, senior consultants are better recognized, although the general programmers are difficult in this area, but in a product line, various roles are closely fitted.
In UF, most programmers want to achieve better results, generally should develop from the main program, architect or the project leader, development manager, product manager. UF provided a very good environment for long-term career development.
UF is a company that has developed software development in China, and we are currently vigorously implementing CMM, PSP, big team collaboration, aspect review, while creating a very open development culture. All work is a documentation, not a person; most of the work is collaborating, not just by personal. In the development of NC, we only write a software product program in the process of only 5 months, and this may be rare in China.
Therefore, the software culture of UF is not a priority culture, but focuses on management, project management, software engineering, and pay more attention to the process improvement, and the development of the organization has fairly professional people. This culture and programmers itself have both conflict and integrated. It gives programmers a very realistic, but very exercise, very developing potential working model. From the long-term operation of software companies, this is the right way of development. Only in this mode, the programmer can realize the value of the software in the user application site, and the user may return the value to the programmer. The technology development process of utilies software is the process of continuous improvement in China software companies. It is not a simple pursuit of technology, from early finance software to the current NC, software is more and more complex, more and more new technologies, but this is not complex and complicated, only one sentence, technology is applied this.
"Programmer": Please talk about some experiences and opinions on the development of UF software technology?
Shao Kai: I started to participate in the development of users from the software products of the second generation of users. Now it is the product manager of NC. After more than ten years of development, users develop from a single financial software to now more industries, more Application areas and hierarchies, perfect series of management software products and application solutions, as well as applications and project implementation services, and the development process has experienced a lot of changes.
From 88 years to 92 years, the initial user after analyzing some of the financial requirements of some specific users, after abstract and refining, designing general financial software, launched the products of early mass sales, this is a very valuable breakthrough, that is, software Generalization and commercialization. Generalization and commercialization are technical capabilities that software product companies must establish.
From 92 years to 95 years, when the DOS-based financial software is 5.0, sales scale has expanded rapidly, and the scope of software applications also expand from financial applications to the import and distribution applications. When inheriting versatility and commercialization, software reuse Technology began to adopt, for repeated program code, such as menus, data maintenance, input and output data tables, printing, help, etc., we will make these programs to make universal abstraction, forming DOS-based user application software development platform, greatly improved Development efficiency and software stability. UF Based on the last software version of the DOS platform 6.0 version of the series software as an epoch-making financial software product. There is still a user in use.
From 94 to 1997, due to the rapid development of hardware and software technology, users started to support Windows, the initial user product is based on Windows3.1 development, because Windows 3.1 is the operating system of the 16-bit address, that is, support graphical interface , Multi-task operation, by supporting complex database operations, so the application software based on Windows 3.1 development a certain size is very difficult. After the operation system of Windows95 this 32-bit address, UF immediately launched the operating system software product.
After 98 years, UF products have developed to version 8.0. While obtaining major breakthroughs in the application, our programmers began to focus on software hierarchical design and subsystem centralized control management. Gradually use a large-scale relational library for software optimization design, and gradually increased Web application functions to support the Internet application.
8.0 The product is now integrated with advanced MRP systems, develops to the U8erp 8.21, suitable for small and medium-sized enterprise applications. It is the main force of the UF software family, with the most user software products. The follow-up development of U8 ERP will be based on Microsoft's .NET technology, pursue optimization of high-efficiency software design and ease of use, and comprehensive facilities for SMEs.
97 is beginning to develop, 2001 NC management software in 2001 is the highest point of the software development of nearly 15 years. This is the crystallization of 200 Java programmers. Its applications include management accounting, accounting accounting, human resources, manufacturing, supply chain, customer relationship, data warehouse, business intelligence, and customization. Target users are large and medium-sized enterprises and administrative institutions that help user units achieve centralized management and collaborative business based on network operations, and NC provides a variety of industries. During the entire development process, in order to solve the various application problems and improve the use effect, the NC programmers have developed and used a large number of software new technologies. J2EE technology provides a means for designing Internet-based large enterprise applications. Java technology enables the developed software to support numerous parallel and subsequent advanced techniques.
UF NC designed intermediates and rich public technical components with autonomous copyrights on the basis of J2EE. Data exchange technology is used in the software system to constitute a system information exchange platform. All information is transmitted, not directly coupled to the corresponding components, but put the information in the information exchange platform, which is automatically looking for the corresponding application components. For example, when there is a cost application, release the request to this information exchange platform, the system will analyze the most appropriate way to purchase, and return the corresponding information to the system. Monitoring management also has a good design, such as inventory alarm, if the stock is out of the alarm line after a batch of goods, a alarm state is placed in this information exchange platform, and the corresponding procurement application will be generated while stopping Respond to any normal shipping requirements.
In the development method, the technology development process of recalling users, we have implemented structural procedures development, but because of the access to applications and technology, it has been difficult to establish a standard and perfect, suitable for application software development technical specifications. Object-oriented technology is now available. Basically opened the whole process of analyzing the programming from demand. Also have advances in tools. From simple programming software to do with some development tools, such as object-oriented analysis design tools, relational database design tools, etc., there are advanced test tools and version management tools. On the language, from the earliest class DBASE command language to the current Java and C #.
In determining technology applications, UFC is not simply pursuing a popular hot technology, but considers the use of such techniques to give users the value and the impact on software development process. From early financial software to the current NC, software is increasingly complex, more and more new technologies, but this is not complex and complicated, reflecting only one sentence, technology is applied.
Personal views on programmers: programmers' pursuit is not the problem of money and "big", but how to enlarge their Coding value. I want to say to the programmer, I have to choose a path that suits my development as soon as possible. If I don't choose to choose, I will find that I am very embarrassed, and I am lost. Selected, insist on doing, it will become more and more light.
"Programmer": What opinion on programmer development is in the experience of your personal development?
Shao Kai: I personally come and look at it. Focus is the foundation of success, and it can be successful for career. Focusing is not to say that only the program is speaking, but it includes focusing on a field. Whether it is an enterprise management software, tool software or other types of software can be. At the same time, in this focus pursuit process, it is necessary to live in the temptation. Only in this way, after a few years, you will find your success, find your programmer career is not a flower.
Programmers must have successful development, focus on a certain field, do valuable procedures, which is very important. I don't oppose a programmer to do software technology, but don't go to hunt. It seems that others tell something, you know. In fact, I don't understand what is not the most important, and make better results are most important. I think some aspects can be hobby, not necessarily doing a career. I used to think about: How to enlarge your value? Write a program yourself, write a thousand rows a day, it is very hard. But if it is to bring a ten team, everyone only writes two hundred lines every day, it is 2,000 lines. This product may not be done alone, but everyone's value is concentrated inside and will have greater value. Of course, it is not necessarily to be a project manager, and the product architect designer can also achieve its own ideas to the direction of the boot process. This is to enlarge your own program value.
Thinking of using thousands of programmers in the country in writing procedures, be used as user software development management personnel and technical person in charge, I have my valid code for the user's program, and my value is a kind of gratification .
I think the programmer has three directions: system analysis, architecture design and development management. You can walk along the product development manager, departmental manager, and the general manager of the R & D department; can also be a group's main designer, full-time designer, to the company's general architecture designer; or systematic analysis, application analysis. I want to say to the programmer, you have to choose a way to develop it as soon as possible. If you don't choose, it will be very stunned. After a few years, you will find yourself and don't know what to do. With a goal, don't change frequently, I have been insisting on (can I insist on ten years), definitely be successful.