Programmers should take care of their lives and do useful things of interest. Doing useful things can be done in two ways. First, to make a truly valuable project for the user. The project is truly meaningful and useful. Second, to do the project in the right direction in the right direction. But programmers will run into many failed projects either no one has no real value or do not do things in the wrong way, using improper techniques such as reporting tools instead of queries, ESB Enterprise Bus For massive data transmission, or to do some non-functional use of the function, such as a universal user-defined query system, do user-defined workflow tools, do user-defined reporting tools, these projects undoubtedly waste the life of programmers . The author attempts to summarize several ways programmers waste their lives, as follows.
Develop a system of poor quality and performance
Programmers often encounter such a project, made out of poor quality system, operation without feedback, failure, no prompt, and very slow, from time to time to wait for a while. However, the point is that programmers have no chance or do not want to participate in the implementation and maintenance, lost the opportunity to learn and diagnose problems.
2, spend a lot of manpower and financial resources to develop a one-time project
This is often engaged in application development programmers encountered a case, a custom development of a one-time project, but this project to spend huge human costs, the final development and maintenance cycle is very long, with a huge loss or ending .
3, to develop a very beautiful fancy unmanned system
This is also the current common situation, the client should do a bright achievement project, to do a beautiful interface fancy "dazzle" system, a variety of charts, all kinds of interactive mode, all kinds of monitoring and analysis all piled on, but in the end such a system Nobody used it. This is for visiting or visiting guests only.
4, a new development of a legacy system
Programmer's leadership to re-do a product based on the original system, significantly improve maintainability scalability, increase system stability, reduce system failure. Leaders decided to convene the horse, to carry out needs research, needs analysis, architecture design, coding development test. However, this kind of thing is repeated again and again, and similarly similar needs have created a new set of new systems for different customers, and the failure instability of each system over a period of time remains the same. Various versions, a variety of code library left to programmers ... ... programmers need to continue to different customers to maintain different versions of the system.
5, to develop a project of uncertain system
No one manages the scope of the project, there is no WBS, the user makes a little mention, the project has no contract or contractual constraint, and the user has to do more and more, the system has done more and more, and finally can not be controlled. Customer dissatisfaction, programmers are also tired half-dead, trying to please customers for larger projects failed.
Develop a system that has no system role or stakeholder
The programmers do this project, although there is demand, functionality, interface, but the strange thing is that the demand is not mentioned, no one knows what these features are used. Needs do not define the role of the system and the business activities that the roles are involved in. However, such projects are not uncommon,
7, to develop a project with uncertain environment
Programmers do business applications, do not know is to use the computer or to mobile devices, I do not know is to use IE or other browser, I do not know is to use IE6 or IE10, can not be sure to browse Platform version. Mobile devices do not know whether it's iOS or Android, Android does not know if it's 2.3 or 4.0, nor does it determine the phone or tablet model. We know that medium-sized enterprise applications will be much more complex than Internet applications, almost impossible to cover all users of the terminal platform to be an excellent system must have constraints, the use of the target platform.
Programmers often have no choice but to intervene in these situations because either they knowingly act as clients or are strategic actions in the corporate department or because of the lack of basic skills and responsibilities of the project manager. Of course, the programmer can assume that he is the project manager, consider how to do these projects and timely appropriate questions or solutions to avoid wasting their lives.