se2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

COURSE HANDOUT

Chapter 2

SOFTWARE PROJECT MANAGEMENT

Software project management (SPM) means: Plan, organize, monitor and control software
projects. Effective software project management focuses on four Ps: People, Product, Process and
Project.

The People: The people management activities are recruiting, selection, performance management,
training, compensation and work design for team of software engineers.

The Product: Before a project can be planned, product objectives and scope should be established,
alternative solutions should be considered, technical and management constraints should be identified.
Objectives identify the overall goals of the product; scope identifies the primary data, functions,
behaviors and attempts to bind these characteristics in a quantitative manner.

The Process: Software process provides the framework from which a comprehensive plan for software
development can be established.

The Project: actual software product development i.e., writing source code, checking quality, quality
assurance, risk analysis, progress meetings and review about tasks…etc.

By combining above four Ps the general activities of project management involves:

 Develop and manage a project plan.


 Scope management: Manage scope of a project.
 Time and cost management.
 Quality management.
 Human resource management.
 Risk management…etc
 Essentials of SPM:
The traditional project management rules may not be applicable for software projects. Hence
SPM approaches from two directions. They are:
 How to plan and manage a software and,
 How to regain control of a project that has been went out of control by some events.
The following things are essential for SPM:
o Gather the right people and right tools to ensure a successful software project.
o Plan, track and control a software project at each stage.
o Conduct software reviews, inspections to spot problems before developing it to
customer.
o Recover software projects that are suffering from lack of control.

 Responsibilities of Project Manager:


Project managers plan, monitor and control the work of a team of software engineers.
References that define their responsibilities are:
 Objectives
 Responsibilities
 Limits of authority
The objective of every project manager is to deliver the product on time, within budget and
with the required quality. Project manager should involve in planning and forecasting. And also
additional management responsibilities like:
 Leading the project team.
 Communication with senior management and clients.
 Monitoring the performance of staff and the implementation of the project plan.
 Allocating resources according to the project plan and adjust those allocations as per
circumstances.
 Handling disturbances to the smooth progress of the project as equipment failures and
personal problems.

 Job Responsibilities of a Project Manager:


Project manager must identify the people or groups the project deals with, both within the
parent organization and outside. The job of project manager is, he has to work like an intermediate
among:
 Initiators
 End users
 Suppliers
 Developers sub contractors
 He/she should have good knowledge of technology used.
 Communication skills – he/she is able to communicate different people involved in project.
 Planning – every work should be properly planned.
 Team management
 Motivating his/her team to get positive result.
 Confidence builder among stake holder, customer and with the team.
 Decision making skills.
 Good relationship among team members.

 Software Project Planning:


The objective of software project planning is to provide a frame work that enables the manager
to make reasonable estimates of resources, cost and schedule. The task set (activities) for the
planning are:
 Identify project scope
 Determine feasibility
 Define required resources like human resources, software resources and environmental
resources.
 Estimate cost and time
 Develop a project schedule
o Use scheduling tools to develop timeline chart
o Define schedule tracking mechanism.

 The SPMP (software project management plan) Document:


The primary output of software project planning is the software project management plan
(SPMP) document. This should contain:
 A process model i.e., life cycle model to be followed, methods and tools to be used.
 Definition of the deliverable products
 The hierarchy of work to be followed (modules)
 Roles and responsibilities of each involver (developer, tester …etc)
 Total time for completion of project.
 Schedule for all activities involved right from start to the end of the project
 Total estimated cost
 List of all resources

 Metrics for project size estimation:


Size of a project is primary cost factor in most models. There are two ways to measure the size
of a project. They are:
 Lines of code (LOC)
 Function Points (FP)
1. Lines of Code (LOC): The most commonly used measure of source code program length is the
number of lines of code (LOC). Source code without comment lines called effective code
represented as ELOC also called as NCLOC (No commented lines of code). CLOC is called
commented lines of code. By measuring NCLOC and CLOC separately we can define:
LOC = NCLOC + CLOC
2. Functional Points (FP): Function points measure size in terms of the amount of functionality in
a system. Function points are computed by first calculating an unadjusted function point count.
Counts are mode for following categories:
 External inputs: These items provided by the user such as file names and menu
