83
1 Basic Concepts of Software Project Management- An Overview of Software Project Management Presenter Ambili P K

Basic Concepts of Software Project Management

Embed Size (px)

DESCRIPTION

Basic Concepts of Software Project Management

Citation preview

Page 1: Basic Concepts of Software Project Management

1

Basic Concepts of Software Project Management-

An Overview of Software Project Management

Presenter

Ambili P K

Page 2: Basic Concepts of Software Project Management

2

A successful software project results in a software that customers are happy with and can use to their benefit.

The project team works together and is responsible for achieving project success.

overall responsibility of project success lies with the project manager, who performs the project management activities required to co-ordinate team efforts.

What is project success?

Page 3: Basic Concepts of Software Project Management

What is project success?

Project management activities should aim at ensuring that the project meets the following.

It is completed within the scheduled time.

It is completed within the budgeted cost.

It results in a good-quality product that fulfills customer requirements.

3

Page 4: Basic Concepts of Software Project Management

4

Project Management Activities

The following project management activities are performed to achieve project success.Planning: The project manager plans the project such that if the plan is followed, project success is ensured. Monitoring and control: The project manager manages project execution to ensure that work is done as per the plan. This helps to ensure that the project is completed successfully.

Page 5: Basic Concepts of Software Project Management

Understanding the project scope

5

The project manager needs to clearly understand the scope of a project in order to plan effectively.

The project scope identifies the purpose of the software product or system.

The scope of the project must be well defined and bounded.

Page 6: Basic Concepts of Software Project Management

Understanding the project scope

6

Without clarity about the scope, the project manager would not know what to plan for. An unclear scope leads to problems in interpretation,miscommunication, and ambiguities.

Defining the components and activities is necessary to plan the project.

Lack of clarity about the scope can render planning ineffective.

Page 7: Basic Concepts of Software Project Management

Estimation

7

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.

Page 8: Basic Concepts of Software Project Management

8

In the initial stages, estimation is done for:

The effort required for the project

The overall schedule for delivering the product being built.

Estimation

Page 9: Basic Concepts of Software Project Management

Factors Affecting Estimation

9

Estimation is based on an understanding of the work to be done. The work depends on:

• The characteristics of the product being built, such as its size and complexity

• The factors that affect the project, such as the development environment and the constraints

Note: Even good estimation cannot be expected to be within +/- 20 percent of the actual results—at least in the beginning of a project—because there are many changes in most projects.

Page 10: Basic Concepts of Software Project Management

Schedule and Cost Constraints

10

Effort and schedule estimates should be based on the work to be done.

One of the most common problems faced by project managers is that they are expected to finish the project within an impractical time frame.

This approach can be explained using a three-layer depiction of software engineering.

Page 11: Basic Concepts of Software Project Management

Software Engineering Layers

11

In order to estimate the effort and the schedule for a project, we need to understand the work to be done in the project. A project is executed using a defined process, and the relevant methods, technology, and tools.

Page 12: Basic Concepts of Software Project Management

Software Engineering Layers

12

The layers can be described as given below:

• Process: A definition of the activities, tasks, milestones, work products, and quality assurance (QA) checkpoints required to accomplish software engineering work

• Methods: A description of the technical methods (for example, design methods) that enable software engineers to do their work

• Tools: A description of automated support for the process and the methods

Page 13: Basic Concepts of Software Project Management

Common Process Framework

13

To reduce the time and effort required to define the process for each project separately, some organizations establish a common process framework (CPF).The CPF is a generic and comprehensive process that can be adapted for any project being executed in the organization

Page 14: Basic Concepts of Software Project Management

14

Common Process Framework

Page 15: Basic Concepts of Software Project Management

Activities of a CPF (Contd…)

15

A CPF contains two broad sets of activities—Framework and Umbrella. Framework Activities are major software engineering functions.

A generic set of framework activities is communication, planning, modeling, construction, and deployment.

Page 16: Basic Concepts of Software Project Management

