Basic Concepts of Software Project Management
Basic Concepts of Software Project Management
Presenter
Ambili P K
1
Estimation
Estimation is the first step of planning.
The project manager needs to estimate for a project after understanding the project scope. In a software project, the effort required is the main component of cost.
Estimation
In the initial stages, estimation is done for: The effort required for the project
Note: Even good estimation cannot be expected to be within +/- 20 percent of the actual resultsat least in the beginning of a projectbecause there are many changes in most projects.
9
11
13
14
15
activities
that
For example, software project management, formal technical reviews (FTR), software quality assurance (SQA), software configuration management (SCM), documentation preparation and production, reusability management, measurement, and risk management are all umbrella activities
16
17
19
SCM
SCM encompasses all the tasks required to manage and control changes. Because changes happen throughout the software project, SCM is an umbrella activity. It impacts project planning in terms of the people and skills required, project organization, estimation of the total effort, identification of specific activities, the inclusion of these activities in the schedule, and the mechanisms to monitor and control these activities.
20
Planning Considerations
While planning, a project manager determines the work to be done and assesses how best it can be done within the cost and schedule constraints
Planning Considerations
The aspects that the project manager needs to consider while planning are as given below. The people: What skills are required in the people? How do we organize people into an effective team? How does the team interact with other interested parties? The product being built: Is the scope of the project clearly defined and understood? Are the necessary skills and resources available to achieve the scope? The process: Has an appropriate process model been selected? Has the process been adapted to the needs of the product and the project? Have the software engineering activities, umbrella activities, checkpoints, and milestones been defined?
Documenting a plan
The planning done is documented as a software project plan. The project plan defines a roadmap for a project and provides a practical way in which the project objectives can be achieved. It specifies the resources needed for the project and how they will be used.
Documenting a plan
The Institute of Electrical and Electronics Engineers (IEEE) definition of a project plan indicates what a documented project plan is intended for and what it should address. IEEE standard defines a project plan as: A document that describes the technical and management approach to be followed for a project. The plan typically describes the work to be done, the resources required, the methods to be used, the procedures to be followed, the schedules to be met, and the way the project will be organized.
Project control
The information gathered during monitoring is used for performing two types of project control activities.
Project control
Administrative control
Revising the schedule to accommodate the current project status based on the actual progress Developing a schedule for the tasks that are underway or are yet to be started such that the product delivery date is met Taking other measures to increase productivity and manage risks Requesting for additional resources or a change in the product delivery date
Project control
Technical control Controlling the quality of the product through a series of SQA activities Controlling the impact of change through a series of SCM activities
Introduction
A project schedule is a very important part of a project plan.
It is created as part of the detailed planning and forms the basis for actual work allocation and monitoring.
What a Schedule is ?
A schedule is necessary for actual project execution. The schedule helps in the distribution of the estimated effort across the planned project duration. It also helps to establish the sequence in which tasks should be performed. A predefined set of activities such as Common Process Frame work (CPF) and WorkBreak down Structure (WBS) can be used for scheduling.
Importance of a schedule
A schedule is a very important part of a project plan. The schedule: Forces the project manager and the team to plan all the work tasks, the milestones such as the quality assurance (QA) checkpoints, and the work products against specific calendar dates. Helps the project manager to identify tasks in such a way that each task can be allocated to a team member who will be responsible for it. Establishes a basis for monitoring the progress of the project and helps to check at any point in time whether the required tasks are complete, that is, it provides a clear and unambiguous way for agreeing on the satisfactory completion of a task.
Creating a Schedule
To create a schedule, we require the following: A list of the tasks to be performed in a project Details about the effort and the resources required for each task and its interdependence on other tasks
Introduction
Software products are built through software projects that are executed by project teams. The members of a project team work together and perform complex activities to complete a project.
Project leadership
The project manager should be able to: Motivate the team members so that they perform to the best of their ability. Organize processes and resources so that the project objectives are achieved. Encourage people to be innovative within the prescribed limits of the project and based on the project characteristics.
The three important team structures are: Democratic decentralized Controlled centralized Controlled decentralized
Democratic decentralized
A democratic decentralized team structure emphasizes problem solving and decision-making through group consensus. The task coordinators are selected based on their suitability for the task and change from task to task. The team members share the overall project responsibility. Communication among the team members is horizontal, that is, on the same level.
Democratic decentralized
The team structure is democratic because the team members have equal status, and it is decentralized because authority and power is not centralized in one leader but is shared by the team
Controlled centralized
This is a hierarchical structure with a clear leadership role. The reporting and communication channels are clearly definedthey are vertical and fairly rigid. The project manager has a very strong role in such a team structure.
Controlled centralized
The controlled centralized structure ensures that there is no ambiguity of roles and responsibilities and people work in a structured manner. It is particularly effective for large and long-duration projects. Problem solving is focused, and the responsibilities are clear and compartmentalized.
Controlled Decentralized
In the controlled decentralized team structure the whole team focuses on problem solving under the leadership of a technical leader. The focus of the activities in a controlled decentralized team structure is on technical issues and problem solving and not on administration.
Controlled Decentralized
The characteristics of a controlled decentralized team are as given below. There is a technical leader who coordinates the major technical tasks. The technical leader identifies secondary leaders who are responsible for the subtasks. The entire team works on problem solving.
Controlled Decentralized
The characteristics of a controlled decentralized team are as given below. There is a technical leader who coordinates the major technical tasks. The technical leader identifies secondary leaders who are responsible for the subtasks. The entire team works on problem solving.
Description
Senior Engineer
Also called the chief programmer or the technical lead, the senior engineer acts as the technical leader who plans, coordinates, and reviews all technical activities.
Backup Engineer
supports and learns from the senior engineer, and acts as a backup who can replace the senior engineer, if required, with very little loss in project continuity
Technical Staff
The technical staff typically includes two to five people. They solve the major functional elements of a problem, possibly in a compartmentalized manner, under the leadership of the senior engineer.
Support Staff
Software Librarian
The software librarian acts as the configuration controller for the team.
The seven project factors that should be considered while selecting a team structure are as follows:
Difficulty of the problem to be solved by the project Estimated size of the product to be built Duration of the project (team longevity) Degree to which the problem can be modularized Quality and reliability requirements of the system to be built Rigidity of the delivery date Amount of communication required for problem solving
Jelled teams
A jelled team is one that has a common definition of project success and an identifiable team spirit. It also has a common team culture. In a jelled team, you can expect the whole to be greater than the sum of its parts. The people in such a team are motivated and significantly more productive than in an average team.
Self-Directed Team
A self-directed team comprises individuals who have worked together in the past, have good technical skills, and have a desire to collaborate with one another. Team members have an overall perspective of the project in the context of the organization and can take decisions as a group. The team members also elect the persons who have handled any interface with external parties, including coordination and reporting. The role of a project manager is handled by an elected member and involves loose leadership instead of firm and hierarchical direction and control.
Communication
One of the most important aspects of working as a team is coordination and communication. There are many possible approaches for effective communication. These approaches differ in: The degree of formalitythe communication can be formal or informal. The media usedthe medium of communication can be oral, written, electronic, etc. The number of people involvedthe communication can be oneto-one, one-to-many, discussions, etc.
Communication
The degree of formalitythe communication can be formal or informal. The media usedthe medium of communication can be oral, written, electronic, etc. The number of people involvedthe communication can be oneto-one, one-to-many, discussions, etc.