0% found this document useful (0 votes)
37 views42 pages

FSE Chapter 5

The document discusses key aspects of software project management. It defines software project management as the planning, implementation, monitoring and control of software projects. It describes the need for software project management to deliver quality products on time and within budget. The responsibilities of a software project manager are outlined as managing people, the project, risks, and acting as a project spokesperson. Software management activities discussed include project planning, scope management, and project estimation techniques.

Uploaded by

Ermi Tila
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views42 pages

FSE Chapter 5

The document discusses key aspects of software project management. It defines software project management as the planning, implementation, monitoring and control of software projects. It describes the need for software project management to deliver quality products on time and within budget. The responsibilities of a software project manager are outlined as managing people, the project, risks, and acting as a project spokesperson. Software management activities discussed include project planning, scope management, and project estimation techniques.

Uploaded by

Ermi Tila
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 42

Wolkite University

College of Computing and Informatics


Software Engineering Department

Fundamental of software Engineering

Chapter-Five: Software Engineering

By: M.G
CONTENTS

What is software project management?

Need of Software Project Management

Software Project Manager and its responsibilities

Software Management Activities

The organization of SPMP document

Project Size Estimation Metrics and techniques

Scheduling, Organization and Team Structures


2
What is software project management?
The job pattern of an IT company engaged in software development
can be seen split in two parts:
 Software Creation
 Software Project Management
A project is well-defined task, which is a collection of several
operations done in order to achieve a goal (for example, software
development and delivery).
A Project can be characterized as:
 Every project may have a unique and distinct goal.

3
What is software project management? …
 Project is not routine activity or day-to-day operations.
 Project comes with a start time and end time.
 Project ends when its goal is achieved hence it is a temporary phase in the
lifetime of an organization.
 Project needs adequate resources in terms of time, manpower, finance,
material and knowledge-bank.
A Software Project is the complete procedure of software
development from requirement gathering to testing and maintenance,
carried out according to the execution methodologies, in a specified
period of time to achieve intended software product.
4
What is software project management? …
Software Project Management (SPM) is a proper way of planning and
leading software projects.
It is a part of project management in which software projects are
planned, implemented, monitored and controlled.

5
Need of Software Project Management
Software is a non-physical product.
Software development is a new stream in business and there is very little
experience in building software products.
Most of the software products are made to fit client’s requirements.
The most important is that the basic technology changes and advances so
frequently and rapidly that experience of one product may not be applied to
the other one.
Such type of business and environmental constraints increase risk in software
development hence it is essential to manage software projects efficiently.

6
Need of Software Project Management …
It is necessary for an organization to deliver quality product, keeping
the cost within client’s budget constrain and deliver the project as per
scheduled.
Hence in order, software project management is necessary to
incorporate user requirements along with budget and time constraints.

7
Need of Software Project Management …
The image on slide 7 shows triple constraints for software projects.
It is an essential part of software organization to deliver quality product,
keeping the cost within client’s budget constrain and deliver the project
as per scheduled.
There are several factors, both internal and external, which may impact
this triple constrain triangle.
Any of three factors can severely impact the other two.
Therefore, software project management is essential to incorporate user
requirements along with budget and time constraints.
8
Software Project Manager
A software project manager is a person who undertakes the responsibility of
executing the software project.
Software project manager is thoroughly aware of all the phases of SDLC that
the software would go through.
Project manager may never directly involved in producing the end product but
he controls and manages the activities involved in production.
A project manager closely monitors the development process, prepares and
executes various plans, arranges necessary and adequate resources, maintains
communication among all team members in order to address issues of cost,
budget, resources, time, quality and customer satisfaction.
9
Responsibility of Software Project Managers
Managing People:
 Act as project leader
 Liaison with stakeholders
 Managing human resources
 Setting up reporting hierarchy etc.
Managing Project:
 Defining and setting up project scope
 Managing project management activities
 Monitoring progress and performance

10
Responsibility of Software Project Managers …
 Risk analysis at every phase
 Take necessary step to avoid or come out of problems
 Act as project spokesperson

11
Software Management Activities
Software project management comprises of a number of activities,
which contains planning of project, deciding scope of software
product, estimation of cost in various terms, scheduling of tasks and
events, and resource management.
Project management activities may include:
 Project Planning
 Scope Management
 Project Estimation

