You are on page 1of 9

Software Project Management

Software Project Management


Sandeep Kumar Agarwal Assistant Professor, Department of Computer Applications B.I.T., Meerut
Email: bit.sandeep@gmail.com
Contact No.: 9760034909

The course is an introduction to project management. The course provides the concepts and tools necessary for managing complex projects, with a particular focus on managing software development projects and the software quality. (Everything you ever wanted to know about how to get things done!)

Books (Software Project Management)


B. Hughes and M. Cotterell, Software Project Management, TMGH R. S. Pressman, Software Engineering, McGraw Hill. Kathy Schwalbe, Information Technology Project Management, Vikas Pub. House. R.Mall, Software Engineering, PHI S. A. Kelkar, Software Project Management , PHI

Motivations
Most of the courses in Computer Applications focus on the technical aspects of software development (how to do testing, how to write requirements, how to model systems) or on notations (UML, Java, ) However, in order to build good software, you need a well defined and managed processif you want to develop software on time and on budget, there is no way you can do it without managing the development process

Who needs software?


Most software is built in organizations for people with specific needs.
A stakeholder is a anyone who has an interest (or stake) in the software being completed Stakeholders might be internal to the project team, external to the project team but in the same organization, or totally external to the organization. A user is someone who will need to use the software to perform tasks. Sometimes stakeholders will be users; but often the stakeholder will not use the software.
For example, a senior manager (like a CEO or CTO in a company) will usually have a stake in the software that is built, even if he wont ever use it.

Who builds software?


Software is typically built by a team of software engineers, which includes:
Business analysts or requirements analysts who talk to users and stakeholders, plan the behavior of software and write software requirements Designers and architects who plan the technical solution Programmers who write the code Testers who verify that the software meets its requirements and behaves as expected

Laws of Project Management

Project Management
requires fundamental competences and skills:
How do you estimate the time it will take to complete a task? How much am I going to charge for a project? How do I deal with people in the project team, e.g. keep them motivated? How do I assess whether the project is on time, on budget, and on schedule? How do I control the quality of the final output?

Projects progress quickly until they are 90% complete. Then they remain at 90% complete forever. When things are going well, something will go wrong. When things just cant get worse, they will. When things appear to be going better, you have overlooked something. If project content is allowed to change freely, the rate of change will exceed the rate of progress. Project teams detest (hate) progress reporting because it manifests their lack of progress.

Software Project Management


The Project Management techniques are intrinsically multidisciplinary what you will learn in this course is applicable to virtually any other (engineering) domain. There are however certain characteristics that make the management of software projects particularly interesting.

Software Project Management


Why is software project management interesting: The product is intangible The product is uniquely flexible Software engineering is not recognized as an engineering discipline with the same status as mechanical, electrical engineering, etc. The software development process is not standardised.

Software Project Management


Deals with the management techniques required to
Plan Organize

Software Project Management


uses concepts and techniques for
Management of people, process, & problems Managing S/W product & process through metrics Estimation of efforts, cost, schedule etc. Risk analysis for overall project success Quality assessment and control Software Quality Assurance (SQA) Formal Technical Reviews (FTR)

Control

Monitor

Software Project Management


Concerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations developing and procuring the software. Project management is needed because software development is always subject to budget and schedule constraints that are set by the organisation developing the software.

SPM Objectives
To explain the main tasks undertaken by project managers To introduce software project management and to describe its distinctive characteristics To discuss project planning and the planning process To show how graphical schedule representations are used by project management To discuss the notion of risks and the risk management process

Project Management Cycle


Plan the Project
What are the deliverables? What tasks are needed to produce the deliverables? What resources are needed and for how long? What will the project cost?

Project Management Cycle Ctd..


Control the Project
What happened since the last time the project plan was updated? What is the effect on the schedule? What problems or opportunities need to be addressed? Are we on time and within budget?

Schedule the Project


Who will work on it? When are they available? What other resources are needed? How can the resources be acquired and used?

Management activities
Proposal writing. Project planning and scheduling. Project costing. Project monitoring and reviews. Personnel selection and evaluation. Report writing and presentations.

Project Management
The project manager plans and guides the software project
The project manager is responsible for identifying the users and stakeholders and determining their needs The project manager coordinates the team, ensuring that each task has an appropriate software engineer assigned and that each engineer has sufficient knowledge to perform it To do this well, the project manager must be familiar with every aspect of software engineering

Identifying Needs
The project manager drives the scope of the project.
The project manager should identify and talk to the main stakeholder The effective way to show stakeholders that their needs are understood and that those specific needs will be addressed is with a vision and scope document

Vision and Scope Document


A typical vision and scope document follows an outline like this one:
1. Problem Statement
a) b) c) d) e) a) b) c) d) Project background Stakeholders Users Risks Assumptions Vision statement List of features Scope of phased release (optional) Features that will not be developed

2. Vision of the Solution

People Management Spectrum


4 Ps
People Product Process Project
The most important contributors to a project Senior Managers, Project Managers, Developers, Customers and End-Users. Activities related to People
Recruiting/Selection Performance management Training Compensation and Career development Organization and Work design Team/culture development

MOI Model of Leadership Motivation, Organization and Innovation. Another View: 4 key Traits
Problem Solving Managerial Identity Achievement Influence and Team Building

Productivity and People

Software Team Roles

Factors while Structuring Teams


Difficulty of the problem Size of the programs Team Lifetime Degree of Modularization Required Quality and reliability Rigidity of delivery date Degree of communication required.

Product Dimensions
Software Scope
Context: How does the s/w to be built fit into business context? Information objectives: What data objects are produced as
o/p and what are required for i/p?

