Analysis of "Workshop" Development

zhaozj2021-02-16  56

Published in software engineering expert network reprint system analysis window, etc.

Analysis of "Workshop" Development

Old single

2003-11-20

Although the "workshop" development is only a metaphor of software development, it is really a non-small topic. Here, I roughly explored some of the reasons why the workshop development was widely used, and did not talk about the topic of the so-called "workshop enterprise". Only the relevant ideas levels on the "development method", and engineered The management content is not repeated. The words are personal opinions, and the viewer is insightful, and the wise is witnessed.

Here, "workshop" is said, mainly refers to the production model of traditional hand workshops. The so-called workshop production model is small, the general situation is: "Trades" that have mastered some skills, leading a few "buddies" who don't need too much skill, the skills of the craftsman are by their master " "Other people are basically inserted." In the production process, the craftsman arranged in his set of "rules", there is no need for what procedures, system, and more "plan", "program". The "technical authority" of the craftsman in the workshop made the boss did not dare to "pointed", otherwise he will "撂 撂", the resulting failure depends on the ability of the craftsman. In this case, the production process is basically unordered, unconstrained, the boss acts as a "manager" role almost can't talk, even the tramatic people's places, unless the boss is a very high-fashionable man.

Fruit is really like a workshop, the development process of our software company, then our software development technology backbone will not be angry, IT industry is called "High-tech" industry, and we have the skills of skills The person is more than a bad, destroyable, and destroyed! But unfortunately, most of our application software has been more appropriate in "workshop development".

In this way, we have achieved a lot of successful application development projects in this way, and it can even be said that this method supports the initial undertakings of software development. For example, many domestic computer programming masters have developed a large number of people's personal software products, such as the CCDOS, Wang Yongmin, Wu Xiaojun's 2.13, Zhu Chongjun's cced, and WPS, etc. . DOS period is an era of personal heroism, one person can be in the wind.

If you admit that our national handicrafts are supported by the craftsmen in the workshop, as the application software developing industry just two or three-year history, the tradition of our nationality should be said to be a loss. Similarly, we inherited some of the production patterns of the DOS Ages, and it seems that it is not very good.

However, in our "workshop", there is still too much project failure, this failure or manifestation cannot be implemented, or the uncontrollable, representing the development cycle, or the performance is not recognized by the project, Or behave as the final serious loss of the project, this failure is the painful of our expectations, so that we have nothing to come. In addition, the technicians have a serious lack of funds, and the management of software development management is difficult.

In the workshop software company, many things are in the brain of the developer, often because one or two developing backs, causing the entire company's paralysis. The bet is completely in this two people. The risk of capital investment is very large. If the research and development of the backbone, the company will pay the whole water, and the workshop style will seriously block the growth of software companies. .

Software development itself is indeed a complex, hard and risky job, only this, experts and scholars in China and foreign software development industry have summarized the failure experience and lessons in a large number of failure projects. The relevant learning and applies to the practice of guiding software development, and has achieved certain results. During the project development process, the "Engineering Theory" has been established in the general engineering process. Since the development method, there is a structured analysis method, component development, clean room development, and currently-oriented object-oriented analysis and development methods. Wait, there are some mature systems such as CMM, ISO in software development quality management. These standardized theories and methods have become increasingly mature and improved in constant improvement, and the engineering management and standardization of software development has played revolutionary guidance. In fact, the professional software developers have learned "Software Engineering" in the university, all the theoretical knowledge mentioned above is fully involved, and there is no specific content. Throughout these guiding theories and the development methods we have adopted, we say that the workshop development has certain use of small application software development projects, to a certain extent, not violating rapid development theory; but The scale of small software (more exclusions, large software) projects must comply with the principles and methods of engineering theory, implement standardized management, otherwise the risk of failure will be accompanied by the entire development process, but also The larger the possibility of failure, the greater the failure, once the failure, its economic loss will be very huge.