Activities of a CPF (Contd…)

Umbrella Activities are essential activities that encompass the entire process.

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

Page 17: Basic Concepts of Software Project Management

Activities of a CPF (Contd…)

17

Page 18: Basic Concepts of Software Project Management

Adapting the CPF

18

Each of the framework and umbrella activities within the CPF applies to every project.

Within each activity, the actions and the task set for each action are selected based on the project characteristics.

Modern implementations of CPF provide the adaptation as a menu-driven facility, which captures the project characteristics and uses them to select the recommended task sets.

Page 19: Basic Concepts of Software Project Management

Planning using process definition

19

A process definition is required for planning because it gives information about the tasks that have to be performed.

The activities in the process definition impact the plan.

Page 20: Basic Concepts of Software Project Management

SCMSCM 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

Page 21: Basic Concepts of Software Project Management

Planning for Quality Incorporating quality in a product is something that has to be done all through the process.Therefore, SQA, which consists of tasks such as setting standards and processes and conducting formal technical reviews, is another umbrella activity that impacts planning. The project manager should plan for SQA activities throughout the software process and also decide as to how much of the total project effort should be spent on quality-related activities such as reviews.

Page 22: Basic Concepts of Software Project Management

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

Page 23: Basic Concepts of Software Project Management

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?

Page 24: Basic Concepts of Software Project Management

Preparing a project scheduleA schedule specifies the start date, the end date, and the resource requirement for each task.Scheduling is a part of detailed planning. It is a complex activity that is well supported by tools.

Page 25: Basic Concepts of Software Project Management

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.

Page 26: Basic Concepts of Software Project Management

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.‘

Page 27: Basic Concepts of Software Project Management

Contents of a Project Plan The plan should contain sufficient information to provide an understanding of the technical as well as the management approach to be followed in the project. It should typically include the following components:

The scope of the work to be done An estimate of the resources required The way the project will be organized The processes, procedures, standards, and

methodologies to be used The schedule

Page 28: Basic Concepts of Software Project Management

Reviewing the Project Plan Planning is done at the beginning of a project so that all the resources required for the project are identified and the work is done using a systematic and pre-determined approach right from the beginning. Planning also ensures that each individual involved with the project understands what is expected and how the individual roles fit into the project.Typically, the plan is reviewed and approved by the senior management and other stakeholders.

Page 29: Basic Concepts of Software Project Management

Monitoring and control Monitoring progress against the plan is essential to be able to find deviations, take corrective actions, and stay on track.

The intention of monitoring is to detect deviations from the plan and to identify new problems, risks, and changes in project characteristics that may affect plans.

Monitoring helps the project manager in identifying the areas that require replanning. The information obtained by monitoring is used to control the project.

Page 30: Basic Concepts of Software Project Management

The basis for monitoring Monitoring is based on the administrative and technical information collected by the project manager. Administrative informationTime sheetsWeekly or monthly reportsMeetings with team members Technical informationReview reportsTest reportsReports from the configuration managerInformal discussions with the team members

Page 31: Basic Concepts of Software Project Management

Monitoring and control Monitoring progress against the plan is essential to be able to find deviations, take corrective actions, and stay on track.

The intention of monitoring is to detect deviations from the plan and to identify new problems, risks, and changes in project characteristics that may affect plans.

Monitoring helps the project manager in identifying the areas that require replanning. The information obtained by monitoring is used to control the project.

Page 32: Basic Concepts of Software Project Management

Project control The information gathered during monitoring is used for performing two types of project control activities.

Administrative controlTechnical control

Page 33: Basic Concepts of Software Project Management

Project control Administrative controlRevising the schedule to accommodate the current project status based on the actual progressDeveloping a schedule for the tasks that are underway or are yet to be started such that the product delivery date is metTaking other measures to increase productivity and manage risksRequesting for additional resources or a change in the product delivery date

Page 34: Basic Concepts of Software Project Management

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

Page 35: Basic Concepts of Software Project Management