Function and Performance: What function does the s/w


perform to transform i/p data into o/p? Are there any special performance characteristics to be addressed?

The s/w project scope must be unambiguous and understandable at all management/ technical levels.

Problem Decomposition
partitioning or problem elaboration focus is on functionality to be delivered and the process used to deliver it

Process Considerations
The problem is to select the process model that is appropriate for the s/w to be engineered. Process model chosen must be appropriate for the:
customers developers characteristics of the product project development environment

Process Considerations Contd.


Each function to be engineered must pass though the set of framework activities defined for a software organization Work tasks may vary but the common process framework (CPF) is invariant (e.g. size does not matter) Software engineers task is to estimate the resources required to move each function though the framework activities to produce each work product

Project planning begins with conceiving the concept of the product and the process and their improvement

Project
90/10 Rule
90% of the effort on project to accomplish 10% of the work

Managing the Project


Start on the right foot Maintain momentum Track progress Make smart decisions Conduct a postmortem analysis

Planning Monitoring Controlling

5WHH Principle
Why is the system being developed (Scope) ? What will be done ? When it will be done (Schedule) ? Who is responsible for a function? Where are they organizationally located? How will the job be done technically and managerially? How much of each resource is needed?

Critical Practices
Formal risk management Empirical cost and schedule estimation Metric-based project management Earned value tracking Defect tracking against quality targets People-aware program management

SPM Framework
Includes conduction of all such activities and tasks that are necessary for successful completion of the software project.
Scope
Management Stakeholders needs and expectations

Framework Activities
Scope Management - Defining and managing all the work required to successfully complete the project. Time Management - Estimating how long it will take to complete the work, Developing an acceptable project schedule and ensuring timely completion. Cost Management - Preparing and Managing budget for the project. Quality Management - Ensuring that the project will satisfy the stated or implied needs.

Time
Management

Cost
Management

Quality
Management

Project management Integration with Tools & Techniques

HR
Management

Communication

Management

Risk
Management

Procurement Management

Framework Activities-Contd.
Human Resource Management Making effective use of the people involved with the project. Communication Management Generating, collecting, disseminating and storing project information. Risk Management Identifying, analyzing and responding to risks related to project. Procurement Management Acquiring or procuring goods and services for a project.

Project Management Tasks


Project Initiation Project Planning Project Monitoring Project control Evaluation Alternatives Taking and Communicating Decisions Motivating Liaison with all concerned

Project Initiation
Study customer order with care Investigate needs/business objectives Find constraints and opportunities Select development strategy for considering alternatives Revalidate estimates Develop and review initial project plan Requests for resources Organize the team Begin the project with a kick-off

Project Kick-off
Needed for creating a team spirit rightup-front and for achieving a common understanding of project requirements Following aspects are shared and discussed
- Customer commitments - Project plan and milestones - Risks - Performance measures - Inter-group commitments - Baselines

Project Planning
Planning is the process of determining a reasonably detailed way to go from inputs to outputs (achieving requirements) A Project plan specifies the following
- What work will be done - How will it be done - How much will it cost - When will it be accomplished - Who will do the work - How will the status be reported - How will the progress be reviewed - In general, how will it be managed

Project Plan should include


Project objectives Customer and Management requirements Inputs Work Breakdown Structure (WBS) Deliverable Breakdown Structure Acceptance Criteria Methodology to be used Human Resource Requirements Dependencies in the plan

Project Monitoring

Project Plan Contd


Estimation Risk Analysis Project Organization Quality assurance approach Customer Feedback Periodic Reporting and Reviews Other Plans and Attachments

Recording Project Data


Elapsed time Work achieved Resource Cost Resource expanded Other factors such as staff turnover, sickness, training, breakdowns etc

Comparison with Budget vs Actual


- Cost, Schedule, Resources

Project reporting
- Product factors - People factors - Process factors - Resource factors - Environment factors

Project Control
Types of Review Meetings
Internal project meetings Project steering meetings Customer review meetings Issue resolution meetings

Project Liaison
Customer Steering Committee Quality

Project Evaluation
- Deviation due to performance - Deviation due to changed objectives - Risk management issues

Supplier Project Manager

Training

Team Members

Finance

Corrective Actions for Better Results


Justification of project existence Realloaction of resources Rescheduling Overtimes and costs
Resources Legal

A Typical Project Organization


Steering Committee Customer Project Manager

Project Responsibilities (Customer)


Giving requirements and requirement clarifications Providing agreed inputs such as acceptance criteria, test data, etc. Accepting deliverables

Quality Team Leader

Development Team Leader

Configuration Team Leader

Team Members

Project Responsibilities (Steering Committee)


Reviewing and approving
- Project plan (estimations, costs, schedules) - Requirements change requests

Project Responsibilities (Project Manager)


Initiating the project Understanding project requirements Planning, estimation and scheduling of the project Identifying training needs and planning for training Accepting project inputs Moderating work-products (from review and testing)

Reviewing the project status Resolving the project issues

Project Responsibilities (Project Manager)- Contd


Reporting, monitoring and reviewing status Resolving issues Maintaining action log Liaison with customer and seeking feedback Releasing deliverables Closing of project

Project Responsibilities (Development Team Leaders)


Understanding system requirements Defining requirements Performing high level design Delivering work products Reporting status and resolving issues Ensuring project filing

Project Responsibilities (Quality Team Leader)


Upholding organizational policies Adhering to project methodologies Performing review and test closure

Project Responsibilities (Configuration Team Leader)


Controlling configuration library Enforcing change control Approving change requests Holding custody of change requests Doing change impact analysis Making customer release