Management is the process of getting things done through others, it is the process of coordinating people & other resources to achieve the goals of the organization. A project is a set of related tasks that are coordinated to achieve a specific objective in a given time limit. A project is well-defined task, which is a collection of several operations done in order to achieve a goal. Software is the program & all associated documentation & configuration data which is needed to make these programs operate correctly.
A Software Project is the complete procedure of software development from requirement gathering to testing & maintenance, carried out according to the execution methodologies, in a specified period of time to achieve intended software product.
Software Project Management | An Overview of the Software Project Management
1.
2. An Overview of the Software Project Management
What is a Management?
Management is the process of gettign things done through others, it is the process of
coordinating people & other resources to achieve the goals of the organization. Management
is the practice of executing & controlling the projects & involves the following activities:
Planning-deciding what is to be done.
Organizing- making arrangement.
Staffing-selecting the right people for the job.
Directing-giving instruction.
Monitoring-checking on progress.
Controlling-taking action to remedy hold-ups.
Innovation-coming up with new solutions.
What is a Project?
A project is a set of related tasks that are coordinated to achieve a specific objective in a
given time limit. A project is well-defined task, which is a collection of several operations
done in order to achieve a goal (for example, software development & delivery). Key
characteristics that distinguish project are as follows:
A project achieves a specific objective”
Every project may has a unique & distinct goal
Project is a planned activity & also requires planning
In a Project work is to be carried out in several phases & in time & resource
constraints
Projects are done in coordination & typically involve many people - a team
What is a Software Project?
Software is the program & all associated documentation & configuration data which is
needed to make these programs operate correctly.
A Software Project is the complete procedure of software development from requirement
gathering to testing & maintenance, carried out according to the execution methodologies, in
a specified period of time to achieve intended software product.
3. What is Software Project Management?
Generally the project management includes the activities like initiating the processes,
planning activities, executing processes & the practical implementation, supervision & the
monitoring processes & then the closeout activities.
Software project management includes the knowledge, techniques, & tools necessary to
manage the development of software products. Some characteristics of the software project
management are as follows:
Product
It is the outcome or the output & it is the combination of the different modules or the
programs.
Invisible
The software product is invisible because it has no physical appearance at all.
Sensitivity
The software products are sensitive they have more restrictions, rules for coding that
may be for syntax or semantics errors.
Quality Assurance
Quality is the basic need for any software product & quality assurance is necessary.
Monitoring
It includes the testing & inspection activities & error removing & error detection
techniques.
Project Management Components:
Some of the main components of the project management are as follows:
i. Resources:
Each activity requires some resources for its processing. Examples of
resources are: machines & tools, human & their skills, raw materials & natural
resources (energy, water, l&, etc.), information, money etc.
ii. Activities
Each activity is characterized by: resource requirements, processing model, &
precedence constraints with other activities, but other parameters can occur in
the problem formulation as well.
4. iii. Objectives
Some objectives may be related to time, as they concern temporary usage of
renewable & doubly constrained resources, whereas others to cost, as they
deal with consumption of nonrenewable & doubly constrained resources.
iv. Schedules
A schedule is defined by a sequence of activity start & completion times, but it
is insufficient for problems where activities can be executed in multiple
modes.
A schedule is “time-feasible” if it satisfies all time constraints defined for the
project, & a project is “resource-feasible” if all resource constraints are met. A
schedule is said to be feasible if it is both time- & resource-feasible.
v. Stake holders
Every project has stakeholders. Stakeholders are people who have an interest
in the successful completion of the project. There are many different types of
stakeholders, & the stakeholders vary by project. The stakeholders should
have some part in defining the project objectives, since they are the people
who will be affected by the outcome. Some of the stake holders are
customers/clients, sponsors, company, team members & the project manager.
Goals of Project Management:
Every project has some goals which are also on management side. Some of the goals are as
follows:
1) Performance
Performance deals with what actually is required for the project, does it meets it
intended functionality & standards.
Performance is directly related to the time & cost
2) Cost
Cost factor is important factor in the whole project. We cannot exceed the cost &
must be proper cost estimation for every phase in the project & development lifecycle.
3) Time
Every project should be done in the given time frame & time constraints which are
well for the successful project completion.
5. Performance Cost
Time
Dimensions of Software Project Management:
The four dimensions that influence the management of the software project includes the
whole process of the development, the other dimensions is the people involved in the project,
the third dimension is the product & the technology relation & fourth dimension is the
relation of the product & the customers.
What is Project Planning?
Software Project planning defines the project activities & end products that will be performed
& describes how the activities will be achieved or completed successfully. The purpose of
project planning is to define each major task, estimate the time & resources required, &
provide a framework for management review & control. The project planning activities &
goals include defining:
The specific goals that defines the project & the specific tasks to be performed
Estimates to be documented for planning, tracking, & controlling the project & the
Project alternatives, assumptions, & constraints
The commitments that are planned, documented, & agreed to by affected groups &
the stakeholders
Product & Customers
Process
People Product & Technology
6. The software project planning is the process that includes steps to estimate the size of the
project, the estimation of the technical scope of the effort, planning process includes the
estimation of the resources required for the completion of the project & the process to
produce a schedule, identify risks & risk management.
Steps in the Planning Process
The Software Project planning process consists of the following basic tasks which are
required for the successful completion of the Software Project
Define & sequence the tasks to be performed, schedule all tasks to be performed &
also define the relations between tasks
Estimate the resources & budget required to perform each task
Define the organization used to execute the project
Identify the known risks in executing the project
Define the process used for quality assurance
Define the process used for specifying & controlling requirements
The project plan represents the basic tool for successfully executing a project. The following
figure depicts the evolutionary nature of the project plan.
i. Planning in the Concept Phase
In the project’s concept phase, a need that would result in a product is identified.
While only very general information may be known about the project at this time, it is
important to capture this information for the planning phase. In this stage, the focus of
planning is on the project definition & on getting the project underway. A strategy for
deriving a solution to the stated goals is important at this point. The problem being
addressed by the project is clearly stated; the project goals & objectives are identified;
& success criteria for the project are documented.
ii. Planning in the Planning Stage:
The project plan is completed in the Project Planning & Risk Identification stage of a
project. For large projects, this stage may be run as a mini-project, with a team of
people dedicated to performing the effort. For very small projects, the plan may be
developed by a group of people as a part-time job. Since various skill sets are
required to complete a successful project plan, it is a difficult task for one person to
develop the entire plan.
7. During this project stage, details of the plan are determined & an approach is defined.
The full project plan is then developed.
The plan may include the following elements like a brief project summary, a work
breakdown structure, a project organization chart, a schedule, an approach, a list of
identified risks, an estimated budget & cost, a list of deliverables, a description of
planned quality activities, a description of the configuration management process to
be used, & a summary of project requirements.
iii. Planning in the Project Start-up Stage
The project start-up stage is typically a short period that transitions a project from the
planning to the execution stage. In the start-up stage, the team is assembled & a
kickoff meeting is held to familiarize the team with the elements of the plan & the
requirements of the system.
Specify the activities being performed by the teams, as well as the cost & schedule
associated with those activities & plans are developed from strategies defined in the
project planning stage.
iv. Planning in the Project Execution Stage
Planning in the project execution stage consists of replanning when it is determined
that the project is not on track with the current plan. This might occur for a variety of
reasons. It is very important to know that project plans will change & that replanning
is a natural part of the planning process. It is better to replan than to simply throw
away the original plan & operate without a plan.
v. Planning in the Project Close-out Stage
A close-out process is performed once the project objectives have been met. Closing a
project should be fairly routines. The first step is acceptance of the system by the
users. It is important that the user decides when the project is completed.
The determination is based upon the success criteria defined in the very early concept
& planning stages of the project. This acceptance may be very informal or it may be
very formal & depends upon the criteria defined in the plan.
8. What is Project Monitoring?
Project monitoring process is an interactive part of tracking and is firmly tied to project
planning. Project monitoring takes the outputs of tracking and uses them to determine
planned versus actual.
In monitoring we compare the current status with the target status whether we are going right
or not. Monitoring need a plan, schedule data. It is a continuous process that performs the
control exercise over the project. It also helps in ensure the project to meet its target.
What is Project Scheduling?
As the planning is importance in the project similar the Scheduling is also necessary in the
project to make it run efficiently.
Scheduling is the process of assigning specific resources to tasks in relation to a specific
calendar time. Key steps include collecting duration estimates for each task, inspecting the
organization’s calendar for holidays & other closings, checking the calendar of team
members, & developing time lines that show the start & end dates of each task.
How long will each activity take & how long will the entire project take?
Split project into tasks & estimate time & resources required to complete each task
Organize tasks concurrently to make optimal use of workforce
Minimize task dependencies to avoid delays caused by one task waiting for another to
complete
Software project management is an application of knowledge, skills, tools and technique to
solve project scheduling problem. Research into developing effective computer aided
techniques for planning software projects is important and challenging for software
engineering. Different from projects in other fields, software project development is a human
centric activity. Software development organizations often struggle to deliver projects on
time, within budget and with the required quality. One possible cause of this problem is poor
software project management and, in particular, inadequate project scheduling and ineffective
team staffing. Staffing a software project is tedious activity. Manager is supposed to choose
from the team of employees, there could be possibility of many combinations.
9. Employee allocation or staff scheduling is an important factor when software development is
considered as a value-driven business.
Identify Activity:
It is the process of identifying activities that are required to perform to
produce the various project deliverables.
Identify Activity Dependencies:
It is the process of identification & documentation of interactivity
dependencies.
Allocate Resources:
It is the process in which resources are allocated which will be needed to
complete individual activities.
Create Project Charts:
It is the process in which project activity charts are created for the analysis of
activity sequences, activity durations, and resource requirements to create the
project schedule.
Allocate People To Activities:
It is the process to allocate peoples to the different activities according to their
tasks.
The project schedule provides a graphical representation of predicted tasks, milestones,
dependencies, resource requirements, task duration, and deadlines.
A schedule is defined by a sequence of activity start times, but it is insufficient for problems
where activities can be executed in multiple modes. Thus, in these cases additional
information about processing modes is necessary.
10. A schedule is time-feasible if it satisfies all precedence and time constraints defined for the
project, and resource-feasible if all resource constraints are met. A schedule is said to be
feasible if it is both time- and resource-feasible. An optimal schedule is a feasible schedule
for which a given performance measure is optimized.
During the life of the project, actual progress is frequently compared with the original
schedule. This allows for evaluation of development activities. The accuracy of the planning
process can also be assessed.
Estimate Task Duration:
Estimating task duration is one of the most challenging aspects of project planning. It is also
a key to later cost estimation. This is a refined process that occurs throughout the planning
process, as it is directly affected by results of the staffing and costing activities.
Accurate task duration estimates are defined in order to stabilize customer relations and
maintain team morale. With defined task durations, the team knows what to expect and what
is expected of them.
The estimation process is complex because activity duration is affected by numerous
variables that must be dealt with concurrently in the planning phase. Some of these variables
include staff availability, the skill level of the person assigned to the task, unexpected events,
efficiency of work time, and mistakes and misunderstandings during the development of the
project.
Define Priorities:
Clearly defining the task priorities helps to resolve any scheduling and/or resource conflicts.
Understanding the priorities and relationships of the tasks assists in resolving difficult
scheduling conflicts.
11. Risk Management
What is Risk?
Risk is defined as “The possibility of suffering harm, loss or danger.” Even if we’re not
familiar with the formal definition, most of us have an innate sense of risk. Experience has
taught us to look both ways before stepping off the curb and most of us at least think twice
before ordering a steak. Indeed, we manage personal risks every day.
Risk Management:
Risk Management is the art and science of identifying, analyzing, and responding to risk
factors throughout the life of a project.
What is Project Risk?
A risk is any factor or reason that may potentially interfere with successful completion of the
project. A risk is not a problem, a risk is the recognition that a problem might occur. By
recognizing potential problems, the project manager can attempt to avoid a problem through
proper actions.
Risk Management Process:
The procedure that the team will use to manage project risks is defined in the planning stage,
documented in the project plan, and then executed throughout the life of the project. Risk
management deals with the following risk phases:
Risk identification
Risk analysis and quantification
Risk mitigation planning
Risk response
The Risk Management Plan documents the procedures used to manage risk throughout the
project. In addition to documenting the results of the risk identification and analysis phases, it
must cover who is responsible for managing various areas of risk, how risks will be tracked
throughout the life cycle.
Project risks are identified and carefully managed throughout the life of the project. It is
particularly important in the planning stage to document risks and identify reserves that have
been applied to the risks.
12. There are various areas that can affect a project, including:
Schedule Risk
Cost Risk
Requirement Risk
Quality Risk
How great a change will result from the project
Risk identification consists of determining risks that are likely to affect the project and
documenting the characteristics of those risks. No attempt should be made to identify all
possible risks that might affect the project, but anything likely to occur should be included in
the analysis.
Risk management is the process of assuring that all problems are discovered early enough so
that there is time to recover from the problem without missing schedules or overspending the
budget. Control mechanisms are put in place in order for the feedback to occur at the proper
time.
What is Risk Assessment?
Risk assessment consists of the two traditional components: risk identification and risk
prioritization.
Risk Identification:
The risk identification activity focuses on listing possible risks to the project. The basic
activity is to try to focus all situations that might make things in the project go wrong. The
purpose of the risk assessment task is to identify the risks, analyze them, and then prioritize
them.
Risk Prioritization:
The risk prioritization activity considers all aspects of all risks and then prioritizes them. In
prioritizing risks, we identify the risks that should be managed. In other words, prioritization
determines where the extra effort of risk management should be spent to get the maximum
benefit.
13. Software Project Estimation
For an effective software project management the accurate estimation of various project
measures is necessary. With correct software project estimation the managers can manage &
control the project more efficiently and effectively. Project estimation may involve the
following:
i. Software size estimation
Software size may be estimated either in terms of KLOC (Kilo Line of Code)
or by calculating number of function points in the software. Lines of code
depend upon coding practices and Function points vary according to the user
or software requirement.
ii. Effort estimation
In this process the managers estimate efforts in terms of personnel
requirement and man-hour required to produce the software. For effort
estimation software size should be known.
iii. Time estimation
The time required to produce the software can be estimated after the
estimation of the size & efforts. Software tasks are divided into smaller tasks,
activities or events by Work Breakthrough Structure (WBS). The tasks are
scheduled on day-to-day basis or in calendar months.
The sum of time required to complete all tasks in hours or days is the total
time invested to complete the project.
iv. Cost estimation
This might be considered as the most difficult of all because it depends on
more elements than any of the previous ones. For estimating project cost, it is
required to consider the following:
Size of software
Software quality
Hardware
Additional software or tools, licenses etc.
Skilled personnel with task-specific skills
Travel involved
Communication
Training and support
14. Project Estimation Techniques:
Project manager can estimate the listed factors using two broadly recognized techniques –
1) Decomposition Technique
This technique assumes the software as a product of various compositions. There are two
main models:
Line of Code Estimation is done on behalf of number of line of codes in the software
product.
Function Points Estimation is done on behalf of number of function points in the
software product.
2) Empirical Estimation Technique
This technique uses empirically derived formulae to make estimation. These formulae are
based on LOC or FPs.
Putnam Model
This model is made by Lawrence H. Putnam, which is based on Norden’s frequency
distribution. Putnam model maps time and efforts required with software size.
COCOMO
COCOMO stands for Constructive Cost Model, developed by Barry W. Boehm. It
divides the software product into three categories of software: organic, semi-
detached and embedded.
15. Software Quality Assurance
The goals of software quality assurance (SQA) are monitoring the software and its
development process, ensuring compliance with standards and procedures, and ensuring that
product, process, and standards defects are visible to management.
Many organizations make use of a quality assurance plan, which sets out standards to be
maintained during project development.
Documentation standards:
Documentation standards are about what type of documents should be documented &
what should be their format & the content.
Coding standards:
Coding standards includes class/method/variable naming conventions & comment
standards & testing conventions.
Quality is the operational behavior of a product required by its users. It comprises a set of
product characteristics, both external and internal.
External Quality Characteristics:
External quality characteristics are related to how the product works in its environment e.g.,
usability and reliability.
Internal Quality Characteristics:
Internal quality characteristics reflect how the product is developed, characteristics such as
structural complexity, size, test coverage, and fault rates.
Factors Affecting Product’s Quality:
Important factors affecting product’s quality characteristics are process maturity level of the
company that has developed the software product, its development environment, such as the
design methodology and CASE tools used, and the development team’s skill and experience.
It is desirable for a software development organization to plan and control product quality
during development. Projects managers cannot allow the luxury of going back and adding
quality - by the time a quality problem is detected, it is probably too late to fix it. For that
reason, it is necessary to establish procedures and expectations for high levels of quality
before any other development begins. Also, hiring developers proven to develop high-quality
16. code, staffing the project accordingly, and enforcing peer-level code reviews and external
reviews must be top priority of every software project management.
Planning and controlling software product quality during development requires:
Establishing targets for the external quality characteristics;
Pursuing those targets during development by defining and monitoring targets
for internal quality characteristics. This can be done using conventional
software measures of size, fault rates, change rates, structure, test coverage,
and so on, taken early in product development.
Establishing relationships between internal and external quality characteristics
& using experience from similar past software development projects
Identifying and setting targets for internal quality characteristics. In practice,
all this can be done by first defining a quality model and then applying a
quality process.
Quality process includes quality specification (establishing the software product’s quality
requirements), planning (deciding on a suitable development process and setting target
values for measurable internal quality characteristics), control (monitoring progress
throughout development using internal software measures associated with deliverables and
activities related to each major review point in development), and evaluation (measuring the
actual values of the external quality characteristics and comparing each actual value with its
target value). Maintaining and using a database of past projects helps perform each step in
the process more successfully.
References:
o Rai Technology University, Software Project Management
o Survey paper for Software Project Scheduling And Staffing Problem
o Software Project Management by Bob Hughes And Mike Cotterell
o Software Engineering 9th Edition by Ian Sommerville
o https://www.tutorialspoint.com/software_engineering/software_project_management.
htm
THE END