se2
se2
se2
Chapter 2
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.
Time
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:
Ck = state of technology constant and reflects constraints that impede the progress of
programmer.
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:
Select the project review methods, review dates and review points.
Determining which task requires the completion of other tasks before they can start.
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:
2.3 xyzzzzz
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.
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.
1.1 Task 1
1.2 Task 2
1.3 Task 3
2.1 Task 1
2.2 Task 2
PERT 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:
Because PERT chart consist critical path of CPM chart and information of Gantt charts.
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:
Technical Risks: Threaten to the quality and timelines of the software to be produced.
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.
Risk management means, The process of identifying risks, assessing their impact and
making decisions to minimize their effect.
1. Risk identification
2. Risk assessment
3. Risk containment
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:
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.
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.
The output of the software process if information that may be divided into three broad
categories:
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.
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.
Project Baselines: Identify various baselines for the project. Baselines are established to
designate significant milestones during the engineering and development cycle.
The purpose
Libraries:
Recovery process for any type of loss and procedures for changing baselines.
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 -----------