So, since there is such an engineering theory, why often do not use and implement our widely unin-faire? This is the problem of the problem, it is worth exploring! Standard, there are some reasons:

First, the market is not enough to understand the meaning of software engineering development, and there is no extensive support.

What are the contents of the "Application Software System" itself? For the user, it is often limited to "program running on the computer" such a superficial understanding, I don't know if there should be planned, investigation, program, design, quality supervision, testing, training, system description documentation, etc. What is the program? What is the goal? "Some problems have not been valued from subjective, even more difficult to talk about fundamentally grasp.

So, like today in the development of standardized engineering theory, we still use the workshop development model. Informatization, in full swing, most users have only stayed in "machine" Instead of manual, "they should have almost unknown to software products, and even almost unknown, even the functional range of the application system they need is not well defined. In this way, users are rarely proposed substantial production requirements for development companies.

The user often will expect to be husted on their selected development companies, and think that all problems will be well resolved by the developer. In this case, they will not think of the failure of software development (think that it is a developer's thing), of course, will not understand the risk factors that will lead to failure, and will not promote engineering specification methods. Come on the process. I don't know, their "high trust" is very easy to rape by the developer. Many users discover some problems after the project is quite time. When the project will be completed, or the trial stage will dispute with the developer, but The ultimately admitted is often the user, because a relatively software liner is confronted with the "inner line" developer, obviously can only recognize the incompetence of the function, the postponetion of the project ...

This "ignorant" user group is widely existed, and it is a fertile soil that is survived by "workshop development". Since the user wants to include its planning, "running" application, why bother to work hard, don't get it! It is better to find some reason to find some reason to deal with the user's "picky". When the software company does not form a standardized management system, it is impossible to establish a "comprehensive as customer information service". Enterprises have no capacity to refer the engineering process to the application implementation planning content, from this layer, In fact, it is a workshop software company to discharge his future.

The user does not understand the application software and the development process, causing the excessive estimation of the cost and development cycle of the software product, so that software companies are unable to invest more human and funds to improve development organization management, standardize the entire engineering process.

Second, standardized management theory is not valued by software development enterprise managers, risk awareness is indifferent, and personnel organizations and funds are not enough.

The so-called standardized management is based on engineering theory, and has a scientific and organized management of project implementation, which has a set of operating specifications and supervision mechanisms. For software companies with a certain scale, there is a set of technical management systems, including the management institutions, personnel equipments and perfect management systems, and the management system should strictly formulate the steps, supervision methods, must have a special supervision system. Implementation; there must be a determined development direction, formulating the vision planning of the enterprise; establishing a technical team with various technical levels, the direction of the technical direction as needed; in whole, a united, upwardly cohesive corporate culture . Especially for the software development process, we must resolutely implement the engineering management theory and method summed up the previous people, which determines the fate of a software company.

The software industry is a high-input, high return, high-risk growth industry. Before you want to get a high return, you should first consider how to avoid risks, how to make itself grow and grow. The risk is accompanied by the entire process developed by the application system, once the risk is out of control, the result is often fatal for software companies. The workshop software company tasted some sweet sweets in the workshop development of small applications, and lacking awareness of potential risk crises, complaining with their own "molded" development model, this model actually makes companies The efficiency cannot be improved, the market adaptability is low, and the internal crisis of the enterprise is four. It is a pity that the software company's policy makers often see this, and the short-term interests will easily lead to the ultimate corporate, which is the failure of the leader.

According to engineering theory and standardization management requirements, companies must invest more manpower, financial resources: customer relationship management, analysis design results review, process management process management, quality management, etc., and far non-code implementation of human support. Compared with the workshop development model, the company's manager first thought that there were too many investment, but they did not see the loss crisis caused by the risks of the workshop, but will not actively support the engineering of development efficiency and system reliability. Development; in the case where there is no necessary human guarantee and process guidance, the attempt to standardize the project group is weak, no results. In this case, it is impossible to have active practices, it is impossible to establish a sound mechanism to support engineering standard development.

In fact, theory is not accurately guiding practice, which is developed for engineering management and standardization, although many of the management agencies and process tasks can be listed, but standardized management is not required to require specific "people" behavior, not necessarily Requires the size of humanity, but requires a mechanism, system, and strict engineering process management, so if our managers do some "functional transformation", the implementator has more process, quality management awareness, is already a big leap. Theory is dead, people are alive, thousands of software companies' rise in the rise and fall of management, and software enterprise management is based on software engineering management and technical management. Third, software development technicians have contradict the practice of engineering theory and believe that labor is increased.

Some software companies often train the user after the project is completed, and it is often uncomfortable to explain the "product description, user manual" in "user document". This seems to have no improper, but if you call the project "Project", you can compare it with architectural projects, then we can also say: The building has, the drawings are lagging behind. This is very ridiculous.

The technical person in charge of the workshop development process is generally a "hero". The "design" of the application system is completed in its brain. In its consciousness, the results of the work is just a bunch of executable procedures, since it can be knocked directly Naturally, there is no need to write a "repetitive work" of writing documents.

The result of this is that due to design ideas and realization details, most system development processes become slow due to a large number of attempts, repetitive work, and many unexpected small smalls occur later. The problem, most technicians, especially technical person in charge, is "fire fire" when the wolf smoke is. Such a project, the engineering extension is often a general phenomenon, and the human resources in the "too big" situation are often adopted by "love". The more the project is, the more this. The particularity of software development determines its engineering efficiency and programmer's number of processes, no projects supported by process documentation to later, the investment of personnel may slow the progress. Project progress will directly lead to project losses, which is obvious.

Therefore, it is not difficult to understand that in the workshop software enterprise, the technician "Fire" will be respected and dependent on the company. He is the hero who has mastered the fate of the company. It is conceivable that if such a hero is separated, the intermediate result of the project supported by any document is basically "a bunch of garbage" for others, that is, the funds in the previous period are only created. " A bunch of garbage. At this time, the face of the supervisor will really look good.

First design, after design. The building is carried out on the drawings when the unmoffed work, and the modifications that may occur are implemented on the drawings, and the adverse conditions that may be caused are eliminated on the drawings, which is satisfactory to all aspects without a tile loss. The project itself is to participate in the common wisdom. This is called the project!

If someone tells you: "There is no aircraft manufacturing plant without an international aircraft manufacturing company", do you believe? If I believe, then you may have some understanding of "Software Engineering". If you don't believe, then I said: The Architectural Design Institute does not need to form your own construction company, do you agree? If the entire environmental support, why not only keep a "design institute" to easily draw high-end huge profits?

Software companies gradually form their own process mode in several projects, and it is the ultimate in forming a pipeline specification mode, but if there is a problem with a part of the pipeline, the process of developing new products will repeat the same mistakes. For this reason, CMMs currently have been strongly advocated are guiding us to solve such problems.

Fourth, the technicians did not realize the layering, and the engineering development was not well supported.

In some software companies, the technicians are exhausted, seemed to have a job, have a knowledge that has been classified, but one day he is lost: Didn't learn what technology! Many years ago, I've tried to explode, and IT is actually an endless knowledge explosion, new technologies, and a new tool, one is more complicated, one is more than one. How much is a person? How much time does it take to cope with this explosion? Realization of workshop development, requires major project implementors to be very good, not only to comprehensively master system architecture knowledge, business analysis and system design capacity, but also have a variety of popular development Tool experts, experts, network-configured experts, etc., this is unlikely to be a person, here, the shape of "hero" is difficult to see. Therefore, it is not difficult to understand that we all call the programmer as "Programmer", and absolutely can't learn what the Indian is called "CODER". The practical practical technical needs in the workshop mode have buried a film for the failure of the project.

In fact, the software industry has gradually gradually subdivided the technology in the process of gradually trending the road, and naturally, it is naturally divided by the technical personnel, which guarantees the professional technical personnel. The specialization of chemical team.

From an enterprise management and engineering point of view, the technical structure of the entire software company can be generally divided into four layers, namely technical direction decision, technical research organization, and project management implementation layer and program code layers.

The technical direction decision layer is a type of macro comprehensive technique for positioning the company's market direction, product direction and technical direction, as well as organized technology teams, planning implementation strategies, etc.

Technical research organizations are projects for project engineering, planning, programming, programming, technical difficulties, and technical strength configuration, etc..

The project management implementation layer is a comprehensive implementation of the project according to the plan according to the plan according to the plan, and the process management is implemented.

The program code layers are the technical layer of the functional program code.

System analysts, demand analysts, advanced programmers, programmers, etc., from high to low to their knowledge, experience and ability, and act as a corresponding role in the project, complete the corresponding task. In the implementation of the work content and role of the corresponding person in the implementation of the specific project implementation, according to the size of the project size and the existing personnel configuration, it can be used step by step, which is also necessary for talent training. It emphasizes the technical structure layering and technicians, more is the details of technical responsibility, rather than specific personal technical positioning, dividing technical tasks and corresponding responsibilities to specific positions, and implement the position to the specific person, this It is not contradictory with specific technicians.

For advanced programmers, programmers, etc., from the technical direction, development tools, according to the specific needs, according to specific needs, which will be more reasonable and reliable. Enterprises must have planned technical team construction and talent absorption, training, and implementation in standardized engineering management models.

Fifth, the high-end talents of software have been identified, and the general lack of standardization of management talents directly obstructs the standardization implementation of the project.

In a large environment, there are many bottlenecks that have developed in the software industry: insufficient funds, lack of talents, no core technologies, etc. Single from the perspective of talent: In India, there are about 1,000 software companies, with 280,000 software engineers, average 280 per enterprises; however China has only approximately 150,000 software developers, distributed in more than 5,000 software companies, Most business staff is less than 50 people. As a result, experts believe that today, in the world software industry, China is still producing small workshop production today.

Experts sigh in deficiencies, on the one hand, complaining about human dispersion, but in the face of the irregular and economic scale of the application software needs market operation, if software companies are blindly expanded, they will be their heavy burden, this is no Different from the scira grave. The software development method is not determined by the factor of human size, and the industrial revolution comes from the change of production technology, not the massive increase in manpower, and the industrial production is the pipeline operation, not the human tactics. The same key to the change in software development methods is the technological change, which is not a so-called "core technology", but instead guides the engineering process and management of standardized production. The standardized engineering development method is not widely adopted by the software industry. In addition to some of the reasons, the most important thing is to master the lack of high-end talents in standardized management technology!

In the software company developed by the workshop, one mentioned talents, what tools I would like to use, what system platforms have been used, the "technology" is "mainstream"? The most important look is "full talent", can you "save fire"? When it comes to technical management talents, it is not the technical personnel who can be "treated" in its technology, so when you can't find such a technical person, you have to scare people. . The managers of such a company rarely think of the understanding, understanding of the development method, and the corresponding production practices.

Adhere to the backward production method, determined that the normalized production is not recognized; the indifference to standardized management, inhibits the growth of the corresponding talents, and even kills their lives. In such a malignant cycle, the high-end technical management is seriously scarce, which is natural.

In software development companies, what is the responsibility of high-end technology management talents? We can make a lot of many, but only in the work of senior experts in foreign software: the biggest benefit is the company with the minimum price. Strange, is this not the president of the general manager? But try thinking, if a general manager has a bunch of programmers in 360 days, why do they do this for three months, do he understand? Can he have been busy?

As a company, it is said that the fundamental purpose is to two words - profit, and the industry is only a profitable means. Since it is necessary to do software to develop this industry that has its own specialty, it has to comply with the basic laws and essential requirements of its operations, and use corresponding scientific production methods and management methods.

Software companies should also consider how to survive, facing software industry survival competition and risk crisis, software companies need to have sufficient normative awareness and innovation.

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

New Post(0)