Cost of failed software projects and their negative effects on business organizations clearly demonstrates the importance of software project management. There has been many debates if the software project can be managed as any other project, meaning fallowing general project management standards and methods or is software project requires special approach. Recently I read the article about the software project management -published by one of the leading companies in the field, QSM (Quantitative Software Management http://www.qsm.com/resources/research/research-featured-research), which states nine key factors to consider when launching the software projects. In my blog I will briefly summarize these nine factors:
1) Software Development is not Manufacturing
Developing the software is often a discovery process. Initial requirements are at a functional rather than an implementation level. The higher the level of the requirements the more time and effort is spent determining what to do and how to do it.
2) Schedule and Cost are not Interchangeable
The relationship between schedule and the cost/effort required to complete a software project is profoundly non-linear. When a schedule is shortened to meet a deadline, the team will not function as efficiently. The quality of the delivered product will also be degraded due to the increased communication complexity and reduced testing. Unrealistic schedules are the number one cause of project failure.
3) The Best Data for Comparison is Your Own
Many companies do not record, analyze, and use the schedule, cost, and quality data that all projects generate. This data forms a composite picture of how an organization develops software. With it, strengths and weaknesses can be identified, estimates can be grounded in reality, and achievable targets set for improvement.
4) Don’t Get Lost in the Details
When initially planning a software project it is important to focus on the large questions
• Do we know enough to make an intelligent estimate?
• Are the project’s schedule, cost, and quality constraints achievable?
• Can we staff this project?
• Is there an agreed upon change control process in place?
Most projects are over budget, exceed their schedules, and don’t meet customer expectations. This is because they did not address the big questions that focus on feasibility before addressing the minutia.
5) Change Doesn’t Come Free
Software projects are a delicate balance of tasks to complete, staff to work on those tasks, and time in which that work is done. A change to any one of these affects the other two
6) Plan and Monitor your Plan
Every project should have a project plan that specifies
• What will be delivered
• Staffing
• Schedule
Here is critical to have historical data discussed in factor #3
7) An Estimate is not a Project Plan
Estimate provides the big picture of a project and the level of risk for any particular solution. A project plan provides the detail of that project: what the individual tasks are, roles and responsibilities, and the critical path. Estimates and project plans are complimentary.
8) There’s a Lot More to Software Development than Coding
Majority of work in a software development is not in the coding. Requirements gathering, analysis, design, project management, configuration management, documentation, system and integration testing typically require 70% of a project’s total effort.
9) Plan for Project Measurement
Software measurement and analysis don’t just happen. Like any business initiative, they need clear objectives, senior leadership support, established roles and responsibilities, standards, and knowledgeable staff. By itself, project measurement does not fix anything. If your productivity and quality are poor, measuring them does not remedy the problem. However, measuring them will tell what they are so that you have a quantitative basis for evaluating the effectiveness of your improvement strategies.
Many of these nine factors can be used just about any project, however software projects do require some specifications which make the software project different than any other project.