12
Project Planning
Software project planning is task, which is performed before the
production of software actually starts.
It is there for the software production but involves no concrete
activity that has any direction connection with software production;
rather it is a set of multiple processes, which facilitates software
production.
Project planning may include the following:
 Scope Management
 Project Estimation

13
Scope Management
It defines the scope of project; this includes all the activities; process
need to be done in order to make a deliverable software product.
Scope management is essential because it creates boundaries of the
project by clearly defining what would be done in the project and what
would not be done.
This makes project to contain limited and quantifiable tasks, which
can easily be documented and in turn avoids cost and time overrun.

14
Scope Management …
During Project Scope management, it is necessary to:
 Define the scope
 Decide its verification and control
 Divide the project into various smaller parts for ease of management.
 Verify the scope
 Control the scope by incorporating changes to the scope

15
Project Estimation
For an effective management accurate estimation of various measures
is a must.
With correct estimation managers can manage and control the project
more efficiently and effectively.
Project estimation may involve the following:
 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.

16
Project Estimation …
 Effort estimation: 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. This can either be derived by managers’ experience,
organization’s historical data or software size can be converted into efforts by using
some standard formulae.
 Time estimation: Once size and efforts are estimated, the time required to produce
the software can be estimated. Efforts required is segregated into sub categories as
per the requirement specifications and interdependency of various components of
software. 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.

17
Project Estimation …
 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:
 Size of software
 Software quality
 Hardware
 Additional software or tools, licenses etc.
 Skilled personnel with task-specific skills
 Travel involved
 Communication
 Training and support

18
Software Project Management types
Software Project Management consists of several different type of
managements:
 Conflict Management: Conflict management is the process to restrict the
negative features of conflict while increasing the positive features of conflict.
The goal of conflict management is to improve learning and group results
including efficacy or performance in an organizational setting. Properly
managed conflict can enhance group results.
 Risk Management: Risk management is the analysis and identification of risks
that is followed by synchronized and economical implementation of resources
to minimize, operate and control the possibility or effect of unfortunate events
or to maximize the realization of opportunities.
19
Software Project Management types …
 Requirement Management: It is the process of analyzing, prioritizing, tracing
and documenting on requirements and then supervising change and
communicating to pertinent stakeholders. It is a continuous process during a
project.
 Change Management: Change management is a systematic approach for
dealing with the transition or transformation of an organization’s goals,
processes or technologies. The purpose of change management is to execute
strategies for effecting change, controlling change and helping people to adapt
to change.

20
Software Project Management types …
 Software Configuration Management: Software configuration management is
the process of controlling and tracing changes in the software, part of the
larger cross-disciplinary field of configuration management. Software
configuration management include revision control and the inauguration of
baselines.
 Release Management: Release Management is the task of planning,
controlling and scheduling the build in deploying releases. Release
management ensures that organization delivers new and enhanced services
required by the customer, while protecting the integrity of existing services.

21
The organization of SPMP document
Software project manager prepare a document on the basis of decision
finalized during the project planning.
This document is known as Software Project Management Plan
Document or SPMP document.
SPMP document is a well-organized document that contains the
project planning in detail.
It would have details about project objective, project estimates, project
schedules, project resources, project staffing, risk management plans,
project monitoring, project control and other miscellaneous activities.
22
The organization of SPMP document …
A SPMP document is prepared and organized in structure as shown
below:
 Introduction:
 Objectives
 Functions
 Performance issues
 Constraints
 Project estimates:
 Historical data used
 Estimation techniques details
 Cost, duration, effort estimates

23
The organization of SPMP document …
 Project Schedule:
 Work breakdown
 Gantt and PERT chart
 Project resource:
 Manpower
 Hardware and Software
 Highly skilled professionals
 Staff organization:
 Team formation and structure
 Management reporting

24
The organization of SPMP document …
 Risk Management:
 Risk analysis
 Risk identification
 Risk abatement methods
 Project tracking
 Project Control
 Miscellaneous activities
All the above activities are documented in SPMP document by project
manager.

