From http://www.cnblogs.com/jirigala/archive/2010/04/10/1709223.html
Others always think it is obvious. Simply think of this project as a small project. I don't know if it is a small project. Do other people think it is obvious again? I can't do it either. I can't do it either, but I can't do it either.
I want to share the problems encountered in the project with you for further discussion. I hope you can read this article with a correct attitude.ArticleI hope more friends can share their experiences in larger software projects with you and let you know what problems will be encountered in large software projects and how to solve them, what preparations do we usually do?
Sometimes, 20 functional modules do not represent the workload. One module is invoicing, and the other is engineering management. In this case, two modules are enough to be dead, how many functions are required for a complete inventory? How many developers? How much work does a relatively complete project management module have? Therefore, the number of modules does not represent the workload of the entire project. It is just a reference.
[1]Industry knowledge accumulation and development accumulation
01.No industry knowledge accumulation-In any industry, a complete set of business processes and business logic are required for fully understanding and in-depth analysis of these businesses, it is not a day or two that can be done, but it will become an industry expert.
02.No stable development platform Accumulation-To develop a large software project, a stable development framework is often required. If there is no stable framework and a large number of people are required to develop software projects, it is easy to build a program in disorder for a while, the entire project is also easy to be messy, and the accumulation of a stable development platform also requires a process, unless there are top experts who can contribute to the previous accumulation, for example, B/S provides a standard processing mode for webpage frameworks, adding, modifying, listing, paging, querying, and printing.
[2]Construction, division of labor coordination
03.Group Construction in a hurry-Like a football team, a team with a clear division of labor and high work efficiency can be well formed in less than one day and two days, and a process of training is required.
04.DevelopmentPersonUnstable staff-IT companies with stable personnel are more difficult to achieve. Some employees in the project often have to resign while looking at their work. How can they make a decent job?ProgramModule?
05.Insufficient staffing-If a company does not have a fixed project, the boss cannot afford the risk because it software staff spend more money than other companies, for example, foot washing shop.
06.No Tester-In software projects, there are no testers, just like the Toyota car. Although it looks pretty good, there are a lot of problems, but it is not fully tested. developers are also numb when they look at their programs every day, generally, you cannot find your own problems.
07.No artist Equipment-Currently, users have high requirements. It is difficult for programmers to make beautiful pages with powerful functions. However, it is difficult for the artist to design the pages and make the customer satisfied.
08.Too few senior developers-Although there are several developers, most of them are cainiao. Generally, the project has enough impetus and the progress is slow. Although the funds are saved, the cycle will take a long time, senior developers are asking for a higher price. Although there are projects in front of you, What are these people doing if the project is well developed? Dismissed? If the employee is not dismissed, the company will not be able to afford it in a few months, and the cost of personnel will be too large.
[3]Development Process
09.Customers' requirements are not simple either.-Currently, companies that can engage in millions of software projects are generally not cainiao companies, and they have great ideas. Management is also quite a routine. The software you develop must be able to withstand the customers' troubles, A lot of details are not enough for payment. Once we deal with it, the customer will not let it. Meeting the customer's n-plus needs is not as simple as 20 functional modules, it is even difficult to develop 200 modules.
10.Supporting Design and documents cannot keep up-Although the customer wants software functions, there are still many links, such as project acceptance and payment, which require supporting documents, supporting design documents, and communication between personnel, many documents are also required. Developers are often not good at writing documents, which is also related to our level, coupled with project cost control, n more people cannot be recruited to write supporting documents, and even the testing process for the most basic normal operation is not enough. It is more difficult to write supporting documents, it takes a few months for a person to print out thousands of pages. Each update and adjustment requires a lot of effort.
IV]Project Management
11.Delayed project funding-In general, it is not easy for a large software project to get funds in place in a timely manner. The project has gone through several more steps and often requires a long period of time, at this time, there will be no sufficient funds to allocate in the early stage of the project, no suitable developers can be recruited, and the progress of the project will be slow.
12.Management and Development are out of touch-In general, such projects are developed in different regions, and the company's leaders will not go to the site for management in person. They often conduct guidance management in different regions. Leaders have the idea of being a leader and the practice of being a leader, however, the actual project has difficulties. Generally, the command and decision-making of the leaders are out of touch with the actual project. In order to satisfy the project leaders, you still need to make some extra work, very tired.
13.There are also many people with fingers-For such a large project, leaders at all levels have their own unique opinions and suggestions. the opinions and suggestions of the project contracting team and the suggestions of the project's leaders are in fact the vast majority of people just talk about it, there is almost no real value for the project, because we need to do our jobs by ourselves, and they will not give details or solve problems, basically all of which are handled by the officialdom.
14.The communication and coordination between the project manager is not enough.-If the project manager is responsible for too many tasks, his or her energy will be dispersed, and he or she may not focus on it. For example, the project architecture is the responsibility of this person, this person is responsible for solving the project's problems, the person responsible for project beautification, and the person responsible for project personnel recruitment. The person responsible for the project can be responsible, this person is responsible, and often the communication with the leadership will be deplayed, and the communication with the customer will also be deplayed, because the energy is limited and it is used too much in other places, communication and coordination are prone to problems.
[5]Project workload and difficulty Evaluation
15.Inaccurate project difficulty and workload evaluation-In the early stage of a project, we usually look at 20 modules. If we create one module every week and five people do it, isn't it a month? Then I will give you four times the time. Can it be four months? Listening also makes sense. It takes four times. In fact, the problem lies in "Creating a module every week". In fact, it is hard to create a module every month, the complexity and complexity of the project are underestimated. There are often some methods to evaluate the complexity of the project, but the project experience is more reliable, for example, our boss's personal evaluation is often more accurate.
16.Small projects can be done fast and well, but not big projects can be well done.-The requirements for small projects are very low, and even documents are not required. However, for large projects, there are not only a large amount of work, but also many things that require coordination and communication, the handling requirements of various details will exceed many small projects, such as the difficulty and workload of 10 projects. It is likely that no large project has a high workload, it is a qualitative breakthrough in capabilities, not just a breakthrough in quantity.
17.In addition to software development, the project also requires many other steps.-For example, when we develop and confirm with the customer, the customer is often busy with other things. When the customer is not busy, we are busy modifying errors, so it is an immature things, if you really want to do a good job, you often need to invest a lot of manpower and material resources in the preparatory work. Otherwise, the period of confirmation with the customer will be a long one you cannot imagine, because the customer is blank when you are busy, you are busy when the customer is blank, or even when you are busy, so the project cycle is often evaluated by inexperienced developers very short, it actually takes a long process, small companies can easily die.
[6]Salary and Treatment
18.Project easily enters a vicious circle-If the project fails to be completed on time, the customer's payment will not be paid on time, the company's cost control will be strict, and the expenses in various projects will not be paid on time, or even be sanctioned, for example, 6 months of transportation will not be reimbursed to you, 6 months of computer subsidies will not be paid to you, 6 months of communication subsidies will not be paid to you, not just you alone, even all the staff and companies of the entire team will apply sanctions. At this time, we can think about how to work overtime until every day, so we can't get the company's understanding, so we are even more worried.
19.Daily high-intensity work, the average person can't stand-After all, working hours cannot be compared with revolutionary work. You can work overtime every day from one month and a half to 12 o'clock, however, when I work overtime every day, no overtime, and no travel subsidy, it is difficult to ensure that the daily work efficiency is very high, you still need to take a rest.
20.The benefits of new users cannot keep up with the pace of growth-When I first came to the company, I often had a very low salary, but with the growth of the level, I often need to increase a little. Otherwise, after a long time, we will still have the idea of job-hopping, after all, if you don't give it here, if someone else has a higher salary, you will usually have a few times after one year of work. It is different from finding a job everywhere when you just graduated, now we are moving towards skilled workers.
21.You cannot see the future-People need a hope. For example, if this project is ready, whether it has the value of reuse, or where the next list is located, you have worked hard for a year, without looking at the hopes of the next list, people will inevitably be somewhat disappointed. If a hard-working project can sell 2nd, 3rd, 4th, and so on, everyone will be very energetic, after all, it has become a product, which is a huge achievement for everyone.
[Summary]Software projects are not that easy
If you have more than one year of experience, a hard job, persistent pursuit, and a hobby for software, it will be easy to crash.
It is not that easy to build a large-scale quality-assurance software project. If you burn a 0.3 million-0.4 million yuan project, you can do a good job in a large software project, if it takes months and a half years to get it done, it is estimated that many big bosses are willing to burn software projects. Then, the country simply pays 30 million yuan to burn a database system, burn another 40 million, burn out an operating system, and make it so complicated.
With the increase of age and level, it is increasingly difficult to underestimate software projects. Is it so easy?
With permission management and workflow management, one person can do only a few things well.