Measurement and project management

Measurement is an essential aspect that helps a project manager in planning and monitoring a project. It provides factual data on which decisions and plans can be based. It provides factual data on which decisions and plans can be based. Without measurement, the project manager would not have a basis for planning and cannot evaluate whether the progress is satisfactory.

Page 36: Basic Concepts of Software Project Management

Basic Concepts of Software Project Management-

Project Scheduling

Page 37: Basic Concepts of Software Project Management

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.

Page 38: Basic Concepts of Software Project Management

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.

Page 39: Basic Concepts of Software Project Management

Approaches followed for scheduling

Two broad approaches are followed for scheduling. These approaches are as given below.Scheduling based on a fixed delivery date: A schedule is developed to help achieve the required delivery date. Typically, the delivery date is as required by the client or is driven by business needs. For a project requiring incremental deliveries, the schedule developed has to cater to these deliveries. Scheduling based on the available resources: A schedule is developed that optimally uses the available resources and helps to achieve the delivery date (not fixed) within the approximate time frame that has been discussed.

Page 40: Basic Concepts of Software Project Management

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.

Page 41: Basic Concepts of Software Project Management

The principles of scheduling

Based on the practice given on the preceding page, we can say that the four principles of scheduling are:

Compartmentalize or decompose a project into manageable tasks. Allocate appropriate time for each task. Define responsibilities for each task. Define an outcome for each task.

Page 42: Basic Concepts of Software Project Management

The principles of scheduling (contd.)

 The other important principles of scheduling are:

Identify the interdependence of tasks: Building a software project is a complex activity and involves problem solving by team effort using interrelated tasks. Some tasks cannot be initiated unless their predecessors are completed, that is, these tasks are dependent on other tasks. Identifying the interdependence of tasks helps in defining the sequence of tasks and when a task can start.

Page 43: Basic Concepts of Software Project Management

The principles of scheduling (contd.)

 The other important principles of scheduling are:

Define milestones based on the completion of a set of tasks: Defining project milestones based on the completion of a set of tasks forms the basis for monitoring the work performed during a project and help both the project team and the stakeholders outside the project to check the progress of the project.

Page 44: Basic Concepts of Software Project Management

The principles of scheduling (contd.)

 The other important principles of scheduling are:

Validate the effort: Validation of effort utilization, at any given point of time in a project, helps the project manager to ensure that the resources utilized in the project are in accordance with the allocated resources.

Page 45: Basic Concepts of Software Project Management

Granularity while scheduling

The main aspect to be considered while doing this is the task granularity, that is, the timeline resolution of work tasks.

The granularity is important because it determines how 'manageable' a task is and how the work is scheduled, managed, and controlled.

If the granularity is very fine, it makes the tasks too bulky to report and monitor and generates unnecessary data.

On the other hand, if the granularity is too broad, it is difficult to control the project in time

Therefore, tasks must be compartmentalized with the right granularity so that the interdependencies between tasks can be identified,

Page 46: Basic Concepts of Software Project Management

Defining milestones and the associated deliverables

Another important aspect of scheduling is the identification of milestones. A milestone is achieved if the following are completed: oA work product or a portion of a work product has been created. oThe deliverable has undergone a QA check. oThe deliverable has passed the QA check. oAll the concerned parties agree that the deliverable has passed the QA check. oThe exit condition has been achieved to move on to the next step.

Page 47: Basic Concepts of Software Project Management

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

Page 48: Basic Concepts of Software Project Management

Steps for creating a schedule

The steps followed to create a schedule are as given below:Define the process to be followed for the project. Identify the tasks for the project by defining the work breakdown structure (WBS) based on the processand the product. Estimate the effort and the time for each task, and define its interdependencies.Create a schedule for the defined tasks using the data gathered. (Use an automated tool, to enter the data about the tasks and their dependencies and create a task network. Then, adjust the network to conform to the required delivery date.)

Page 49: Basic Concepts of Software Project Management