25
Project Size Estimation Metrics
The project size is a measure of the problem complexity in terms of
the effort and time required to develop the product.
Currently two metrics are popularly being used widely to estimate
size: lines of code (LOC) and function point (FP).
We discussed various parameters involving project estimation such as
size, effort, time and cost. Project manager can estimate the listed
factors using two broadly recognized techniques:
 Decomposition Technique
 Empirical Estimation Technique

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

27
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 (Rayleigh curve). 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.
28
Scheduling, Organization and Team Structures
Project Scheduling in a project refers to roadmap of all activities to be
done with specified order and within time slot allotted to each activity.
Project managers tend to define various tasks, and project milestones
and arrange them keeping various factors in mind.
They look for tasks lie in critical path in the schedule, which are
necessary to complete in specific manner (because of task
interdependency) and strictly within the time allocated.
Arrangement of tasks which lies out of critical path are less likely to
impact over all schedule of the project.
29
Scheduling, Organization and Team Structures …

For scheduling a project, it is necessary to:


 Break down the project tasks into smaller, manageable form
 Find out various tasks and correlate them
 Estimate time frame required for each task
 Divide time into work-units
 Assign adequate number of work-units for each task
 Calculate total time required for the project from start to finish
There are many ways to organize the project team. Some important ways are as follows:
 Hierarchical team organization
 Chief-programmer team organization
 Matrix team, organization
 Egoless team organization
 Democratic team organization

30
Hierarchical team organization

In this, the people of organization at different levels following a tree


structure.
People at bottom level generally possess most detailed knowledge
about the system.
People at higher levels have broader appreciation of the whole
project.

31
Hierarchical team organization …

32
Hierarchical team organization …

Benefits of hierarchical team organization:


 It limits the number of communications paths and stills allows for the needed
communication.
 It can be expanded over multiple levels.
 It is well suited for the development of the hierarchical software products.
 Large software projects may have several levels.
Limitations of hierarchical team organization:
 As information has to be travel up the levels, it may get distorted.
 Levels in the hierarchy often judges people socially and financially.
 Most technical competent programmers tend to be promoted to the management
positions which may result in loss of good programmer and also bad manager.
33
Chief-programmer team organization

This team organization is composed of a small team consisting the


following team members:
The Chief programmer:
 It is the person who is actively involved in the planning, specification and design
process and ideally in the implementation process as well.
The project assistant:
 It is the closest technical co-worker of the chief programmer.
The project secretary:
 It relieves the chief programmer and all other programmers of administration tools.

34
Chief-programmer team organization …

Specialists:
 These people select the implementation language, implement individual
system components and employ software tools and carry out tasks.

35
Chief-programmer team organization …

Advantages of Chief-programmer team organization:


 Centralized decision-making
 Reduced communication paths
 Small teams are more productive than large teams
 The chief programmer is directly involved in system development and can
exercise the better control function.
Disadvantages of Chief-programmer team organization:
 Project survival depends on one person only.
 Can cause the psychological problems as the “chief programmer” is like the
“king” who takes all the credit and other members are resentful.
36
Chief-programmer team organization …

 Team organization is limited to only small team and small team cannot handle
every project.
 Effectiveness of team is very sensitive to Chief programmer’s technical and
managerial activities.

37
Matrix Team Organization

In matrix team organization, people are divided into specialist groups.
Each group has a manager. Example of Metric team organization is as
follows:
 Egoless Team Organization
 Democratic Team Organization
Advantages of Democratic Team Organization:
Each member can contribute to decisions.
Members can learn from each other.
Improved job satisfaction.

38
Matrix Team Organization …

Disadvantages of Democratic Team Organization:


 Communication overhead increased.
 Need for compatibility of members.
 Less individual responsibility and authority.

39
Egoless Team Organization

Egoless programming is a state of mind in which programmer are


supposed to separate themselves from their product.
In this team organization goals are set and decisions are made by
group consensus. Here group, ‘leadership’ rotates based on tasks to be
performed and differing abilities of members.
In this organization work products are discussed openly and all freely
examined all team members.
There is a major risk which such organization, if teams are composed
of inexperienced or incompetent members.
40
Democratic Team Organization

It is quite similar to the egoless team organization, but one member is
the team leader with some responsibilities:
Coordination
Final decisions, when consensus cannot be reached.

41
Thank you!

Any questions?

Good day!

You might also like