Chapter- 5�Software Project Management
Software Project Management
Management Spectrum
The People
Stakeholders
Project Manager
The following characteristics defines an effective project manager
1. Problem solving: An effective software manager can diagnose the technical and organizational issues and systematically structure a solution or motivate other practitioners to apply the solution.
2. Managerial Identity: A good manager must take charge of the project and must have confidence to assume control when necessary.
3. Achievement: To optimize the productivity of a project team, a manager must reward initiative and accomplishment of the practitioners.
4. Influence and Team Building: An effective project manager must be able to read people, to understand verbal and non verbal signals and react to the needs of the people sending these signals. The manager must remain under control in high stress situation.
Software Teams
How to lead?
How to organize?
How to motivate?
How to collaborate?
How to create good ideas?
Software Team
The best team structure depends on
Agile Team
1. The agile team is a very active team.
2. It encourages customers satisfaction by early incremental delivery of software.
3. It provides small and highly motivated project teams.
4. This is an highly motivated team who provides minimal software engineering work product.
Product
1. Before a project can be planned, the product objectives and scope should be identified.
2. Objectives identify the overall goals for the product without considering how these goals will be achieved.
3. Scope identifies the primary data, functions and behaviors that categorize the product.
4.It identifies cost, risk and realistic break downs of project task.
Process
Project
Project
To manage a successful software project, we must understand what can go wrong.
1. Software people don't understand their customers needs.
2. The product scope is poorly defined.
3. Changes are managed poorly.
4. The chosen technology changes.
5. Business needs change.
6. Deadlines are unrealistic.
7. Users are resistant.
8. Sponsorship is lost.
9. The project team lacks people with appropriate skills.
10. Managers avoid best practices and lessons learned.
Project Scheduling
1. In project management, a schedule consist of a list of project terminal elements, with intended start date and finish date.
2. The s/w project scheduling distributes estimated efforts across the planned project period by allocating the effort to particular s/w engineering tasks.
3. There are many tasks in a s/w project. The project manager defines all the task and generates the schedule.
4. Initially a macroscopic schedule is developed, identifying all major process framework activities and then the detailed schedule of specific tasks are identified and scheduled.
Factors that delay Project Schedule
Although there are many reasons why software is fail, most can be traced to one or more of the following root causes:
1. An unrealistic deadline established by someone outside the software team and forced on managers and practitioners.
2. Changing customer requirements that are not reflected in schedule changes.
3. An honest underestimate of the amount of effort and/or the number of resources that will be required to do the job.
4. Predictable and/or unpredictable risks that were not considered when project commenced.
5. Technical difficulties that could not have been foreseen in advance.
6. Human difficulties that could not have been foreseen in advance.
7. Miscommunication among project staff that results in delays.
8. A failure by project management to recognize that the project is falling behind schedule and a lack of action to correct the problem.
Principles of Project Scheduling
i. Compartmentalization: The project must be compartmentalized into a number of manageable activities and tasks.
ii. Interdependency: The interdependency of each compartmentalized activity or task must be determined.
iii. Time allocation: Each task to be scheduled must be allocated some number of work units (e.g., person‐days of effort).
iv. Effort validation: the project manager must ensure that no more than the allocated number of people have been scheduled at any given time.
v. Defined responsibilities: Every task should be assigned to a specific team member
vi. Defined outcomes: Every task should have a defined outcome.
Vii. Defined milestones: Every task or group of tasks should be associated with a project milestone.
viii. A milestone is accomplished when one or more work products has been reviewed for quality and has been approved.
Project schedule can be tracked by using different scheduling tools and techniques.
Program Evaluation Review Technique (PERT)
i. PERT, is used in projects that have unpredictable tasks and activities such as in research and development projects.
ii. It utilizes three estimates of the time to complete the project: the most probable, the most promising, and the most unfavorable.
iii. It is a probabilistic tool.
iV) It uses several estimates to determine the time completion of the project and controls activities so that it will be completed faster and at a lower cost.
Critical Path Method (CPM)
i. CPM is a technique that is used in projects that have predictable activities and tasks such as in construction projects.
ii. It allows project planners to decide which aspect of the project to reduce or increase when a trade-off is needed.
iii. It is a deterministic tool and provides an estimate on the cost and the amount of time to spend in order to complete the project.
iv. It allows planners to control both the time and cost of the project.
Difference PERT Vs CPM
1. The Program Evaluation and Review Technique (PERT) is suitable for projects that have unpredictable activities while the Critical Path Method (CPM) is suitable for projects that have predictable activities.
2. CPM uses a single estimate for the time that a project can be completed while PERT uses three estimates for the time that it can be completed.
3. CPM is a deterministic project management tool while PERT is a probabilistic project management tool.
4. CPM allows project management planners to determine which aspect of the project to sacrifice when a trade-off is needed in order to complete the project while PERT does not.
Time-Line Charts or Gantt chart
Timeline Charts
Tasks
Week 1
Week 2
Week 3
Week 4
Week n
Task 1
Task 2
Task 3
Task 4
Task 5
Task 6
Task 7
Task 8
Task 9
Task 10
Task 11
Task 12
Concept of Task Network
Ways of Project Tracking
Tracking: - can be accomplished in different ways:
Project Risks
What can go wrong?
What is the likelihood?
What will the damage be?
What can we do about it?
Risk Management
Concept of Proactive and Reactive risk strategies
Reactive:
1. Majority of the software teams and managers rely on this approach i.e., nothing is done about risks until something actually goes wrong.
2. Here when something goes wrong the team files into action and attempts to correct the problem.
3. Here disaster management or risk management is the choice of management technique.
Proactive:
1. Here the primary objective is to avoid risk and to have a contingency plan in place to handle unavoidable risk in controlled and effective manner.
2. Here the proactive strategy start in the early of project development.
3. Possibilities and types of risks are identified, they are checked and arranged as per their priority and impact and prioritized according to their importance.
4. Then after ranking the risk the main plan of the project team is to avoid the risk.
Types of Software Risks
There are two basic types of risks:
(a) Generic Risk : Generic Risk is the general purpose possible threat to every software product.
(b) Product Specific Risk: Product Specific risk can be find out only by those with a clear understanding of the technology going to be used for that project.
Different Categories of Risks: -
(a) Project Risk: - Threaten the project plan. That is if project risk become real it is likely that project schedule will slip and that costs will increase. Project risks identity potential budgetary, schedule, personnel, resource, customer and requirement problem.
(b) Technical Risk: - Threaten the quality and timeliness of the software to be produced. If technical risk becomes real, implementation may become difficult or impossible.
(c) Business Risk: - Threaten the viability of the software to be built. Business risk often jeopardizes the product or the project.
(d) Market Risk:- Building product that no one wants
(e) Strategic Risk: - Building a product that no longer fits into the business strategy
(f) Management Risk: - Building a product that the sale force doesn‘t understand.
(g) Budget Risk: - Losing budgetary or personnel commitment
Risk Assessment
Risk Management Paradigm
RISK
control
identify
analyze
plan
track
Risk identification
Risk Analysis
Risk refinement : In initial stages of project planning a risk is stated generally. As the time passes it is important to divide that risks into its sub types and try to refine it.
The way to refine risk is to represent the risk in condition – transition – consequence i.e. CTC format. The risk can be stated as follows.
<Condition>(Possibly)<Consequence>
Risk Prioritization
RMMM strategy
Risk Mitigation
Risk Monitoring
Risk Management
Software Configuration Management (SCM)
Elements of software configuration management system
Four important elements that should exist when a configuration management system is developed:
Component elements -a set of tools coupled within a file management system (e.g., a database) that enables access to and management of each software configuration item.
Process elements -a collection of actions and tasks that define an effective approach to change management (and related activities) for all constituencies involved in the management, engineering, and use of computer software.
Construction elements -a set of tools that automate the construction of software by ensuring that the proper set of validated components (i.e., the correct version) have been assembled.
Human elements-a set of tools and process features (encompassing other CM elements) used by the software team to implement effective SCM.
Need of SCM
1. Identify change or changes.
2. Keep control on change.
3. For ensuring that change is properly implemented.
4. Make report of changes and present it to the people who have interest in that.
Benefits of SCM
1. Changes can be made with ease throughout software development process.
2. Changes are systematically recorded.
3. Changes are available whenever required for review.
4. Different version of software project can be created and process can be continued for long time.
5. Repository is available in the form of database.
6. Every object's detail can be stored with its attributes.
7.Changes can be traced in forward and backward direction.
8. Customer requirements are fulfilled by accepting changes.9. It is one of the activities of software quality assurance that supports validation as well as verification.
10. Avoids lot of confusion because of change in software project.
Software Configuration Management Activities/Process
Identification of change
To control and manage configuration items, each must be named and managed using an object-oriented approach
Basic objects are created by software engineers during analysis, design, coding, or testing
Aggregate objects are collections of basic objects and other aggregate objects
An entity-relationship (E-R) diagram can be used to show the interrelationships among the objects
Software Configuration Management Activities
Identification of change
To control and manage configuration items, each must be named and managed using an object-oriented approach
Basic objects are created by software engineers during analysis, design, coding, or testing
Aggregate objects are collections of basic objects and other aggregate objects
An entity-relationship (E-R) diagram can be used to show the interrelationships among the objects
Version Control
Combines procedures and tools to manage the different versions of configuration objects created during the software process
An entity is composed of objects at the same revision level
A variant is a different set of objects at the same revision level and coexists with other variants
A new version is defined when major changes have been made to one or more objects
Change Control
Change request is submitted and evaluated to assess technical merit and impact on the other configuration objects and budget
Change report contains the results of the evaluation
Change control authority (CCA) makes the final decision on the status and priority of the change based on the change report.
Software Configuration Audit
A software configuration audit complements the formal technical review by assessing a configuration object for characteristics that are generally not considered during review. The audit asks and answers the questions such as:
Has the change specified in the ECO been made? Have any additional modifications been incorporated?
Has a formal technical review been conducted to assess technical correctness?
Status Reporting
Configuration status reporting (sometimes called status accounting) is an SCM task that answers the following questions:
1. What happened?
2. Who did it?
3. When did it happen?
4. What else will be affected?
SCM Repository Functions
Data integrity: It ensure consistency among related objects.
Information sharing: Sharing information among multiple developers, multiple tools, manages and controls multiuser access to data.
Tool integration: Establishes data model that can accessed by many software engineering tools, controls access to data.
Data integration: Provides data base functions that allow various SCM task to be performed on one or more Software Configuration Items(information as part of project) .
Methodology enforcement: Defines an entity relationship model stored in repository for software engineering.
Document standardization: It is a standard approach for creation of software engineering documents.
SCM Tool Features
Versioning - control changes to all work products before and after release to customer.
Dependency tracking and change management - tracking relationships among multiple versions of work products to enable efficient changes (link management)
Requirements tracing – depends on link management, provides the ability to track all work products that result from a specific requirements specification (forward tracing) and to identify which requirement generated by any given work product (backward tracing)
Configuration management – works closely with link management and versioning facilities to keep track of a series of configurations representing project milestones or production releases
Audit trails - establishes additional information about when, where, why, and by whom changes were made