Steps for creating a schedule

Page 50: Basic Concepts of Software Project Management

The importance of the critical path

The critical path in the schedule is very important because a delay in any task on this path affects the project schedule.

Some salient points regarding the critical path are:A project can have more than one critical path. A delay in a task on the critical path delays the project. A delay in a task that is not on the critical path does not delay the project if it is within the time limit of the tasks on the critical path. However, beyond this limit, the critical path might change to include the delayed task, and any further delays would delay the project.

Page 51: Basic Concepts of Software Project Management

Effort allocation for a schedule

Establishing a schedule requires estimating the effort for each task.

The estimation models used to estimate project effort provide a gross figure for the entire project, which needs to be distributed across the various tasks in the project.

Page 52: Basic Concepts of Software Project Management

The 40-20-40 rule

A common rule of thumb used in software projects for dividing effort in phases is the 40-20-40 rule.Front-end analysis and design are allocated 40 percent of the total effort. Coding is allocated 20 percent of the total effort. Back-end testing is allocated the remaining 40 percent of the total effort.

The 40-20-40 rule is not an exact rule but is indicative of the relative importance of the various software project activities. It makes the point that coding is not a dominant phase. The current trend is that front-end activities should use more than 40 percent of the total project effort.

Page 53: Basic Concepts of Software Project Management

Project scheduling tools

Project scheduling tools enable a project manager to define work tasks, establish their dependencies, assign human resources to tasks, and develop a variety of graphs, charts, and tables that aid in tracking and controlling the software project

Automated tools typically take in task data and generate outputs in a variety of formats, based on the selection criteria.

They can store the plan, and sometimes even multiple versions of the plan.

They can also store data on the actual progress that can be used to generate reports that show the slippage, if any.

Rescheduling is also possible by using these tools.

Page 54: Basic Concepts of Software Project Management

Using project scheduling tools for analysis

Project scheduling tools allow managers to experiment with scheduling assumptions. They enable them to do a 'what if' analysis such as: If more or fewer resources are available, how would the project schedule be impacted? If a particular delivery deadline has to be met, what is the resource requirement? If some tasks are constrained (they need to start or finish by some specific date), what is the schedule? If resource utilization has to be optimal, what is the delivery date? If a task estimate is changed, what is the impact on the delivery date? If the delivery date cannot be impacted, which tasks can be delayed and by how much?

Page 55: Basic Concepts of Software Project Management

Information gathered for tracking

Some questions that a project manager should consider for tracking are:

What tasks have been started or completed? What tasks were planned to start or complete? What variances exist on the work completed to date? What problems exist, and what can be done to resolve them? What is the estimated time and cost to complete the project? Is it on schedule and within the estimated budget?

Page 56: Basic Concepts of Software Project Management

Information gathered for tracking

Tracking is done by using various information-gathering tools, both formal and informal.

Typically, timesheets and weekly reports from team members are useful for understanding the status of tasks and the amount of effort used.

Page 57: Basic Concepts of Software Project Management

Basic Concepts of Software Project Management –

Team Organization

Page 58: Basic Concepts of Software Project Management

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.

Page 59: Basic Concepts of Software Project Management

People involved in a software project

The people involved in a software project play an important role in determining its success. They can be categorized as given below. Senior management: Oversees the project and defines the business issues involved Project management: Focuses on achieving the project objectives. It uses the resources assigned to it to plan, organize, and control the project and motivate the team. Practitioners: Perform the required technical activities, as part of the project team, to build the software product Customers: Specify the requirements for the product to be built End users: Use the product once it is ready

Page 60: Basic Concepts of Software Project Management

The project manager and the team

The project team performs the following activities under the leadership and guidance of a project manager. The software engineering activities required to build a product The umbrella activities required to support the building of a product, throughout the life of the project

Page 61: Basic Concepts of Software Project Management

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.

Page 62: Basic Concepts of Software Project Management