selections …etc.
 External outputs: these items are provided to the user such as reports and messages.
 External files: machine readable interfaces to other systems.
 Internal files: logical master files in the system.

 Project Estimation Techniques:


There are three project estimation techniques:
1. Empirical techniques are an educated guess based on past experience (Learning through
practical rather than theory).
2. Heuristic techniques assume that the characteristics to be estimated can be expressed in terms
of some mathematical expression (Learning through the discovery and problem solving).
3. Analytical techniques derive the required results starting from certain simple assumptions
(Learning through the logical reasoning).

 Empirical Estimation Techniques:


An assumption models for computer software uses empirically derived formulas to predict effort
as a function of lines of code or function point. The empirical data that support most estimation
models are derived from a limited sample of projects. For this reason no estimation model is
appropriate for all classes of software and in all development environments. Therefore the results
obtained from such models must be used judiciously. There are two important empirical estimation
techniques, they are:
 Expert judgment technique
 Delphi cost estimation
1. Expert Judgment Technique: One or more experts in both software development and the
application domain, they use their experience to predict software costs and this process
iterates until some consensus is reached.
Advantages: Relatively cheap estimation method. It can be accurate if experts have direct
experience of similar systems.
Disadvantages: very inaccurate if there are no experts, people may influence other experts
in the group.
2. Delphi Cost Estimation Technique:
Here, in order to solve the problem of the objectivity more than one expert is involved
in the estimation. The different estimations collected from experts will be combined to one
single estimation i.e., called conclusion. There are five steps in the standard Delphi
technique:
i. Coordinator presents each expert with a specification and a form upon to which to
record estimates.
ii. Experts fill out forms anonymously. They may ask questions to the coordinator but
should not discuss situation with each other.
iii. Coordinator prepares a summary of the expert’s responses on a form, requesting
another iteration of the expert’s estimation.
iv. Experts fill out forms, again anonymously and the process is iterated for as many
rounds as appropriate.
v. No group discussion is to be take place during the entire process. Because to
overcome the problem of influencing other experts.
Heuristic Technique –
Heuristic word is derived from a Greek word that means “to discover”. The heuristic
technique is a technique or model that is used for solving problems, learning, or discovery
in the practical methods which are used for achieving immediate goals. These techniques
are flexible and simple for taking quick decisions through shortcuts and good enough
calculations, most probably when working with complex data. But the decisions that are
made using this technique are necessary to be optimal.

In this technique, the relationship among different project parameters is expressed


using mathematical equations. The popular heuristic technique is given
by Constructive Cost Model (COCOMO) . This technique is also used to increase or
speed up the analysis and investment decisions.
Analytical Estimation Technique –
Analytical estimation is a type of technique that is used to measure work. In this
technique, firstly the task is divided or broken down into its basic component operations or
elements for analyzing. Second, if the standard time is available from some other source,
then these sources are applied to each element or component of work.Third, if there is no
such time available, then the work is estimated based on the experience of the work. In
this technique, results are derived by making certain basic assumptions about the project.
Hence, the analytical estimation technique has some scientific basis. Halstead’s software
science is based on an analytical estimation model.

 Staff level Estimation:


If any software project exceeds 70000 lines of code as per metrics of project size estimation, it is
better to follow staff level estimation. Staff level estimation involves two things:
o Estimation of effort
o Estimation of schedule
There are two standard methods to measure the effort of staffing estimation.
o Nor den’s work
o Putnam’s work
Norden’s Work: Norden observed the staffing patterns of several R&D projects. Norden’s model
assumes that effort for software projects is distributed similarly to a collection of Rayleigh curves.

Effort per unit of time

Time

Fig: Rayleigh curve


As per the norden’s work the effort will be calculated by the formula:

Putnam’s Work: Putnam studied the problem of staffing of software projects and found that the
software development has characteristics very similar to other R&D projects studied by norden and that
the Rayleigh curve can be used to relate the number of delivered lines of code to the effort and the time
required to develop the project. That expression is:

Where, L = product size in KLOC,

K = the total effort expended in the product development,

Td = Approximate time required to develop software,

Ck = state of technology constant and reflects constraints that impede the progress of
programmer.

Example: Ck = 2 for poor development environment

Ck = 8 for good development environment

Ck = 11 for excellent development environment

Here, Ck value depends on the historical data of the organization developing it.

 SCHEDULING:

The project planning consist various activities right from requirement gathering step to
development. scheduling means setting time frames or time bounds for each activity in project
planning. In general the project planning consists the following:

 Setting the project start date.

 Setting the project completion date.

 Select the project review methods, review dates and review points.

 Listing all tasks in the order in which they might be accomplished.

 Estimating resources to accomplish the each task.

 Determining skill level necessary to perform each task.


 Determining which task can be done parallel.

 Determining which task requires the completion of other tasks before they can start.

 Plan the project control to follow critical dates.

 Estimating project cost and benefit to the organization.

 Work Break Down Structure:

The development of project is predicting the tasks involved. Tasks sometimes called the project
work break down structure (WBS) are defined for the whole product or for individual functions.

A work break down structure is a hierarchic decomposition or break down of a project or major
activity into successive levels. In which each level is a finer break down of the preceding one. A
work break down structure is very similar in structure of document layout (index).

Example of WBS:

1.0 Project initiation

1.1 Drafting project planning

2.0 Analysis phase

2.1 Plan user interface

2.2 Study similar project’s documentation

2.3 xyzzzzz

 Activity Network and Critical Path Method (CPM):

Individual tasks and subtasks have interdependencies based on their sequence. A task network
also called an activity network is a graphic representation of the task flow for a project or activity
network is a graphic representation of WBS.

Example for activity network:


Risk Iimplemen
Assessmen tation
t
Concept Concept Feasibility Concluded inplement Integrate
plan ation and deploy
Scoping Planning Study

Resource implement
analysis ation

The project manager should be aware of those tasks that lie on the critical path. That is , tasks
must be completed on schedule if the project as a whole to be completed on schedule. Or the critical path
is the longest path through the network in terms of the total duration activities. The time to complete the
critical path is the time to complete the project. Critical path method charts are similar to PERT charts and
are sometimes known as PERT/CPM.

 Gantt Charts:

When creating a software project schedule, the planner begins with a set of tasks (The WBS).
Representation of tasks in chart form is called Gantt chart or time line chart. A time line chart can
be developed for entire project or developed for each project function. A Gantt chart is a matrix
which lists on the vertical axis all the tasks to be performed, each row contains single task
identification which usually consists of a number and name. The horizontal axis headed by columns
columns indicating estimated task duration.

An example for time line chart:

Work tasks Week 1 Week 2 Week 3 Week 4 Week 5

1.1 Task 1

1.2 Task 2

1.3 Task 3

2.1 Task 1
2.2 Task 2

 PERT Chart:

PERT = Program Evaluation and Review Chart.

PERT chart shows task, duration and dependency information. Each chart starts with an
initiation node from which the first task or tasks originates. If multiple tasks begin at the same time,
they are all started from the node or branch. Each task is represented by a line, which states its
name, its duration, number of people assigned to it and in some cases the initials of persons
assigned. Each task is connected to its successor tasks in this manner framing a network of nodes
and connection lines.

Note: PERT chart is similar to CPM chart, but it consist some more extra information. So we can say:

PERT Chart = CPM chart + Gantt chart

Because PERT chart consist critical path of CPM chart and information of Gantt charts.

 Project Monitoring and Control:

Project managers must pay attention towards the monitoring of schedules to complete the tasks
within the specified deadlines. Because delays in project development creates additional problems
like cost increment…etc. to overcome these problems project manager has to monitor schedules, if
something went wrong he/she has to control it by using controlling mechanisms.

 Risk management:

RISK: Concerns future happenings.

RISK: Is a probability that some adverse circumstance will occur.

The risk involves two characteristics:

o Uncertainty: The risk may or may not happen.

o Loss: If the risk becomes reality, unwanted loss will occur.

Different types of risks are there, they are:

Project Risks: Threaten to the project plan.

Technical Risks: Threaten to the quality and timelines of the software to be produced.

Business risks: Top business risks are:-

o Building an excellent product or system that no one really wants.

o Building a product that no longer first into the business strategy for the company.
o Building a product that the sales force does not understand how to sell it.

o Losing the support of senior management (Management risk).

o Failed to finish product within the budget.

Risk management means, The process of identifying risks, assessing their impact and
making decisions to minimize their effect.

Risk management involves:

1. Risk identification

2. Risk assessment

3. Risk containment

Example for Risk:

If a company wants to build product using object oriented language, first it has to check
the knowledge of employees in the object oriented language. Without checking if they forced
to development they may not give good output if they are not familiar. If we assess knowledge
before development and found not up to the mark then with the help of training programs we
might overcome this problem.

 Risk Identification:

Risk identification is a systematic attempt to specify threats to the project. There are two
different types of risks:

1. Generic risks: Are potential threats to every software.

2. Project specific risks: Can be only applicable to that project.

Generic risks are like, completion of project within the time and budget, identifying
knowledge equipped people…etc.

Project specific risks are threat to the project plan (Estimate, Schedule, Resource loading …
etc). Project specific risks can be identified only by those with clear understanding of the
technology, the people and the environment that is specific to the software that is to be
built.

Some of the risk identification techniques are:

 Product size: Risks associated with the overall size of the software to be built or modified.

 Business impact: Risks associated with the constraints imposed by management or the
market place.

 Customer characteristics: Risk associated with the degree to which the software process
has been defined.
 Development Environment: Risks associated with the availability and quality of the tools
to be used to built the product.

 Technology to be built: Risks associated with overall technology and project experience of
the software engineers who will do the work.

The answers to these questions allow the planner to estimate the impact of risk.

 Risk Containment:

After identifying all risks of a project or plan, categorize the risks like most damaging and most
likely risks. There are three different risk containment strategies:

 Avoid the Risk: If possible avoid the risk but it involves so many steps like – discussing with
the customer to change the requirements…etc.

 Transfer the Risk: not possible to avoid the risk then transfer the risk means buying
insurance or put a caution note…etc.

 Risk Reduction: Not possible to avoid and transfer then, try to minimize the impact like
changing the plan, providing help manual to overcome from that risk, put a caution..etc.

 Software configuration management:

The output of the software process if information that may be divided into three broad
categories:

 Computer programs (Both source level and executable forms)

 Work products that describe the computer programs and,

 Data (Contained within the program or external to it).

The items that comprise all information produced as part of the software process are
collectively called software configuration. Software configuration management is the task
of tracking and controlling changes in the software. Change may occur at any time for any
reason.

 Necessity of software configuration management:

The need of software configuration management is for:

 Configuration Control: setup change control board, whose primary function is to approve
or reject all change requests.

 Configuration status accounting: Recording and reporting all the necessary information on
the status of the development process.

 Build management: Managing the process and tools used for builds.

 Environment management: Managing the software and hardware that host the system.

 Configuration Management Activities:


 Specification Identification: size and scope of each configuration item must take into
consideration.

 Project Baselines: Identify various baselines for the project. Baselines are established to
designate significant milestones during the engineering and development cycle.

Required information for baseline creation is:

 How and when it is created.

 Who authorize and verifies it.

 The purpose

 What goes into it

 Libraries:

 Identification and control mechanism used

 Number of libraries and the types

 Recovery process for any type of loss and procedures for changing baselines.

 Source code Control system and RCS:

RCS: Revision Control System

SCCS: Source Code Control System

SCCS is a tool used to track the development of a source file to prevent it from being altered by
more than one person at a time. It is commonly used for projects where multiple source files are
used or where multiple people are working with the source file. SCCS was an effective method for
small projects but these days less popular. Particularly for projects involving large number of files.

The RCS is a software implementation of revision control that automates the storing, retrieval,
logging, identification and merging of revisions. RCS is useful for text that is revised frequently,
including source code, programs, documentation and graphics…etc.

----------- o -----------

You might also like