This report is about software engineering project failures. In this report, I will first examine the importance of a good software engineering manager to a project. Then, I will identify major reasons for software engineering project fails within the software industry. At last, some suggestion about reducing project failure rates according to the knowledge and best practices will be provided. Manager is essential to software engineering project
There are nine project management knowledge areas: integration, scope, time, cost, quality, risk, communication, procurement, and human resource management (see A Guide to the Project Management Body of Knowledge, Project Management Inst. , 2000). Failing to address any of these areas will result in repeatedly diminishing a project’s outcome. This stresses the importance of a good manager to a successful software engineering project. In Mohammad’s individual case, the reasons of the failure of the project were almost caused by the manager’s failing in good performance. (Rob, 2003) Then, what characteristics should a good manager has?
First, he should be responsible and have a good leading ability to manage his team to work well together. Second, he should have strong communication ability which will help him to work well with his team as well as his clients. Third, the technique skill is very important with which he will have a broad view. Forth, he should have a critical mind which will make him have a strong problem solving ability. Reasons that cause software engineering project failures As software engineering project failures cannot be totally avoided, examining the reason why it happens help us to reduce failures.
Lack of project study Project study is very important to any software engineering project, as it helps team members to have a clear understanding about the project. Without project study, team members may not know what they are doing. This could have bad effect on the project. There are five factors (TELOS) should be included in the project study, which are technical, economic, legal, operational, schedule (Keyes, 2008). And the primary performance objectives for the software deliverable should also be established. Lack of communication
The communication both among a project team and between a team and the client is very important. Communication among a team not only makes team members to work better, but also helps senior management to get the information about the work so that senior management could make timely decision. Communication between a team and client help the team to get a better understanding about the client’s requirement, thus their work is improved. Lack of communication will be a disaster of a team. They may not be well organized. Work finished by team members may not be fitted to each others.
And the finished work may not fulfill client’s requirement. Thus, software engineering project failure may happen. Using new or unfamiliar contractors: New contractors are not familiar with the project’s personalities and systems design complexities. Changing contractor will cause this problem and is also a waste. So, choosing a good contractor who has an ongoing business relationship with a project group and avoid long-distance and out-of-country subcontracts which will make it difficult to form closer communication is very important. (Rob, 2003) Suggestion on reducing software engineering project failure 1.
The manager should conduct a good project study within the team at the beginning of a project. Practitioners should establish the primary performance objectives for the software deliverable, as these will greatly drive the type of development model and mix of practices they should use (Maccormack, Kemerer, Cusumano & Crandall, 2003). 2. The manager should conduct enough, efficient and effective communication. Face-to-face meetings, discussions, temporal collocation, and exchange visits should be organized to figure out where they are and check if the work is going as expected (Smite & Wholin, 2011). .
Avoid changing contractors, as new contractors are not familiar with the project’s personalities and systems design complexities. Choose a contractor who has an ongoing business relationship with a project group and avoid long-distance and out-of-country subcontracts which will make it difficult to form closer communication (Rob, 2003). 4. Reliable infrastructure, including a centralized repository, common configuration management tools, and rich communication media should be invested in, which will help the team to work better (Smite & Wholin, 2011). . The manager should choose useful team members. A team member chosen by manager should have a strong ability to work and communicate with other team members. And also, he should be well educated and have good technique skills. 6. To achieve all the point above, a perfect manager is indispensable. So, a perfect is very essential to a software engineering project.
Reference: Rob, M. A. ; , “Project failures in small companies,” Software, IEEE , vol. 20, no. 6, pp. 94- 95, Nov. -Dec. 2003 MacCormack, A. ; Kemerer, C. F. ; Cusumano, M. Crandall, B. ; , “Trade-offs between productivity and quality in selecting software development practices,” Software, IEEE , vol. 20, no. 5, pp. 78- 85, Sept. – Oct. 2003 El Emam, K. ; Koru, A. G. ; , “A Replicated Survey of IT Software Project Failures,” Software, IEEE , vol. 25, no. 5, pp. 84-90, Sept. -Oct. 2008 Keyes, in Leading IT Projects: The IT Manager’s Guide,, CRC Press, Aug. 2008. Smite, D. ; Wohlin, C. ; , “A Whisper of Evidence in Global Software Engineering,” Software, IEEE , vol. 28, no. 4, pp. 15-18, July-Aug. 2011