Traits of a project manager •Problem solving: To diagnose the technical and managerial issues that are relevant, to systematically structure a solution or motivate practitioners to develop a solution, to apply lessons from the past, and to be flexible in solving problems •Managerial identity: To take charge of the project, to control the project, and to provide technical people the assurance that they can follow their instincts •Achievement: To achieve productivity by suitably rewarding initiative and accomplishment and not punishing controlled risk taking •Influence and team building: To communicate well, to understand and react to verbal and non-verbal signals, and to remain in control in high-stress situations

Page 63: Basic Concepts of Software Project Management

Roles of team members • Analyst • Designer • Programmer • Tester • SQA specialist • Configuration controller/librarian • Toolsmith • Specialist/area expert

Page 64: Basic Concepts of Software Project Management

Alternative team structures •It is important to choose a team structure that is suitable for a project so that the team can work effectively.

The three important team structures are: •Democratic decentralized •Controlled centralized •Controlled decentralized

Page 65: Basic Concepts of Software Project Management

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.

Page 66: Basic Concepts of Software Project Management

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

Page 67: Basic Concepts of Software Project Management

Controlled centralized

•This is a hierarchical structure with a clear leadership role.

• The reporting and communication channels are clearly defined—they are vertical and fairly rigid.

•The project manager has a very strong role in such a team structure.

Page 68: Basic Concepts of Software Project Management

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.

Page 69: Basic Concepts of Software Project Management

Comparing team structures

•While the democratic decentralized team uses a small and competent team and is very effective for small projects, it is, however, not effective for really large projects.

•On the other hand, the controlled centralized team is suitable for very large projects but may lose out on creativity and conceptual integrity.

Page 70: Basic Concepts of Software Project Management

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.

Page 71: Basic Concepts of Software Project Management

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.

Page 72: Basic Concepts of Software Project Management

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.

•A controlled decentralized team is like a surgical team.

Page 73: Basic Concepts of Software Project Management

Roles in a controlled decentralized team structure

one of the first team structures defined was a controlled decentralized structure, which is also known as the 'chief programmer team'. This team structure has the following roles. The senior engineer The backup engineer The technical staff The support staff Specialists and area experts The software librarian

Page 74: Basic Concepts of Software Project Management

Description

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.

•Senior Engineer

•Backup Engineersupports 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.

Page 75: Basic Concepts of Software Project Management

The support staff includes people such

as technical writers and clerical staff, who support the engineers

•Support Staff

•Specialists & Area Experts

provide input for specific areas. They supplement the team's technical knowledge and area knowledge in specific and relevant areas such as communication and database design.

•Software Librarian

The software librarian acts as the configuration controller for the team.

Page 76: Basic Concepts of Software Project Management

Communication in a controlled decentralized structure

• There is no rigid organizational structure in a controlled decentralized organization.• The communication among subgroups and individuals is horizontal.• The subgroups may talk to each other without involving the team leader or requiring any concurrence of the team leader.

Page 77: Basic Concepts of Software Project Management

Selection of a team structure

• Project managers need to select the structure of their team based on the project requirement.•The broad aspects that should be considered while selecting a team structure, so that it is suitable for a project, are:The management style of the project manager The culture and approach of the organization The skills and personalities of the team members The problem characteristics The project characteristics

Page 78: Basic Concepts of Software Project Management

Project factors for selecting a team structure

• 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

Page 79: Basic Concepts of Software Project Management

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.

Page 80: Basic Concepts of Software Project Management

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.

Page 81: Basic Concepts of Software Project Management

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 formality—the communication can be formal or informal. The media used—the medium of communication can be oral, written, electronic, etc. The number of people involved—the communication can be one-to-one, one-to-many, discussions, etc.

Page 82: Basic Concepts of Software Project Management

Communication

The degree of formality—the communication can be formal or informal. The media used—the medium of communication can be oral, written, electronic, etc. The number of people involved—the communication can be one-to-one, one-to-many, discussions, etc.

Page 83: Basic Concepts of Software Project Management