[TOC]
Good management cannot guarantee project success. However, bad management usually results in project failure.
For most projects, important goals are:
- Deliver the software to the customer at the agreed time.
- Keep overall costs within budget.
- Deliver software that meets the customer's expectations.
- Maintain a happy and well-functioning development team.
Most managers take responsibility at some stage for some or all of the following activities:
- Project planning.
- Reporting.
- Risk management.
- People management.
- Proposal writing.
Project planning takes place at three stages in a project life cycle:
- At the proposal stage.
- During the project startup phase.
- Periodically throughout the project.
There are three main parameters that you should use when computing the costs of a software development project:
- effort costs (the costs of paying software engineers and managers);
- hardware and software costs, including maintenance;
- travel and training costs.
Factors affecting software pricing:
| Factor | Description |
|---|---|
| Market opportunity | A development organization may quote a low price because it wishes to move into a new segment of the software market. |
| Cost estimate uncertainty | |
| Contractual terms | |
| Requirements volatility | |
| Financial health |
Although the specific details of project plans vary depending on the type of project and organization, plans normally include the following sections:
- Introduction.
- Project organization.
- Risk analysis.
- Hardware and software resource requirements.
- Work breakdown.
- Project schedule.
- Monitoring and reporting mechanisms.
Project plan supplements:
| Plan | Description |
|---|---|
| Quality plan | |
| Validation plan | |
| Configuration management plan | |
| Maintenance plan | |
| Staff development plan |
The project planning process:
The project scheduling process:
There are two types of representation that are commonly used:
- Bar charts.
- Activity networks.
The most commonly used agile approaches, such as Scrum (Schwaber, 2004) and extreme programming (Beck, 2000) have a two-stage approach to planning, corresponding to the startup phase in plan-driven development and development planning:
- Release planning, which looks ahead for several months and decides on the features that should be included in a release of a system.
- Iteration planning, which has a shorter-term outlook and focuses on planning the next increment of a system.
Planning in XP:
Organizations need to make software efforts and cost estimates. There are two types of techniques that can be used to do this:
Experience-based techniques.The estimate of future effort requirements is based on the manager's experience of past projects and the application domain. Essentially, the manager makes an informed judgment of what the effort requirements are likely to be.Algorithmic cost modeling.In this approach, a formulaic approach is used to compute the project effort based on estimates of product attributes, such as size, and process characteristics, such as the experience of staff involved.
Estimate uncertainty:
Algorithmic models for estimating effort in a software project are mostly based on a simple formula: $$ Effort = A \times Size^{B} \times M $$
-
$A$ is a constant factor that depends on local organizational practices and the type of software that is developed. -
$Size$ may be either an assessment of the code size of the software or a functionality estimate expressed in function or application points. - The value of exponent
$B$ usually lies between 1 and 1.5. -
$M$ is a multiplier made by combining process, product, and development attributes, such as the dependability requirements for the software and the experience of the development team.
COCOMO estimation models
The submodels that are part of the COCOMO II model are:
-
An application-composition model
Application-point productivity
The final formula for effort computation for system prototypes is:
$PM = (NAP \times (1 - %reuse/100))/PROD$ -
$PM$ is the effort estimate in person-months. -
$NAP$ is the total number of application points in the delivered system. -
$\text{"%reuse"}$ is an estimate of the amount of reused code in the development. -
$PROD$ is the application-point productivity.
-
-
An early design model
The estimates produced at this stage are based on the standard formula for algorithmic models, namely:$Effor = A \times Size^{B} \times M$
The multiplier
$M$ is based on seven project and process attributes tht increase or decrease the estimate. Where:$M = PERS \times RCPX \times RUSE \times RDIF \times PREX \times FCIL \times SCED$ - RCPX: complexity.
- RUSE: reuse required.
- PDIF: platform difficulty.
- PERS: personnel capability.
- PREX: personnel experience.
- SCED: schedule.
- FCIL: support facilities.
-
A reuse model
The COCOMO II reuse model includes a formula to estimate the effort rquired to integrate this generated code:
$PM_{Audio} = (ASLOC \times (AT/100)) / ATPROD // \text{Estimate for generated code}$ -
$ASLOC$ is the total number of lines of reused code, including code that is automatically generated. -
$AT$ is the percentage of reused code that is automatically generated. -
$ATPROD$ is the productivity of engineers in integrating such code.
The following formula is used to calculate the number of equivalent lines of soruce code:
$ESLOC = ASLOC \times AAM$ -
$ESLOC$ is the equivalent number of liens of new source code. -
$ASLOC$ is the number of lines of code in the components that have to be changed. -
$AAM$ is an Adaptation Adjustment Multiplier, as discussed below.
If some code adaptation can be done automatically, this reduces the effort rquired. You therefore adjust the estimate by estimating the percentage of auto matically adapted code (
$AT$ ) and using this to adjust$ASLOC$ . Therefore, the final formula is:$ESLOC = ASLOC \times (1 - AT/100) \times AAM$ . -
-
A post-architecture model
Scale factors used in the exponent computation in the post-architecture model
The COCOMO model includes a formula to estimate the calendar time required to complete a project: $$ TDEV = 3 \times (PM)^{(0.33 + 0.2 \times (B - 1.01))} $$
-
$TDEV$ is the nominal schedule for the project, in calendar months, ignoring any multiplier that is related to the project scheduel. -
$PM$ is the effort computed by the COCOMO model. -
$B$ is the complexity-related exponent.
Three related categories of risk:
- Project risks.
- Product risks.
- Business risks.
Examples of common project, product, and business risks:
| Risk | Affects | Description |
|---|---|---|
| Staff turnover | Project | Experienced staff will leave the project before it is finished. |
| Management change | Project | There will be a change of organizational management with different priorities. |
| Hardware unavailability | Project | Hardware that is essential for the project will not be delivered on schedule. |
| Requirements change | Project and product | There will be a larger number of changes to the requirements than anticipated. |
| Specification delays | Project and product | Specifications of essential interfaces are not available on schedule. |
| Size underestimate | Project and product | The size of the system has been underestimated. |
| CASE tool underperformance | Product | CASE tools, which support the project, do not perform as anticipated. |
| Technology change | Business | The underlying technology on which the system is built is superseded by new technology. |
| Product competition | Business | A competitive product is marketed before the system is completed. |
An outline of the process of risk management is illustrated in Figure 22.2. It involves several stages:
Risk identification:You should identify possible project, product, and business risks.Risk analysis:You should assess the likelihood and consequences of these risks.Risk planning:You should make plans to address the risk, either by avoiding it or minimizing its effects on the project.Risk monitoring:You should regularly assess the risk and your plans for risk mitigation and revise these when you learn more about the risk.
The risk management process
There are at least six types of risk that may be included in a risk checklist:
Technology risksRisks that derive from the software or hardware technologies that are used to develop the system.People risksRisks that are associated with the people in the development team.Organizational risksRisks that derive from the organizational environment where the software is being developed.Tools risksRisks that derive from the software tools and other support software used to develop the system.Requirements risksRisks that derive from changes to the customer requirements and the process of managing the requirements change.Estimation risksRisks that derive from the management estimates of the resources required to build the system.
Examples of different types of risks
Risk types and examples
Strategies to help manage risk
Risk indicators
There are four critical factors in people management:
- Consistency.
- Respect.
- Inclusion.
- Honesty.
Human needs hierarchy
Bass and Dunteman (1963) classify professionals into three types:
- Task-oriented people.
- Self-oriented people.
- Interaction-oriented people.
The benefits of creating a cohesive group are:
- The group can establish its own quality standards.
- Individuals learn from and support each other.
- Knowledge is shared.
- Refactoring and continual improvement is encouraged.
There are three generic factors that affect team working:
- The people in the group.
- The group organization.
- Technical and managerial communications.
The effectiveness and efficiency of communications is influenced by:
- Group size.
- Group structure.
- Group composition.
- The physical work environment.
- The available communication channels.
Codelines and baselines
Version management systems normally provide a range of features:
- Version and release identification.
- Storage management.
- Change history recording.
- Independent development.
- Project support.
Check-in and check-out from a version repository
Branching and merging
[1] Ian Sommerville. SOFTWARE ENGINEERING . 9th Edition















