Software project management is an essential part of software engineering. However, good management won’t guarantee success, but bad management results in project failure. Software managers are responsible for planning and scheduling development. They supervise the work to ensure that it is carried out to the required standards and monitor progress to check that the development is on time and within budget.
Software engineering is different from other types of engineering in a number of way which particularly makes software engineering difficult.
1. The product is intangible:
The project manager of a road transportation project can see the product being developed. If a schedule is missed, the effect is visible to the manager. But software is intangible. It can’t be seen or touched. Thus software project managers can’t see progress by themselves, rather they rely on others involved in the development to generate a progress report to check and take decisions.
2. No standard software process:
software processes vary from one organization to another. It is still less predictable that which software process model will cause problems for a particular project.
3. Large software projects are often one-off:
Large software projects are usually different from previous projects in the same category. This happens more widely when type of the software project is customized software products. Thus even project managers with long experience lists often can’t anticipate problems.
4. Rapid technological development:
Rapid changes in technology turn a project manager’s experience obsolete. Thus lessons learned in the previous project become obsolete in the next project.