SlideShare a Scribd company logo
4
Most read
cs615 lecture 1
cs615 lecture 1
cs615 lecture 1
cs615 lecture 1
cs615 lecture 1
1.1 What is Management?
Basically, the management involves the following
activities:
 Planning- deciding what is to be done
 Organizing- making arrangements
 Staffing- selecting the right people for the job
 Directing- giving instructions
 Monitoring- checking on progress
 Controlling- taking action to remedy hold-ups
 Innovating- coming up with new solutions
 Representing- liaising with users, etc. (my prompt is
that give me simple beginner level examples of all the
topics or text above given by me in this prompt)
Important Note: do not use analogies.
1.2 What is Project Management?
Project Management is the art of maximizing the
probability that a project
delivers its goals on Time, to Budget and at the
required Quality.
The art of planning for the future has always been a
human trait. In essence a
project can be captured on paper with a few simple
elements: a start date, an end
date, the tasks that have to be carried out and when
they should be finished, and
some idea of the resources (people, machines etc) that
will be needed during the
course of the project.
Project management is the application of knowledge,
skills, tools, and
techniques to project activities to meet project
requirements. Project management
is accomplished through the use of the processes such
as: initiating, planning,
executing, controlling, and closing. It is important to
note that many of the
processes within project management are iterative in
nature. This is in part due to
the existence of and the necessity for progressive
elaboration in a project
throughout the project life cycle; i.e., the more you
know about your project, the
better you are able to manage it.
Project management is also defined as a strategic
competency that has successfully been
applied in such high profile projects as the
construction of silk root, organizing and managing the
Olympics Games, and the construction of Islamabad-
Lahore motorway, just to name a few. If
project management can play a major role in these
success stories, just imagine what it might be
able to do for your own organization.
The term project management is sometimes used to
describe an organizational
approach to the management of ongoing operations.
This approach, more properly
called management by projects, treats many aspects of
ongoing operations as
projects to apply project management techniques to
them.
Software Project Management (CS615)
2
© Copyright Virtual University of Pakistan
Almost any human activity that involves carrying out a
non- repetitive task
can be a project. So we are all project managers! We
all practice project
management (PM). But there is a big difference
between carrying out a very
simple project involving one or two people and one
involving a complex mix of
people, organizations and tasks.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note: do not use analogies.
Here are simple, beginner-level examples for the concepts related to project
management that you described:
Project Management (Maximizing Probability of Success):
1
A company wants to launch a new mobile app. The project manager
ensures that the development team meets their deadlines, stays
2
within budget, and delivers a high-quality app that meets user
expectations.
Planning for the Future (Start Date, End Date, Tasks, Resources):
3
The project manager sets a start date of January 1st for the app
development and an end date of June 30th. They outline the tasks (like
designing the UI, coding, and testing) and determine the resources
needed, such as 3 developers, 1 designer, and specific software tools.
4
Application of Knowledge, Skills, Tools, and Techniques:
5
The project manager uses their experience, along with tools like
project management software, to create a detailed project plan. They
apply techniques like risk management to identify potential issues and
plan how to address them.
6
Processes (Initiating, Planning, Executing, Controlling, Closing):
7
Initiating: The project manager defines the project’s objectives and
scope, and gets approval to start.
8
Planning: They develop a detailed plan outlining tasks, timelines, and
resources.
9
Executing: The team carries out the plan by developing the app.
10
Controlling: The project manager monitors progress, makes
adjustments, and ensures the project stays on track.
11
Closing: Once the app is complete, the project manager closes the
project by ensuring all tasks are finished and lessons are documented.
12
Iterative Processes:
13
As the app development progresses, new requirements emerge, and
the project manager updates the plan to reflect these changes. This
iterative process ensures the project adapts to new information and
needs.
14
Project Management as a Strategic Competency:
15
Just like managing large-scale projects like the Olympics, the project
manager applies project management practices to successfully deliver
the mobile app. These practices help the company achieve its strategic
goals.
16
1.3 What is Software Project Management?
When the plan starts to involve different things
happening at different times, some
of which are dependent on each other, plus resources
required at different times
and in different quantities and perhaps working at
different rates, the paper plan
could start to cover a vast area and be unreadable.
Nevertheless, the idea that complex plans could be
analyzed by a computer to
allow someone to control a project is the basis of much
of the development in
technology that now allows projects of any size and
complexity, not only to be
planned, but also modeled to answer 'what if?'
questions.
The original programs and computers tended to
produce answers long after an
event had taken place. Now, there are many project
These examples provide a basic understanding of project management and how it
is applied in various scenarios.
Management by Projects:
17
The company uses project management techniques not just for the
app development but also for ongoing operations, such as updating the
app after its launch. This approach helps manage all activities as
projects with clear goals and timelines.
18
Any Non-Repetitive Task as a Project:
19
Developing the mobile app is a project because it’s a unique, non-
repetitive task with a specific goal. Even a small task, like organizing a
team meeting to discuss the app, can be managed as a mini-project.
20
planning and scheduling
programs that can provide real time information, as
well as linking to risk
analysis, time recording, and costing, estimating and
other aspects of project
control.
But computer programs are not project management:
they are tools for
project managers to use. Project management is all
that mix of components of
control, leadership, teamwork, resource management
etc that goes into a
successful project.
Project managers can be found in all industries. Their
numbers have grown
rapidly as industry and commerce has realized that
much of what it does is project
work. And as project-based organizations have started
to emerge, project
management is becoming established as both a
professional career path and a way
of controlling business.
So opportunities in project management now exist not
only in being a project
manager, but also as part of the support team in a
project or program office or as a
team leader for part of a project. There are also
qualifications that can be attained
through the professional associations.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note: do not use analogies.
Here are simple, beginner-level examples for the concepts related to software
project management that you described:
Complex Plans Involving Dependencies:
1
Imagine developing a software application where the design must be
completed before coding can start, and coding must be done before
testing. The project manager creates a detailed plan showing these
dependencies, ensuring that tasks are done in the correct order.
2
Computer Analysis for Project Control:
3
The project manager uses project management software to input all
tasks, deadlines, and resources. The software helps them analyze the
plan, make adjustments, and predict the impact of any changes on the
project's timeline and budget.
4
Real-Time Information from Project Planning Tools:
5
As the team works on the project, the project manager uses software
that updates in real-time, showing the progress of tasks, tracking the
hours worked, and calculating costs. This allows the manager to make
informed decisions quickly.
6
Project Management Tools vs. Project Management:
7
While the project manager uses tools like scheduling software, the real
work of project management involves coordinating the team, making
decisions, solving problems, and ensuring that the project stays on
track.
8
Project Managers Across Industries:
9
A project manager in the software industry might be overseeing the
development of a new app, while a project manager in construction
could be managing the building of a new office. Both use similar
principles of project management to achieve their goals.
10
Project-Based Organizations:
11
1.4 What is a Project?
A project is an activity with specific goals which takes
place over a finite
period of time.
“A temporary organization that is needed to produce a
unique and pre-defined
outcome or result at a pre-specified time using pre-
determined resources”
Projects are often implemented as a means of
achieving an organization’s
strategic plan. Operations and projects differ primarily
in that operations are
ongoing and repetitive while projects are temporary
and unique. A project can
thus be defined in terms of its distinctive
characteristics—a project is a temporary
endeavor undertaken to create a unique product or
service. Temporary means
These examples illustrate the core aspects of software project management and
how it applies to managing complex software development projects.
A software development company might organize its work around
projects, with each team working on a different software product. The
project manager ensures that each product is developed on time,
within budget, and meets quality standards.
12
Opportunities in Project Management:
13
In the software industry, you could be a project manager leading the
entire development project, or you could work as a part of the support
team, helping to manage specific aspects like scheduling or quality
control. There are also professional certifications that can help you
advance in this field.
14
that every project has a definite beginning and a
definite end. Unique means that
the product or service is different in some
distinguishing way from all other
products or services. For many organizations, projects
are a means to respond to
those requests that cannot be addressed within the
organization’s normal
operational limits.
Projects are undertaken at all levels of the
organization. They may involve a
single person or many thousands. Their duration
ranges from a few weeks to more
than five years. Projects may involve a single unit of
one organization or may
cross organizational boundaries, as in joint ventures
and partnering.
Examples of projects include:
• Developing a new product or service.
• Effecting a change in structure, staffing, or style of
an organization.
• Designing a new transportation vehicle.
• Developing or acquiring a new or modified
information system.
• Constructing a building or facility.
• Building a water system for a community in a
developing country.
• Running a campaign for political office.
• Implementing a new business procedure or process.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note: do not use analogies.
Here are simple, beginner-level examples for the concepts related to projects that
you described:
Specific Goals and Finite Time Period:
1
A team is tasked with developing a new mobile app within six months.
The goal is to create a functional app ready for launch by the deadline.
2
Temporary Organization for a Unique Outcome:
3
A company forms a project team specifically to develop a new
software tool. This team works together until the tool is complete,
then the project ends.
4
Projects as Part of Strategic Planning:
5
A company wants to enter a new market. To achieve this, they initiate a
project to develop a product tailored to that market, helping the
company achieve its strategic goals.
6
Difference Between Operations and Projects:
7
The company’s daily operations involve routine tasks like processing
customer orders. However, developing a new product is a project
because it’s a one-time effort with a unique outcome.
8
Temporary and Unique Characteristics:
9
A software development project starts on January 1st and ends on
June 30th. The software created during this project is unique because
it has features that are different from any other product the company
has released.
10
Projects Across Organizational Levels:
11
At a small company, a project might involve just one person creating a
marketing plan over a few weeks. At a large corporation, a project
might involve thousands of employees working on a new product line
over several years.
12
Cross-Organizational Projects:
13
1. Temporary
Temporary means that every project has a definite
beginning and a definite end.
The end is reached when the project’s objectives have
been achieved, or it
becomes clear that the project objectives will not or
These examples clarify what a project is and how it is distinct from regular
operations, emphasizing its temporary nature and unique goals.
Two companies collaborate on a joint venture to develop a new
technology. This project crosses organizational boundaries and
involves teams from both companies working together.
14
Examples of Projects:
15
Developing a New Product: A team creates a new software
application.
16
Effecting a Change in Organization: A company restructures its
departments to improve efficiency.
17
Designing a New Vehicle: Engineers work on creating a new electric
car.
18
Developing a New Information System: A company implements a new
software system to manage customer data.
19
Constructing a Building: A construction company builds a new office
tower.
20
Building a Water System: A non-profit organization constructs a clean
water system for a rural village.
21
Running a Political Campaign: A team organizes and runs a campaign
for a political candidate.
22
Implementing a New Business Process: A company introduces a new
procedure for handling customer service requests.
23
cannot be met, or the need for
the project no longer exists and the project is
terminated. Temporary does not
necessarily mean short in duration; many projects last
for several years. In every
case, however, the duration of a project is finite;
projects are not ongoing efforts.
2. Unique, Product Service or Result
Projects involve creating something that has not been
done in exactly the same
way before and which is, therefore, unique and
distinct. Projects create:
Software Project Management (CS615)
4
© Copyright Virtual University of Pakistan
• A product or artifact that is produced, is quantifiable
and can be either an
end item in itself or a component item
• A capability to perform a service, such as business
functions supporting
production or distribution
• A result, such as new knowledge. For example, a
research and
development project develops knowledge that can be
used to determine
whether or not a trend is present or a new process will
benefit society.
The presence of repetitive elements does not change
the fundamental uniqueness
of the project work. For example:
• A project to develop a new commercial airliner may
require multiple
proto-types.
• A project to bring a new drug to market may require
thousands of doses of
the drug to support clinical trials.
• A real estate development project may include
hundreds of individual
units.
• A development project (e.g., water and sanitation)
may be implemented in
five geographic areas.
3. Aims/Tasks/Purpose
The projects are designed to achieve specific targets
defined in terms of aims,
tasks or a purpose. The nature and size of the project
depends upon
complexity of the task, realization of the aims and
scope of the purpose any
organization wants to achieve. In short project has to
be aimed for achieving
certain tasks in a given time frame.
4. Limited Time Scale
The projects are always designed considering time
constraints. Extension to
the project completion dead lines are always
discouraged as time overrun,
costs extra and in some cases opportunity cost for not
completing a project is
too high.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note: do not use analogies.
Here are simple, beginner-level examples for the concepts related to projects that
you described:
Temporary (Definite Beginning and End):
1
A company initiates a project to launch a new website. The project
begins on January 1st, and the website goes live on June 30th. Once
the website is live, the project ends because the objective has been
achieved.
2
Unique Product, Service, or Result:
Even if some elements are repetitive, like creating multiple prototypes for a
new car model, the overall project is still unique because it aims to create
something new that hasn’t been done in exactly the same way before.
3
Product: A team develops a new mobile app that has never been
created before. The app is the final product and is unique to this
project.
4
Service: A company sets up a new customer support system to handle
inquiries more efficiently. This new capability is unique because it’s
tailored to the company’s specific needs.
5
Result: A research team conducts a study to find out if a new material
is more effective for building. The study produces new knowledge that
hadn’t existed before.
6
Aims/Tasks/Purpose:
7
A project is launched to develop a new software feature within three
months. The aim is to enhance user experience, and the tasks involve
designing, coding, testing, and deploying the feature. The project’s
purpose is to achieve this enhancement within the specified time
frame.
8
Limited Time Scale:
9
A company plans to roll out a new marketing campaign over a three-
month period. The project is designed with a strict deadline to align
with a product launch. Any delays would incur additional costs and
could result in lost revenue, so meeting the deadline is crucial.
10
Progressive, Elaboration
Progressive elaboration is a characteristic of projects
that accompanies the
concepts of temporary and unique. “Progressively”
means developing thoroughly
in steps, and continuing steadily by increments while
elaborated means “worked
out with care and detail; developed thoroughly”
For example, the project scope will be broadly
described early in the project, and
made more explicit and detailed as the project team
develops a better and more
complete understanding of the objectives and
deliverables.
Progressive elaboration of project specifications must
be carefully coordinated
with proper project scope definition, particularly if the
project is performed under
contract. When properly defined, the scope of the
project—the work to be done—
Software Project Management (CS615)
5
© Copyright Virtual University of Pakistan
should be controlled as the project and product
specifications are progressively
elaborated.
The following examples illustrate progressive
elaboration in two different
These examples illustrate the key aspects of projects, highlighting their temporary
nature, uniqueness, specific goals, and the importance of time management.
application areas.
9 Example 1. Development of a chemical processing
plant begins with process
engineering to define the characteristics of the
process. These characteristics are
used to design the major processing units. This
information becomes the basis for
engineering design, which defines both the detail plant
layout and the mechanical
characteristics of the process units and ancillary
facilities. All of this results in
design drawings that are elaborated to produce
fabrication and construction
drawings. During construction, interpretations and
adaptations are made as
needed and subject to proper approval. This further
elaboration of the deliverables
is captured in as-built drawings, and final operating
adjustments are made during
testing and turnover.
9 Example 2. The product of an economic
development project may initially be
defined as: “Improve the quality of life of the lowest
income residents of
community X.” As the project proceeds, the products
may be described more
specifically as, for example: “Provide access to food
and water to 500 low income
residents in community X.” The next round of
progressive elaboration might
focus exclusively on increasing agriculture production
and marketing, with
provision of water deemed to be a secondary priority
to be initiated once the
From ChatGPT, designed with FancyGPT
agricultural component is well under way
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note: do not use analogies.
cs611 lecture 2
cs611 lecture 2
cs611 lecture 2
cs611 lecture 2
cs611 lecture 2
LECTURE # 2
1. Introduction & Fundamentals
1.5 Goals of Project management
Project management is the discipline of defining and achieving a
set of goals
while optimizing the use of allocated resources (time, money,
people, space,
etc). This includes planning, scheduling and maintaining
progress of the
activities that comprise the project. Project management is
normally reserved for
focused, non-repetitive, time-limited activities with some
degree of risk and that
are beyond the usual scope of program (operational) activities
for which the
organization is responsible.
Project management software describes the tools to efficiently
coordinate and
automate the various project management component
processes. Project
management software generally offers extensive reporting
features, such as dayto-day status updates of project progress,
scheduling and dependency trees, and
system-generated alerts when schedules slip beyond pre-set
tolerances. Most
project management tools include web-accessible interfaces so
that employees
can access features of the software relevant to their needs, and
functionality to
allow managers to share resource pools without overbooking.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
Certainly! Here are some straightforward examples for the various concepts mentioned in
the text:
1. Introduction & Fundamentals of Project Management
1. Introduction & Fundamentals of Project Management
1. Introduction & Fundamentals of Project Management
1. Introduction & Fundamentals of Project Management
1. Introduction & Fundamentals of Project Management
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/13
1.6 Project Characteristics
1. Temporary
Temporary means that every project has a definite beginning
and a definite end.
The end is reached when the project’s objectives have been
achieved, or it
becomes clear that the project objectives will not or cannot be
met, or the need for
the project no longer exists and the project is terminated.
Temporary does not
necessarily mean short in duration; many projects last for
several years. In every
case, however, the duration of a project is finite; projects are
Example: Imagine you're organizing a birthday party. You need to plan out all the activities,
decide on a theme, choose the food, send out invitations, and arrange for decorations. Each of
these tasks needs to be managed effectively to ensure the party is successful.
1.5 Goals of Project Management
1.5 Goals of Project Management
1.5 Goals of Project Management
1.5 Goals of Project Management
1.5 Goals of Project Management
Example: The main goal of organizing the birthday party is to ensure everyone has a good
time. You have a budget for food, decorations, and entertainment. By planning carefully and
sticking to the budget, you can throw a great party without overspending.
Project Management Software
Project Management Software
Project Management Software
Project Management Software
Project Management Software
Example: To organize the birthday party, you might use a digital tool that allows you to create
a checklist of tasks, assign deadlines, and send reminders. The software could help you keep
track of who’s doing what and alert you if something isn’t on schedule.
Extensive Reporting Features
Extensive Reporting Features
Extensive Reporting Features
Extensive Reporting Features
Extensive Reporting Features
Example: The party planning software can provide updates on what’s been done and what’s
still pending. If you notice that the decorations aren’t going to be ready on time, the software
can notify you so that you can make adjustments.
Scheduling and Dependency Trees
Scheduling and Dependency Trees
Scheduling and Dependency Trees
Scheduling and Dependency Trees
Scheduling and Dependency Trees
Example: You might need to schedule tasks in a specific order, like buying ingredients for a
cake before baking it. The software helps you visualize the order of tasks and ensures that
each step is completed before moving on to the next.
System-Generated Alerts
System-Generated Alerts
System-Generated Alerts
System-Generated Alerts
System-Generated Alerts
Example: If the catering is delayed, the software can automatically send you an alert so you
can find another solution quickly.
Web-Accessible Interfaces
Web-Accessible Interfaces
Web-Accessible Interfaces
Web-Accessible Interfaces
Web-Accessible Interfaces
Example: If you’re organizing the party with a team, everyone can log into the planning
software from their own devices to see the latest updates and check their tasks.
Sharing Resource Pools Without Overbooking
Sharing Resource Pools Without Overbooking
Sharing Resource Pools Without Overbooking
Sharing Resource Pools Without Overbooking
Sharing Resource Pools Without Overbooking
Example: If the party venue has a limited number of tables, the software helps you allocate
them to different activities (like dining and games) without assigning the same table to
multiple tasks at the same time.
These examples illustrate the basic concepts of project management in a simple, practical
way, showing how effective planning and the right tools can help achieve project goals.
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/13
not ongoing efforts.
2. Unique, Product Service or Result
Projects involve creating something that has not been done in
exactly the same
way before and which is, therefore, unique and distinct.
Projects create:
• A product or artifact that is produced, is quantifiable and can
be either an
end item in itself or a component item
• A capability to perform a service, such as business functions
supporting
production or distribution
Software Project Management (CS615)
7
© Copyright Virtual University of Pakistan
• A result, such as new knowledge. For example, a research and
development project develops knowledge that can be used to
determine
whether or not a trend is present or a new process will benefit
society.
The presence of repetitive elements does not change the
fundamental uniqueness
of the project work. For example:
• A project to develop a new commercial airliner may require
multiple
proto-types.
• A project to bring a new drug to market may require
thousands of doses of
the drug to support clinical trials.
• A real estate development project may include hundreds of
individual
units.
• A development project (e.g., water and sanitation) may be
implemented in
five geographic areas.
5. Aims/Tasks/Purpose
The projects are designed to achieve specific targets defined in
terms of aims,
tasks or a purpose. The nature and size of the project depends
upon
complexity of the task, realization of the aims and scope of the
purpose any
organization wants to achieve. In short project has to be aimed
for achieving
certain tasks in a given time frame.
6. Limited Time Scale
The projects are always designed considering time constraints.
Extension to
the project completion dead lines are always discouraged as
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/13
time overrun,
costs extra and in some cases opportunity cost for not
completing a project is
too high.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
1.7 Four Project Dimensions
Software project management is an umbrella activity within
software engineering.
Here are simple, beginner-level examples for the concepts of project characteristics:
1. Temporary
1. Temporary
1. Temporary
1. Temporary
1. Temporary
Example: Constructing a new house is a project with a specific start and end date. It starts
when the land is purchased and the construction begins, and it ends when the house is
completed and ready for occupancy.
2. Unique Product, Service, or Result
2. Unique Product, Service, or Result
2. Unique Product, Service, or Result
2. Unique Product, Service, or Result
2. Unique Product, Service, or Result
Example 1: Product: Designing and manufacturing a custom piece of furniture, like a one-of-
a-kind dining table, is unique because it’s created to specific customer requirements.
Example 2: Service: Developing a new delivery service app for a company is unique because
it’s tailored to the company's specific logistics needs.
Example 3: Result: Conducting scientific research to discover a new medical treatment is
unique because it generates new knowledge and potential health benefits.
Presence of Repetitive Elements in Unique Projects
Presence of Repetitive Elements in Unique Projects
Presence of Repetitive Elements in Unique Projects
Presence of Repetitive Elements in Unique Projects
Presence of Repetitive Elements in Unique Projects
Example 1: Building multiple prototypes of a new electric car model. Even though each
prototype might use similar components, the overall car model is unique.
Example 2: Developing a new medication that requires producing thousands of pills for
different stages of clinical trials.
Example 3: Constructing a new residential community where each house is similar but
customized for different families.
Example 4: Implementing a clean water project in several different villages. Each village
might have different needs and conditions, making each part of the project unique.
5. Aims/Tasks/Purpose
5. Aims/Tasks/Purpose
5. Aims/Tasks/Purpose
5. Aims/Tasks/Purpose
5. Aims/Tasks/Purpose
Example: A city planning project aims to reduce traffic congestion by introducing new traffic
management strategies. The tasks involve analyzing traffic patterns, designing the strategy,
and implementing traffic lights and signs.
6. Limited Time Scale
6. Limited Time Scale
6. Limited Time Scale
6. Limited Time Scale
6. Limited Time Scale
Example: A school renovation project is scheduled to be completed during the summer break.
If the work extends into the school year, it could disrupt classes, making it essential to finish
within the planned time frame.
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/13
It begins before any technical activity is initiated and continues
throughout the
definition, development, and support of computer software.
Four P's have a substantial influence on software project
management- people,
product, process, and project.
• People must be organized into effective teams, motivated to
do high-quality
software work, and coordinated to achieve effective
communication.
• The product requirements must be communicated from
customer to
developer, partitioned (decomposed) into their constituent
parts, and
positioned for work by the software team.
• The process must be adapted to the people and the problem.
A common
process framework is selected, an appropriate software
engineering paradigm
is applied, and a set of work tasks is chosen to get the job done.
Software Project Management (CS615)
8
© Copyright Virtual University of Pakistan
• The project must be organized in a manner that enables the
software team to
succeed.
Effective software project management focuses on the four P’s:
people, product,
process, and project. The order is not arbitrary. The manager
who forgets that
software engineering work is an intensely human endeavor will
never have
Success in project management. A manager who fails to
encourage
comprehensive customer communication early in the evolution
of a project risks
building an elegant solution for the wrong problem. The
manager who pays little
attention to the process runs the risk of inserting competent
technical methods and
tools into a vacuum. The manager who embarks without a solid
project plan
jeopardizes the success of the product.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/13
⇒People
In a study published by the IEEE, the engineering vice
presidents of three
major technology companies were asked the most important
contributor to a
successful software project. They answered in the following
way:
VP 1: I guess if you had to pick one thing out that is most
important in our
environment. I’d say it’s not the tools that we use, it’s the
people.
VP 2: The most important ingredient that was successful on this
project was
having smart people…very little else matters in my
opinion....The most
important thing you do for a project is selecting the staff...The
success of the
software development organization is very, very much
associated with the
Here are straightforward examples for the four project dimensions in software project
management:
People
People
People
People
People
Example: A software development team consists of developers, testers, and a project
manager. The project manager ensures everyone knows their roles, facilitates
communication, and motivates the team to work together to build a high-quality software
application.
Product
Product
Product
Product
Product
Example: A company wants to develop a new mobile app for online shopping. The customer’s
requirements are gathered, organized, and then broken down into specific features such as a
product catalog, shopping cart, and payment system. Each feature is then assigned to
different developers in the team.
Process
Process
Process
Process
Process
Example: The software development team chooses the Agile methodology for their project.
They decide on a set of sprints, conduct daily stand-up meetings, and use a task board to track
progress. The process is tailored to fit the team's style and the specifics of the online shopping
app they are building.
Project
Project
Project
Project
Project
Example: The project manager creates a detailed project plan that outlines the timeline,
milestones, and resource allocation. The plan includes a schedule for each phase of the app
development, from initial design to testing and deployment. This ensures the team has a clear
roadmap to follow, increasing the likelihood of the project’s success.
These examples illustrate how people, product, process, and project are integral to effective
software project management, with each dimension playing a critical role in the overall
success of the endeavor.
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/13
ability to recruit good people.
VP 3: The only rule I have in management is to ensure I have
good people –
real good people-and that I grow good people – and that I
provide an
environment in which good people can produce.
Indeed, this is a compelling testimonial on the importance of
people in the
software engineering process. And yet, all of us, from senior
engineering vice
presidents to the lowliest practitioner, often take people for
granted. Managers
argue (as the preceding group had) that people are primary, but
their actions
sometimes belie their words. In this section we examine the
players who
participate in the software process and the manner in which
they are organized
to perform effective software engineering.
1. The Players
The software process (and every software project) is populated
by players
who can be categorized into one of five constituencies:
1. Senior managers who define the business issues that often
have
significant influence on the project.
Software Project Management (CS615)
9
© Copyright Virtual University of Pakistan
2. Project (technical) managers who must plan, motivate,
organize,
and control the practitioners who do software work.
3. Practitioners who deliver the technical skills that are
necessary to
engineer a product or application.
4. Customers who specify the requirements for the software to
be
engineered and other stakeholders who have a peripheral
interest in
the outcome.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
Here are straightforward examples related to the importance of people and the different
players in software engineering:
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/13
2. End-users
Who interact with the software once it is released for
production use.
Every software project is populated by people who fall within
this
taxonomy. To be effective, the project team must be organized
in a way
that maximizes each person’s skills and abilities. And that’s the
job of the
team leader.
3. Team Leaders
Project management is a people-intensive activity, and for this
reason,
competent practitioners often make poor team leaders. They
simply don’t
have the right mix of people skills. And yet, as Edgemon states:
“unfortunately and all too frequently it seems, individuals just
fall into a
project manager role and become accidental project managers.”
Importance of People
Importance of People
Importance of People
Importance of People
Importance of People
Example: A software development project was successful because the team was composed of
skilled developers, designers, and testers. Their collective expertise, communication, and
problem-solving abilities contributed to the timely delivery of a high-quality software
product.
The Players in the Software Process
The Players in the Software Process
The Players in the Software Process
The Players in the Software Process
The Players in the Software Process
These examples highlight the roles and significance of different players in the software
engineering process, emphasizing that a successful software project relies on the right people
with the right skills and responsibilities.
Senior Managers
Example: A senior manager at a software company decides the overall direction for a
new project by identifying business opportunities, setting goals, and allocating budget
and resources. Their decisions significantly impact the project's scope and focus.
1
Project (Technical) Managers
Example: The project manager in a software development team creates the project
plan, organizes the team’s work schedule, motivates the team to meet deadlines, and
ensures that the project stays on track. They act as a bridge between senior
management and the practitioners.
2
Practitioners
Example: Practitioners, such as software developers and testers, are responsible for
writing code, designing the system architecture, and ensuring that the software meets
quality standards. Their technical skills are crucial for turning project requirements into
a functional product.
3
Customers and Other Stakeholders
Example: Customers provide the list of features and functionalities they want in the
software, which guides the development process. Other stakeholders, such as company
executives or end-users, may provide feedback that influences the design and
functionality of the software.
4
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/13
[EDG95].
The cultivation of motivated, highly skilled software people has
been
discussed since the 1960s (e.g., [COUBO] [WIT94} [DEM9B]). In
fact,
the “people factor’ is so important that the Software
Engineering Institute
has developed a people management capability maturity model
(PMCMM), “to enhance the readiness of software organizations
to undertake
increasingly complex applications by helping to attract, grow,
motivate,
deploy, and retain the talent needed to improve their software
development capability” [CUR94].
The people management maturity model defines the following
key
practice areas for software people: recruiting, selection,
performance
management, training, compensation, career development,
organization
and work design, and team/culture development. Organizations
that
achieve high levels of maturity in the people management area
have a
higher likelihood of implementing effective software
engineering
practices.
The PM-CMM is a companion to the software capability
maturity model
that guides organizations in the creation of a mature software
process.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
Here are simple examples for the concepts related to end-users, team leaders, and the People
Management Capability Maturity Model (PM-CMM) in software engineering:
2. End-users
2. End-users
2. End-users
2. End-users
2. End-users
Example: After developing a new mobile banking app, the end-users are the bank's customers
who download and use the app to check their account balances, transfer funds, and pay bills.
The feedback and usage patterns of these end-users are critical for the ongoing improvement
of the app.
3. Team Leaders
3. Team Leaders
3. Team Leaders
3. Team Leaders
3. Team Leaders
Example: In a software development project, the team leader is responsible for coordinating
the efforts of the team, ensuring that tasks are completed on time, and resolving any issues
that arise. The team leader facilitates communication within the team and with stakeholders,
making sure everyone is aligned with the project goals.
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/13
⇒The Process
Software Project Management (CS615)
10
© Copyright Virtual University of Pakistan
In a fascinating book that provides an economist’s view of
software and
software engineering, Howard Baetjer. Jr, comments on the
software process:
Software development is a social learning process. The process
is a dialogue
in which the knowledge that must become the software is
brought together and
embodied in the software. The process provides interaction
between users and
People Management Capability Maturity Model (PM-
People Management Capability Maturity Model (PM-
People Management Capability Maturity Model (PM-
People Management Capability Maturity Model (PM-
People Management Capability Maturity Model (PM-
CMM)
CMM)
CMM)
CMM)
CMM)
These examples illustrate how end-users, team leaders, and various aspects of people
management contribute to the effectiveness of software engineering projects.
Recruiting and Selection
Example: A software company actively seeks talented software engineers by posting
job openings, attending career fairs, and conducting interviews to select candidates
with the right skills and cultural fit for the team.
1
Performance Management
Example: The project manager regularly meets with team members to discuss their
progress, provides constructive feedback, and sets goals to help improve their
performance and contribute to the project’s success.
2
Training
Example: The company provides training sessions and workshops to help software
developers learn new programming languages and tools, ensuring they stay updated
with the latest industry practices.
3
Compensation
Example: To retain talented employees, the company offers competitive salaries,
bonuses, and other benefits based on the employees' performance and contributions to
the project.
4
Career Development
Example: The organization has a career development program that helps employees
identify their career goals, offers mentorship opportunities, and provides a clear path
for advancement within the company.
5
Organization and Work Design
Example: The project team is structured to have clear roles and responsibilities, with
each member working on tasks that match their expertise, ensuring an efficient
workflow and effective collaboration.
6
Team/Culture Development
Example: The team leader fosters a positive work environment by encouraging open
communication, recognizing achievements, and organizing team-building activities to
enhance teamwork and morale.
7
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/13
designers: between users and evolving tools, and between
designers and
evolving tools [technology] It is an iterative process in which
the evolving tool
itself serves as the medium for communication, with each new
round of the
dialogue eliciting more useful knowledge from the people
involved.
When you build a product or system, it’s important to go
through a series of
predictable steps – a road map that helps you create a timely,
high-quality
result, The road map that you follow is called a ‘software
process’ .
Software engineers and their managers adapt the process to
their needs and
then follow it. In addition, the people who have ties defined by
the process
requested the software play a role in the software process.
At a detailed level, the process that you adopt depends on the
software you’re
building. One process might be appropriate for creating
software for an
aircraft avionics system, while an entirely different process
would be
indicated for the creation of a web site.
From the point of view of a software engineer, the work
products are the
programs, documents and data produces as a consequence of
the software
engineering activities defined by the process.
A software process provides the framework from which a
comprehensive plan
for software development can be established.
A small number of framework activities are applicable to all
software projects,
regardless of their size or complexity.
A number of different task sets-tasks, milestones, work
products and; quality
assurance points-enable the framework activities to be adapted
to the
characteristics of the software project and the requirements of
the project
team.
Finally, umbrella activities – such as software quality assurance,
software
configuration management, and measurement – overlay the
process model.
Umbrella activities are independent of anyone framework
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/13
activity and occur
throughout the process.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
Here are straightforward examples for the concepts of the software process in software
project management:
Software Development as a Social Learning Process
Software Development as a Social Learning Process
Software Development as a Social Learning Process
Software Development as a Social Learning Process
Software Development as a Social Learning Process
Example: During the development of a new software application, developers frequently meet
with users to discuss their needs. As the software evolves, users test new features and
provide feedback, which the developers then use to improve the application.
Software Process as a Road Map
Software Process as a Road Map
Software Process as a Road Map
Software Process as a Road Map
Software Process as a Road Map
Example: A software development team follows a predetermined sequence of steps to create
a new mobile application. These steps include requirements gathering, design, coding, testing,
and deployment. This organized approach helps ensure the app is completed on time and
meets quality standards.
Adapting the Process to Different Needs
Adapting the Process to Different Needs
Adapting the Process to Different Needs
Adapting the Process to Different Needs
Adapting the Process to Different Needs
Example 1: Developing software for an aircraft avionics system requires a rigorous, detailed
process that includes extensive testing and documentation to ensure safety and compliance
with regulations.
Example 2: Creating a website might involve a more flexible process that emphasizes rapid
prototyping and frequent updates based on user feedback.
Work Products
Work Products
Work Products
Work Products
Work Products
Example: The work products for a software project might include the source code, design
documents, user manuals, and test reports. These are all generated as part of the software
development activities.
Framework Activities
Framework Activities
Framework Activities
Framework Activities
Framework Activities
Example: Framework activities in software development typically include planning, analysis,
design, implementation, and maintenance. These activities form the basis of any software
development process.
Task Sets
Task Sets
Task Sets
Task Sets
Task Sets
Example: For a given software project, the task set might include defining project milestones,
developing a project schedule, producing design documents, writing code, conducting code
reviews, and performing testing.
Umbrella Activities
Umbrella Activities
Umbrella Activities
Umbrella Activities
Umbrella Activities
Example: Throughout the software development process, the team performs software
quality assurance activities to ensure the product meets the required standards. They also
manage software configurations to keep track of different versions of the code and collect
measurements to track progress and performance.
These examples illustrate how the software process is structured and adapted to suit
different projects, ensuring the delivery of high-quality software products.
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/13
From ChatGPT, designed with FancyGPT
13/08/2024, 21:52 FancyGPT - cs611 lecture 2
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/13
cs615 lecture 3
cs615 lecture 3
cs615 lecture 3
cs615 lecture 3
cs615 lecture 3
LECTURE # 3
1. Introduction & Fundamentals
1.8 Project Dimensions
⇒Product and Technology
– The 80:20, rule was originated by Vilfredo Pareto, an
Italian economist who
studies the distribution of wealth in a variety of
countries around 1900. He
discovered a common phenomenon: about 80% of the
wealth in most countries
was controlled by a consistent minority -- about 20%
of the people. Pareto called
this a "predictable imbalance." His observation
eventually became known as
either the "80:20 rule" or "Pareto's Principle."
The credit for adapting Pareto's economic
observations to business goes to the
"Father of Total Quality Management," service quality
consultant Joseph M.
Juran. In 1950, he published "The Quality Control
Handbook," which first
recognized the applicability of the Pareto principle in
the context of inventory
management, e.g.:
• 20% of the repair parts normally account for 80
percent of the total
inventory
• 80% of production volume usually comes from 20%
of the producers
He subsequently recognized that this rule of thumb
was universally applicable
across fields of endeavor. As a credit to Pareto's work,
Juran named his finding
the Pareto Principle. This universal management
theory became generalized as
"the 80-20 Rule":
The "80:20 rule" has become one of the best known
"leadership shorthand terms"
reflecting the notion that most of the results (of a life,
of a program, of a financial
campaign) come from a minority of effort (or people,
or input).
The Rule, states that a small number of causes (20%) is
responsible for a large
percentage (80%) of the effect. It means that in
anything a few (20 percent) are
vital and many (80 percent) are trivial.
There is an inherent imbalance between cause and
effect, effort and reward, inputs
and outputs, etc; and that imbalance tends to the ratio
of 80:20. So, if we know
which 20% of our work produces 80% of our income,
we can do more of it and
our income will increase proportionately!
Software Project Management (CS615)
12
© Copyright Virtual University of Pakistan
You know 20 percent of you stock takes up 80 percent
of your warehouse space
and that 80 percent of your stock comes from 20
percent of your suppliers. Also
80 percent of your sales will come from 20 percent of
your sales staff. 20 percent
of your staff will cause 80 percent of your problems,
but another 20 percent of
your staff will provide 80 percent of your production.
It works both ways.
Some Sample 80/20 Rule Applications
80% of process defects arise from 20% of the process
issues.
20% of your sales force produces 80% of your
company revenues.
80% of delays in schedule arise from 20% of the
possible causes of the delays.
80% of customer complaints arise from 20% of your
products or services.
How It Can Help You
– The value of the Pareto Principle for a manager is
that it reminds you to focus on
the 20 percent that matters. Of the things you do
during your day, only 20 percent
really matter. Those 20 percent produce 80 percent of
your results. Identify and
Characteristic
focus on those things. When the fire drills of the day
begin to sap your time,
remind yourself of the 20 percent you need to focus
on. If something in the
schedule has to slip, if something isn't going to get
done, make sure it's not part of
that 20 percent.
Pareto's Principle, the 80/20 Rule, should serve as a
daily reminder to focus 80
percent of your time and energy on the 20 percent of
you work that is really
important. Don't just "work smart", work smart on the
right things.
– Size
The larger product, there will be more requirements
and features to deliver,
eventually it will take more time in its production. So if
you cut the size of the
produce to half it will save you 60% of the effort.
– Characteristic
– Development Tools
Software Project Management (CS615)
13
© Copyright Virtual University of Pakistan
Customer delivered value
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note: do not use analogies.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt in image given by me)
Important Note: do not use analogies.
Here are simple, beginner-level examples of the concepts illustrated in the image
related to "Customer Delivered Value":
Total Value
Total Value
Total Value
Total Value
Total Value
Total Costs
Total Costs
Total Costs
Total Costs
Total Costs
Value of Products:
1
This is the worth of the physical products provided to the customer.
For example, if you sell a smartphone, the value is what the customer
perceives in terms of its features, durability, and performance.
2
Value of Services:
3
This refers to the worth of any services provided alongside the
product. For instance, if you offer free customer support or extended
warranties with the smartphone, this adds to the total value.
4
Personal Value:
5
This is the individual benefit the customer gains from the product or
service. For example, a person might value a smartphone because it
helps them stay connected with loved ones.
6
Image Value:
7
This is the value that comes from the product or service's ability to
enhance the customer’s social image or status. For instance, owning a
high-end smartphone might make the customer feel more prestigious
or up-to-date with technology.
8
Financial Cost:
1
This is the actual amount of money the customer pays for the product
or service. For example, the price of the smartphone itself.
2
Time Cost:
3
1.9 Project Phases
Organizations performing projects will usually divide
each project into several
Project phases to improve management control and
provide for links to the
ongoing operations of the performing organization.
Collectively, the project phases are known as the
project life cycle. Software
development, just like most other activities, has a
Real Value to the Customer
Real Value to the Customer
Real Value to the Customer
Real Value to the Customer
Real Value to the Customer
These examples help to understand the components that contribute to the overall
satisfaction a customer feels after making a purchase.
This refers to the time the customer spends in acquiring the product or
service. For instance, the time spent researching different
smartphones or the time taken to travel to the store and purchase it.
4
Energy Cost:
5
This is the physical or mental effort the customer has to invest in
obtaining the product or service. For example, the effort needed to
compare different models and make a decision.
6
Psychical Cost:
7
This refers to the psychological stress or discomfort the customer may
experience in the process of buying or using the product. For example,
the anxiety a customer might feel about whether they are making the
right choice in purchasing a specific smartphone.
8
The real value is calculated by subtracting the total costs from the total
value.
Example: If the perceived value of the smartphone (including its
features, services, and image value) is high, and the costs (money,
time, energy, and stress) are low, the real value to the customer is
positive, making them satisfied with their purchase.
beginning, middle and an end.
The end of one development activity is sometimes
perceived as being linked to
the beginning of a new development activity thus
producing a cycle of beginningmiddle-end, link,
beginning-middle-end, link, and so forth.
This view of software development is referred to as
the software development
life cycle.
A project has five phases. Here's a brief summary of
each:
⇒Initiation
Articulate your vision for the project, establish goals,
assemble your team,
and define expectations and the scope of your project.
⇒Planning
Refine the scope, identify specific tasks and activities
to be completed,
and develop a schedule and budget.
⇒Executing
Accomplish your goals by leading your team, solving
problems, and
building your project.
Value of products
Value of services
Financial cost
Personal value
Psychical cost
Image value
Time cost
Real value to
the customer
Total value
Total costs
Energy cost
+
-
Software Project Management (CS615)
14
© Copyright Virtual University of Pakistan
⇒Controlling
Monitor changes to the project make corrections,
adjust your schedule to
respond to problems, or adjust your expectations and
goals.
⇒Closing
Deliver your project to your audience, acknowledge
results, and assess its
success. Take the time to compose a written
evaluation of the project and
the development effort.
The middle three phases are not sequential. You will
find that you are constantly
planning, executing, and controlling your project as
necessary.
Aren't these phases really just common sense? In
many ways, yes, but keep in
mind that software development, whether a few Web
pages or a complex CDROM, is a complex,
unpredictable process.
Most software projects (something like 80 percent)
are delivered late,
substantially over budget, and incomplete. The more
effort you put into managing
your project, the more you increase your chances of
success.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note: do not use analogies.
– Characteristics of Project Phases
Each project phase is marked by completion of one or
more deliverables. A
deliverable is a tangible, verifiable work product such
as a feasibility study, a
detail design, or a working prototype. The
deliverables, and hence the phases, are
part of a generally sequential logic designed to ensure
proper definition of the
product of the project.
The conclusion of a project phase is generally marked
by a review of both key
deliverables and project performance to date, to a)
determine if the project should
continue into its next phase and b) detect and correct
errors cost effectively. These
phase-end reviews are often called phase exits, stage
gates, or kill points.
Each project phase normally includes a set of defined
deliverables designed to
establish the desired level of management control.
The majority of these items are
related to the primary phase deliverable, and the
phases typically take their names
from these items: requirements, design, build, test,
startup, turnover, and others,
as appropriate.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note: do not use analogies.
– Characteristics of the Project Life Cycle
The project life cycle serves to define the beginning
and the end of a project. For
example, when an organization identifies an
opportunity to which it would like to
respond, it will often authorize a needs assessment
and/or a feasibility study to
decide if it should undertake a project. The project life-
cycle definition will
determine whether the feasibility study is treated as
the first project phase or as a
separate, standalone project.
Software Project Management (CS615)
15
© Copyright Virtual University of Pakistan
The project life-cycle definition will also determine
which transitional actions at
the beginning and the end of the project are included
and which are not. In this
manner, the project life-cycle definition can be used to
link the project to the
ongoing operations of the performing organization.
The phase sequence defined by most project life cycles
generally involves some
form of technology transfer or handoff such as
requirements to design,
construction to operations, or design to
manufacturing. Deliverables from the
preceding phase are usually approved before work
starts on the next phase.
However, a subsequent phase is sometimes begun
prior to approval of the
previous phase deliverables when the risks involved
are deemed acceptable. This
practice of overlapping phases is often called fast
tracking.
Project life cycles generally define:
ƒ What technical work should be done in each phase
(e.g., is the work of the
architect part of the definition phase or part of the
execution phase?).
ƒ Who should be involved in each phase (e.g.,
implementers who need to be
involved with requirements and design).
ƒ Project life-cycle descriptions may be very general or
very detailed. Highly
detailed descriptions may have numerous forms,
charts, and checklists to
provide structure and consistency. Such detailed
approaches are often called
project management methodologies.
ƒ Most project life-cycle descriptions share a number
of common
characteristics:
ƒ Cost and staffing levels are low at the start, higher
toward the end, and drop
rapidly as the project draws to a conclusion.
ƒ The probability of successfully completing the
project is lowest, and hence
risk and uncertainty are highest, at the start of the
project. The probability of
successful completion generally gets progressively
higher as the project
continues.
ƒ The ability of the stakeholders to influence the final
characteristics of the
project’s product and the final cost of the project is
highest at the start and
gets progressively lower as the project continues. A
major contributor to this
phenomenon is that the cost of changes and error
correction generally
increases as the project continues.
Care should be taken to distinguish the project life
cycle from the product life
cycle. For example, a project undertaken to bring a
new desktop computer to
market is but one phase or stage of the product life
cycle.
Although many project life cycles have similar phase
names with similar
deliverables required, few are identical. Most have
four or five phases, but some
Software Project Management (CS615)
16
© Copyright Virtual University of Pakistan
have nine or more. Even within a single application
area, there can be significant
variations.
One organization’s software development life cycle
may have a single design
phase while another’s has separate phases for
functional and detail design.
Subprojects within projects may also have distinct
project life cycles. For
example, an architectural firm hired to design a new
office building is first
involved in the owner’s definition phase when doing
the design, and in the
owner’s implementation phase when supporting the
construction effort. The
architect’s design project, however, will have its own
series of phases from
conceptual development through definition and
implementation to closure. The
architect may even treat designing the facility and
supporting the construction as
separate projects with their own distinct phases. (my
prompt is that give me simple beginner level examples
of all the topics or text above given by me in this
prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
– Project Life Cycle includes the following Phases and
activities:
A. Concept Phase
1. User Need
2. Initial Investigation
3. User Review
4. System Performance Design
5. Candidate Review
6. Study Phase Report
B. Requirements Phase
1. The software requirements specification document
2. The project development plan
3. The software test plan
C. Design Phase
1. General System Review
2. Processing Requirements Identification
3. Data Base Design
4. Control Requirements
5. Output Design
6. Input Design
7. Software Selection
8. Equipment Selection/Acquisition
9. People
10. Reference Manual Identification
11. Plans
12. Design Specifications Preparation
13. Design Phase Report Preparation
D. Development Phase
Software Project Management (CS615)
17
© Copyright Virtual University of Pakistan
1. Implementation Planning
2. Computer Program Design
3. User Review
4. Equipment Acquisition and Installation
5. Coding and Debugging
6. Computer Program Testing
7. System Testing
8. Reference Manual Preparation
9. Personnel Training
10. Changeover Plan Preparation
11. Development Phase Report Preparation
12. User Acceptance Review
E. Operation Phase
1. System Changeover
2. Routine Operation
3. System Performance Evaluation
4. System Changes/Enhancements
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
Here are simple, beginner-level examples of each phase and activity in the project
life cycle, presented in a coherent manner:
A. Concept Phase
A. Concept Phase
A. Concept Phase
A. Concept Phase
A. Concept Phase
B. Requirements Phase
B. Requirements Phase
B. Requirements Phase
B. Requirements Phase
B. Requirements Phase
C. Design Phase
C. Design Phase
C. Design Phase
C. Design Phase
C. Design Phase
User Need
1
Example: A company identifies the need for a new inventory
management system because their current system is outdated and
lacks essential features.
2
Initial Investigation
3
Example: The company conducts an investigation to explore if creating
a new system is feasible. They consider costs, time, and resources
required for the project.
4
User Review
5
Example: The company gathers feedback from potential users, such as
warehouse managers, to ensure the system will meet their needs.
6
System Performance Design
7
Example: Initial designs are created that specify how fast the system
should work, how much data it should handle, and other performance
requirements.
8
Candidate Review
9
Example: The company evaluates different options or solutions, such
as building a custom system or purchasing a pre-built one.
10
Study Phase Report
11
Example: A report is compiled summarizing the findings of the
investigation, user feedback, and performance design, with
recommendations on how to proceed.
12
The Software Requirements Specification Document
1
Example: A detailed document is created outlining all the features and
functions the new inventory management system must have, such as
barcode scanning and inventory tracking.
2
The Project Development Plan
3
Example: A plan is made to outline how the project will be executed,
including timelines, milestones, and resource allocation.
4
The Software Test Plan
5
Example: A plan is created detailing how the new system will be
tested, such as defining test cases for functionality and performance.
6
General System Review
1
Example: The project team reviews the overall system design to
ensure it meets the requirements and is technically feasible.
2
Processing Requirements Identification
3
Example: The team defines what data processing will be needed, such
as how the system will handle large volumes of inventory data.
4
Database Design
5
Example: A database is designed to store all inventory information,
ensuring it is secure, scalable, and accessible.
6
Control Requirements
7
Example: The team specifies how the system will control access to the
data, such as implementing user permissions and roles.
8
Output Design
9
Example: The team designs how reports and data will be presented,
such as generating inventory reports for management.
10
Input Design
11
Example: The team designs how data will be entered into the system,
such as using barcode scanners or manual entry forms.
12
Software Selection
13
Example: The team chooses the specific software tools and platforms
needed to build the system, such as a programming language or
database software.
14
Equipment Selection/Acquisition
15
Example: The team selects the hardware required for the system, such
as servers and barcode scanners, and begins the acquisition process.
16
People
17
Example: The project team identifies and assigns roles to the
necessary personnel, such as developers, testers, and system
administrators.
18
Reference Manual Identification
19
Example: The team decides which user manuals and technical
documentation will be needed for system users and support staff.
Plans
1
D. Development Phase
D. Development Phase
D. Development Phase
D. Development Phase
D. Development Phase
Example: The team finalizes various plans, such as the implementation plan,
training plan, and support plan for the system.
Design Specifications Preparation
1
Example: Detailed design documents are created that specify how each part
of the system will be built and how the components will work together.
Design Phase Report Preparation
1
Example: A report summarizing the design phase activities and deliverables
is prepared, ensuring that all design work is complete and reviewed.
Implementation Planning
1
Example: The team prepares a plan for how the system will be
developed and implemented, including timelines, resources, and
strategies.
2
Computer Program Design
3
Example: Detailed designs for the software code are created, outlining
how the various functions and features will be implemented.
4
User Review
5
Example: The team reviews the designs and development plans with
end users to ensure their needs are still being met.
6
Equipment Acquisition and Installation
7
Example: The necessary hardware for the system, such as servers and
workstations, is purchased and installed.
8
Coding and Debugging
9
Example: Developers begin writing the code for the system and fixing
any bugs that arise during the process.
10
Computer Program Testing
11
Example: The team tests individual parts of the software to ensure
they work correctly, such as testing the inventory tracking feature.
12
System Testing
13
Example: The entire system is tested as a whole to ensure all
components work together smoothly, including performance and
security testing.
14
Reference Manual Preparation
15
E. Operation Phase
E. Operation Phase
E. Operation Phase
E. Operation Phase
E. Operation Phase
This coherent breakdown outlines each phase and activity in the project life cycle
with simple, direct examples for better understanding.
Example: User manuals and technical documentation are written to
guide users and support staff in using and maintaining the system.
16
Personnel Training
17
Example: Training sessions are conducted for the staff who will use
and manage the system, such as warehouse employees and IT support.
18
Changeover Plan Preparation
19
Example: A plan is created to transition from the old inventory system to
the new one, ensuring minimal disruption to operations.
Development Phase Report Preparation
1
Example: A report summarizing the development phase is prepared,
detailing progress, testing results, and next steps.
User Acceptance Review
1
Example: The system is presented to the users for final approval, ensuring it
meets all requirements and is ready for deployment.
System Changeover
1
Example: The new inventory management system is rolled out to
replace the old one, with all data and operations transferred.
2
Routine Operation
3
Example: The system is now in daily use by the company, handling
inventory tracking, ordering, and reporting as part of regular
operations.
4
System Performance Evaluation
5
Example: The team monitors the system’s performance to ensure it is
working efficiently and meets the company's needs.
6
System Changes/Enhancements
7
Example: Based on performance evaluation and user feedback, the
team makes necessary updates or adds new features to improve the
system further.
8
1.10 Software Development Lifecycle
⇒Water Fall Theme
Software development, just like most other activities,
has a beginning, middle and
an end. The end of one development activity is
sometimes perceived as being
linked to the beginning of a new development activity
thus producing a cycle of
beginning-middle-end, link, beginning-middle-end,
link, and so forth. This view
of software development is referred to as the
software development life cycle.
There are many variations of the software
development life cycle. Figure 1
presents a simple life cycle that was common during
the first few decades of
software development. In those early days of software
development, the
programmer would create programs by iterating from
code to fix then back to
code, and then to fix again, until something acceptable
was (hopefully) produced.
At the start of the cycle, there was usually no clear
concept of what was required,
and the basic development procedure was a form of
'let's see what we can do'
approach.
The software development method represented by
the development cycle in Fig.1
is often referred to as the code and fix method (for
obvious reasons). Software
development methodologies have come a long way
since the days of code and fix,
though it is surprising how much software is still being
developed this way.
Successful management of any project, especially
software projects, requires
planning, and planning is impossible with code and fix,
which is totally
unpredictable. Management of software development
within an engineering
Software Project Management (CS615)
18
© Copyright Virtual University of Pakistan
discipline is based on a much more orderly set of
development phases. These
phases are not implemented solely by programmers;
they require software
engineers. In fact, programming has become a
relatively small part of the modern
software development cycle, as is evident from Table
1.
The numbers in Table 1 are derived from the general
shift in emphasis to software
planning (requirements and design) and testing.
Commercial data processing
systems, with some exceptions, still spend a significant
amount of development
time in the programming and unit testing phase. Real-
time systems are often more
complex, and may include extensive hardware
software integration. This usually
requires more planning and more integration and
testing.
Figure 1: the code and fix method
Table 1 Estimated percentage of time spent in each
major software development phase
Planning Code and unit test Integration and test
Commercial data processing 25% 40% 35%
Real-time systems 35% 25% 40%
Military systems 40% 20% 40%
Military systems require high reliability and are
usually closely supervised by the
customer, leading to a significant increase in the time
spent in planning.
The data in Table 1, of course, represents a
generalization; commercial data
processing systems can be just as complex as a real-
time system.
Figure 2 presents the basic phased model of a
software development cycle. This
model, called the Waterfall model, gets its name from
the way in which each
phase cascades into the next (due to overlapping), as
demonstrated in Fig. 3.
Some interpretations of the Waterfall model, like the
one that follows, combine
the top level design and the detailed design phases
into a single design phase, and
the integration and test phases into a single phase. In
fact, there are many
variations of the classic Waterfall model, but they are
all based upon a systematic
transition from one development phase to the next,
until the project is complete.
Concept Code Fix Test
Maintain
Software Project Management (CS615)
19
© Copyright Virtual University of Pakistan
Conception
Maintenance Software
Requirements
Test
Top level
Design
Integration Detailed
Design
Implementation
Figure 2: The phased model of the software
development life cycle
Conception
Software requirements
Top level" design
Detailed design
Implementation
Integration
Test
Maintenance
T
Figure 3: The Waterfall model of the software
development life cycle
⇒Rapid prototyping There are other development
methodologies that do not move
from one phase to the next like the Waterfall model.
Rapid prototyping, for
Software Project Management (CS615)
20
© Copyright Virtual University of Pakistan
instance, iterates in a mini-development phase until a
system prototype is
developed (see Fig. 4). After the prototype is
complete, the Waterfall approach
can then be implemented to complete the full system.
Rapid prototyping is
particularly helpful in projects where the
requirements are difficult to specify. The
prototype can be used as a tool for analyzing and
determining what the
requirements should be. (my prompt is that give me
simple beginner level examples of all the topics or text
above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
The images provided reflect key models of the software development lifecycle,
particularly the Waterfall model and a circular representation of the software
lifecycle. Below is a beginner-level explanation of the concepts discussed in the
lecture with relevant examples:
1.
1.
1.
1.
1. Software Development Lifecycle
Software Development Lifecycle
Software Development Lifecycle
Software Development Lifecycle
Software Development Lifecycle
2.
2.
2.
2.
2. Waterfall Model
Waterfall Model
Waterfall Model
Waterfall Model
Waterfall Model
Software development, like many other activities, follows a lifecycle with a
beginning, middle, and end. The Waterfall model is a common
representation of this lifecycle, where each phase follows sequentially.
However, there are other methods like rapid prototyping, which iterates in
smaller cycles.
The Waterfall model is a sequential design process, where each phase of
development cascades into the next. This means that one phase must be
completed before moving on to the next phase. An example of a project
following the Waterfall model could be the development of a traditional
Example Phases:
3.
3.
3.
3.
3. Rapid Prototyping
Rapid Prototyping
Rapid Prototyping
Rapid Prototyping
Rapid Prototyping
Example: Developing a new mobile app where user requirements are vague. A
prototype of the app can be created to show the basic functionality and then
iterated based on user feedback before the final development begins.
4.
4.
4.
4.
4. Time Spent in Phases
Time Spent in Phases
Time Spent in Phases
Time Spent in Phases
Time Spent in Phases
Example Breakdown (from Table 1 in the text):
desktop application, where requirements are well understood upfront, and
each phase is completed in order.
Conception: Identify the idea for the software (e.g., an application to
manage customer data).
Software Requirements: Define specific functionalities needed (e.g., ability
to store, update, and retrieve customer information).
Top-Level Design: Outline the architecture (e.g., decide that the application
will have a database and a user interface).
Detailed Design: Create detailed plans for each component (e.g., database
schema, user interface layout).
Implementation: Write the code based on the design (e.g., develop the
front-end and back-end components).
Integration: Combine all components and ensure they work together (e.g.,
ensure the front-end communicates with the database correctly).
Test: Verify that the application functions as expected (e.g., test all features
and fix bugs).
Maintenance: Continue to fix issues and update the application as needed
(e.g., release patches and updates).
Rapid prototyping involves building a simplified version of the software
early in the development process to gather feedback and refine
requirements. This is especially useful when the requirements are not clear
at the start.
Different types of projects spend varying amounts of time in different
phases. For example, commercial data processing projects might spend
more time in coding and testing, whereas military systems might focus more
on planning due to higher reliability needs.
⇒The Spiral model, described by Boehm (1988), is
another development method
that iterates between the requirements, design and
implementation phases.
However, the Spiral model continues iterating until
the final system is complete.
Within each, iteration, the Spiral model follows a
phased approach similar to the
Waterfall model.
Different models maybe suitable for different
software projects or for different
software development organizations However, a good
model must include certain
fundamental features. Some of these basic
5.
5.
5.
5.
5. Mini-Development Phases in Rapid Prototyping
Mini-Development Phases in Rapid Prototyping
Mini-Development Phases in Rapid Prototyping
Mini-Development Phases in Rapid Prototyping
Mini-Development Phases in Rapid Prototyping
Example: If you're building a new e-commerce website and are unsure about the
design and user experience, you create a prototype of the homepage and a few
core pages. After testing it with users and gathering feedback, you refine the
design before moving to the full development phase.
This explanation provides a coherent and structured overview of the software
development lifecycle models discussed, keeping in mind that the content is part
of a lecture series and avoiding analogies as requested.
Commercial data processing systems: 25% planning, 40% coding and unit
testing, 35% integration and testing.
Military systems: 40% planning, 20% coding, 40% integration and testing.
In rapid prototyping, each mini-cycle involves gathering requirements,
designing, implementing, and testing. After creating the prototype, a more
structured approach, such as the Waterfall model, can be used to complete
the project.
requirements are discussed in IEEE
Standard (IEEE 1993) Standard for Software Life
Cycle Processes. This standard
describes the processes that are mandatory for the
development of software and
specifies the activities that must be included in the life
cycle model.
Most modern software development models, and
certainly those following IEEE
Standard 1074, include some form of the basic phased
model. It is therefore
important to understand the different phases and how
they relate to one another.
Concept Prototype Requirements Design
Implementation Test
The rapid prototyping cycle
Figure 4: Rapid prototyping followed by the phase
method. (my prompt is that give me simple beginner
level examples of all the topics or text above given by
me in this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
1. Spiral Model (by Boehm, 1988)
1. Spiral Model (by Boehm, 1988)
1. Spiral Model (by Boehm, 1988)
1. Spiral Model (by Boehm, 1988)
1. Spiral Model (by Boehm, 1988)
The Spiral Model is a software development method that emphasizes
iterative development. This model cycles through several phases like
Example: Imagine developing a complex healthcare management system. Instead
of trying to define all requirements and design upfront, the development team
starts with a basic version, iterates through requirements gathering, designing,
and implementing, improving the system through several iterations.
2. Different Models for Different Projects
2. Different Models for Different Projects
2. Different Models for Different Projects
2. Different Models for Different Projects
2. Different Models for Different Projects
Example: For a small web app with flexible requirements, Agile might be the
preferred choice, allowing for quick changes. On the other hand, for a large-scale
enterprise system with clear, fixed requirements, the Waterfall model may be
more efficient.
3. IEEE Standard for Software Life Cycle Processes
3. IEEE Standard for Software Life Cycle Processes
3. IEEE Standard for Software Life Cycle Processes
3. IEEE Standard for Software Life Cycle Processes
3. IEEE Standard for Software Life Cycle Processes
(IEEE 1074)
(IEEE 1074)
(IEEE 1074)
(IEEE 1074)
(IEEE 1074)
Example: Any software development team adhering to this standard will make
sure to perform proper planning before coding, and will conduct rigorous testing
before releasing the software to ensure compliance with the standard.
4. Rapid Prototyping Cycle
4. Rapid Prototyping Cycle
4. Rapid Prototyping Cycle
4. Rapid Prototyping Cycle
4. Rapid Prototyping Cycle
Example: If a team is developing a new mobile app with an unclear user interface,
they might build a rough prototype first, test it with users, refine it, and then
proceed to develop the final version based on the refined prototype.
requirements, design, and implementation repeatedly until the final system
is built.
Each iteration in the Spiral Model includes planning, risk analysis,
engineering, and evaluation. The aim is to refine the system step by step,
addressing risks early in the development process.
Software development models can vary based on the project’s nature or the
organization's requirements. For instance, an Agile model might be more
suitable for projects where requirements change frequently, while the
Waterfall model may be more appropriate for well-defined projects.
IEEE Standard 1074 outlines the mandatory processes for software
development. It specifies that any software development life cycle model
should include a phased approach, covering key activities such as planning,
requirements, design, implementation, testing, and maintenance.
Rapid Prototyping is an approach where a basic prototype of the software
is quickly built, tested, and refined through multiple iterations. After the
prototype has been finalized and requirements are better understood, a
more structured phase approach is followed, similar to the Waterfall model.
From ChatGPT, designed with FancyGPT
This explanation highlights key concepts related to the Spiral model, rapid
prototyping, and software development standards, in a coherent manner, as
would be presented in a lecture.
cs615 lecture 4
cs615 lecture 4
cs615 lecture 4
cs615 lecture 4
cs615 lecture 4
LECTURE # 4
1. Introduction & Fundamentals
1.11 Costs and Cost Management
Project Cost Management includes the processes required to
ensure that the
project is completed within the approved budget.
⇒Resource Planning—determining what resources (people,
equipment,
materials and what quantities of each should be used to
perform project
activities.
⇒Cost Estimating—developing an approximation (estimate) of
the costs of
the resources needed to complete project activities.
⇒Cost Budgeting—allocating the overall cost estimate to
individual work
activities.
⇒Cost Control—controlling changes to the project budget.
These processes interact with each other and with the
processes in the other
knowledge areas as well.
Each process may involve effort from one or more individuals or
groups of
individuals, based on the needs of the project.
Each process generally occurs at least once in every project
phase.
Although the processes are presented here as discrete
elements with well-defined
interfaces, in practice they may overlap and interact in ways not
detailed here.
Project cost management is primarily concerned with the cost
of the resources
needed to complete project activities.
However, project cost management should also consider the
effect of project
decisions on the cost of using the project’s product.
For example, limiting the number of design reviews may reduce
the cost of the
project at the expense of an increase in the customer’s
operating costs. This
broader view of project cost management is often called life-
cycle costing. Lifecycle costing together with Value Engineering
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/25
techniques are used to reduce cost
and time, improve quality and performance, and optimize the
decision-making.
In many application areas, predicting and analyzing the
prospective financial
performance of the project’s product is done outside the
project.
Software Project Management (CS615)
22
© Copyright Virtual University of Pakistan
In others (e.g., capital facilities projects), project cost
management also includes
this work. When such predictions and analyses are included,
project cost
management will include additional processes and numerous
general management
techniques such as return on investment, discounted cash flow,
payback analysis,
and others.
Project cost management should consider the information
needs of the project
stakeholders—different stakeholders may measure project
costs in different ways
and at different times. For example, the cost of a procurement
item may be
measured when committed, ordered, delivered, incurred, or
recorded for
accounting purposes.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
Certainly! Here are straightforward examples for each aspect of Project Cost Management
described in the text.
Resource Planning
Resource Planning
Resource Planning
Resource Planning
Resource Planning
Example: A construction project requires 10 workers, two excavators, and a specific quantity
of steel beams and concrete. In resource planning, the project manager identifies these needs
and determines the appropriate amount of each to complete the project effectively.
Cost Estimating
Cost Estimating
Cost Estimating
Cost Estimating
Cost Estimating
Example: For the construction project, the project manager estimates the total cost. They
calculate the cost of hiring workers, renting excavators, and purchasing steel beams and
concrete by getting quotes from suppliers and labor costs from contractors.
Cost Budgeting
Cost Budgeting
Cost Budgeting
Cost Budgeting
Cost Budgeting
Example: Once the total estimated cost is determined, the project manager allocates specific
amounts of the budget to each activity in the construction project. For instance, $50,000 for
excavation, $100,000 for purchasing steel beams, and $30,000 for labor.
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/25
1.12 Project vs. Program Management
⇒What is a Program?
“A coordinated portfolio of projects that change organizations
to achieve benefits
of strategic importance”
Program management is the process of managing multiple on
going projects. An example would be that of designing,
manufacturing and
providing support infrastructure for an automobile make.
It can be argued that Program Management has evolved from
the complexities of
the more intricate aspects of Project Management.
As projects became larger; more interrelated; complex and
multidimensional, the
need arose to have an approach that controlled Project
Management whilst
remaining focused on the strategic objectives of the business.
Whilst Project
Management focused on technical delivery, Program
Management engaged on
relating design concepts to the business strategic vision of the
future.
Cost Control
Cost Control
Cost Control
Cost Control
Cost Control
Example: During the construction project, if the price of steel increases, it could potentially
exceed the allocated budget. The project manager implements measures to control costs by
negotiating with suppliers for better prices or adjusting the use of steel in the project without
compromising quality.
Life-Cycle Costing
Life-Cycle Costing
Life-Cycle Costing
Life-Cycle Costing
Life-Cycle Costing
Example: In designing a new car, the manufacturer might choose a more expensive, energy-
efficient engine. While this increases the upfront cost of the car, it decreases fuel expenses for
customers, leading to lower operating costs over the car’s lifetime.
Value Engineering
Value Engineering
Value Engineering
Value Engineering
Value Engineering
Example: A software company reviews its development process to find ways to reduce costs
and improve quality. They decide to adopt a new programming framework that speeds up
development and reduces the time spent on maintenance.
Financial Performance Prediction
Financial Performance Prediction
Financial Performance Prediction
Financial Performance Prediction
Financial Performance Prediction
Example: A company is building a new shopping mall and wants to understand its financial
viability. They conduct an analysis to predict how much revenue the mall will generate
compared to the construction and operational costs to determine if it’s a worthwhile
investment.
Stakeholder Information Needs
Stakeholder Information Needs
Stakeholder Information Needs
Stakeholder Information Needs
Stakeholder Information Needs
Example: In a software development project, the finance department wants a report on costs
incurred each month. In contrast, the project manager needs weekly updates on costs to
manage the budget effectively. Therefore, the project provides tailored cost reports to each
stakeholder based on their requirements.
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/25
It is very important that you understand the concept of
Program Management as a
method. Approaches may vary but definitions are relatively
common. It is
appropriate to understand the ‘mission, goals and objectives’ of
Program
Management and then relate these to the Program you propose
to develop.
Definitions will fall within each of these headings and it is
possible to develop
your own template which fits your organizational program. For
example:
– Mission:
To co-ordinate a portfolio of projects to harmonize
communications in
order to achieve a set of stated business objectives: Provision
of strategy
alignment, with design objectives, in order to maintain control
over a
Software Project Management (CS615)
23
© Copyright Virtual University of Pakistan
multiple project environment; ensuring quality end deliverables
which
meet business operational needs.
The above is a fairly complex mission statement but provides a
framework
to develop an intricate set of goals in order to utilize Program
Management. It is possible to develop an extensive list of goals,
depending upon the level of detail you wish to acquire. The
following are
offered as suggestions:
– Goals:
1. Clearly defined roles and responsibilities
2. Established baselines and Terms of Reference statement
3. Type of program defined
4. Future business blueprint
5. Recognition of business transformation procedures
6. Defined structure of the Program
7. Route Map
8. Visible end deliverables — vision of the future
9. Identification of future benefits
10. Risk
11. Contingency planning
Software Project Management (CS615)
24
© Copyright Virtual University of Pakistan
Each of the goals would then be analyzed for providing
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/25
objectives. For example:
• Managing a program embraces functions, risks and strategies
outside of what a
project manager does.
• A program has goals beyond those of a project or group of
projects. Program
outcomes are usually service delivery focused whereas a
project is more likely
to be focused on the delivery of a 'product'.
• A program is more than a grouping of projects (that's just a
program of works).
• The coordinated management of a portfolio of projects to
achieve a set of
business objectives
• There are many more meanings of the term program
management. Here are the
more common meanings:
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
Here are simple, beginner-level examples related to program management and the concepts
discussed.
Program
Program
Program
Program
Program
Example: A car company is developing a new line of electric vehicles. The program includes
several projects such as designing the cars, building a manufacturing plant, developing a
charging network, and creating a marketing campaign. All these projects are coordinated to
achieve the strategic goal of becoming a leader in electric vehicle production.
Program Management
Program Management
Program Management
Program Management
Program Management
Example: The car company appoints a program manager to oversee the electric vehicle
program. This manager ensures that all projects, like design and manufacturing, work
together to meet the company’s strategic goals. The program manager also manages
resources and resolves conflicts between projects to keep the overall program on track.
Mission Statement
Mission Statement
Mission Statement
Mission Statement
Mission Statement
Example: The mission of the electric vehicle program is to design and manufacture a line of
eco-friendly vehicles that meet the future transportation needs of customers while achieving
the company’s strategic goal of reducing its carbon footprint.
Goals
Goals
Goals
Goals
Goals
Clearly Defined Roles and Responsibilities: Each team member, such as designers,
engineers, and marketers, understands their specific tasks and contributions to the
program.
1
Established Baselines and Terms of Reference: Setting clear expectations for quality,
cost, and time for each project within the program.
2
Type of Program Defined: Identifying that the program focuses on developing electric
vehicles and related infrastructure.
3
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/25
– The Mega Project
The management of a portfolio of projects towards one specific
objective;
Program management can also mean one very large project.
The USA’s Man on the Moon Project was such a program. In this
sense the
term program indicates one very large project which is made up
from a
number of components. Within the Apollo program there were
many projects:
the Lunar Lander, the Orbiter, the Launcher and the Control
Systems were all
projects which were large, complex and interesting. Polaris and
the
Manhattan project (which resulted in the nuclear bomb) are
other famous
projects large enough to be called programs. Therefore,
particularly in USA,
the word program refers to a series of projects which make up
one large
project.
The program is usually reflected in the management structure
as there will be
a program manager to whom the project managers will report.
Said program
manager or sometimes program director will concern himself
with recruiting
and maintaining his project management teams and on
integrating the
Future Business Blueprint: Outlining the company’s vision for the electric vehicle
market over the next decade.
4
Recognition of Business Transformation Procedures: Understanding how the shift to
electric vehicles will change the company’s operations and market approach.
5
Defined Structure of the Program: Organizing the program into manageable projects
with clear links and dependencies.
6
Route Map: A detailed plan showing the timeline and milestones for each project within
the program.
7
Visible End Deliverables — Vision of the Future: A clear picture of the completed
program, such as the release of the new electric vehicles and their impact on the market.
8
Identification of Future Benefits: Listing the expected outcomes, such as increased
market share, reduced emissions, and improved brand reputation.
9
Risk: Identifying potential issues, such as supply chain disruptions or technology
failures, and planning how to mitigate them.
10
Contingency Planning: Developing backup plans to handle unexpected challenges that
could affect the program’s success.
11
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/25
deliverables of each project into one overall program. In this
meaning of
program management there is likely to be one physical
deliverable.
These sorts of programs end. There will be a time when the
overall objective
has been achieved and the program and all of its constituent
projects are over.
The projects within this type of program are often linked.
Delays with one
project often cause knock on effects with others due to logical
links between
tasks in both projects.
For example if the moon rocket launch pad project was delayed,
it would
delay the testing of the moon rocket itself. The Beirut Shopping
Mall will be
of little use without the water treatment plant and the new
sewer scheme. Such
Software Project Management (CS615)
26
© Copyright Virtual University of Pakistan
projects may not share the same resources but there are almost
certain to be
linked through their logic.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
Here are simple beginner-level examples related to the concept of a "Mega Project" as
described in the text.
Mega Project
Mega Project
Mega Project
Mega Project
Mega Project
Example: The construction of a new international airport is considered a mega project. This
project includes building the terminal, constructing runways, setting up a control tower, and
establishing transportation links to the city. Each of these components is a project on its own,
but together, they form the mega project of the airport.
Program Manager
Program Manager
Program Manager
Program Manager
Program Manager
Example: For the international airport project, a program manager is appointed. This
manager oversees all the individual projects, such as the terminal and runway construction.
The program manager coordinates between different project managers to ensure that each
component aligns with the overall objective of completing the airport on time and within
budget.
Physical Deliverable
Physical Deliverable
Physical Deliverable
Physical Deliverable
Physical Deliverable
Example: The physical deliverable of the international airport project is the fully functional
airport, complete with terminals, runways, a control tower, and transportation facilities.
Linked Projects
Linked Projects
Linked Projects
Linked Projects
Linked Projects
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/25
1.13 Project Success
Project success is correlated with thorough analyses of the
need for project
deliverables. Our research has shown that when a project
results in deliverables
that are designed to meet a thoroughly documented need, then
there is a greater
likelihood of project success. So managers should insist that
there is a
documented business need for the project before they agree to
consume
organizational resources in completing it.
We conduct planned and controlled software projects for one
primary reason - it
is the only known way to manage complexity. And yet, we still
struggle. In 1998,
industry data indicated that 26 percent of software projects
failed outright and 46
percent experienced cost and schedule overruns [REE99].
Although the success rate for software projects has improved
somewhat, our
project failure rate remains higher than it should be.
In order to avoid project failure, a software project manager
and the software
engineers who build the product must avoid a set of common
warning signs,
understand the critical success factors that lead to good project
management, and
develop a common sense approach for planning, monitoring
and controlling the
project.
In order to manage a successful software project, we must
understand what can go
wrong (so that problems can be avoided) and how to do it right.
In an excellent
Example: In the international airport project, if the construction of the runway is delayed, it
will affect the testing and operation schedules for the airport. Similarly, the terminal's
construction must be completed before the airport can begin accepting flights. All these
projects are linked by their timelines and dependencies.
End of the Program
End of the Program
End of the Program
End of the Program
End of the Program
Example: Once the international airport is completed and operational, the mega project ends.
The program manager and project teams wrap up their work, and the airport starts
functioning as intended, serving flights and passengers.
These examples illustrate how large and complex initiatives can be broken down into
interrelated projects, all managed under the umbrella of a single, overarching program.
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/25
paper on software projects, John Reel [REE99] defines ten signs
that indicate that
an information systems project is in jeopardy:
1. Software people don't understand their customer's needs.
2. The product scope is poorly defined.
3. Changes are managed poorly.
4. The chosen technology changes.
5. Business needs change (or are ill-defined)
6. Deadlines are unrealistic.
7. Users are resistant.
8. Sponsorship is lost [or was never properly obtained).
9. The project team lacks people with appropriate skills.
10. Managers [and practitioners) avoid best practices and
lessons learned.
Jaded industry professionals often refer to the 90-90 rule when
discussing
particularly difficult software projects: The first 90 percent of a
system absorbs 90
percent of the allotted effort and time. The last 10 percent
takes the other 90
Software Project Management (CS615)
27
© Copyright Virtual University of Pakistan
percent of the allotted effort and time [ZAH94]. The seeds that
lead to the 90-90
rule are contained in the signs noted in the preceding list.
But enough negativity! How does a manager act to avoid the
problems just noted?
Reel [REE99] suggests a five-part commonsense approach to
software projects:
1. Start on the right foot. This is accomplished by working hard
(very hard)
to understand the problem that is to be solved and then setting
realistic
objects and expectations for everyone who will be involved in
the project.
It is reinforced by building the right team (Section 3.2.3) and
giving the
team the autonomy, authority, and technology needed to do the
job.
2. Maintain momentum. Many projects get off to a good start
and then
slowly disintegrate. To maintain momentum, the project
manager must
provide incentives to keep turnover of personnel to an absolute
minimum,
the team should emphasize quality in every task it performs,
and senior
management should do everything possible to stay out of (the
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/25
team's way.
3. Track progress. For a software project, progress is tracked as
work
products (e.g., specifications, source code, sets of test cases) are
produced
and approved (using formal technical reviews) as part of a
quality
assurance activation, software process and project measures
can be
collected and used to assess progress against averages
developed for the
software development organization.
4. Make smart decisions. In essence, the decisions of the project
manager
and the software team should be to "keep it simple.” Whenever
possible,
decide to use commercial off-the-shelf software or existing
software
components, decide to avoid custom interfaces when standard
approaches
are available, decide to identify and then avoid obvious risks,
and decide
to allocate more time than you think is needed to complex or
risky tasks
(you'll need every minute).
5. Conduct a postmortem analysis. Establish a consistent
mechanism for
extracting lessons learned for each project. Evaluate the
planned and
actual schedules, collect and analyze software project metrics,
get
feedback from team members and customers, and record
findings in
written form.
– Projects and Strategy
Projects are a means of organizing activities that cannot be
addressed
within the organization’s normal operational limits.
Projects are therefore often utilized as a means of achieving an
organization’s strategic plan, whether the project team is
employed by the
organization or is a contracted service provider.
Projects are typically authorized as a result of one or more of
the
following strategic considerations:
Software Project Management (CS615)
28
© Copyright Virtual University of Pakistan
ƒ A market demand (e.g., an oil company authorizes a project to
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/25
build a
new refinery in response to chronic gasoline shortages)
ƒ A business need (e.g., a training company authorizes a project
to create a
new course in order to increase its revenues)
ƒ A customer request (e.g., an electric utility authorizes a
project to build a
new substation to serve a new industrial park)
ƒ A technological advance (e.g., an electronics firm authorizes a
new
project to develop a new generation of video game player after
the
introduction of the corresponding new game format)
ƒ A legal requirement (e.g., a paint manufacturer authorizes a
project to
establish guidelines for the handling of a new toxic material).
No project ever goes 100% as planned, so project managers
must learn to adapt to
change. There are many things that can go wrong with project
management.
These are commonly called barriers. Here are some possible
barriers:
1. Poor Communication
– Many times a project may fail because the project team does
not
know exactly what to get done or what's already been done.
2. Disagreement
– Project must meet all elements in a contract.
– Customer and project manager must agree on numerous
elements.
– Failure to comply with standards and regulations.
– Inclement weather.
– Union strikes.
– Personality conflicts.
– Poor management
3. Poorly defined project goals
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.
Here are straightforward, beginner-level examples that illustrate the concepts of project
success, critical success factors, barriers, and strategic considerations:
Project Success
Project Success
Project Success
Project Success
Project Success
Example: A software development company documents a clear need for a new mobile
application to improve customer engagement. The company defines specific features and
requirements based on customer feedback and market research. This thorough analysis helps
ensure the application meets user needs and contributes to the project’s success.
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/25
Signs of Project Jeopardy
Signs of Project Jeopardy
Signs of Project Jeopardy
Signs of Project Jeopardy
Signs of Project Jeopardy
Common-Sense Approach to Software Projects
Common-Sense Approach to Software Projects
Common-Sense Approach to Software Projects
Common-Sense Approach to Software Projects
Common-Sense Approach to Software Projects
Strategic Considerations for Authorizing Projects
Strategic Considerations for Authorizing Projects
Strategic Considerations for Authorizing Projects
Strategic Considerations for Authorizing Projects
Strategic Considerations for Authorizing Projects
Software people don’t understand their customer’s needs: A software team develops a
product based on their assumptions without consulting the end-users, leading to
features that don’t align with user expectations.
1
Product scope is poorly defined: A software project starts without a clear
understanding of what features the final product should include, leading to confusion
and incomplete deliverables.
2
Changes are managed poorly: A project experiences numerous changes in
requirements, but these changes are not documented or communicated effectively,
causing delays and budget overruns.
3
Chosen technology changes: A project initially selects a specific programming language,
but midway through, decides to switch to another language without proper planning,
causing rework and delays.
4
Business needs change (or are ill-defined): A company starts a project to develop a new
product, but halfway through, the business strategy shifts, and the project’s initial goals
no longer align with the new direction.
5
Deadlines are unrealistic: A project is given a deadline that does not consider the
complexity of the tasks, leading to rushed work and poor quality.
6
Users are resistant: A new software system is introduced to employees, but they find it
hard to use and prefer the old system, affecting the system's adoption.
7
Sponsorship is lost (or was never properly obtained): A project starts without a
committed sponsor, and when challenges arise, there is no one to advocate for
additional resources or support.
8
The project team lacks people with appropriate skills: A project team is assembled, but
they lack expertise in key areas, such as database management or user interface design,
impacting the project’s success.
9
Managers (and practitioners) avoid best practices and lessons learned: Project
managers ignore previous experiences and industry best practices, leading to repeated
mistakes and inefficiencies.
10
Start on the right foot: Before starting a new software project, a manager ensures the
problem is well understood, sets realistic goals, and forms a skilled and empowered
team.
1
Maintain momentum: A project manager keeps the team motivated by recognizing
achievements, providing necessary resources, and minimizing disruptions from upper
management.
2
Track progress: The manager regularly reviews project milestones, such as completed
features or test cases, to ensure the project is on schedule and meeting quality
standards.
3
Make smart decisions: The project team opts for proven technology components
instead of developing new ones from scratch, reducing risk and saving time.
4
Conduct a postmortem analysis: After the project concludes, the team reviews what
went well and what didn’t, documenting these insights to improve future projects.
5
Market demand: An oil company faces gasoline shortages and initiates a project to build
a new refinery to increase supply and meet customer needs.
1
Business need: A training company observes a gap in their offerings and starts a project
to develop a new course to attract more customers and boost revenue.
2
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/25
1.14 Trade-Off Triangle
Good project management deals with three factors: time, cost
and
performance.
Projects are successful if they are completed on time, within
budget, and to
performance requirements. In order to bring the many
components of a large
project into control there is a large toolkit of techniques,
methodologies, and
tools.
Software Project Management (CS615)
29
© Copyright Virtual University of Pakistan
These techniques provide the tools for managing different
components
involved in a project: planning and scheduling, developing a
product;
managing financial and capital resources, and monitoring
progress. However
the success of a project will always rest on the abilities of a
project manager
and the team members.
In managing competing project requirements Project managers
often talk of a
triple constraint:
– Project scope
– Time and
– Cost
Project quality is affected by balancing these three factors.
High quality projects deliver the required product or service
within scope, on
Barriers to Project Success
Barriers to Project Success
Barriers to Project Success
Barriers to Project Success
Barriers to Project Success
Customer request: A power company authorizes a project to build a new substation
after a new industrial park requests increased power capacity.
3
Technological advance: An electronics firm begins a project to create a new gaming
console that matches advancements in game technology.
4
Legal requirement: A paint manufacturer undertakes a project to comply with new
regulations on toxic materials, ensuring safe handling and storage.
5
Poor Communication: A project fails because team members are unclear about their
tasks, leading to duplicated efforts and incomplete work.
1
Disagreement: A customer and project manager fail to agree on key project
deliverables, causing conflicts and delays in project approval.
2
Poorly defined project goals: A project starts without specific, measurable goals,
leading to confusion about the project’s direction and priorities.
3
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/25
time and within budget.
The relationship among these factors is such that if any one of
the three
factors changes, at least one other factor must change.
Simply put: project success means completing all project
deliverables on time,
within budget, and to a level of quality that is acceptable to
sponsors and
stakeholders.
The project manager must keep the team's attention focused on
achieving
these broad goals. Most people still want their projects to be on
time, meet
quality objectives, and not cost more than the budget. These
form the classic
time, quality, cost triangle.
In fact if you have an unlimited budget and unlimited time,
project
management becomes rather easy. For most people, however,
time and money
are critical and that is what makes project management so
important today.
Project management is often summarized in a triangle. The
three most
important factors are time, cost and scope. These form the
vertices with
quality as a central theme.
Software Project Management (CS615)
30
© Copyright Virtual University of Pakistan
1. Projects must be delivered on time.
2. Projects must be within cost
3. Projects must be within scope
4. Projects must meet customer quality requirements
More recently, this has given way to a project management
diamond, with
time, cost, scope and quality the four vertices and customer
expectations as a
central theme. No two customers' expectations are the same so
you must ask
what their expectations are.
A project goes through four phases during its life:
1. Project Definition: Defining the goals, objectives and critical
success
factors for the project
2. Project Initiation: Everything that is needed to set-up the
project before
work can start
3. Project Control: Ensuring that a project stays on track and
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/25
taking
appropriate action to ensure it does
4. Project Closure: Disbanding of all the elements that were
required to run
the project
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note: do not use analogies.Important Note2: this is a
lecture given by one lecturer so keep in mind in that give a
coherent answer.
Here are some beginner-level examples for the concepts outlined in your lecture:
Trade-Off Triangle:
Project Life Cycle Phases:
Time:
1
Example: An app development project is scheduled to take six months. To meet
this timeline, the project team must carefully plan tasks, manage dependencies,
and avoid delays. If the app takes longer than six months to develop, it may delay
the product launch and increase costs.
2
Cost:
3
Example: A construction project has a budget of $500,000. The project manager
must allocate this budget to various activities like purchasing materials, hiring
labor, and obtaining permits. Exceeding this budget could lead to financial losses
for the company or necessitate seeking additional funding.
4
Scope:
5
Example: A website redesign project has a clear scope defined by the client, which
includes updating the homepage, about page, and contact page. Adding more
pages or features without adjusting time and budget can lead to scope creep,
affecting project quality and completion time.
6
Quality:
7
Example: A smartphone manufacturing project aims to produce devices that meet
specific quality standards. Ensuring each phone is free of defects, has a long
battery life, and runs smoothly under high usage are some of the quality measures
that need to be met to satisfy customer expectations.
8
Customer Expectations:
9
Example: A software project team is building a new feature based on customer
feedback. The project team regularly communicates with customers to
understand their expectations and ensure the feature aligns with their needs,
enhancing customer satisfaction.
10
Project Definition:
1
Example: A company wants to reduce energy consumption by 20% in two years.
The project definition phase involves setting this goal, identifying the key steps to
achieve it, and determining the resources needed.
2
Project Initiation:
3
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/25
1.15 Project Management Skills
The role of the Leader in project management is one of great
responsibility.
It's the project manager's job to direct and supervise the
project from
beginning to end. Here are some other roles:
(a) Leadership
(b) Communications
(c) Problem Solving
(d) Negotiating
(e) Influencing the Organization
(f) Mentoring
(g) Process and technical expertise
(a) Leadership
Leadership is a complex phenomenon involving the leader, the
followers,
and the situation. Perhaps the best way for you to begin to
understand the
complexities of leadership is to see some of the ways leadership
has been
defined. Leadership researchers have defined leadership in the
following
different ways:
ƒ The creative and directive force of morale. (Munson, 1921)
ƒ The process by which an agent induces a subordinate to
behave in a
desired manner. (Bennis, 1959)
ƒ The presence of a particular influence relationship between
two or
These examples provide a basic understanding of the essential elements involved in project
management and the factors that influence project success.
Example: Before starting a new marketing campaign, a company gathers a project
team, assigns roles, and secures the necessary budget. This preparation ensures
everyone knows their responsibilities and the campaign can start smoothly.
4
Project Control:
5
Example: During the development of a new software feature, the project manager
holds weekly meetings to track progress. If any issues arise, such as falling behind
schedule, the manager takes corrective actions, like reallocating resources or
adjusting timelines, to keep the project on track.
6
Project Closure:
7
Example: Once a building project is complete, the project manager ensures that all
paperwork is finalized, stakeholders are informed of the completion, and any
remaining resources are reallocated or released. The project team is then
officially disbanded.
8
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/25
more persons. (Hollander & Julian, 1969)
ƒ Directing and coordinating the work of group members.
(Fiedler,
1967) An interpersonal relation in which others comply
because they
want to, not because they have to. (Merton, 1969; Hogan,
Curphy, &
Hogan, 1994)
ƒ Transforming followers, creating visions of the goals that may
be
attained, and articulating for the followers the ways to attain
those
goals. (Bass, 1985; Fichy & Devanna, 1986)
ƒ The process of influencing an organized group toward
accomplishing
its goals. (Roach & Behling, 1984)
ƒ Actions that focus resources to create desirable
opportunities.
(Campbell, 1991)
Software Project Management (CS615)
32
© Copyright Virtual University of Pakistan
ƒ The leader's job is to create conditions for the team to be
effective.
(Ginnett, 1996)
Leading and managing are both essential management skills:
one
without the other is likely to produce poor results. Managing is
primarily
concerned with “consistently producing key results expected by
stakeholders,” while leading involves:
ƒ Establishing direction—developing both a vision of the future
and
strategies for producing the changes needed to achieve that
vision.
ƒ Aligning people—communicating the vision by words and
deeds to
all those, whose cooperation may be needed to achieve the
vision.
ƒ Motivating and inspiring—helping people energize
themselves to
overcome political, bureaucratic, and resource barriers to
change.
On a project, particularly a larger project, the project manager
is generally
expected to be the project’s leader as well.
Leadership is not, however, limited to the project manager: it
may be
demonstrated by many different individuals at many different
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 17/25
times during
the project.
Leadership must be demonstrated at all levels of the project
(project
leadership, technical leadership, and team leadership).
(b) Communicating
Communicating involves the exchange of information and the
ability to
transmit and receive information with a high probability that
the intended
message is passed from sender to receiver.
The sender is responsible for making the information clear,
unambiguous,
and complete so that the receiver can receive it correctly. The
receiver is
responsible for making sure that the information is received in
its entirety
and understood correctly.
Few skills are more vital to leadership. Studies show that good
leaders
communicate feelings and ideas, actively solicit new ideas from
others,
and effectively articulate arguments, advocate positions, and
persuade
others.
The quality of a Leader’s communication is positively correlated
with
subordinate satisfaction as well as with productivity and quality
of
services rendered.
Software Project Management (CS615)
33
© Copyright Virtual University of Pakistan
Effective communication skills are also important because they
provide
leaders and followers with greater access to information
relevant to
important organizational decisions.
Communicating has many dimensions:
– Written and oral, listening and speaking
– Internal (within the project) and external (to the customer, the
media, the public, etc.).
– Formal (reports, briefings, etc.) and informal (memos, ad hoc
conversations, etc.)
– Vertical (up and down the organization) and horizontal (with
peers
and partner organization)
The general management skill of communicating is related to,
but not the
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 18/25
same as, Project Communications Management.
Communicating is the broader subject and involves a
substantial body of
knowledge that is not unique to the project context, for
example:
– Sender-receiver models—feedback loops, barriers to
communications, etc.
– Choice of media—when to communicate in writing, when to
communicate orally, when to write an informal memo, when to
write a formal report, etc.
– Writing style—active versus passive voice, sentence
structure,
word choice, etc.
– Presentation techniques—body language, design of visual
aids,
etc.
– Meeting management techniques—preparing an agenda,
dealing
with conflict, etc.
Project Communications Management is the application of
these broad
concepts to the specific needs of a project—for example,
deciding how;
when; in what form; and to whom to report project
performance.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one lecturer so keep
in mind in that give a coherent answer.
Here are some simple beginner-level examples of the project management skills described in
the lecture:
(a) Leadership
Creating a Vision:
1
A project manager sets a clear goal for a new software product, ensuring the
entire team understands the target and works towards it.
2
Aligning People:
3
The project manager holds a meeting to explain the project objectives and the
roles of each team member, ensuring everyone knows their responsibilities and
how they contribute to the project.
4
Motivating and Inspiring:
5
The project manager recognizes team members' hard work and achievements,
keeping morale high and encouraging the team to overcome obstacles.
6
Providing Direction:
7
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 19/25
(c) Negotiating
Negotiating involves conferring with others to come to terms
with them or
reach an agreement.
Agreements may be negotiated directly or with assistance;
mediation and
arbitration are two types of assisted negotiation.
Negotiation is an approach that may help resolve some
conflicts. Some
important tips on negotiation include; preparing for a
negotiation session;
Software Project Management (CS615)
34
© Copyright Virtual University of Pakistan
keeping people and problems separate; focusing on issues, not
positions
and seeking win-win outcomes.
Negotiations occur around many issues, at many times, and at
many levels
of the project.
During the course of a typical project, project staff is likely to
negotiate
for any or all of the following:
(b) Communicating
These examples highlight key aspects of leadership and communication skills that are crucial
for effective project management. They illustrate how a project manager can apply these
skills in different scenarios to ensure project success.
During a critical phase, the project manager steps in to guide the team on how to
meet a challenging deadline, providing clear instructions and support.
8
Clear Information Exchange:
1
The project manager writes detailed project updates to ensure all stakeholders,
including team members and executives, are informed about progress and
challenges.
2
Listening and Understanding:
3
A team member raises a concern about a potential delay. The project manager
listens attentively, asks clarifying questions, and addresses the issue promptly.
4
Formal and Informal Communication:
5
The project manager sends out a formal report on project status while also having
informal check-ins with team members to gather feedback and address any issues.
6
Vertical and Horizontal Communication:
7
The project manager communicates with upper management about the project's
progress (vertical) and collaborates with other department heads to align efforts
and resources (horizontal).
8
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 20/25
• Scope, cost, and schedule objectives.
• Changes to scope, cost, or schedule.
• Contract terms and conditions.
• Assignments.
• Resources.
(d) Problem Solving
There are three steps involved in this important leadership role;
identifying
problem; analyzing its cause; and solving the problem.
Problem solving involves a combination of problem definition
and
decision-making.
Problem definition requires distinguishing between causes and
symptoms.
Problems may be:
– Internal (a key employee is reassigned to another project)
– External (a permit required to begin work is delayed).
– Technical (differences of opinion about the best way to design
a
product)
– Managerial (a functional group is not producing according to
plan) or
– Interpersonal (personality or style clashes).
(e) Decision-making
Decision-making includes analyzing the problem to identify
viable
solutions, and then making a choice from among them.
Decisions can be made or obtained (from the customer, from
the team, or
from a functional manager).
Once made, decisions must be implemented.
Decisions also have a time element to them—the “right”
decision may not
be the “best” decision if it is made too early or too late. (my
prompt is that give me simple beginner level examples of all the
topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one lecturer so keep
in mind in that give a coherent answer.
Here are simple beginner-level examples of the project management skills described in the
lecture:
(c) Negotiating
Preparing for Negotiation:
1
Before discussing the project scope with a client, the project manager gathers
data on the client's needs, the team's capabilities, and potential constraints to
2
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 21/25
(d) Problem Solving
(e) Decision-Making
These examples provide a clear illustration of how negotiation, problem-solving, and
decision-making skills are applied in a project management context.
effectively advocate for a realistic timeline.
Keeping People and Problems Separate:
3
When a disagreement arises over the allocation of resources, the project manager
focuses on the project's requirements rather than personal preferences,
facilitating a more objective discussion.
4
Focusing on Issues, Not Positions:
5
During a meeting about a schedule delay, the project manager emphasizes the
need to find a solution that benefits the project rather than arguing over who is at
fault.
6
Seeking Win-Win Outcomes:
7
While negotiating with a supplier for materials, the project manager aims to find a
pricing arrangement that satisfies both the project budget and the supplier's
profit margins.
8
Identifying the Problem:
1
The project manager notices that the team's productivity has decreased and seeks
to understand whether the issue is due to a lack of resources, unclear instructions,
or another factor.
2
Analyzing Its Cause:
3
Upon discovering that a key software component is not working as expected, the
project manager investigates whether the issue is with the code, the hardware, or
external dependencies.
4
Solving the Problem:
5
After identifying that a delay is due to a lack of communication between
departments, the project manager sets up regular inter-departmental meetings to
ensure information is shared efficiently.
6
Analyzing the Problem to Identify Viable Solutions:
1
The project manager faces a budget cut and evaluates options such as reducing
scope, extending the timeline, or finding cost-effective resources to keep the
project on track.
2
Making a Choice:
3
After considering the potential solutions, the project manager decides to extend
the timeline slightly and use more cost-effective resources to minimize the impact
on project deliverables.
4
Implementing the Decision:
5
The project manager communicates the new plan to the team, adjusts the project
schedule, and reallocates resources as needed to align with the updated timeline
and budget.
6
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 22/25
(f) Influencing the Organization
Influencing the organization involves the ability to “get things
done.”
It requires an understanding of both the formal and informal
structures of
all the organizations involved—the performing organization,
customer,
partners, contractors, and numerous others, as appropriate.
Influencing the organization also requires an understanding of
the
mechanics of power and politics.
Both power and politics are used here in their positive senses.
Power is “the potential ability to influence behavior, to change
the course
of events, to overcome resistance, and to get people to do
things that they
would not otherwise do.”
In similar fashion, “politics is about getting collective action
from a group
of people who may have quite different interests. It is about
being willing
to use conflict and disorder creatively.
The negative sense, of course, derives from the fact that
attempts to
reconcile these interests result in power struggles and
organizational
games that can sometimes take on a thoroughly unproductive
life of their
own.”
Influence can be exercised in a: variety of ways. It may be the
'bridge to
engine room' approach, where the leader commands and
controls. Or the
influence can be exercised by guiding and facilitating the
group's behavior
so that the goal is accomplished.
Finally, leadership implies that a leader motivates the group to
spend
energy in attaining the goals of the group.
Influence without change or movement isn’t influence. Leaders
make
change happen, a difficult but vitally important task.
(g) Mentoring
Mentoring or being a Transformational leadership is more
concerned with
engagement between leaders and followers.
Leaders attempt to engage the full person of the subordinate
and enthuse
them. They arouse in their subordinates a heightened
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 23/25
awareness of the key
issues for the group or the organization. They seek to concern
subordinates
with achievement, growth and development.
Software Project Management (CS615)
36
© Copyright Virtual University of Pakistan
Creating a new vision is something that almost all writers on
transformational leadership emphasize.
The vision points the way to a new state of affairs. It is an
appealing
picture of a more desirable future. It inspires people to believe
that the
future is worth the upheaval of undoing the present.
A vision needs to be a source of self-esteem and a common
purpose for
members of the organization.
(h) Technical Skills:
A project manager must have technical skills. This relates to
financial
planning, contract management, and managing creative
thinking and
problem solving techniques are promoted. (my prompt is that
give me simple beginner level examples of all the topics or text
above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one lecturer so keep
in mind in that give a coherent answer.
Here are beginner-level examples of influencing the organization, mentoring, and technical
skills in a project management context:
(f) Influencing the Organization
Understanding Formal and Informal Structures:
1
A project manager needs to understand the organizational hierarchy and who
holds influence beyond official titles. For example, knowing which senior staff
members are key decision-makers and which team members others tend to listen
to can help navigate project dynamics effectively.
2
Using Power Positively:
3
A project manager uses their authority to facilitate collaboration between
different departments to ensure the project meets its goals, such as coordinating
efforts between the marketing and development teams to ensure a product
launch stays on schedule.
4
Exercising Influence Through Guidance:
5
Instead of issuing direct orders, the project manager facilitates a workshop where
team members brainstorm solutions to a project challenge, guiding the
conversation to keep it productive and aligned with project objectives.
6
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 24/25
From ChatGPT, designed with FancyGPT
(g) Mentoring
(h) Technical Skills
These examples illustrate how a project manager applies various skills to manage projects
effectively and support team development within an organization.
Motivating for Goal Attainment:
7
The project manager communicates the project’s impact on the company's
success, motivating team members by showing how their work contributes to a
larger vision and recognizing their contributions to maintain high engagement
levels.
8
Engaging and Enthusing Subordinates:
1
A project manager spends time understanding team members' career goals and
provides opportunities for them to work on tasks that align with their interests,
helping them see the project as a path to personal growth.
2
Creating a Vision for the Future:
3
The project manager develops and shares a clear vision of how the project will
improve the company's standing in the market, encouraging the team to work
toward this common goal and inspiring them to push through challenges.
4
Arousing Awareness of Key Issues:
5
During team meetings, the project manager highlights critical areas of focus for
the project, such as meeting quality standards and deadlines, and encourages
team members to prioritize these areas in their work.
6
Building a Common Purpose:
7
The project manager organizes team-building activities that reinforce the
project's goals and foster a sense of unity among team members, helping them
feel connected to the project's success.
8
Financial Planning:
1
The project manager creates a detailed budget for the project, outlining all
expected expenses and monitoring actual costs against this budget to ensure the
project remains financially viable.
2
Contract Management:
3
When working with external vendors, the project manager reviews and
negotiates contract terms to ensure they align with the project’s scope and
budget, managing these relationships to secure necessary resources.
4
Managing Creative Thinking and Problem Solving:
5
The project manager facilitates brainstorming sessions where team members are
encouraged to propose innovative solutions to project challenges, promoting an
environment where creative ideas are valued and explored.
6
14/08/2024, 14:48 FancyGPT - cs615 lecture 4
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 25/25
cs615 lecture 5
cs615 lecture 5
cs615 lecture 5
cs615 lecture 5
cs615 lecture 5
LECTURE # 5
1. Introduction & Fundamentals
1.16 PM’s nine Knowledge Areas
1. Project Integration Management
Project Integration Management includes the
processes required to ensure that the
various elements of the project are properly
coordinated. It involves making
tradeoffs among competing objectives and
alternatives to meet or exceed stakeholder needs.
These processes interact with each other and with the
processes in the other
knowledge areas as well. Each process may involve
effort from one or more
individuals or groups of individuals, based on the
needs of the project. Each
process generally occurs at least once in every project
phase.
Project integration management comes into play
when a cost estimate is needed
for a contingency plan, or when risks associated with
various staffing alternatives
must be identified. However, for a project to be
completed successfully,
integration must also occur in a number of other areas
as well. For example:
ƒ The work of the project must be integrated with the
ongoing operations of the
performing organization.
ƒ Product scope and project scope must be integrated.
One of the techniques used to both integrate the
various processes and to measure
the performance of the project as it moves from
initiation through to completion is
Earned Value Management (EVM).
• Earned value is the amount of work completed,
measured according to the
budgeted effort that the work was supposed to
consume.
• It is also called the budgeted cost of work
performed.
• As each task is completed, the number of person-
months originally planned
for that task is added to the earned value of the
project.
– Earned value charts: An earned value chart has three
curves:
• The budgeted cost of the work scheduled.
• The earned value.
• The actual cost of the work performed so far.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
2. Project Scope Management
Software Project Management (CS615)
38
© Copyright Virtual University of Pakistan
Project Scope Management includes the processes
required to ensure that the
project includes all the work required, and only the
work required, to complete the
project successfully. It is primarily concerned with
defining and controlling what
is or is not included in the project.
The processes, tools, and techniques used to manage
product scope vary by
application area and are usually defined as part of the
project life cycle
A project generally results in a single product, but that
product may include
subsidiary components, each with its own separate
but interdependent product
scopes. For example, a new telephone system would
generally include four
subsidiary components—hardware, software, training,
and implementation.
Completion of the project scope is measured against
the project plan, but
completion of the product scope is measured against
the product requirements.
Both types of scope management must be well
integrated to ensure that the work
of the project will result in delivery of the specified
product.
3. Project Time Management
Project Time Management includes the processes
required to ensure timely
completion of the project. The followings are major
processes in developing the
project time schedule:
(a) Activity Definition—identifying the specific
activities that must be
performed to produce the various project
deliverables.
(b) Activity Sequencing—identifying and documenting
interactivity
dependencies.
(c) Activity Duration Estimating—estimating the
number of work periods that
will be needed to complete individual activities.
(d) Schedule Development—analyzing activity
sequences, activity durations,
and resource requirements to create the project
schedule.
(e) Schedule Control—controlling changes to the
project schedule.
These processes interact with each other and with the
processes in the other
knowledge areas as well. Each process may involve
effort from one or more
individuals or groups of individuals, based on the
needs of the project. Each
process generally occurs at least once in every project
phase.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
Let's break down the concepts in your lecture into simple, beginner-level
explanations:
2. Project Scope Management
2. Project Scope Management
2. Project Scope Management
2. Project Scope Management
2. Project Scope Management
Project Scope Management is about making sure that everything that needs to be
done for a project is clearly defined and controlled. It ensures that the project
includes all the necessary work and only the necessary work to complete the
project successfully.
3. Project Time Management
3. Project Time Management
3. Project Time Management
3. Project Time Management
3. Project Time Management
Defining Scope: This involves clearly outlining what the project will deliver.
For example, if you are managing a project to create a new software
application, the scope would include all the features, functionalities, and
services that the software should provide.
Controlling Scope: This is about ensuring that the project stays within its
defined boundaries. If someone wants to add a new feature to the software
that wasn't originally planned, you would need to decide whether this
change is necessary or if it will affect the project's timeline or budget.
Product vs. Project Scope: A project usually results in a single product, but
this product might have multiple components. For example, if you're
developing a new telephone system, it might include hardware, software,
training, and implementation. Each of these components has its own scope.
The success of the project is measured by how well it adheres to the project
plan, while the success of the product is measured by whether it meets the
specified requirements.
4. Project Cost Management
Software Project Management (CS615)
39
© Copyright Virtual University of Pakistan
Project Cost Management includes the processes
required to ensure that the
Project Time Management is about ensuring that the project is completed on
time. It involves several key processes:
These processes interact with each other and other areas of project management.
For example, changes in the scope of the project might affect the schedule, and
managing these interactions is crucial to the project's success.
This explanation simplifies the concepts while maintaining a coherent flow, just as
a lecturer would do in a class.
(a) Activity Definition: This process involves identifying all the specific tasks
that need to be done to deliver the project. For instance, if you're managing
a construction project, you need to list out tasks like laying the foundation,
building the walls, installing plumbing, etc.
(b) Activity Sequencing: After identifying the tasks, you need to determine
the order in which they should be completed. Some tasks can only start
after others are finished. For example, you can't start painting a room until
the walls are built.
(c) Activity Duration Estimating: This involves estimating how long each
task will take to complete. For example, you might estimate that building the
walls will take 10 days.
(d) Schedule Development: Once you have the tasks, their order, and their
durations, you can develop the project schedule. This schedule shows when
each task will start and finish, and it helps ensure that everything is
completed on time.
(e) Schedule Control: This is about monitoring the project to make sure it
stays on schedule. If any changes or delays occur, you need to adjust the
schedule accordingly to keep the project on track.
project is completed within the approved budget.
Resource Planning—determining what resources
(people, equipment, materials)
and what quantities of each should be used to perform
project activities.
Cost Estimating—developing an approximation
(estimate) of the costs of the
resources needed to complete project activities.
Cost Budgeting—allocating the overall cost estimate
to individual work
activities.
Cost Control—controlling changes to the project
budget.
These processes interact with each other and with the
processes in the other
knowledge areas as well. Each process may involve
effort from one or more
individuals or groups of individuals, based on the
needs of the project. Each
process generally occurs at least once in every project
phase.
5. Project Quality Management
Project Quality Management includes the processes
required to ensure that the
project will satisfy the needs for which it was
undertaken. It includes “all
activities of the overall management function that
determine the quality policy,
objectives, and responsibilities and implements them
by means such as quality
planning, quality assurance, quality control, and
quality improvement, within the
quality system.
These processes interact with each other and with the
processes in the other
knowledge areas as well. Each process may involve
effort from one or more
individuals or groups of individuals, based on the
needs of the project. Each
process generally occurs at least once in every project
phase.
Project quality management must address both the
management of the project and
the product of the project. The generic term product is
occasionally used, in
literature regarding quality, to refer to both goods and
services.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
Here's a simple explanation of the concepts in your lecture:
4. Project Cost Management
4. Project Cost Management
4. Project Cost Management
4. Project Cost Management
4. Project Cost Management
Project Cost Management ensures that the project stays within its approved
budget. It involves several key processes:
Resource Planning: This is about figuring out what resources (people,
equipment, materials) are needed for the project and in what quantities. For
example, if you are managing a software development project, you'll need to
plan for the number of developers, the software tools they'll use, and the
hardware required for testing.
These processes interact with each other and other project management areas to
ensure that the project is completed within the budget.
5. Project Quality Management
5. Project Quality Management
5. Project Quality Management
5. Project Quality Management
5. Project Quality Management
Project Quality Management is about making sure that the project meets the
requirements and satisfies the needs for which it was started. It includes the
following processes:
Project Quality Management applies to both the project itself (how the project is
managed) and the product it delivers (the final outcome). The goal is to ensure that
Cost Estimating: Once you know what resources you need, the next step is
to estimate the costs associated with them. For example, you might
estimate the cost of hiring developers, purchasing software licenses, and
renting office space.
Cost Budgeting: After estimating the total costs, you need to allocate this
budget to specific tasks or activities in the project. This helps in monitoring
spending and ensuring that each part of the project has the funds it needs to
be completed.
Cost Control: This involves keeping track of the project’s spending to
ensure that it stays within the budget. If unexpected expenses arise,
adjustments may be needed to keep the project on track financially.
Quality Planning: This involves setting the standards and guidelines that
the project must follow to ensure quality. For example, if you're managing a
project to develop a mobile app, quality planning might involve setting
standards for user interface design, performance, and security.
Quality Assurance: This is about making sure that the project processes are
being followed correctly to meet the quality standards. For example, regular
reviews and audits might be conducted to ensure that the development
process is on track.
Quality Control: This process involves monitoring the project’s outcomes to
ensure they meet the required quality standards. For example, testing the
mobile app to ensure it functions correctly and meets the performance
criteria is part of quality control.
Quality Improvement: This focuses on finding ways to improve the quality
of the project’s processes and outcomes continuously. For instance, learning
from past mistakes and making adjustments to avoid them in the future is
part of quality improvement.
6. Project Human Resource Management
Project Human Resource Management includes the
processes required to make
the most effective use of the people involved with the
project. It includes all the
project stakeholders—sponsors, customers, partners,
and individual contributors
Following are some major processes:
Software Project Management (CS615)
40
© Copyright Virtual University of Pakistan
ƒ Organizational Planning—identifying, documenting,
and assigning project
roles, responsibilities, and reporting relationships.
ƒ Staff Acquisition—getting the human resources
needed assigned to and
working on the project.
ƒ Team Development—developing individual and
group competencies to
enhance project performance.
These processes interact with each other and with the
processes in the other
knowledge areas as well. Each process may involve
effort from one or more
individuals or groups of individuals, based on the
needs of the project.
both the project processes and the final product meet the desired quality
standards.
This explanation presents the topics in a straightforward and coherent manner,
maintaining the flow of a lecture.
There is a substantial body of literature about dealing
with people in an
operational, ongoing context. Some of the many topics
include:
ƒ Leading, communicating, negotiating, etc.
Key General Management Skills:
ƒ Delegating, motivating, coaching, mentoring, and
other subjects related to
dealing with individuals.
ƒ Team building, dealing with conflict, and other
subjects related to dealing
with groups.
ƒ Performance appraisal, recruitment, retention, labor
relations, health and
safety regulations, and other subjects related to
administering the human
resource function.
Most of this material is directly applicable to leading
and managing people on
projects, and the project manager and project
management team should be
familiar with it. However, they must also be sensitive
as to how this knowledge is
applied on the project. For example:
Project Human Resource Management includes the
processes required to make
the most effective use of the people involved with the
project. It includes all the
project stakeholders—sponsors, customers, partners,
and individual contributors.
Major processes include:
ƒ Organizational Planning—identifying, documenting,
and assigning project
roles, responsibilities, and reporting relationships.
ƒ Staff Acquisition—getting the human resources
needed assigned to and
working on the project.
ƒ Team Development—developing individual and
group competencies to
enhance project performance.
Software Project Management (CS615)
41
© Copyright Virtual University of Pakistan
These processes interact with each other and with the
processes in the other
knowledge areas as well. Each process may involve
effort from one or more
individuals or groups of individuals, based on the
needs of the project.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
Here's a clear and straightforward explanation of the concepts in your lecture:
6. Project Human Resource Management
6. Project Human Resource Management
6. Project Human Resource Management
6. Project Human Resource Management
6. Project Human Resource Management
Project Human Resource Management is about effectively managing the people
involved in a project. This includes everyone from project sponsors and customers
to team members and partners. The goal is to ensure that everyone is working
effectively and contributing to the project's success. The key processes involved
are:
Key General Management Skills
Key General Management Skills
Key General Management Skills
Key General Management Skills
Key General Management Skills
In addition to the specific processes mentioned, managing human resources on a
project also involves a set of general management skills that are essential for
dealing with people:
All these processes and skills interact with other areas of project management to
ensure that the human resources are managed effectively, contributing to the
Organizational Planning: This involves identifying the roles and
responsibilities of everyone involved in the project. It includes documenting
who does what, who reports to whom, and how the different roles interact.
For example, in a software development project, you would define the roles
of developers, testers, project managers, and so on, and clarify their
responsibilities.
Staff Acquisition: This process is about ensuring that you have the right
people working on the project. It involves hiring or assigning team members
with the necessary skills and getting them onboard. For instance, if your
project requires a database specialist, you need to make sure you acquire
that talent and assign them to the relevant tasks.
Team Development: Once the team is in place, this process focuses on
developing their skills and abilities to improve project performance. This
could involve training, team-building exercises, or mentoring to help team
members work more effectively together and contribute to the project’s
success.
Delegating, Motivating, and Coaching: These skills are crucial for managing
individuals within the project team. Delegating involves assigning tasks to
the right people, motivating keeps the team members engaged and focused,
and coaching helps them improve their skills.
Team Building and Conflict Resolution: These skills are important for
managing groups within the project. Team building ensures that the team
works well together, while conflict resolution is about addressing any
disagreements or issues that arise to maintain a positive working
environment.
Performance Appraisal and Recruitment: These are administrative aspects
of managing human resources. Performance appraisal involves assessing
how well team members are doing their jobs, while recruitment is about
bringing new talent into the project. Retention, labor relations, and health
and safety regulations are also important aspects of human resource
management.
7. Project Communications Management
Project Communications Management includes the
processes required to ensure
timely and appropriate generation, collection,
dissemination, storage, and ultimate
disposition of project information. It provides the
critical links among people,
ideas, and information that are necessary for success.
Everyone involved in the
project must be prepared to send and receive
communications, and must
understand how the communications in which they
are involved as individuals
affect the project as a whole.
Major processes include:
ƒ Communications Planning—determining the
information and
communications needs of the stakeholders: who needs
what information,
when they will need it, and how it will be given to
them.
ƒ Information Distribution—making needed
information available to project
stakeholders in a timely manner.
ƒ Performance Reporting—collecting and
disseminating performance
information. This includes status reporting, progress
overall success of the project.
This explanation is designed to be clear and coherent, matching the flow of a
lecture.
measurement, and
forecasting.
ƒ Administrative Closure—generating, gathering, and
disseminating
information to formalize a phase or project
completion.
These processes interact with each other and with the
processes in the other
knowledge areas as well. Each process may involve
effort from one or more
individuals or groups of individuals, based on the
needs of the project. Each
process generally occurs at least once in every project
phase.
Communicating is a broader subject and involves a
substantial body of knowledge
that is not unique to the project context. For example:
ƒ Sender-receiver models—feedback loops, barriers to
communications, etc.
ƒ Choice of media—when to communicate in writing
versus when to
communicate orally, when to write an informal memo
versus when to write a
formal report, etc.
ƒ Writing style—active versus passive voice, sentence
structure, word choice,
etc.
ƒ Presentation techniques—body language, design of
visual aids, etc.
ƒ Meeting management techniques—preparing an
agenda, dealing with
conflict, etc.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
Here's a simple explanation of the concepts related to Project Communications
Management from your lecture:
7. Project Communications Management
7. Project Communications Management
7. Project Communications Management
7. Project Communications Management
7. Project Communications Management
Project Communications Management ensures that the right information is
shared with the right people at the right time throughout the project. Effective
communication is crucial for the success of any project as it connects people,
ideas, and information.
Major Processes:
Major Processes:
Major Processes:
Major Processes:
Major Processes:
Communications Planning: This process involves figuring out what
information needs to be shared, who needs it, when they need it, and how it
will be delivered. For example, if you are managing a project, you might need
to plan how to update stakeholders on the project’s progress, which could
involve weekly reports or meetings.
Information Distribution: Once you have the communication plan in place,
this process ensures that the necessary information is provided to the
project stakeholders on time. For example, if your project has reached a
critical milestone, you need to ensure that this information is promptly
shared with all stakeholders.
Performance Reporting: This involves collecting and sharing information
about how the project is performing. It includes reporting on the current
status of the project, measuring progress, and forecasting future
performance. For example, you might create a report that shows how much
work has been completed, how much remains, and whether the project is on
track to meet its deadlines.
Administrative Closure: This process involves gathering and distributing
the final information needed to formally close a project phase or the entire
8. Project Risk management
Project Risk management is the systematic process of
identifying, analyzing, and
responding to project risk. It includes maximizing the
probability and
consequences of positive events and minimizing the
Broader Communication Aspects:
Broader Communication Aspects:
Broader Communication Aspects:
Broader Communication Aspects:
Broader Communication Aspects:
Effective communication in a project involves several broader aspects:
This explanation simplifies the concepts while maintaining coherence, as would be
expected in a lecture.
project. For instance, when a project is completed, you would generate a
final report, collect all related documents, and distribute this information to
stakeholders to officially close the project.
Sender-Receiver Models: This involves understanding how information is
sent and received, recognizing potential barriers, and ensuring that
feedback is considered to confirm that the message was understood
correctly.
Choice of Media: Deciding how to communicate is important. For example,
knowing when to send a written report versus when to have a face-to-face
meeting can significantly impact the effectiveness of communication.
Writing Style: The way information is written matters too. Using clear and
direct language, choosing the right words, and structuring sentences
properly helps ensure that the message is understood.
Presentation Techniques: When presenting information, how you present it
is crucial. This includes using appropriate body language, designing effective
visual aids, and delivering your message in a way that engages the audience.
Meeting Management Techniques: Managing meetings effectively involves
preparing an agenda, keeping the discussion on track, and handling conflicts
if they arise, ensuring that meetings are productive and contribute to the
project's success.
probability and consequences
of adverse events to project objectives.
ƒ Risk Management Planning—deciding how to
approach and plan the risk
management activities for a project.
ƒ Risk Identification—determining which risks might
affect the project and
documenting their characteristics.
ƒ Qualitative Risk Analysis—performing a qualitative
analysis of risks and
conditions to prioritize their effects on project
objectives.
ƒ Quantitative Risk Analysis—measuring the
probability and consequences of
risks and estimating their implications for project
objectives.
ƒ Risk Response Planning—developing procedures and
techniques to enhance
opportunities and reduce threats to the project’s
objectives.
ƒ Risk Monitoring and Control—monitoring residual
risks, identifying new
risks, executing risk reduction plans, and evaluating
their effectiveness
throughout the project life cycle.
These processes interact with each other and with the
processes in the other
knowledge areas. Each process generally occurs at
least once in every project.
9. Project Procurement Management
Project Procurement Management includes the
processes required to acquire
goods and services, to attain project scope, from
outside the performing
organization. For simplicity, goods and services,
whether one or many, will
generally be referred to as a product.
An overview of the major processes includes:
ƒ Procurement Planning—determining what to
procure and when.
ƒ Solicitation Planning—documenting product
requirements and identifying
potential sources.
ƒ Solicitation—obtaining quotations, bids, offers, or
proposals, as appropriate.
ƒ Source Selection—choosing from among potential
sellers.
ƒ Contract Administration—managing the relationship
with the seller.
ƒ Contract Closeout—completion and settlement of
the contract, including
resolution of any open items.
These processes interact with each other and with the
processes in the other
knowledge areas as well. Each process may involve
effort from one or more
individuals or groups of individuals, based on the
needs of the project
Software Project Management (CS615)
43
© Copyright Virtual University of Pakistan
Project Procurement Management is discussed from
the perspective of the buyer
in the buyer-seller relationship. The buyer-seller
relationship can exist at many
levels on one project. Depending on the application
area, the seller may be called
a subcontractor, a vendor, or a supplier.
From ChatGPT, designed with FancyGPT
The seller will typically manage its work as a project. In
such cases:
ƒ The buyer becomes the customer, and is thus a key
stakeholder for the seller.
ƒ The seller’s project management team must be
concerned with all the
processes of project management, not just with those
of this knowledge area.
ƒ The terms and conditions of the contract become a
key input to many of the
seller’s processes. The contract may actually contain
the input (e.g., major
deliverables, key milestones, cost objectives), or it may
limit the project
team’s options (e.g., buyer approval of staffing
decisions is often required on
design projects).
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that give a coherent answer.
cs611 LECTURE 6
cs611 LECTURE 6
cs611 LECTURE 6
cs611 LECTURE 6
cs611 LECTURE 6
LECTURE # 6
1. Introduction & Fundamentals
1.17 Team leader
Most definitions of leadership involve three
components: influence group and
goal. First, leaders are individuals who influence the
behavior of others. These
others are usually referred to as sub ordinates or
followers. Second, leadership is
usually examined in the context of a group, especially
work groups such as
managers and their teams or foremen and their
subordinates. Third, research on
leadership stresses a group goal that has to be
accomplished. So a definition is:
Leadership is the process in which an individual
influences the group
members towards the attainment of group or
organization goals.
Note that the influence can be exercised in a: variety
of ways. It may be the
'bridge to engine room' approach, where the leader
commands and controls. Or
the influence can be exercised by guiding and
facilitating the group's behavior so
that the goal is accomplished. The notion of
reciprocity is also part of man
definitions. Influencing is often two ways. Leaders may
influence followers, but
followers influence leaders to lead in one way rather
than another. An influencing
style appropriate for checkout assistant in a
supermarket may be different from
that appropriate for rock scientists. The choice is open
to the leader of how to
influence is one of the key aspects investigated by
leadership researchers.
Another aspect of leadership is that the right to lead is
often voluntarily conferred
on the leader by some or all members of the group. A
group of friends may
recognize one, of their group as the leader, in the
sense that she influences the
group more than any of the other members. There also
may be informal leader.
While the nominal head of a department may have the
formal leadership position,
the real leadership may be exercised by someone
lower down the hierarchy who
influences the group towards goals that may not be
those that the organization
whishes to be pursue.
Finally, leadership implies that a leader motivates the
group to spend energy
in attaining the goals of the group. Influence without
change or movement isn’t
influence. Leaders make change happen, a difficult but
vitally important task.
1.18 Leaders and Managers
Although it is common to use the terms 'leader' and
'manager' interchangeably,
nowadays many writers point to a difference between
the two.
Software Project Management (CS615)
45
© Copyright Virtual University of Pakistan
The difference is that to function as a leader, a person
must exercise influence
over another person in the attainment of
organizational goals, as described in the
definition above. Managerial ' functions of organizing,
planning, scheduling,
processing information, communicating, and so on, do
not necessarily involve
leadership. Some managers perform both types of
function and can be described
as leaders, but others do not. There is no automatic
link between the two concepts.
Note, too, that leaders are not necessarily just at the
top of organizations.
Influence can be exerted in most job functions and at
levels of seniority or
hierarchy. The distinction between managers and
leaders was, developed by
Bennis and Nanus (1985) in their influential book
Leaders. In it they put forward
the view that:
Leadership is path finding
Management is path following
Management is about doing things right
Leadership is about doing the right things
What they meant by this is that leadership is about
having a vision. It involves
having a strategy or thinking strategically; it means
having a view of where the
organization should go or be or do; it means deciding
what is important for the
success of the organization; it involves envisaging the
future, A leader's
responsibility is to think what are the key criteria for
success of his or her part of
the business and not just now but for the future.
Managers, on the other hand, are more concerned
with implementing others
strategies and plans, They are concerned with running
their part of the
organization, making sure that the accounts get
prepared, that invoices are sent
out, that the service is sold, that the traffic is directed,
that the research paper is
written, or whatever the task that needs to be done.
A very similar view is put forward by Kotter (1990). He
argues that management
is concerned with activities which are designed to
produce 'consistency and order',
whereas leadership is concerned with, 'constructive or
adaptive change'. Kotter
says there are four major ways that management and
leadership differ:
1. Planning and budgeting versus establishing
direction. Management
involves making detailed steps and timetables for
achieving results, then
marshalling resources to make it happen. Leadership
means developing a
vision of the future and strategies for achieving that
vision.
2. Organizing and staffing versus aligning people.
Management comprises the
allocation of tasks in line with plans, staffing them
appropriately, delegating
responsibility and monitoring implementation.
Leadership involves
communicating the vision so that others understand
and agree with it.
3. Controlling and problem-solving versus motivating
and inspiring.
Management involves monitoring results of a plan,
identifying problems with
the plan and then solving them. Leadership involves
'energizing people'
Software Project Management (CS615)
46
© Copyright Virtual University of Pakistan
towards the vision. It means appealing to their needs
and values so that they
overcome barriers to change.
4. Outcomes: predictability and order, or change.
Management produces
predictability and order so that others, such as
customers or shareholders can
rely on consistent results. Leadership produces
change that is often a quantum
leap, such as new products or new approaches to
managing people, that makes
the organization more competitive.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
Kirkpatrick and Locke (1991) suggest that the
following traits distinguish
leaders from non-leaders:
• Drive (achievement. ambition, energy, tenacity,
initiative);
• Leadership motivation (personalized or socialized);
.honesty and
integrity;
• Self-confidence (including emotional stability);
• Cognitive ability (the ability to marshal and interpret
a wide variety
of information);
• Knowledge of the business
They point out, though, that there is much more to
being an effective leader than
merely possessing a list of traits. While the traits may
provide people with the
potential for leadership, it is the capacity to create a
vision and implement it that
turns the potential into reality.
Strong leadership motivation may sound an obvious
trait for a leader. After all,
only those who want the weighty responsibilities and
grueling pressures of
leadership are likely to strive for it. McClelland (1985)
distinguishes between two
types of power motivation. On the one hand, leaders
may be interested in
personalized power, which describes the motivation of
leaders who "seek power
for its own sake, who wish to dominate others and are
often concerned with the
status and trappings of power. The late Robert
Maxwell, former owner of the
Mirror Group allegedly displayed such traits. On the
other hand, leaders who
show socialized power motivation are more interested
in cooperating with others
to achieve desired goals. They work with others rather
than attempting to
dominate or control them. From the point of view of
subordinates and the
organization as a whole, the leader motivated by
socialized power is obviously
preferable. On the question of cognitive ability;
leaders must be able to gather,
integrate and interpret large amounts of information.
Many
Many researchers have pointed out that it is not
necessary to be brilliant, though;
leadership effectiveness is helped by above average
intelligence, not genius. Of
Kirkpatrick and Locke’s six characteristics, some
would argue that drive and
persistence are much more important than
intelligence.
In conclusion, the trait approach has undergone a
revival. Recent research
suggests that traits do matter. Yet the research shows
that there are only a handful
Software Project Management (CS615)
47
© Copyright Virtual University of Pakistan
of traits which distinguish leaders from others, and a
clear distinction between
effective and ineffective leaders has not yet emerged.
In an excellent book of technical leadership, Jerry
Weinberg suggests a MOI
model of leadership:
Motivation: The ability to encourage (by "push or
pull") technical people to
produce to their best ability.
Organization: The ability to mold existing processes
(or invent new ones) that
will enable the initial concept to be translated into a
final product.
Ideas or innovation: The ability to encourage people to
create and feel creative
even when they must work within bounds established
for a particular soft- ware
product or application.
Weinberg suggests that successful project leaders
apply a problem solving
management style. That is, a software project
manager should concentrate on
understanding the problem to be solved, managing the
flow of ideas, and at the
same time, letting everyone on the team know (by
words and, far more important,
by actions) that quality counts and that it will not be
compromised.
Another view [EDG95] of the characteristics that
define an effective project
manager emphasizes four key traits:
Problem solving An effective software project
manager can diagnose the
technical and organizational issues that are most
relevant, systematically structure
a solution or properly motivate other practitioners to
develop the solution, apply
lessons learned from past projects to new situations,
and remain flexible enough
to change direction if initial attempts at problem
solution are fruitless.
Managerial identity
A good project manager must take charge of the
project. She must have the
confidence to assume control when necessary and the
assurance to allow good
technical people to follow their instincts.
Achievement
To optimize the productivity of a project team, a
manager must reward initiative
and accomplishment and demonstrate through his
own actions that controlled risk
taking will not be punished.
Influence and team building
An effective project manager must be able to "read"
people; she must be able to
understand verbal and nonverbal signals and react to
the needs of the people
sending these signals. The manager must remain
under control in high-stress
situations.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
Leadership Traits (Kirkpatrick and Locke, 1991)
Leadership Traits (Kirkpatrick and Locke, 1991)
Leadership Traits (Kirkpatrick and Locke, 1991)
Leadership Traits (Kirkpatrick and Locke, 1991)
Leadership Traits (Kirkpatrick and Locke, 1991)
Kirkpatrick and Locke identified six key traits that distinguish leaders from non-
leaders. Here’s a simplified explanation of these traits with examples:
Drive (Achievement, Ambition, Energy, Tenacity, Initiative):
1
Example: A team leader consistently sets challenging goals, works long
hours when necessary, and takes the initiative to resolve issues
without being asked. They demonstrate ambition by aiming for a
leadership role and energy by maintaining a high level of activity and
enthusiasm throughout the project.
2
Leadership Motivation (Personalized or Socialized):
3
Personalized Power: A leader who seeks personal power may focus on
gaining authority and status, like a team lead who makes all decisions
without consulting the team and enjoys being in control.
4
Socialized Power: In contrast, a leader with socialized power
motivation works cooperatively with the team, involving them in
decisions and focusing on shared success, such as a project manager
who facilitates brainstorming sessions and values everyone’s input.
5
Honesty and Integrity:
6
Example: A leader demonstrates honesty by being transparent about
project challenges and integrity by following through on promises,
such as committing to a project deadline and ensuring the team meets
it ethically.
7
Additional Leadership Concepts
Additional Leadership Concepts
Additional Leadership Concepts
Additional Leadership Concepts
Additional Leadership Concepts
While traits are important, Kirkpatrick and Locke emphasize that effective
leadership also involves the ability to create and implement a vision.
Leadership Motivation Types (McClelland, 1985)
Leadership Motivation Types (McClelland, 1985)
Leadership Motivation Types (McClelland, 1985)
Leadership Motivation Types (McClelland, 1985)
Leadership Motivation Types (McClelland, 1985)
Self-Confidence (Including Emotional Stability):
8
Example: A confident leader in a software project may make difficult
decisions, such as choosing to delay a release for quality
improvements, without second-guessing themselves. Emotional
stability means staying calm and collected under stress, like handling a
major bug in the software without panicking.
9
Cognitive Ability (Ability to Interpret Information):
10
Example: A project manager with cognitive ability gathers and
analyzes data from different team members, such as performance
metrics or user feedback, and uses that information to adjust the
project plan effectively.
11
Knowledge of the Business:
12
Example: A software project leader understands the specific needs of
the business, such as the importance of meeting a client’s
requirements or delivering features that enhance user experience, and
guides the team accordingly.
13
Creating a Vision: A software project leader envisions the product not just
as a piece of code but as a solution that solves a customer problem or
enhances user experience. They set this vision as the guiding goal for the
team.
Implementing the Vision: The leader ensures that the team's efforts align
with this vision, such as by guiding developers to focus on features that
directly contribute to the user experience.
Personalized Power Motivation: A leader who seeks personal gain and
control might prioritize their authority over collaboration, potentially
stifling innovation. Example: A team lead who constantly overrules team
suggestions to maintain control.
Socialized Power Motivation: A leader focused on shared success
collaborates with the team to achieve common goals. Example: A project
manager who actively involves the team in decision-making to foster a
collaborative environment.
Jerry Weinberg’s MOI Model of Leadership
Jerry Weinberg’s MOI Model of Leadership
Jerry Weinberg’s MOI Model of Leadership
Jerry Weinberg’s MOI Model of Leadership
Jerry Weinberg’s MOI Model of Leadership
Effective Project Manager Traits (EDG95)
Effective Project Manager Traits (EDG95)
Effective Project Manager Traits (EDG95)
Effective Project Manager Traits (EDG95)
Effective Project Manager Traits (EDG95)
Motivation:
1
Example: A software project leader encourages team members to
produce their best work by recognizing their achievements, such as
acknowledging a developer who implemented an innovative solution
during a sprint review.
2
Organization:
3
Example: A project manager organizes processes by creating a
structured development workflow, like using Agile methodologies to
ensure that tasks are well-organized and milestones are met.
4
Ideas or Innovation:
5
Example: A project leader encourages creativity by providing room for
experimentation within project guidelines, such as allowing
developers to explore new technologies that could enhance the final
product.
6
Problem-Solving:
1
Example: A project manager identifies that the team is facing delays
due to technical difficulties and organizes a problem-solving session,
encouraging team members to propose and implement solutions.
2
Managerial Identity:
3
Example: A project manager takes charge when the project falls
behind schedule, making necessary adjustments to the timeline while
confidently leading the team through the crisis.
4
Achievement:
5
Example: A project manager recognizes and rewards a developer who
completed a difficult task ahead of time, reinforcing a culture of
achievement and encouraging others to take initiative.
6
Influence and Team Building:
7
Example: A project manager reads the mood of the team and provides
support when necessary, such as offering additional resources or time
off after an intense period of work, thereby maintaining team morale.
8
1.19 Project Organization
People are managed through an organizational
structure. This hierarchical
structure is based on the four cornerstones of
management: delegation,
authority, responsibility and supervision (see Fig.1).
Delegation bestows
authority, and authority produces (and requires)
responsibility. Both
authority and responsibility require supervision, and
effective supervision
requires a suitable organizational structure:
Most projects are organized as teams, with each team
assigned specific
functions within the project, Different types of project
require different
types of team structure, as for example a team of
junior programmers
requires a technical team leader while a team of
experts may require only
an administrative team leader. It is the project
manager's responsibility to
select the structure best suited for the project.
Basically an organization is a group of people
intentionally organized to
accomplish an overall, common goal or set of goals.
Business
This completes the discussion on leadership traits, motivation, and project
management characteristics in the context of software project leadership.
organizations can range in size from two people to
tens of thousands.
Figure 1: The four cornerstones of management
There are many ways to organize a software project.
The larger the project
the more critical the organizational structure
becomes. Badly organized
projects breed confusion, and confusion leads to
project failure. Figure 2
describes the basic structure of a project in which
below the project
manager are just two general functions: development
and support. This
very basic software project structure was not
uncommon in the 1950s and
1960s. It is still a valid project structure for very small
projects (up to five
developers), though occasionally it can still be found
today in larger
projects.
Delegation
1
Supervision
2
Authority
3
Responsibility
4
Software Project Management (CS615)
49
© Copyright Virtual University of Pakistan
Figure 2: Basic structure of a development project
Figure 3: Software project organizational chart
Project
Project
development
Project
support
Project
manager
Deputy
project
manager
System
engineer
Independent
test group
Secretary
Quality
assurance
Configuration
control
Development
team 1
Development
team 2
Development
team 3
Software Project Management (CS615)
50
© Copyright Virtual University of Pakistan
Project
manager
Deputy project
manager
Integration
Group
Independent
Group
Secretary
Quality
assurance
Configuration
control
SW sub-project
Manager 1
SW sub-project
Manager 2
SW sub-project
Manager 3
Team 1
Team 2
Team 3
Team 1
Team 2
Team 1
Team 2
Team 3
Figure 4: Large hardware/software project
organizational chart
Project managers are just two general functions:
development and support. This very
basic software project structure was not uncommon in
the 1950s and 1960s. It is a project
structure for very small projects (up to five
developers). Though occasionally, it can still
be found today in larger projects.
Figure 3 describes a detailed organizational chart
including all major support functions.
This organizational structure is suitable for large
projects (with a staff exceeding 20).
Smaller projects may not require a deputy project
manager or separate configuration
control and quality assurance groups.
Very large projects (exceeding a staff of 40) can often
be managed more easily by
dividing the project into sub-projects. Figure 4
presents the organizational chart for a
large project. This chart includes both software and
hardware development teams, and an
integration group that is responsible for
hardware/software integration as well as
integration within each group.
As an example, consider the organization of a large
satellite project. The project manager
is in fact responsible for a number of projects: the
ground control station, the rocket and
the satellite itself. The software for all of these sub-
projects is managed within a single
project office. Each sub-project is then managed by a
sub-project manager. An
organizational chart similar to the one described in
Fig. 4 can be applied to the satellite
project; the resulting chart is described in Fig. 5.
Software Project Management (CS615)
51
© Copyright Virtual University of Pakistan
Satellite
PM
Sub-project
Coordinator
Scientific
Engineer
Integration
Team
Secretary
Quality assurance Ground control
Station sub-project
Rocket
Development
Sub-project
Satellite
Sub-project
Team 1
Team 2
Team 3
Team
1
Team
2
Team
1
Team
2
Team
3
Quality
Assurance
Independent
Group
Configuration
Control
Figure 5: Satellite project organizational chart
Clearly the project's organizational structure is
dependent on the type of project being
developed. Some of the issues that must be considered
are:
– Project size: the larger the project, the more
important the organization. Large
projects have significant human communications and
coordination overhead, and
therefore require more support functions.
– Hardware/software development projects. The
simultaneous development of
hardware and software is not easy. Planning,
integration and testing are much
more complicated, and require dedicated support
groups.
– High reliability systems. Any system that is sensitive
to issues of reliability (such
as military or life-saving systems) requires a major
effort in quality assurance.
Quality is also an important consideration in many
marketable software products
(e.g. communications packages). These types of
project require a separate quality
assurance organization.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
Project Organization in Software Development
Project Organization in Software Development
Project Organization in Software Development
Project Organization in Software Development
Project Organization in Software Development
When managing a project, people are organized through a structure known as the
organizational structure. This structure is based on four key principles:
Delegation: Assigning tasks to others.
1
Team Structure
Team Structure
Team Structure
Team Structure
Team Structure
The way a project team is organized can vary depending on the type and size of
the project. Here are some examples of how teams might be structured:
Example: A project manager assigns a task to a developer to
implement a new feature in the software.
2
Authority: The power to make decisions and enforce rules.
3
Example: A team leader has the authority to approve the developer's
code changes before they are included in the final product.
4
Responsibility: Being accountable for completing tasks.
5
Example: The developer is responsible for ensuring that the new
feature works correctly and is delivered on time.
6
Supervision: Overseeing tasks to ensure they are completed properly.
7
Example: The project manager supervises the team to ensure that
everyone is progressing as planned and that any issues are addressed.
8
Small Project Team:
1
For small projects (up to five developers), the structure might be very
simple. There could be a project manager and a development team.
The project manager oversees both development and support
functions. This structure works well when the project is small enough
that direct supervision of all tasks is feasible.
2
Medium-Sized Project Team:
3
In a larger project (around 20 people), the team structure becomes
more complex. There may be a project manager, a deputy project
manager, and various specialized roles like quality assurance (QA) and
configuration control. The development work is divided among several
teams, and the project manager coordinates between them.
4
Large Project Team:
5
In very large projects (over 40 people), the structure is even more
detailed. The project is often divided into sub-projects, each managed
by a sub-project manager. For example, in a large satellite project,
there might be separate teams working on the ground control system,
the rocket, and the satellite. Each of these teams would have its own
6
Key Factors in Project Organization
Key Factors in Project Organization
Key Factors in Project Organization
Key Factors in Project Organization
Key Factors in Project Organization
Example Organizational Structures
Example Organizational Structures
Example Organizational Structures
Example Organizational Structures
Example Organizational Structures
sub-project manager, and all sub-projects would be coordinated by the
main project manager.
Project Size:
1
Example: A small mobile app development project might only need a
simple structure with a project manager and a few developers.
However, a large enterprise software project with many developers,
testers, and support staff would require a more complex
organizational structure, with clearly defined roles and
responsibilities.
2
Hardware/Software Development Projects:
3
Example: A project that involves both hardware (e.g., building a device)
and software (e.g., creating the software to run on the device) requires
careful coordination between the teams working on each aspect. This
might involve having an integration group to ensure that the hardware
and software work together seamlessly.
4
High Reliability Systems:
5
Example: In projects where reliability is critical, such as in medical
software or military systems, a strong focus on quality assurance is
essential. This could mean having a dedicated quality assurance team
to ensure that the software meets all reliability and safety
requirements.
6
Basic Software Project Structure:
1
For small projects, the structure might be simple, with the project
manager overseeing both development and support. The project
manager directly coordinates with a small development team to
complete the tasks.
2
Organizational Chart for a Medium Project:
3
In medium-sized projects, an organizational chart might include the
project manager at the top, with a deputy project manager, system
engineers, development teams, and support functions like QA and
configuration control.
4
Organizational Chart for a Large Project:
5
The Organizational structure
The organization's structure, or design, is the overall
arrangement of the
organization's various roles, processes and their
relationships in the organization.
The design of an organization is a means to
accomplishing the organization's
overall goal -- the structure is not an end in itself. In
systems theory terms, the
design ensures that the appropriate inputs go through
the necessary processes to
produce the required outputs to produce the intended
outcomes.
The structure of the performing organization often
constrains the availability of or
terms under which resources become available to the
project. Organizational
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
The organization of a project is critical to its success, particularly as the project
size increases. Smaller projects can function with a simple structure, while larger
projects require more complex organizational charts to manage the increased
communication and coordination needs. By understanding these different
structures, project managers can choose the best approach to suit their project’s
needs, ensuring that tasks are completed efficiently and effectively.
Large projects require a more complex structure. For example, in a
satellite project, the organizational chart might include a project
manager overseeing sub-project managers for different parts of the
project (e.g., ground control, rocket development, and satellite
development). There would also be support groups for quality
assurance and configuration control to ensure everything works
together as planned.
6
structures can be characterized as spanning a
spectrum from functional to
projectized, with a variety of matrix structures in
between.
⇒Corporate structure: The project's organization is
largely dependent on the overall
structure of the company within which the project is
being developed. Many of the
project support functions can be provided by
centralized groups within the company.
In fact, basic services, such as financial, secretarial and
legal services, are commonly
provided by the parent or corporate organization.
Corporate structure usually dictates one of two basic
types of project organization:
matrix or pyramid. Figure 5 describes the structure of
a matrix organization (compare
this to the pyramid structure in Fig. 4). Within a
corporate matrix organization, the
project manager manages the technical activities of
the project staff, while his or her
involvement in non-technical personnel issues (e.g.
salary reviews, promotion, and
training) is minimal.
⇒Matrix Structure
Think of the functional structure. Imagine if you took
someone from each of the
major functions in the functional structure (the boxes
along the bottom of the
organization chart), e.g., people from sales,
engineering, etc., and organized them into
a separate group intended to produce and sell one
certain kind of product or service.
Members of this group stay together until that
product is produced or they continue to
sell and service it. This overall structure (made up of a
functional structure that also
has groups assigned to products) is a matrix structure.
This structure is useful because
it focuses highly skilled people from across the
organization to work on a complex
product or service. It can be difficult though, because
each person essentially reports
to two supervisors: the supervisor of the functional
area (e.g., engineering) and the
product manager, as well. When the organization
needs constant coordination of its
functional activities, then lateral relations do not
provide sufficient integration.
Consider the matrix structure. To adopt the matrix
structure effectively, the
organization should modify many traditional
management practices.
Matrix organizations are a blend of functional and
projectized characteristics. Weak
matrices maintain many of the characteristics of a
functional organization, and the
Software Project Management (CS615)
53
© Copyright Virtual University of Pakistan
project manager role is more that of a coordinator or
expediter than that of a manager.
In similar fashion, strong matrices have many of the
characteristics of the projectized
organization—full-time project managers with
considerable authority and full-time
project administrative staff.
Most modern organizations involve all these
structures at various levels. For example,
even a fundamentally functional organization may
create a special project team to
handle a critical project. Such a team may have many
of the characteristics of a
project in a projectized organization. The team may
include full-time staff from
different functional departments, it may develop its
own set of operating procedures,
and it may operate outside the standard, formalized
reporting structure.
Matrix Organizations are a blend of functional and
projectized characteristics. Weak
matrices maintain many of the characteristics of a
functional organization, and the
project manager role is more that of a coordinator or
expediter than that of a manager.
In similar fashion, strong matrices have many of the
characteristics of the projectized
organization—full-time project managers with
considerable authority and full-time
project administrative staff.
Most modern organizations involve all these
structures at various levels. For example,
even a fundamentally functional organization may
create a special project team to
handle a critical project. Such a team may have many
of the characteristics of a
project in a projectized organization. The team may
include full-time staff from
different functional departments, it may develop its
own set of operating procedures,
and it may operate outside the standard, formalized
reporting structure.
• The advantages of a matrix organization are:
– More expertise: a matrix organization can maintain
experts in specific fields
(communications, data bases, graphics etc.) who are
then assigned to different
projects. A single project cannot always afford the
luxury of maintaining
experts in all fields.
– Flexibility: it is easier to move people around from
one project to another.
This results in better utilization of the available
expertise.
– Emphasis on managing the project: the project
manager is freed of many of
the staff management tasks, leaving more time to
concentrate on the technical
aspects of the project.
However, matrix organizations also have significant
disadvantages:
– Fewer management measures. One of the primary
tools for generating
motivation, promotion, is taken out of the hands of the
project manager. The
manager has little influence on the developer's salary
and professional role in
the organization.
Software Project Management (CS615)
54
© Copyright Virtual University of Pakistan
– Lower staff loyalty. All employees like to know
exactly who their superior is.
In a matrix organization, an employee has more than
one superior. This causes
a division of loyalty, and a weaker bond between
employee and manager.
These disadvantages often outweigh the advantages
of the corporate matrix
organization.
Motivation is a major factor in the success of a project,
and anything that
undermines motivation is usually contrary to the best
interests of the project.
Unfortunately, the best interests of the project do not
always completely coincide
with the best interests of the company.
Pyramid organizations provide a clear, well-defined
hierarchy in which all
individuals know their own position and the positions
of those above and below
them. When promotion and status play a major role in
generating motivation (and
they often do), then the pyramid organization is most
effective. Many other
factors generate motivation; Sense of achievement,
praise and peer esteem, are
just a few.
Though promotion and status are not always the most
effective motivators, a
project manager should rarely relinquish any effective
management tool.
Therefore, from the perspective of a single project, the
pyramid organization is
often the best.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one
lecturer so keep in mind in that give a coherent
answer.
Organizational Structure in Software Projects
Organizational Structure in Software Projects
Organizational Structure in Software Projects
Organizational Structure in Software Projects
Organizational Structure in Software Projects
The organizational structure is the framework that defines how roles, processes,
and responsibilities are arranged within a project or organization. This structure
helps the organization achieve its goals by ensuring that the right resources are
available when needed. In software projects, the structure of the organization can
influence how effectively the project is executed.
Corporate Structure
Corporate Structure
Corporate Structure
Corporate Structure
Corporate Structure
The structure of the parent or corporate organization often dictates the structure
of the project. Large companies typically provide essential services, such as
financial, legal, and secretarial support, through centralized corporate
departments. Depending on the company's corporate structure, project teams can
be organized in different ways.
There are two primary types of corporate structures that influence project
organization:
Matrix Structure:
1
In a matrix structure, team members from different departments (e.g.,
development, sales, engineering) are grouped together to work on a
project. They continue to report to their department heads but also
work under a project manager for the duration of the project.
2
Example: A developer in a software company may work on a new
mobile app while still reporting to the engineering manager but also
working closely with a project manager who coordinates the app
development.
3
Pyramid Structure:
4
The pyramid structure is a traditional hierarchy where each level of
the organization reports to the one above it. The project manager has
clear authority over the team, and all decisions and tasks flow through
this hierarchy.
5
Matrix Structure
Matrix Structure
Matrix Structure
Matrix Structure
Matrix Structure
In more detail, the matrix structure combines aspects of both functional and
projectized organizations. It allows specialists from different functional areas
(such as engineering, sales, and marketing) to come together to work on a specific
project. The matrix structure can be categorized as either weak or strong:
Advantages and Disadvantages of Matrix
Advantages and Disadvantages of Matrix
Advantages and Disadvantages of Matrix
Advantages and Disadvantages of Matrix
Advantages and Disadvantages of Matrix
Organizations
Organizations
Organizations
Organizations
Organizations
Advantages:
Example: In a small software development project, the project
manager oversees a group of developers, and those developers only
report to the project manager. The hierarchy is well-defined, with each
person's role and responsibilities clearly established.
6
Weak Matrix:
The project manager acts more as a coordinator or facilitator, and
functional managers retain most of the authority.
Example: A weak matrix organization may have a project coordinator
who ensures that everyone stays on schedule, but the functional
managers (e.g., the engineering manager) make most of the technical
decisions.
Strong Matrix:
The project manager has more authority and responsibility, similar to
that of a projectized organization. The project manager manages the
project and has a full-time administrative staff.
Example: In a strong matrix organization, the project manager might
have control over project-related decisions and resources, ensuring
that the project meets its goals without needing approval from
functional managers.
More Expertise:
1
Matrix organizations allow for the use of specialized experts. For
example, a company may have database experts who are assigned to
different projects as needed. This allows the company to utilize
expertise without having to maintain a full-time expert on each
project.
2
Disadvantages:
Example: A database expert can work on multiple projects, providing
specialized knowledge to ensure each project’s success.
3
Flexibility:
4
It is easier to move people between projects in a matrix organization.
When one project finishes, team members can be reassigned to other
projects, leading to better utilization of staff.
5
Example: Once a software development project is completed, the
same developers can be reassigned to a new project without needing
to hire or lay off staff.
6
Emphasis on Project Management:
7
The project manager in a matrix organization can focus more on the
technical aspects of the project without being burdened with staff
management tasks, which are typically handled by the functional
managers.
8
Example: A project manager can focus on ensuring the software is
delivered on time and meets quality standards, while the functional
manager handles staff training and development.
9
Less Control Over Personnel Decisions:
1
Project managers in matrix organizations have limited control over
their team members' salaries, promotions, and career development,
which can affect motivation.
2
Example: A project manager may want to reward a developer for
excellent work, but the decision on salary increases or promotions is
made by the functional manager.
3
Lower Staff Loyalty:
4
In a matrix organization, employees report to multiple supervisors,
which can create confusion and divided loyalty. Employees may not
feel as connected to the project manager, reducing their sense of
commitment to the project.
5
Example: A developer might be unsure whether to prioritize the
requests of their functional manager or the project manager, leading
to potential conflicts and lower job satisfaction.
6
⇒Functional Structure
Most business organizations start out with a
functional structure, or a small
variation of this structure. This is the basic building
block for other structures.
In this structure, there is a central office which
oversees various departments or
major functions, e.g., human resources, finances, sales,
marketing, engineering,
etc. Think of a picture that has a box at the top labeled
Central Office. Think of
a row of boxes underneath the top box. Each box is
labeled, e.g., sales,
Pyramid Organization
Pyramid Organization
Pyramid Organization
Pyramid Organization
Pyramid Organization
The pyramid structure is more traditional, with a clear hierarchy. In this structure,
individuals know their roles and the roles of those above and below them. This
structure provides stability and a clear path for promotion, which can be an
important motivator for employees.
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
The choice of organizational structure depends on the project’s needs and the
company’s corporate culture. A matrix organization offers flexibility and access to
expertise but can suffer from divided loyalty and less control over personnel
decisions. On the other hand, a pyramid organization provides a clear hierarchy
and strong motivation through promotion but may lack the flexibility to adapt to
changing project requirements. A project manager must carefully consider these
factors when organizing a project to ensure the best outcome for both the project
and the organization.
Example: In a software company with a pyramid structure, a junior
developer knows that by working hard and achieving success, they can be
promoted to senior developer, and eventually to a team lead or project
manager role.
engineering, human resources, etc. Connect the boxes
with lines coming down
from the top box to each of the boxes below. Use
functional structures when the
organization is small, geographically centralized, and
provides few goods and
services. When the organization experiences
bottlenecks in decision making and
difficulties in coordination, it has outgrown its
functional structure.
The classic functional organization is a hierarchy
where each employee has one
clear superior. Staff members are grouped by
specialty, such as production,
marketing, engineering, and accounting at the top
level, with engineering further
subdivided into functional organizations that support
the business of the larger
organization (e.g., mechanical and electrical).
Functional organizations still have
projects, but the perceived scope of the project is
limited to the boundaries of the
function: the engineering department in a functional
organization will do its work
Software Project Management (CS615)
55
© Copyright Virtual University of Pakistan
independent of the manufacturing or marketing
departments. For example, when a
new product development is undertaken in a purely
functional organization, the
design phase is often called a design project and
includes only engineering
department staff. If questions about manufacturing
arise, they are passed up the
hierarchy to the department head, who consults with
the head of the
manufacturing department. The engineering
department head then passes the
answer back down the hierarchy to the engineering
project manager.
⇒Project Structure
In this structure, there is a centralized corporate office
and under it, are various
divisions each of which is dedicated to producing and /
or selling a certain type of
business or product, e.g., product 1, product 2, etc.
Each division that is dedicated
to a certain business or product is, in turn, is organized
as its own functional
structure. So, for example, the division dedicated to
making product 1 has its own
sales department, human resources, etc. Basically,
project structure is a bunch of
functional structures each of which reports to one
central office. Use a divisional
structure when the organization is relatively large,
geographically dispersed,
and/or produces wide range of goods/services.
In a projectized organization, team members are often
collocated. Most of the
organization’s resources are involved in project work,
and project managers have
a great deal of independence and authority.
Projectized organizations often have
organizational units called departments, but these
groups either report directly to
the project manager or provide support services to the
various projects.
Structural dimensions:
ƒ Centralization -the extent to which functions are
dispersed in the
organization, either in terms of integration with other
functions or
geographically
ƒ Formalization - regarding the extent of policies and
procedures in the
organization
ƒ Hierarchy - regarding the extent and configuration
of levels in the
structure
ƒ Routinization - regarding the extent that
organizational processes are
standardized
ƒ Specialization - regarding the extent to which
activities are refined
ƒ Training - regarding the extent of activities to equip
organization
members with knowledge and skills to carry out their
roles (my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that give coherent examples.
Contextual Dimensions:
ƒ Culture - the values and beliefs shared by all (note
that culture is often
discerned by examining norms or observable
behaviors in the workplace)
Software Project Management (CS615)
56
© Copyright Virtual University of Pakistan
ƒ Environment - the nature of external influences and
activities in the
political, technical, social and economic arenas
ƒ Goals - unique overall priorities and desired end-
states of the organization
ƒ Size - number of people and resources and their span
in the organization
ƒ Technology - the often unique activities needed to
reach organizational
goals, including nature of activities, specialization,
type of
equipment/facilities needed, etc.
Role and responsibility assignments
Project roles (who do what) and responsibilities (who
decide what) must be
assigned to the appropriate project stakeholders.
Roles and responsibilities may
vary over time. Most roles and responsibilities will be
assigned to stakeholders who
are actively involved in the work of the project, such as
the project manager, other
members of the project management team, and the
individual contributors. The
roles and responsibilities of the project manager are
generally critical on most
projects, but vary significantly by application area.
Project roles and responsibilities
should be closely linked to the project scope
definition. A Responsibility
Assignment Matrix (RAM) is often used for this
purpose. On larger projects, RAMs
may be developed at various levels. For example, a
high-level RAM may define
which group or unit is responsible for each component
of the work breakdown
structure, while lower-level RAMs are used within the
group to assign roles and
responsibilities for specific activities to particular
individuals.
Organization chart
An organization chart is any graphic display of project
reporting relationships. It
may be formal or informal, highly detailed or broadly
framed, based on the needs of
the project. For example, the organization chart for a
three- to four-person internal
service project is unlikely to have the rigor and detail
of the organization chart for a
3,000-person disaster response team. An
Organizational Breakdown Structure
(OBS) is a specific type of organization chart that
shows; which organizational
units are responsible for which work packages.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Contextual Dimensions: Beginner-Level Examples
Contextual Dimensions: Beginner-Level Examples
Contextual Dimensions: Beginner-Level Examples
Contextual Dimensions: Beginner-Level Examples
Contextual Dimensions: Beginner-Level Examples
1. Culture
Culture represents the shared values and beliefs in an organization. For example,
in a software development company, a strong collaborative culture might
encourage team members to openly share ideas, give feedback, and work together
to solve problems. This culture can be seen through daily behaviors, like regular
team meetings, open communication, and mutual respect.
2. Environment
Environment refers to the external factors that affect an organization, including
political, social, technical, and economic influences. For instance, a tech startup
operating in a region with favorable government policies and high access to
advanced technology might thrive. However, it could also face challenges from
economic downturns or changing regulations in its industry.
3. Goals
Goals are the unique priorities and desired outcomes of an organization. For
example, a non-profit organization might have a goal to provide free education to
underprivileged children, while a software company might focus on achieving a
certain market share for its product. Each organization's goals define its strategic
direction and influence decision-making.
4. Size
Size refers to the number of employees, resources, and their distribution within
the organization. For example, a small company with 50 employees might have a
close-knit team where everyone knows each other, while a large multinational
corporation with thousands of employees may have complex reporting structures
and departments.
5. Technology
Technology encompasses the activities, tools, and facilities required to achieve
organizational goals. For example, a software company specializing in artificial
intelligence might need high-performance servers, advanced programming tools,
and specialized skills in machine learning to develop its products. Technology
shapes how the organization operates and innovates.
Role and Responsibility Assignments: Beginner-Level
Role and Responsibility Assignments: Beginner-Level
Role and Responsibility Assignments: Beginner-Level
Role and Responsibility Assignments: Beginner-Level
Role and Responsibility Assignments: Beginner-Level
Examples
Examples
Examples
Examples
Examples
1. Project Roles and Responsibilities
Roles define who does what in a project, while responsibilities determine who
makes decisions. For example, in a software development project:
Roles and responsibilities can change throughout the project. At the beginning,
the project manager might focus on planning, while later, they ensure the project
meets its deadlines.
2. Responsibility Assignment Matrix (RAM)
A Responsibility Assignment Matrix (RAM) visually maps who is responsible for
what in a project. For example, in a project to develop an app, a high-level RAM
might show that:
Lower-level RAMs can go further into detail, assigning individual tasks to specific
team members.
Organization Chart: Beginner-Level Examples
Organization Chart: Beginner-Level Examples
Organization Chart: Beginner-Level Examples
Organization Chart: Beginner-Level Examples
Organization Chart: Beginner-Level Examples
1. Organization Chart
An organization chart visually represents the reporting relationships in a project.
For example, in a small project with a few team members, the organization chart
might simply show that the Project Manager oversees the Development Team
The Project Manager ensures the project stays on track, coordinating
resources and managing timelines.
Developers write the code for the software.
Testers ensure the software works as expected by finding and reporting
bugs.
Stakeholders provide input on project requirements and review the
progress.
The Development Team is responsible for coding the app.
The QA Team is responsible for testing.
The Marketing Team is responsible for promoting the app.
Project Personnel
The staffing management plan describes when and
how human resources will be
brought onto and taken off of the project team. The
staffing plan may be formal or
informal, highly detailed or broadly framed, based on
the needs of the project. It is a
subsidiary element of the overall project plan.
The staffing management plan often includes resource
histograms. Particular
attention should be paid to how project team
members (individuals or groups) will
be released when they are no longer needed on the
project.
Appropriate reassignment procedures may:
Software Project Management (CS615)
57
and the Testing Team. In a larger project, the chart could be more detailed,
showing multiple levels of reporting.
2. Organizational Breakdown Structure (OBS)
An Organizational Breakdown Structure (OBS) is a type of organization chart that
shows which organizational units are responsible for specific work packages. For
example, in a software development project:
This chart helps clarify responsibilities and ensures that everyone knows their
role in the project.
The Development Department could be responsible for the coding and
implementation work package.
The Testing Department might handle the testing work package.
The Support Department might manage post-release customer support.
© Copyright Virtual University of Pakistan
– Reduce costs by reducing or eliminating the
tendency to “make work” to fill
the time between this assignment and the next.
– Improve morale by reducing or eliminating
uncertainty about future
employment opportunities.
ƒ Supporting detail
Supporting detail for organizational planning varies by
application area and
project size. Information frequently supplied as
supporting detail includes, but is
not limited to:
– Job descriptions (position descriptions) —written
outlines by job title of the
competencies; responsibilities, authority; physical
environment, and other
characteristics involved in performing a given job.
– Training needs—if the staff to be assigned is not
expected to have the
competencies
Needed by the project, those competencies will need
to be developed as part of
the project.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Key Concepts in Design of Good Organization
Effective Organizational System provides assessment
and training in
communication effectiveness through focus groups,
retreats, workshops, and
experiential activities. Coaching addresses such skills
as active listening,
constructive differing, conflict resolution, negotiation,
mediation, persuasiveness,
and clarity in delivering a message. At the core of the
training is the fundamental
premise that the role of communication is to create
understanding. When
communication is effective, it promotes
understanding and plays a fundamental role
in building interpersonal skills, leadership and strong
teams.
An efficient organization is characterized by timely
and productive systems and
procedures. At its extreme it has no spare capacity to
plan ahead or to respond
easily to market changes.
An effective organization is characterized by the
ability to pre-empt competitors,
respond swiftly and efficiently to changing situations,
and display agility in its
structure and conduct of operations. It has efficient
systems and procedures but has
the capacity to anticipate and plan ahead.
Organizational System provides assessment and
training in communication
effectiveness through focus groups, retreats,
workshops, and experiential activities.
Coaching addresses such skills as active listening,
constructive differing, conflict
resolution, negotiation, mediation, persuasiveness,
and clarity in delivering a
Software Project Management (CS615)
58
© Copyright Virtual University of Pakistan
message. At the core of the training is the fundamental
premise that the role of
communication is to create understanding. When
communication is effective, it
promotes understanding and plays a fundamental role
in building interpersonal
skills, leadership and strong teams. Organizations that
achieve high levels of
maturity in the people management area have a higher
likelihood of implementing
effective software engineering practices.
– Span of control - the range of employees who to
report to a managerial
position
– Authority - the formally-granted influence of a
position to make decisions,
pursue goals and get resources to pursue the goals;
authority in a managerial
role may exist only to the extent that subordinates
agree to grant this authority
or follow the orders from that position
– Responsibility - the duty to carry out an assignment
or conduct a certain
activity
– Delegation - process of assigning a task to a
subordinate along with the
commensurate responsibility and authority to carry
out the task
– Chain of command - the lines of authority in an
organization, who reports to
whom
– Accountability - responsibility for the outcome of
the process
– Line authority - the type of authority where
managers have formal authority
over their subordinates' activities (the subordinates
are depicted under the
manager on a solid line in the organization chart);
departments directly
involved in producing services or products are
sometimes called line
departments
– Staff departments - the type of authority where
managers influence line
managers through staff's specialized advice;
departments that support or
advise line departments are called staff departments
and include, e.g., human
resources, legal, finance, etc.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
In this lecture, we will explore key concepts in designing an effective organization.
Let's break down each concept with simple examples to enhance understanding.
Communication Effectiveness
Communication Effectiveness
Communication Effectiveness
Communication Effectiveness
Communication Effectiveness
Effective communication is critical for any organization. When communication
works well, it fosters understanding, teamwork, and leadership.
Example: A company conducts a workshop for its employees on active listening
and conflict resolution. During this workshop, employees learn how to listen to
each other carefully, resolve differences without conflict, and deliver clear
messages. As a result, the team becomes more cohesive, and collaboration
improves.
Efficient vs. Effective Organization
Efficient vs. Effective Organization
Efficient vs. Effective Organization
Efficient vs. Effective Organization
Efficient vs. Effective Organization
An efficient organization focuses on getting tasks done in a timely and productive
manner but might lack flexibility to adapt to changes. An effective organization, on
the other hand, combines efficiency with the ability to respond swiftly to changes
and anticipate future challenges.
Example: An efficient organization may meet all its deadlines but struggle to
handle unexpected market shifts. An effective organization meets deadlines and
also has systems in place to predict market trends, allowing it to adjust operations
quickly when needed.
Span of Control
Span of Control
Span of Control
Span of Control
Span of Control
The span of control refers to the number of employees who report to one
manager.
Example: If a manager supervises five team members, their span of control is five.
If they supervise ten team members, their span of control is ten.
Authority
Authority
Authority
Authority
Authority
Authority is the power given to a manager to make decisions and guide others.
Example: A project manager has the authority to assign tasks to team members
and allocate resources like budget and tools to ensure the project's success.
Responsibility
Responsibility
Responsibility
Responsibility
Responsibility
Responsibility is the duty to carry out a task or activity.
Example: If an employee is assigned the task of creating a project report, it is their
responsibility to complete it accurately and on time.
Delegation
Delegation
Delegation
Delegation
Delegation
Delegation involves assigning tasks to subordinates along with the authority and
responsibility to complete those tasks.
Example: A manager delegates the task of preparing a presentation to a team
member and gives them the authority to collect the necessary data and make
decisions related to the presentation.
Chain of Command
Chain of Command
Chain of Command
Chain of Command
Chain of Command
The chain of command is the line of authority within an organization that shows
who reports to whom.
Example: In a software development company, a junior developer reports to a
team lead, who reports to the project manager, who reports to the department
head. This is the chain of command.
Accountability
Accountability
Accountability
Accountability
Accountability
Accountability refers to being responsible for the outcome of a task or process.
Example: If a team member is responsible for testing a software module, they are
accountable for ensuring the module functions as expected and any issues are
reported promptly.
Line Authority
Line Authority
Line Authority
Line Authority
Line Authority
Line authority is where managers have direct authority over the employees
beneath them in the organizational hierarchy.
Example: In a production company, a production manager has line authority over
the workers in the production department and can direct their day-to-day tasks.
Staff Departments
Staff Departments
Staff Departments
Staff Departments
Staff Departments
Staff departments provide support and advice to line departments.
From ChatGPT, designed with FancyGPT
Example: The Human Resources department is a staff department. It doesn't
directly produce products but supports line departments by handling recruitment,
employee relations, and training.
By understanding these concepts, we can design organizations that not only
function efficiently but are also adaptable and capable of achieving their goals.
cs611 lecture 7
cs611 lecture 7
cs611 lecture 7
cs611 lecture 7
cs611 lecture 7
LECTURE # 7
2. Software Development Fundamentals
Management Fundamentals
2.1 Evolution of Software
The understanding about software and software development
has come a long
way from the days of punch cards and Ada. In the first stage of
computing,
hardware mattered the most. Computers themselves were the
domains of the
government, and most software was developed in defense-
funded labs, dedicated
to the advancement of science and technology in the national
interest.
By the 1950s, large corporations realized the benefits of using
computers. They
increasingly started using computers to process and analyze
financial and
production data. These computers were huge in size. There was
inadequate
software available for them. Even the software that existed was
designed
essentially to function on a specific hardware product. The
software was
developed and maintained by the company that manufactured
the hardware.
Software design and documentation existed only in the
developer's head. If the
developer left the company, you would find maintenance to be a
nightmare.
In the second phase of software evolution, the corporate and
academic sectors
increasingly started using computers, and the perspective
about both software and
software development began to change. By the late 1960s and
early 1970s,
concepts such as multi-sessions, multi-user systems,
multiprogramming gained a
foothold. Soon computers were developed to collect, process,
transform, and
analyze data in seconds. The focus of software development
shifted from custom
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/20
software to product software. Now, multiple users on multiple
computers could
use the same software. This phase of software evolution also
saw the emergence
of software maintenance activities. These activities comprised
fixing bugs, and
modifying the software based on changes in user requirements.
The third phase in software evolution was driven by the
widespread use of
silicon-based microprocessors, which further led to the
development of highspeed computers, networked computers,
and digital communication. Although, all
the advancement in software and hardware was still largely
restricted to enterprise
applications manufacturers had begun to see the application of
the microprocessor
in something as mundane as ovens to the robots used in car
plants.
The fourth, and current, phase of software evolution began in
the early 1990s.
This phase saw the growth of client-server environment,
parallel computing,
distributed computing, network computing, and object-
oriented programming.
Software Project Management (CS615)
60
© Copyright Virtual University of Pakistan
This phase also witnessed the growing popularity of personal
computer (PC).
During this phase, the Internet facilitated easy accessibility of
information. In
addition to complex software to support the advanced
hardware, the scope of
software development widened to include software products
for the common man.
Figure 1.1 sketches the path of software from the 1950s
onwards.
•
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one lecturer so keep
in mind in that give a coherent answer.
Certainly! Let's explore simple, beginner-level examples for each phase of software evolution
described in the lecture.
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/20
• The Software Crisis
The rapid evolution of software design concepts and software
development
methodology resulted in an ad hoc approach to software
development. In the early
days of computing, stress was laid more on computer hardware
than on software.
This happened mainly because hardware consumed the largest
portion of the
project budget. Project managers closely followed the process
of hardware
funding, budgeting, analysis and design, production, and
implementation.
Software development, on the other hand, was left to the
developers. There was
no training conducted, documentation maintained, or
methodology followed for
software development. You will find that this attitude persisted
until the 1970s,
First Phase (1950s - Mid 1960s)
First Phase (1950s - Mid 1960s)
First Phase (1950s - Mid 1960s)
First Phase (1950s - Mid 1960s)
First Phase (1950s - Mid 1960s)
Custom Software and In-House Development:
Second Phase (Mid 1960s - Early 1980s)
Second Phase (Mid 1960s - Early 1980s)
Second Phase (Mid 1960s - Early 1980s)
Second Phase (Mid 1960s - Early 1980s)
Second Phase (Mid 1960s - Early 1980s)
Multisessions, Multitasking, Multiuser, Real-time Processing, Database Connectivity,
Product Software:
Third Phase (1980s - Mid 1990s)
Third Phase (1980s - Mid 1990s)
Third Phase (1980s - Mid 1990s)
Third Phase (1980s - Mid 1990s)
Third Phase (1980s - Mid 1990s)
Networked Computing, Microprocessors:
Fourth Phase (1990s - Present)
Fourth Phase (1990s - Present)
Fourth Phase (1990s - Present)
Fourth Phase (1990s - Present)
Fourth Phase (1990s - Present)
Penetration of the PC, The Internet, Object-Oriented Programming, Client-server
Environment:
These examples illustrate the progression from specific, custom-built software for large
machines to flexible, interconnected, and user-friendly software in widespread use today.
Example: A company using a large mainframe computer developed custom software for
payroll processing. The software was created specifically for that company’s hardware
and couldn't be used elsewhere.
Example: A university implemented a multi-user system where multiple students could
access a computer system simultaneously for programming assignments, using
different accounts.
Example: A small office set up a local area network (LAN) allowing all their desktop
computers to connect and share resources like printers and files through networked
computing.
Example: A small business used client-server architecture for its sales system, where a
central server manages the sales data, and various client computers (PCs) access and
update the information through the network.
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/20
when finally processes and methodologies for software design
and development
began to be created. However, the ad hoc approach to software
development that
Software Project Management (CS615)
61
© Copyright Virtual University of Pakistan
was prevalent in the early stages of software evolution
hampered the application
of systematic processes. This conflict referred to as the
software crisis. Some of
the reasons to which you can attribute the software crisis
include:
– Software developers used-multiple programming languages.
– Software developers used multiple variations of standard
programming
languages.
– Most of the requirements were complex with regard to the
existing
capabilities,
– Users, who had little or no experience of developing or even
using
software, formulated requirements.
– Software developers poorly mapped requirements to the
actual product.
– Software developed had low interoperability.
– Software maintenance was costly.
– Hardware developed at a faster rate than software (better
hardware
requires better software to operate it).
During the period of software crisis, you will find that software
that was produced
was generally over budgeted, under scheduled, and of poor
quality. The
immediate knee-jerk response to these problems was software
maintenance,
which began to consume huge resources. During this period,
maintaining software
was adopted as a short-term solution due to the costs involved
in fixing software
regularly. This often resulted in the original software design
approach getting lost
due to the lack of documentation.
In contrast, the situation in the present times has changed to a
large extent.
Software costs have risen, although hardware is purchased
easily off the shelf.
Now, the primary concerns regarding software projects are
project delays, high
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/20
costs, and a large number of errors in the finished product.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one lecturer so keep
in mind in that give a coherent answer.
Let's explore simple, beginner-level examples for the aspects of the software crisis described
in the lecture.
Software Crisis Factors
Software Crisis Factors
Software Crisis Factors
Software Crisis Factors
Software Crisis Factors
Multiple Programming Languages:
1
Example: A development team is working on a project where different parts of
the software are written in different programming languages, such as Java for the
server, JavaScript for the frontend, and Python for the data processing. This
makes it difficult for developers to understand and maintain the entire system.
2
Variations of Standard Programming Languages:
3
Example: A developer uses a custom version of a popular programming language
that introduces unique features. When another developer tries to work on the
code, they struggle because the standard language documentation doesn’t cover
these unique features.
4
Complex Requirements:
5
Example: A company wants to build a software application that integrates with
several existing systems, each with its own protocols and data formats. This
complexity makes it difficult to design and develop the software effectively.
6
Inexperienced Users Formulating Requirements:
7
Example: A non-technical manager provides a list of features they want in a new
software application, but they are not familiar with what is technically feasible,
leading to unrealistic expectations.
8
Poor Requirement Mapping:
9
Example: A software developer misunderstands the user requirements for a new
feature and implements it incorrectly, resulting in software that does not meet the
user’s needs.
10
Low Interoperability:
11
Example: A software system is designed in such a way that it cannot easily
exchange data with other systems used by the company, leading to data silos and
inefficiencies.
12
Costly Software Maintenance:
13
Example: A company has to hire a team of developers to regularly update and fix
their software, which has frequent bugs and performance issues, leading to high
maintenance costs.
14
Faster Hardware Development:
15
Example: New, faster processors are released, but the existing software is not
optimized to take advantage of the new hardware capabilities, resulting in
underutilized resources.
16
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/20
2.2 Project Execution Fundamentals
Tracking
For the project manager, it is essential to be constantly
informed of the true status
of the project. This is achieved by assuring the regular flow of
accurate
information from the development teams. Many of the methods
of acquiring
information are not objective and rely on the accuracy of the
reports provided by
the project developers themselves. They include:
– Periodic written status reports
– Verbal reports
– Status meetings
– Product demonstrations (demos)
Product demonstrations are particularly subjective, because
they demonstrate only
what the developer wishes to be seen. The project manager
needs objective
Software Project Management (CS615)
62
© Copyright Virtual University of Pakistan
information. Such information can often be acquired from
reports produced by
support groups, such as:
– Quality assurance reports
– Independent test reports
Although reports and meetings are indeed useful sources of
information, nothing
Effects of the Software Crisis
Effects of the Software Crisis
Effects of the Software Crisis
Effects of the Software Crisis
Effects of the Software Crisis
These examples highlight the challenges faced during the software crisis period and the shift
in focus to address these issues in contemporary software development practices.
Over-Budgeted Projects:
1
Example: A software project initially estimated to cost $100,000 ends up costing
$200,000 due to unexpected complications and the need for additional resources.
2
Under-Scheduled Projects:
3
Example: A software project planned to be completed in six months takes a year
to finish because of unforeseen challenges and the need for rework.
4
Poor Quality Software:
5
Example: A software application is released with numerous bugs and
performance issues, resulting in frequent crashes and user dissatisfaction.
6
Costly Maintenance:
7
Example: A company spends a significant portion of its IT budget on maintaining
existing software, as opposed to developing new features or products.
8
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/20
can replace direct contact between the project manager and
the development staff.
Frequent informal talks with the developers are excellent
sources of information,
especially when held in an informal atmosphere (and not in the
project manager's
office).
The project manager must keep on constant guard against an
error commonly
referred to as the '90/50 syndrome’, which states that, 'it takes
50 percent of the
time to complete 90 percent of the work, and an additional 50
percent of the time
to complete the remaining 10 percent of the work'. This means
that project
developers will begin to boast quite early that they have 'almost
finished' their
tasks. Unfortunately, there is a great difference between
'almost finished' and
‘finished'.
Finishing a task -writing documentation, and polishing off the
last few problems,
often takes longer than developers anticipate. This is because
these activities
produce very few visible results, and developers tend (wrongly)
to associate work
with results. Therefore, managers can obtain more information
from developers
by asking them how long they estimate it will take to finish, and
not how much of
their work has been completed.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: this is a lecture given by one lecturer so keep
in mind in that give a coherent answer.
Let’s break down the key points in the lecture on project execution fundamentals and provide
simple beginner-level examples for each.
Project Execution Fundamentals
Project Execution Fundamentals
Project Execution Fundamentals
Project Execution Fundamentals
Project Execution Fundamentals
Periodic Written Status Reports:
1
Example: Every Friday, a developer emails a summary of their weekly progress to
the project manager, detailing the tasks completed, any issues faced, and the plan
for the next week.
2
Verbal Reports:
3
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/20
• Status reports
Status reports should be required from every member of the
development team,
without exception. The reports should be submitted
periodically, usually weekly
or bi-weekly, and should contain at least the following three
sections (see Fig.
5.8):
1. Activities during the report period
Each subsection within this section describes a major activity
during the report
period. The description of each activity should span two to
three lines. Activities
should be linked to the project task list or work breakdown
structure (WBS) (see
Objective Information Sources
Objective Information Sources
Objective Information Sources
Objective Information Sources
Objective Information Sources
Direct Contact and Informal Talks
Direct Contact and Informal Talks
Direct Contact and Informal Talks
Direct Contact and Informal Talks
Direct Contact and Informal Talks
The '90/50 Syndrome'
The '90/50 Syndrome'
The '90/50 Syndrome'
The '90/50 Syndrome'
The '90/50 Syndrome'
By focusing on these aspects, project managers can better track and manage their projects,
ensuring that issues like the '90/50 syndrome' are identified early, and accurate information is
gathered to facilitate successful project completion.
Example: During a daily team meeting, each developer gives a quick update on
their current tasks, any roadblocks, and what they plan to work on next.
4
Status Meetings:
5
Example: The project manager organizes a bi-weekly meeting where all team
members discuss the project’s overall progress, upcoming milestones, and any
concerns that need to be addressed.
6
Product Demonstrations (Demos):
7
Example: A developer showcases a new feature of the software to the project
manager and stakeholders, highlighting its functionality and benefits.
8
Quality Assurance Reports:
1
Example: The quality assurance team provides a report on the latest software
build, listing the number of bugs found, their severity, and whether the build
meets the quality standards.
2
Independent Test Reports:
3
Example: An external testing company evaluates the software and sends a report
with their findings on performance, usability, and compatibility issues.
4
Informal Talks with Developers:
1
Example: The project manager frequently visits the developers' workspace to
chat informally about their progress, challenges, and any help they might need.
2
Understanding 'Almost Finished':
1
Example: A developer tells the project manager they have completed 90% of a
feature, but when asked how much longer it will take to finish, they estimate
another week, indicating there is still significant work to be done.
2
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/20
Chapter 10 for a description of the WBS).
2. Planned activities for the next report period
Each subsection within this section describes a major activity
planned for the next
report period. The description of each activity should span one
to two lines.
3. Problems
Software Project Management (CS615)
63
© Copyright Virtual University of Pakistan
Each subsection within this section describes a major problem
that either occurred
during the report period, or that was reported previously and
has not yet been
resolved. This means that problems will be repeatedly reported
until they are
resolved. In particular, this section must explain why this
report's Section 1 does
not correspond to the previous report's Section 2.
All reports should also contain:
1. Date of report
2. Report period (e.g. 3 July to 10 July 1992)
3. Name of report (e.g. Communications team status report)
4. Name of person submitting the report
The preparation of a periodic status report should take about
20 minutes, but not
longer than 30 minutes. Developers should submit their status
reports to their
team leader. The team leader then combines the reports of the
team into a single
status report, while maintaining the same report structure. This
activity should
take the team leader about 30 minutes, but not longer than 45
minutes (this is
easily done when the reports are prepared and submitted by
electronic mail).
Each team leader submits the team status report to the project
manager. The
individual status reports need not be submitted; these should
be filed and
submitted to the project manager only on request.
Software Project Management (CS615)
64
© Copyright Virtual University of Pakistan
From: John Doe, Team leader
To: Frank Smith, Project Manager
Date: 15 June 1993
User interface team: Weekly status report
for the period 5-12 June 1993
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/20
1. Activities during the report period:
1.1 The design of the user help screens (activity 3.12.6) was
completed on schedule.
The design specs were submitted to configuration control.
1.2 Coding of the command pass through modules (activity
group 5.12) continues, and is
currently behind schedule by about 1 week.
2. Activities planned for next week:
2.1 Coding of the command pass through modules (activity
group 5.12) will be
completed, and unit tests will be started.
2.2 Two members of the team (Ed and Joan) will attend a two
day course on the
Programmer’s interface to the new user interface package. This
is an unscheduled
activity that was approved at the last project meeting. This will
not delay the
schedule, due to the early completion of the command pass
through modules (see
Section 1.2 above).
3. Problems:
3.1 The user interface package we originally planned to use was
found to be inadequate
for the project. Two team members will study the new proposed
package (sec Section 2.2
above). If the new package is also found to be unsuitable, then
this will severely impact
our development schedule.
3.2 One of our team members (Jack Brown) has been using an
old VTI00 terminal
instead of a workstation for the past two weeks, due to the
acute shortage of
workstations. This is the reason why Jack's task 5.12 was not
completed this week, as
scheduled.
Figure 5.8: Example of a weekly status report
The project manager also receives status reports from other
project support
personnel such as the project systems engineer or the deputy
project manager. The
project manager then prepares the project status report by
combining the
individual reports received into a single three-part report. The
project status report
is then submitted to top management.
Software Project Management (CS615)
65
© Copyright Virtual University of Pakistan
Project status reports are not necessarily submitted at the
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/20
same frequency as
internal project status reports. Project reports may be
submitted bi-weekly or
monthly.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that give a
coherent answer.
Here are beginner-level examples illustrating the points from the lecture on status reports in
project execution:
Status Report Components
Status Report Components
Status Report Components
Status Report Components
Status Report Components
Additional Report Information
Additional Report Information
Additional Report Information
Additional Report Information
Additional Report Information
Process of Report Submission
Process of Report Submission
Process of Report Submission
Process of Report Submission
Process of Report Submission
Activities During the Report Period:
1
Example: In this section, a developer lists that they have completed designing the
login interface and have started coding the user authentication module.
2
Planned Activities for the Next Report Period:
3
Example: A developer plans to finish coding the user authentication module and
begin integrating it with the database by the next reporting period.
4
Problems:
5
Example: A developer mentions that they encountered a problem with the
authentication module not connecting to the database, which needs further
investigation.
6
Date of Report:
1
Example: The report is dated “15 August 2024.”
2
Report Period:
3
Example: The report covers the period from “1 August 2024 to 15 August 2024.”
4
Name of Report:
5
Example: The report is titled “Database Team Status Report.”
6
Name of Person Submitting the Report:
7
Example: The report is submitted by “Alex Johnson, Team Leader.”
8
Preparation Time:
1
Example: Developers take about 20 minutes to prepare their status reports,
detailing their activities and plans.
2
Submission to Team Leader:
3
Example: After preparing their reports, developers send them to their team
leader via email.
4
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/20
y.
• Project status meetings
Project status meetings should be held periodically, usually
once a week. A good
time for status meetings is either at the end of the last day of
the week, or at the
beginning of the first day of the week. Status meetings also
contribute to the
atmosphere of order and control within the project, and should
be held regularly,
at a fixed time. Participants who cannot participate in the
project status meeting
may, with the project manager's approval, delegate
participation to another
member of their team.
The project manager prepares for the status meeting by
reviewing the status
reports submitted by the key project members (particularly
scrutinizing the
problem section). Therefore the status reports should be
submitted at least two to
three hours before the status meeting. Project status meetings
are attended by the
key project members. The meeting begins with a report of
project activities and
general issues by the project manager. Then each participant
should be given
Project Manager’s Role
Project Manager’s Role
Project Manager’s Role
Project Manager’s Role
Project Manager’s Role
These examples illustrate the structure and process of creating and submitting status reports,
ensuring the project manager and top management have accurate and up-to-date
information about the project's progress.
Compilation by Team Leader:
5
Example: The team leader spends about 30 minutes combining individual reports
into a single report, maintaining the report’s structure.
6
Submission to Project Manager:
7
Example: The team leader sends the compiled team status report to the project
manager.
8
Compilation of Project Status Report:
1
Example: The project manager receives reports from various teams and support
personnel, combines them into a comprehensive project status report.
2
Frequency of Submission:
3
Example: The project status report is submitted to top management on a monthly
basis.
4
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/20
about five to ten minutes to report on the activity of his or her
team or area of
responsibility. The discussion of problems should not be
restricted to the person
reporting the problem and the project manager. All problems
may be addressed by
all participants, with possible assistance offered between team
leaders, thus
making their experience available throughout the project. It is
not the project
manager's role to provide solutions to the problems, but rather
to guide the team
members toward solutions.
Solutions should be worked out whenever possible during the
status meeting. Any
problem not resolved within five minutes should be postponed
for discussion by
the relevant parties after the status meeting. The proceedings
of all project status
meetings must be recorded. Verbatim minutes are not required,
though the
following items should appear in the record:
1. Date of meeting
2. Name of meeting
3. Present (list of participants)
4. Absent (list of absent invited participants)
5. Action items (name, action, and date for completion)
6. Major decisions and items discussed
The record of the project status meeting should be typed and
distributed as soon
as possible, but no later than by the end of the day. This is
particularly important
when there are action items to be completed on the same day.
When the project is
sufficiently large to justify a secretary, then the record will be
taken and typed by
Software Project Management (CS615)
66
© Copyright Virtual University of Pakistan
the secretary. In smaller projects, the project manager can
rotate this task each
week between the participants.
2.3 Software Project Management Framework
You all know that a project is much more than a collection of
methodologies,
tasks, resources, and reviews. A project is a synchronized event
where there is
perfect harmony and understanding between the participants.
The participants are
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/20
equipped with the essential skills of planning, cooperating,
helping, and
communicating. However, the most important activity here is to
orchestrate the
movement of the participants. The onus lies with the project
manager to
synchronize the activities of the project to result in a perfect
presentation.
Although each project manager has a unique style of
functioning, there are some
fundamental approaches that guide a project manager. These
approaches are
traditional project management concepts and software
engineering concepts. To
understand software projects and their dynamics, you must be
aware of the
environment in which a software project is executed. This
further requires an
understanding of the larger framework of software project
management.
In this chapter, you will learn to, build a connection between
traditional project
management concepts and software engineering concepts.
Both traditional and
software projects share the same methodologies, techniques,
and processes.
However, managing software projects requires a distinct
approach. In this,
chapter, you will learn to apply traditional project management
principles to
software projects. Further, you will learn about the
responsibilities of a software
project manager. You will also learn about the phases in a
software project and
the activities within each phase. Finally, the chapter will provide
you an overview
of the problems that affect a software project and the myths
prevalent about
software project management. (my prompt is that give me
simple beginner level examples of all the topics or text above
given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that give
coherent examples.
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/20
Here are simple beginner-level examples for the topics on project status meetings and
software project management framework:
Project Status Meetings
Project Status Meetings
Project Status Meetings
Project Status Meetings
Project Status Meetings
Software Project Management Framework
Software Project Management Framework
Software Project Management Framework
Software Project Management Framework
Software Project Management Framework
These examples aim to clarify the elements of effective project management meetings and
the overarching framework of managing software projects.
Scheduling of Meetings:
1
Example: A project manager schedules a status meeting for every Monday
morning at 9 AM to review the previous week’s progress and plan for the
upcoming week.
2
Preparation for Meetings:
3
Example: The project manager reviews the submitted status reports two hours
before the meeting to identify key issues and prepare a summary.
4
Conducting the Meeting:
5
Example: The project manager begins the meeting by summarizing the overall
project status, then invites each team leader to speak about their team's progress
for about five minutes each.
6
Problem Discussion:
7
Example: A team leader mentions a problem with integrating a new feature. The
project manager encourages other team leaders to offer solutions based on their
experience.
8
Recording the Meeting:
9
Example: A secretary or a rotating participant takes notes during the meeting,
including the date, list of attendees, action items, and major decisions. These
notes are typed and distributed by the end of the day.
10
Traditional and Software Engineering Concepts:
1
Example: Understanding that like traditional projects, software projects require
planning, scheduling, and resource management but with added emphasis on
software development phases like coding and testing.
2
Responsibilities of a Software Project Manager:
3
Example: The project manager ensures that all team members understand their
tasks, timelines, and deliverables, and coordinates their activities to achieve the
project goals.
4
Phases in a Software Project:
5
Example: The project begins with the planning phase, moves into the
development phase where the software is coded, then the testing phase to find
and fix bugs, and finally, the deployment phase where the software is released.
6
Problems and Myths in Software Project Management:
7
Example: A common problem is scope creep, where project requirements
increase over time, potentially leading to delays and budget overruns. A prevalent
myth is that adding more developers to a delayed project will speed up
completion, which is not always true due to the added complexity of coordination.
8
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/20
2.4 Software Development Life Cycle (SDLC)
The development of a software project consists of many
activities spread across
multiple phases. Dividing a software project into phases helps
you in managing
the complexities and uncertainties involved in the software
project.
2.5 Phases of a Software project
Each phase represents the development of either a part of the
software product or
something associated with the software project, such as user
manual or testing.
Each phase is composed of various activities. You can consider a
phase complete
when all activities are complete.
Software Project Management (CS615)
67
© Copyright Virtual University of Pakistan
A phase is named according to the primary deliverable set that
is achieved at the
end of that phase. For example, if the requirements document is
required as the
output, the phase is called the requirements phase. Similarly,
most software
projects have phases for analysis, design, construction,
implementation, and
testing.
A typical software project includes the following phases:
– Software requirement analysis phase
– Software Design Phase
– Software Planning Phase
– Software construction phase
– Software testing phase
– Software acceptance and maintenance phase
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple beginner-level examples for the Software Development Life Cycle (SDLC)
and its phases:
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/20
2.6 SDLC Models
Different organizations have different ways of assessing and
arranging the phases
in a project. These are called process models. Process models
define how a
software life cycle actually works. They provide you with a
framework to plan
and execute the various phases in the project. Typically, project
life cycles display
the following characteristics:
• The level of cost and effort required in a software project life
cycle is small to
begin with but grows larger towards the end of the project. This
Phases of a Software Project
Phases of a Software Project
Phases of a Software Project
Phases of a Software Project
Phases of a Software Project
These examples illustrate how each phase of the SDLC contributes to the development and
delivery of a software project.
Overview:
1
Example: A software company follows a structured approach to develop their
new mobile application, breaking down the process into manageable phases to
ensure all aspects are properly addressed and delivered on time.
2
Software Requirement Analysis Phase:
1
Example: The development team meets with the client to gather detailed
requirements for the new software application. They document what features the
client wants and how the application should perform.
2
Software Design Phase:
3
Example: The design team creates the architecture of the software, including the
layout of the user interface and the structure of the database, ensuring that the
design meets the requirements gathered in the previous phase.
4
Software Planning Phase:
5
Example: The project manager outlines the timeline, allocates resources, and
schedules the tasks needed to complete the project based on the design
document.
6
Software Construction Phase:
7
Example: The development team begins coding the application based on the
design specifications. They write the code that will make up the functionality of
the software.
8
Software Testing Phase:
9
Example: The testing team performs various tests on the application to identify
and fix bugs or issues, ensuring the software works correctly and meets the
specified requirements.
10
Software Acceptance and Maintenance Phase:
11
Example: After successful testing, the software is presented to the client for
acceptance. Once accepted, the software is deployed, and the team provides
ongoing maintenance and support to address any future issues or updates.
12
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 17/20
happens
because the phases such as software construction and
implementation, which
come at later stages in a software project, require more
resources than the
initial phases of the project.
• At the start of the SDLC, external entities, such as the
customer and the
organization, play an important role with regard to their effect
on the
requirements. However, towards the end of the software
project as the cost
and effort required to implement changes rise, the requests for
change in
requirements decreases.
• The uncertainty faced by the software project is highest at
the beginning of the
SDLC. Their level decreases as the project progresses.
There are a few standard software process models that you can
use, with some
customization. Some standard process models are given below:
• The Waterfall model: This is the traditional life cycle model. It
assumes that
all phases in a software project are carried out sequentially and
that each
phase is completed before the next is taken up.
• The Prototyping Model: A model that works on an iterative
cycle of gathering
customer requirements, producing a prototype based on the
requirement
specifications, and getting the prototype validated by the
customer. Each
Software Project Management (CS615)
68
© Copyright Virtual University of Pakistan
iteration of the life cycle builds on the prototype produced in
the previous
iteration.
• The Incremental Model: The Incremental model is an example
of an
evolutionary life cycle model. It combines the linear nature of
the Waterfall
model and the iterative nature of the Prototyping model. The
Incremental
model divided the development life cycle into multiple linear
sequences, each
of which produces an increment of the final software product.
In this model,
the software product is developed in builds. A build is defined
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 18/20
as a selfcontained unit of the development activity. The entire
development cycle is
planned for a specific number of logical builds, each having a
specific set of
features.
• The Spiral model: Another evolutionary life cycle model that
combines the
linear nature of the Waterfall model and the iterative nature of
the Prototyping
model. The project life cycle is divided into phases, and each
phase is
executed in all of the iteration of the Spiral Model.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are beginner-level examples of different SDLC models and the general characteristics of
project life cycles:
General Characteristics of Project Life Cycles
General Characteristics of Project Life Cycles
General Characteristics of Project Life Cycles
General Characteristics of Project Life Cycles
General Characteristics of Project Life Cycles
SDLC Models
SDLC Models
SDLC Models
SDLC Models
SDLC Models
Cost and Effort:
1
Example: A software project begins with low costs during the planning and design
phases. As the project enters the construction and implementation phases, the
costs increase because more resources, like developers and testers, are needed to
build and deploy the software.
2
External Entities:
3
Example: At the start of a project, the customer and stakeholders are heavily
involved in defining the project requirements. As the project progresses and the
software is built, their involvement decreases because changes become more
difficult and costly to implement.
4
Uncertainty:
5
Example: When a project begins, the team may have a lot of unknowns about how
to meet the requirements or potential technical challenges. As they make
progress and solve these issues, the level of uncertainty decreases.
6
The Waterfall Model:
1
Example: A software company decides to use the Waterfall model for a project.
They first complete the requirements phase, then move on to design, followed by
construction, and so on. Each phase must be completed and reviewed before the
next phase begins.
2
The Prototyping Model:
3
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 19/20
From ChatGPT, designed with FancyGPT
These examples illustrate how different SDLC models can be applied to manage and execute
software development projects effectively.
Example: A team gathers initial requirements from the customer and creates a
basic prototype of the software. The customer reviews this prototype and
provides feedback. The team then refines the prototype, adding more features
and improvements, and presents it again to the customer. This cycle continues
until the final product meets the customer's needs.
4
The Incremental Model:
5
Example: A project is divided into several small builds. In the first build, the team
develops the core features of the software. Once these are completed and tested,
they move on to the second build, adding more features. This process continues
until all features are implemented, and the final product is ready.
6
The Spiral Model:
7
Example: A development team starts by planning the project and assessing risks.
They then design and build a small part of the software, which is tested and
evaluated. Based on the results, they plan the next iteration, incorporating any
new requirements or changes. This process is repeated through several iterations,
gradually expanding the scope of the software with each cycle.
8
15/08/2024, 20:13 FancyGPT - cs611 lecture 7
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 20/20
cs611 lecture 8
cs611 lecture 8
cs611 lecture 8
cs611 lecture 8
cs611 lecture 8
LECTURE # 8
2. Software Development Fundamentals
Management Fundamentals
2.7 Organizational Issues and Project Management
Organizational issues have a deep influence on a
software project, its progress,
and the role of the project manager. The policies of an
organization can affect the
way the organization handles the customer, different
types of technologies, and
different software projects. The organizational issues
that can influence a software
project include:
• Reaction to external influences
• Interest in adherence to standards
• Definition of core competency area
• Existence of knowledge management system
• Interest in human resources
One organizational issue that can influence a software
project is the reaction of
the organization to external influences.- As a project
manager, it is important for
you to assess how the organization reacts to changes
in the external environment,
For example, in the current technology environment
that changes rapidly, an
organization should be proactive in strengthening its
capability baseline by
adopting new technology and retraining its employees
as per market
requirements.
Interest in adherence to standards is another
organizational issue that can
influence a software project. The current technology
environment is highly
dynamic. Various nonprofit and independent
organizations have developed
protocols and standards for the standardization of
software development and
measurement: For example; the Software Engineering
Institute at the Carnegie
Mellon University has developed the Capability
Maturity Model (SEI-CMM).
The CMM rates the processes of a software
development organization and
classifies it into five maturity levels. Software
development organizations can also
get the quality-related certifications issued by the
International Standards
Organization smoothen your project management
tasks by standardizing the
internal processes and optimizing performance.
Definition of core competency area also influences a
software project. An
organization that creates software must understand
how they are created and
establish processes accordingly For example, if the
core competency of the
organization lies in manufacturing chemicals, it should
preferably not attempt
Software Project Management (CS615)
70
© Copyright Virtual University of Pakistan
software development for such an organization, it is
better to purchase an off-theshelf software product.
An organizational issue that positively influences the
tasks of software project
managers is the presence of a good knowledge
management system within the
organization. Knowledge management is the
collection of processes that control
the creation and utilization of knowledge within the
organization. A good
knowledge management system allows you to access
relevant information and
make informed decisions.
Another organizational issue that can influence a
software project is the interest of
management in human resources. The human
resources of an organization are its
primary resource. You need to ensure that the people
in the development team
enjoy a comfortable work environment, which is
conducive for smooth and
trouble-free work. This includes providing suitable
compensations, a friendly
work environment, and smooth processes. The
absence of these factors negatively
affects employee morale, and therefore, productivity.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that give coherent examples.
2.8 Managing Processes
As a software project manager, you become the key
player in a software project.
You not only manager the day-to-day activities of the
project but also ensure that
the software product is delivered on time. What
makes your role challenging is
the performance of project-related activities within a
specified budget and time
constraint. At the same time, you need to keep the
requirements and specifications
of the customer in mind.
To deliver expected results, you carry out three
successive processes: studying the
feasibility of the project, planning to meet the
requirement, and executing the
plan. These processes can be further broken down into
activities, such as
planning, staffing, and monitoring.
You plan and organize the software development team
to complete development
within the stipulated time and budget. To do this, you
form a team of people who
have the required technical skills. Then, you ensure
that all activities are carried
out as planned by the relevant people.
Your responsibilities include analyzing customer
requirements, determining the
scope of the software project, allocating resources top
the project, scheduling the
project, and executing the project. These
responsibilities can be considered in
terms of the areas where management skills are
required. The primary software
project management areas that you need to
concentrate on include:
• Managing Resources
• Managing Cost
Software Project Management (CS615)
71
© Copyright Virtual University of Pakistan
• Managing Risk
• Managing Schedule
• Managing the project plan
• Managing quality (my prompt is that give me simple
beginner level examples of all the topics or text above
given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that give coherent examples.
Here are simple, beginner-level examples related to managing processes in a
software project:
Managing Resources:
1
As a project manager, you need to allocate the right people and tools
to different parts of the project. For example, if you're working on
developing a mobile app, you might assign a team of developers to
work on coding, a designer to create the user interface, and a tester to
check for bugs. You also ensure that they have the necessary software
and hardware to complete their tasks.
2
Managing Cost:
3
You are given a specific budget to complete the project. Let's say the
budget is $50,000. You need to plan how to spend this money wisely—
paying your team, buying necessary software licenses, and covering
any other project-related expenses. If you overspend, the project
could run out of funds before it's completed.
4
Managing Risk:
5
During the project, there might be potential risks that could delay the
project or increase costs. For example, a key developer might fall ill, or
there could be a delay in receiving necessary software updates. As a
project manager, you identify these risks early and have backup plans
ready, such as having an additional developer on standby or finding
alternative solutions.
6
Managing Schedule:
7
You create a timeline for the project, setting deadlines for each phase
of the development. For instance, you might set a deadline of two
weeks for the design phase, four weeks for development, and two
weeks for testing. You monitor the progress to ensure that the team is
meeting these deadlines. If there’s a delay, you may need to adjust the
schedule to keep the project on track.
8
Managing the Project Plan:
9
You create a detailed plan that outlines all the tasks, resources, costs,
and schedules for the project. This plan serves as a roadmap for the
entire project. Throughout the project, you regularly review and
update this plan to ensure that everything is going according to
schedule, within budget, and meeting the customer's requirements.
10
Managing Quality:
11
⇒Managing Resources
The primary input required to create software are
resources. Resources for a
software project may be of three kinds: human,
hardware, and software. Human
resource management is about effectively identifying
the people with the
appropriate skills, assigning roles and responsibilities
to these people, and
establishing reporting relationships. On the other
hand, hardware and software
resource management relates to identifying and
ensuring resources such as
workstations, disk space on servers, software tools,
and software licenses. You
need to ensure that human resource identification and
allocation is carried out;
simultaneously with hardware and software resource
management.
To manage resources effectively, there are two areas
that you require your
attention. These include:
These examples help clarify the responsibilities and challenges a software project
manager faces in managing different aspects of the project, ensuring that it is
completed successfully and meets the customer's expectations.
Throughout the project, you need to ensure that the software being
developed meets the quality standards agreed upon with the
customer. This might involve setting up regular testing sessions,
reviewing the code, and ensuring that the software performs well
under different conditions. If the quality is not up to standard, you may
need to make adjustments before delivering the final product.
12
• Management of human resource
• Identification of the critical hardware and software
resources
Management of human resources calls for a number of
actions. First, you define
reporting relationship for the software project.
Reporting relationship can exist
within and across organizational units, technical areas,
and hierarchical levels.
Next, determine the skills required for the software
project, and identify the
appropriate people who possess the required skills.
You can review the resource
pool and identify resources on the basis of their
experience and availability. In
case the resources are unavailable, you request for
their release from another
project or outsource the required resources.
Depending upon the organizational
practices arid experiences from past projects, you can
assign roles and
responsibilities to the development team. Finally,
create a staff management plan
and an organizational chart to show the hierarchical
structure of the development
team.
Management of human resources also requires
efficient team development. This
is a complex activity because it combines managing
people and organizing the
reporting structure within the team. You can build
cohesion and commitment
within the team through team building activities.
These activities include
conducting team meetings to involve people from
areas other than management
into decision-making.
To manage human resources, you also need to
implement a reward and
recognition system. This helps in promoting and
reinforcing positive
performance. It is important that you make the link
between the performance and
Software Project Management (CS615)
72
© Copyright Virtual University of Pakistan
reward explicit and achievable. You should also ensure
that the training needs of
the development team are met.
A second resource management area that requires
attention is identification of the
hardware and software resources that are critical for
the project. As a software
project manager, you must identify all the critical
hardware and software
resources and document them in the project plan.
After the required resources are
identified, you define control limits for each resource.
Control limits for a
resource are the upper and lower limit beyond which
the resource is above or
below the required level. For example, if a software
project requires disk space on
the central server, the control limits for the disk space
are the required maximum
and minimum disk space. Note that not all hardware
and software resources are
critical to the success of a software project. In some
software projects, you may
not find any critical resource at the beginning.
However, as the project progresses,
some resources might become critical. For efficient
resource management, you
should periodically assess hardware and software
resource requirements for the
software project. Just as a resource may become
critical as a project progresses, a
resource might also become less critical over a period
of time. Therefore; plan,
assess, and take corrective action for all the resources
through the duration of the
software project.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that give coherent examples.
Here are simple, beginner-level examples for managing resources in a software
project, based on the text you provided:
Management of Human Resources:
1
Defining Reporting Relationships: Suppose your project involves
developing an e-commerce website. You decide that the project
manager will report to the IT Director, the development team will
report to the project manager, and the testing team will report to the
quality assurance (QA) lead. These relationships ensure that everyone
knows who they report to and who they can turn to for guidance.
2
Determining Skills and Identifying People: For the e-commerce
website project, you need developers with experience in web
technologies like HTML, CSS, JavaScript, and databases. You review
the available personnel and find developers with these skills. If one
developer is busy with another project, you might request their
release or hire an external developer with the required skills.
3
Assigning Roles and Responsibilities: You assign a senior developer to
lead the coding efforts, a designer to work on the user interface, and a
tester to ensure the website is bug-free. These roles and
responsibilities are based on each team member's expertise and
experience.
4
Creating a Staff Management Plan and Organizational Chart: You
create a plan that outlines who is responsible for what, and you draft
an organizational chart that shows the hierarchy within the team. This
helps everyone understand their role and how they fit into the overall
project structure.
5
Team Development: To ensure the team works well together, you hold
regular meetings where everyone can share their ideas and discuss
any issues. This helps build a sense of teamwork and ensures that
everyone is committed to the project's success.
6
Reward and Recognition System: To motivate the team, you set up a
system where high-performing team members are recognized in team
meetings and receive bonuses or other incentives. This encourages
everyone to work hard and contribute to the project’s success.
7
Training Needs: If a team member needs to learn a new tool or
technology, you arrange for training sessions. For example, if the
project requires knowledge of a specific database technology that a
team member is not familiar with, you provide training to help them
gain the necessary skills.
8
Identification of Critical Hardware and Software Resources:
9
Identifying Critical Resources: For the e-commerce website project,
you identify that you need servers to host the website, enough disk
space to store data, and software licenses for development tools like
an Integrated Development Environment (IDE) and version control
system. You document these needs in the project plan.
10
Defining Control Limits: You determine that the website will require
at least 500 GB of disk space on the server but no more than 1 TB.
11
⇒Managing Cost
The cost factor has a considerable influence on the
execution of a software
project. The budget of a software project is affected
by factors, such as the current
orientation of the organization toward software
development, number of skilled
personnel available, infrastructure, and computer
hardware and software. The
budget can also be influenced by timely availability of
resources. If a particular
resource is allocated to the project later than
required, the costs involved could go
up drastically.
Quite often, when a software project starts to become
too expensive, many project
managers also tend to start cutting costs. This can
have a direct impact on
employee morale. When employee morale drops, so
These examples help clarify how you would manage human resources, hardware,
and software resources in a software project, ensuring that everything is aligned
with the project's goals and that potential issues are addressed promptly.
These are the control limits for disk space. If the space used goes
beyond this range, you will need to take action to ensure the website
runs smoothly.
Periodic Assessment of Resources: As the project progresses, you
periodically check the disk space, server load, and software licenses to
ensure everything is within the required limits. If you find that disk
space is running low, you might upgrade the server to avoid issues. If a
resource like a particular software tool becomes less critical, you
might reduce its use or allocate it to another project.
12
does the quality of work, and
the productivity. Therefore, as a project manager you
must prepare for all
circumstances through proper estimation and
allocation. To manage costs for
software projects, you need an accurate estimation of
costs. To do that, there is a
sequence of steps that you need to perform.
• Identify the resources required for the project
• Estimate the cost of each activity
• Set cost baselines for each activity
• Implement a control system for cost changes
To estimate costs, you first identify and describe all
the resources required in the
software project. You also estimate the duration for
which the resources are used.
Software Project Management (CS615)
73
© Copyright Virtual University of Pakistan
Next, estimate the cost of each resource. To estimate
the cost, you can use
mathematical tools. However, in the case where
limited information is available
about resources, you can also use expert judgment to
estimate costs.
After the costs of the required resources are
estimated, you set cost baselines for
each activity. Cost baselines measure the performance
of an activity with regard
to the cost and duration defined for the completion of
the activity.
Finally, as the project manager you implement a
control system for cost changes.
The cost control system defines cost baselines,
identifies cost changes, and
modifies cost baselines to adjust cost changes (my
prompt is that give me simple beginner level examples
of all the topics or text above given by me in this
prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that give coherent examples.
Here are simple, beginner-level examples for managing cost in a software project,
based on the text you provided:
Identify the Resources Required for the Project:
1
For a software project to build a mobile app, you identify that you need
developers, designers, testers, project management tools, computers,
and software licenses. You also need server space for testing the app
before it goes live.
2
Estimate the Cost of Each Activity:
3
You estimate how much each of these resources will cost. For example,
you calculate the salaries for the developers and designers, the cost of
software licenses, the rental cost for the server, and any other
expenses. If a developer is paid $5,000 per month and will work on the
project for six months, you estimate the total cost for that developer
as $30,000.
4
Set Cost Baselines for Each Activity:
5
After estimating the costs, you set a budget for each activity. For
instance, you might allocate $10,000 for the design phase, $50,000 for
development, and $15,000 for testing. These baselines help you track
if you’re spending more or less than planned during each phase of the
project.
6
Implement a Control System for Cost Changes:
7
⇒Management Risk
Risk management is an integral part of project
management. In software projects,
where uncertainties are very high, risk management
and mitigation is even more
critical. Taking risks for high payoffs might bring in
high profits but not without
the danger of losses. Risk on a small scale is acceptable
to most project managers
as the element of loss is minimal. However, large risks
pose a danger to the
progress of a software project and you need to
manage them. Risk management
activities involve identifying potential risks, assessing
them, and planning for
contingent actions if a risk materializes.
As a project manager, you perform two primary
activities to manage risks for
software project:
• Risk Analysis
o Risk identification
These examples illustrate the steps involved in managing costs for a software
project, ensuring that the project stays within budget while still meeting all
requirements and quality standards.
You set up a system to monitor costs throughout the project. If you
notice that the design phase is costing more than expected, you might
need to adjust the budget or find ways to reduce costs in other areas.
For example, if you allocated $10,000 for design but it looks like it will
cost $12,000, you might reallocate funds from another activity or find
ways to reduce design costs without compromising quality.
8
o Risk quantification
• Risk management
The first activity in risk analysis is risk identification.
Risk identification helps
you point out the, potential risks for a software project
across all phases of the
project. Risks might evolve through the duration of a
software project, and
therefore, risk identification is an ongoing activity. To
identify potential risks for
a software project, you can analyze the activities in the
software project, the
software product description, and risks faced by the
development team in similar
past projects. This exercise allows you to identify the
potential sources of risks to
the current software project, Assessing the factor
influencing the different inputs
also allows you to identify the phases in the SDLC
when risk might materialize.
After potential risks have been identified, you can
quantify them. This is done to
ascertain their priority. If multiple risks materialize at
the same time, then you
must assign a priority to each risk based on the degree
of impact on the project
and handle the highest-risk events first. For example,
the risk of change in client
Software Project Management (CS615)
74
© Copyright Virtual University of Pakistan
requirements during the software construction phase
is a higher risk than a
deadline for a deliverable being missed. Therefore, you
first manage the risk that
has a higher priority. To quantify project risks, you can
use various mathematical
and statistical tools. You can also use expert judgment
to assess and quantify
risks.
After you have identified and quantified the potential
risks for a software project,
you create a risk mitigation plan. The purpose of the
risk mitigation plan is to help
you identify procedures to choose the path of least
damage and highest returns in
a case a risk materializes. To mitigate risks for a
software project, you first need
to be aware of the opportunities and threats that can
be pursued or ignored. This
enables you to focus on the risks that might have a
negative impact on the
software project and develop contingent plans to deal
with these risks. You can
also mitigate risks by evolving alternative strategies to
altogether prevent
potential risks from materializing.
In case an unplanned risk materializes, you must be
aware of the dependencies of
the project activities so that ad hoc solutions can be
evolved. However, as the
project manager you can avoid unplanned risks from
materializing by engaging in
an intensive risk identification and mitigation exercise
before the software project
commences.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for managing risks in a software project,
based on the text you provided:
Risk Analysis:
1
Risk Identification: Imagine you are managing a project to develop a
new mobile app. During the planning phase, you identify several
potential risks, such as delays in getting client feedback, changes in
user requirements, or technical challenges with integrating a new
payment system. Identifying these risks early allows you to plan how
to address them if they occur.
2
Risk Quantification: After identifying the risks, you prioritize them
based on their potential impact. For example, the risk of changes in
user requirements is considered more critical than a minor delay in
feedback, as changing requirements could affect the entire project.
You decide that changes in user requirements will be your top priority,
and you’ll focus on managing that risk first.
3
Risk Management:
4
Creating a Risk Mitigation Plan: After prioritizing the risks, you
develop a plan to deal with each one. For example, to manage the risk
of changing user requirements, you might decide to hold regular
meetings with the client to clarify requirements and confirm them
before moving to the next development phase. You might also set up a
change control process to handle any changes that do arise.
5
Monitoring and Adjusting: As the project progresses, you regularly
review the risks and your mitigation plans. If a new risk arises, such as
the client deciding to add a new feature late in the project, you adjust
your plan accordingly. You might allocate additional resources or
6
⇒Managing Schedule
Time is a major constraint for a software project. With
most software projects, the
delivery dates for the software product are already
committed to the customer at
the time the project commences. As a software project
manager you must perform
various tasks to balance time and deadlines. These
are:
– Identify the different deliverables that constitutes
the software product
– Define the activities that are required to produce
the deliverables
– Identify the interdependencies between activities
– Define the duration of each activity
– Assess the project network diagram
– Create a schedule management and control plan
The first task is to identify the different deliverables
that constitute the software
product. These deliverables also mark the completion
These examples show how risk management involves identifying, prioritizing, and
planning for potential risks in a software project. By being proactive in managing
risks, you can minimize their impact and keep the project on course.
adjust the project timeline to accommodate the new feature while
minimizing the impact on the overall project.
Unplanned Risks: Despite your best efforts, unplanned risks might still
occur. For instance, if a key developer unexpectedly leaves the project,
you quickly assess the situation and bring in another developer or
redistribute tasks among the existing team to keep the project on
track.
7
of the different phases
within a software project.
Next, define the activities that are required to produce
the deliverables. To do this,
you can break down the SDLC into phases, identify the
deliverables at the end of
each phase, and the activities required for creating the
deliverables.
Software Project Management (CS615)
75
© Copyright Virtual University of Pakistan
After the activities are defined, you identify the
interdependencies between them.
The purpose of this exercise is to organize the
activities and sequence them in the
form of a project schedule.
Next, you define the duration of each activity. The
inputs that you need for
scheduling are the resources required to complete
each activity. Then, assesses the
availability of these resources and the duration of
each similar activity in similar
past projects.
After estimating the time required for each activity to
complete, you assess the
project network diagram. This includes an assessment
of the duration estimates,
resource requirements, resource pool description, and
assumptions and constraints
for the software. You can use Mathematical tools to
determine a schedule for the
project. The project schedule defines the activities
within each phase, the team
members assigned to complete each activity, the
duration of each activity, and the
start and end dates for all of the activities.
Finally, create a schedule management and control
plan. The purpose of this plan
is to identify when changes occur, Implement the
changes to the project schedule,
and ensure that the changes are beneficial to the
software project. After the
changes are implemented, you might need to modify
the sections of the project
plan to ensure that the project is completed on time.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples related to managing the schedule in a
software project:
Identifying Deliverables:
1
Imagine you’re managing a project to create a website for a client. The
deliverables might include the homepage design, the contact form, the
user login system, and the final tested website. Each of these
deliverables marks the completion of a different phase in the project.
2
Defining Activities:
3
To produce the homepage design (a deliverable), the activities might
include gathering client requirements, creating wireframes, designing
4
From ChatGPT, designed with FancyGPT
These examples illustrate the key steps in managing a project schedule, ensuring
that all activities are planned, organized, and monitored to meet the project’s
deadlines.
the layout, and getting client approval. Each activity is a step needed to
create the homepage.
Identifying Interdependencies:
5
Some activities depend on the completion of others. For example, you
can’t start designing the layout until the client requirements are
gathered and wireframes are created. Identifying these dependencies
helps you plan the order in which activities should be carried out.
6
Defining Activity Duration:
7
You estimate how long each activity will take based on past
experience. For example, gathering client requirements might take 3
days, creating wireframes might take 2 days, and designing the layout
might take 5 days. You use this information to plan the overall
schedule.
8
Assessing the Project Network Diagram:
9
You create a visual diagram that shows all the activities, their
durations, and how they are connected. This helps you see the overall
flow of the project and ensure that everything is planned out logically.
10
Creating a Schedule Management and Control Plan:
11
After setting up the schedule, you create a plan for managing any
changes. For example, if the client requests a change in the homepage
design, you would update the schedule, adjust the deadlines if needed,
and make sure the team is aware of the new plan to ensure the project
stays on track.
12
cs611 lecture 9
cs611 lecture 9
cs611 lecture 9
cs611 lecture 9
cs611 lecture 9
LECTURE # 9
2. Software Development Fundamentals
Management Fundamentals
2.8 Managing Processes
⇒Managing the Project Plan
Preparing it project plan for a software project helps
you ensure that the specified
requirements and objectives are met successfully. It is
a collation of all planning
activities that have happened for a software project.
This includes activities such
as design and analysis, activity definition, risk
planning, and cost estimation. To
create the plan, you assess all planning activities,
organizational policies
regarding the creation of the project plan and
assumption and constraints for the
project. To implement the software project plan, you
require management skills,
such as leadership, communication, and problem
solving, along with the basic
knowledge about the software. You also need to
ensure that the senior
management bf the company has authorized work on
the software project.
Knowledge management techniques help you to make
informed decision
regarding the project plan.
After the project plan is executed, you manage the
changes to it in such a way that
the performance measurement baselines are not
impacted, To manage the project
plan effectively you monitor the project plan, periodic
performance status reports,
and requests for change. The primary tool that you can
use to control the changes
in the project plan is the change control mechanism:
This is a set of formal
procedures for changing the project plan
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
⇒Managing Quality
The quality of software development depends largely
on the understanding of
‘quality’ and quality management within the software
development team. In
software projects where each member has a different
understanding of quality and
his or her role in implementing it, the software
product is usually not of the
required quality.
Implementing software quality is often associated
with the software developer.
However, the role of the project manager is crucial in
implementing quality
awareness and a quality-producing work environment.
When a software project
starts missing deadlines and is in danger of exceeding
the budget, project
managers often lose the focus on quality and lay stress
on meeting deadlines.
However, the focus should be the other way round. A
focus on delivering a
Software Project Management (CS615)
77
© Copyright Virtual University of Pakistan
quality product, even at the cost of missing a deadline
or two ensures that your
customer comes back for repeat orders. On the other
hand, the price of nonconformance (PONC) on quality
standards simply translates into the loss of
goodwill and loss of business.
Modern quality management techniques compliment
project management and the
role of the project manager. Quality management
techniques ensure that a
software product conforms to the customer
requirements. Quality management
further ensures that errors are prevented in the first
round itself. Checks for errors
and effort for removing the errors consume much
more time, effort, and cost than
it takes to prevent the errors in the first place.
Therefore, maintaining quality in a
software project is the domain of all team members.
However, as the project manager you have a critical
role in maintaining quality.
You provide the resources required to complete the
activities of the software
project and ensure that quality levels are constantly
monitored.
You first identify the areas that must be monitored for
ensuring quality and the
quality measures to implement. Then, consider the
quality policy of the
organization, the scope of the project, the applicable
standards, and the software
product description. Next, use tools, such as a cost-
benefit analysis and a
flowchart, to identify the areas where you need to
monitor quality and the
subsequent actions for control. The output of this
exercise is the quality plan for
the software project. In addition, this exercise allows
you to create checklists to
help monitor quality.
As a software project manager, you also need to use a
quality control mechanism
so that the quality of the software product does not
suffer. The aim of the quality
control mechanism is to ensure compliance with
quality standards
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
ds.
2.9 Project Execution
You already learned in the beginning of the chapter
that a software project is
divided into different phases. This division is done on
the basis of the activities
performed in each phase. Similarly, project
management activities are also
arranged in phases. As a project manager, you perform
the activities that map to
each of these phases. The project management phases
can be broadly categorized
as follows;
– Project initiation
– Project closedown
– Project planning, control, and tracking
– Product implementation
• Project Initiation
Software Project Management (CS615)
78
© Copyright Virtual University of Pakistan
The tasks performed for project initiation are
mentioned below:
Requirement gathering: The first task is to gather the
customer requirements.
Customer requirements may be spoken or unspoken.
Therefore, the challenge for
the project manager is to elicit the requirements in
such a way that both the
spoken and unspoken customer needs and wants are
gathered. After collecting the
required information, you need to translate the
customer requirements into
technical specifications for the software project.
Scope determination: The scope of a software project
can be defined as the
combination of the software product arid services to
be delivered to the customer.
You carry out the scope determination exercise to
define the scope of the software
project. The scope determination exercise enables you
to refine and understand
the customer requirements. You can refine the scope
definition further by
breaking down each deliverable into smaller and more
manageable activities. The
scope determination exercise also helps you identify
the technology for creating
the software product.
Resource allocation: During project initiation, you
identify the resources required
and allocate them to the software project. The
resources identified may be people,
reusable software components, and hardware or
software tools. You allocate the
resource to the software project on the basis of the
activities defined in the scope
determination exercise. While allocating appropriate
resources for a software
project, you also need to calculate the cost of each
resource. The cost of a
resource is calculated according to the duration of the
resource in the software
project. Estimating the cost of resources also helps
you prepare a budget for the
software project.
Note:
Scope determination and resource allocation are
discussed in more detail in later
chapters.
Initial project plan: Another exercise that you carry
out during project initiation
is the creation of a rough project plan. This plan is a
draft version and carries only
the primitive project plan features. This project plan
carries the initial risk
analysis of the software project, the initial start and
end dates, the duration of the
activities in the project, and the sequencing of these
activities.
• Project Planning, Controlling, and Tracking
This activity of the project manager involves detailed
tasks. These tasks are
mentioned below:
Detailed project plan: After the scope for the software
project is determined and
the product design is ready, you prepare a detailed
project plan. To create a
detailed project plan, you define a detailed list of all
the elements that make up the
Software Project Management (CS615)
79
© Copyright Virtual University of Pakistan
project deliverables. Next, the deliverables are further
broken up to help In the
calculation of durations, start dates and end dates for
each activity mentioned in
the plan. Roles and responsibilities are assigned to
people with the appropriate
skills to complete each activity within specified time.
Control mechanism: These are set up to control the
impact of changes on the
software project. The control mechanism includes a
detailed risk management and
mitigation plan, a detailed quality plan, and quality
assurance activities. You also
implement a review and audit system for periodic
assessment and measurement of
the software project activities. The review and audit
system enables you to
evaluate the progress of the software project. It
ensures that all necessary data is
collected, deviation from the planned baselines is
checked, and corrective action
is taken at all checkpoints. In this way, the review and
audit system ensures
compliance with the organizational processes for
software development.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
From ChatGPT, designed with FancyGPT
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
cs611 lecture 10
cs611 lecture 10
cs611 lecture 10
cs611 lecture 10
cs611 lecture 10
LECTURE # 10
2. Software Development Fundamentals
Management Fundamentals
2.9 Project Execution
⇒Product Implementation
Product implementation activities involve defining
processes related to the
implementation of the software product at the
customer site. Some of the tasks
that you perform for product implementation are
mentioned below:
• Implementation plan creation: An implementation
plan defines the duration of
implementation and the hard and software perquisites
for implementing the
software product.
• Support plan creation: the project manager also
needs to create a support plan for
the customer. The support plan includes consideration
such as the postimplementation support activities
provided to the customer. Post-implementation
considerations include the number of support staff
available to the customer, their
names, contact numbers, and the duration of their
availability.
• Training plan creation: During product
implementation, you create a training
plan to train the customer on the software product.
The training plan includes
considerations such as the duration of training, the
prerequisites for training
people, and the number of people that can be trained
simultaneously.
• User acceptance plan: You also need to prepare a
user acceptance plan. The user
acceptance plan provides a detailed outline on how
and when the user acceptance
tests are performed. The primary focus of user
acceptance test is to ensure that the
final software product offers all the functionality and
performance that the
customer wanted. Therefore, the customer tests the
software product for issues
such as aesthetics, user friendless, and scalability.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
⇒Project Closedown
The final activity for a project manager is project
closedown. For most software
projects, the project closedown activities take place in
the post-implementation
phase. However, in some software projects, the
customer requests support
activities for a longer duration. In such cases, the
software project is considered
Software Project Management (CS615)
81
© Copyright Virtual University of Pakistan
closed immediately after implementation. The tasks
that you perform in project
closedown are mentioned below:
• Prepare closedown report: The project closedown
report contains the results of
the causal analysis that you do for the project. This
contains an analysis of what
went wrong, what went right, and what you could have
done better in the software
project.
• Identify learning: You also need to assess the entire
software project and the
results of the causal analysis to identify the key
learning points from the software
project. This helps you identify areas of improvement
for future projects. The
learning points can also be used by the organization as
considerations while
planning and executing the next software project.
• Identify reusable software components: Reusing
software components enables
you to lower the cost, time, and effort required to
complete the software project
successfully. After project closedown, you identify the
software components that
can be reused in future projects of similar nature. The
software components
prepared for a software project may be complete,
partially complete, or in the
design stage. These components or their designs can
be assessed for usability in
future projects.
• Create reference material: After the project is
complete, you can create white
papers and reference documents. This can be a
significant contribution to the
organization and the application area of the software
by creating an authoritative
knowledge base.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
2.10 Project Management Myths
In most cases, you learn the skills required to manage
a software project while on
the job. As a result, most software project managers
practice a lot of management
techniques that are of doubtful authenticity. Many
software project managers
learn about the so-called management skills and
concepts that are actually myths.
⇒Clarifying the Project Management Myths
The following list aims to clarify some of the more
prevalent myths in software
project management.
1. Combining the best resources with the worst
resources available for a
software project helps to complete the project
successfully.
2. A general statement of objectives is sufficient to
begin work on the software
project.
Software Project Management (CS615)
82
© Copyright Virtual University of Pakistan
3. Allocating extra resources to a late project allows it
to catch up with the
project schedule.
4. As software by itself is flexible, you can change the
requirements at any point
in the software project life cycle.
5. The management and the customer always impose
an unrealistic deadline for
the software project.
6. A software project that meets all the stated
objectives is a success.
7. Software maintenance is an easy task and requires
less effort than actual
software development.
8. Identifying and reporting errors during the reviews
makes the software
developer unhappy and spoils the work environment.
9. Web-enabling an application or adopting
client/server; architecture helps to
run software projects smoothly.
Myth: Combining the best resources with the worst
resources available for a project
helps to complete the project successfully.
In software projects, combining the best resources
with the worst resources drags
down the efficiency and productivity of good
resources. This invariably decreases
the speed of the software project, and the project
ends much after the specified
deadline.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Myth: A general statement of objective is sufficient to
begin work on the software
project.
Many software project managers and customers
believe that a general statement
of objectives gives a reasonable idea of the
requirements. However, a formal and
detailed description of the customer requirements is
needed before the project
commences. The software project manager must
ensure that all information
regarding the software project, such as the functions,
performance, interfaces,
constraints, assumptions and validation criteria is
gathered.
Myth: Allocating extra resources to a late project
allows it to catch up with the
project schedule.
A software project is not a mechanical process such as,
say; digging an artificial
lake. In case of creating an artificial lake, adding more
people to the job can help
dig a larger area in the same time. However, in a
software project, adding, more
people actually increases the time required to finish
the project. This happens
because a new person joining the project requires
time to understand the
Software Project Management (CS615)
83
© Copyright Virtual University of Pakistan
requirements of the client, software design, and
standards. Moreover, the existing
people in the project need to devote time and effort to
train the new people on the
software project. Therefore, allocating additional
resources to a risky situation
increases the risk to the software project.
Myth: As software by itself is flexible, changes in the
requirements can be made at
any point in the software project life cycle.
Requests for changes are common with all projects.
However, the timing of the
change for requests is critical. This is because an
untimely change adversely,
impacts the cost of the software project. For example,
a change request during the
requirements gathering stage has a relatively low
impact on costs. On the other
hand, a change request during, the software
construction stage can be extremely
expensive to incorporate. The software project
manager must decide with the
customer upon a set of objectives that must be
achieved at the end of the project.
In addition, the project manager and the customer
must decide on a specific
phase, beyond which only critical change requests are
accepted.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for the myths discussed:
Myth: A General Statement of Objectives Is Sufficient to Begin Work on
the Software Project:
1
If a project starts with just a broad goal like create a management
system, it can lead to confusion because the team won’t have specific
details on what the system should do. For example, without knowing
exactly what features are required, the team might build something
that doesn’t meet the client’s needs. A detailed description of the
requirements, including the system's functions, performance
expectations, user interface design, constraints, and testing criteria, is
necessary to avoid these issues.
2
Myth: Allocating Extra Resources to a Late Project Allows It to Catch Up
with the Project Schedule:
3
Imagine a project is behind schedule. Adding more developers to
speed things up seems logical, but in software projects, this often
backfires. For example, new developers need time to understand the
project, which slows down the existing team because they have to
train and explain things to the newcomers. This extra time can make
the project fall even further behind schedule instead of catching up.
4
Myth: As Software by Itself Is Flexible, Changes in the Requirements Can
Be Made at Any Point in the Software Project Life Cycle:
5
While software can be adjusted, changing requirements late in the
project can cause significant problems. For example, if the client
decides to change a feature during the testing phase, it could require
going back to the design and development stages, which increases
costs and delays the project. It’s important to agree on the main
objectives early on and limit changes to critical ones after a certain
point to avoid these issues.
6
Myth: The management and customer always impose
an unrealistic deadline for the
software project.
The management and customer usually believe that
project managers prepare cost
effort, and time estimates inclusive of buffers. The
management and customers
rationalize that if they can cut the buffers by imposing
a tight deadline or a low
budget on a project, the project manager would still
complete the project on time.
Myth: A software project that meets all the stated
objectives is a success.
Customer requirements for a software project are
always in two forms, spoken
and unspoken. Usually, the objectives formed from the
customer requirements are
based on the spoken requirements. The software
project manager must to be
aware of the unspoken requirements and ensure that
these are met.
Myth: Software maintenance is an easy task and
requires less effort than actual
software development.
If change requests are made toward the end of the
project, then maintenance
activities can contribute to large costs and effort
overruns. Moreover, contrary to
the popular view, implementing changes in the
software product in the
maintenance stage is a painstaking task.
Myth: Identifying and reporting errors during the
reviews makes the software
developer unhappy and spoil the work environment.
Software Project Management (CS615)
84
© Copyright Virtual University of Pakistan
If a developer makes an error, it is important to point it
out so that the error is
fixed in time. A project manager must communicate
assertively so that the team
does not lose focus on quality. In addition, letting an
error pass may have ripple
effects on the quality of the software product,
frustrating the entire team.
Myth: Web-enabling an application or adopting client
/ server architecture helps to
run software projects smoothly.
No single technology platform, language, or
architecture is a one-point solution
for all software projects. All approaches to software
development have unique
merits and demerits. For example, if a marketing firm
needs to make information
accessible to people at remote locations, then a, Web-
based application is a good
option. However, mainframes are still preferred for
applications created for the
banking industry.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for the additional project management
myths discussed:
Myth: The Management and Customer Always Impose an Unrealistic
Deadline for the Software Project:
1
Some project managers believe that management and clients
deliberately set tight deadlines, assuming that project estimates
include extra time. However, if the project is given an overly tight
deadline, it can lead to stress and mistakes, causing the project to miss
the deadline entirely. For example, a project estimated to take six
months should not be forced into a four-month schedule, as this could
lead to rushed work and poor quality.
2
Myth: A Software Project That Meets All the Stated Objectives Is a
Success:
3
Even if a project meets all the stated objectives, it may still fail if it
doesn't consider the unspoken needs of the customer. For example, a
project might deliver all the requested features, but if the software is
difficult for the client’s team to use or doesn’t integrate well with their
existing systems, the client may not view the project as a success.
4
Myth: Software Maintenance Is an Easy Task and Requires Less Effort Than
Actual Software Development:
5
Maintaining software, especially when changes are requested late in
the project, can be very challenging. For instance, fixing a bug or
adding a new feature after the software has been deployed can
require significant effort. It may involve revisiting old code, which can
be complex and time-consuming, often leading to more work than the
original development.
6
Myth: Identifying and Reporting Errors During the Reviews Makes the
Software Developer Unhappy and Spoils the Work Environment:
7
Some believe that pointing out mistakes during code reviews will
upset developers, but in reality, addressing errors early helps the
project overall. For example, if a bug is found during a review and fixed
8
From ChatGPT, designed with FancyGPT
immediately, it prevents bigger issues later. Developers generally
appreciate feedback that helps improve the quality of the software.
Myth: Web-Enabling an Application or Adopting Client/Server
Architecture Helps to Run Software Projects Smoothly:
9
No single technology is a perfect solution for all projects. For example,
a web-based application might be ideal for a marketing firm needing to
reach remote clients, but a banking system might still rely on
mainframes due to their reliability and security. The choice of
technology should be based on the specific needs of the project, not on
the assumption that one approach is superior in all cases.
10
cs611 lecture 11
cs611 lecture 11
cs611 lecture 11
cs611 lecture 11
cs611 lecture 11
LECTURE # 11
2. Software Development Fundamentals
Management Fundamentals
2.11 Problems in Software Projects
Software projects are similar to traditional projects in
the sense that the same
types of problems affect them both. However, the
difference in managing these
problems lies in the approach that you take to the
specific issue. For example, a
technology-related problem for a software project
might be the low degree of
reuse of the software components created. However,
for a car-manufacturing firm,
there is no chance of reusing a component such as a
front axle.
You can classify the problems that affect software
projects into the following four
categories:
• People-related problems
• Process-related problems
• Product-related problems
• Technology-related problems
⇒People-related problems
People-related problems in a software project are:
• Low motivation: As the project manager it is your
responsibility to ensure an
optimal level of motivation within the team. Lengthy
projects, complex
activities1 and scarce resources often decrease the
motivation level in a
software development team. However, you need to
lead in such a way that the
team is constantly motivated to do a good job.
• Problem employees: Some members of any team
always create a problem. For
example, an employee may carry a 'holier-than thou'
attitude. Problem
employees raise the chances of conflicts and
differences of opinions within
the development team. They lower the efficiency and
productivity of other
team members and make it difficult to meet the
objectives of the software
project within the specified time. You need to ensure
that employees are not
allowed to create a pr9blem for the rest of the team.
Even if the employee is
very competent, you need to assess the
indispensability of such emp1oyees for
the project. Moreover, you refrain from playing
favorite with certain
employees and treat everyone with the same measure.
Software Project Management (CS615)
86
© Copyright Virtual University of Pakistan
• Unproductive work environment: The work
environment is a major factor
that affects the productivity of the development team.
For example, a noisy or
cramped workspace decreases the motivation levels
of the employees.
Similarly, unfriendly organizational policies also lower
the motivation of the
team members. As the project manager, you need to
ensure that the team is
protected from harmful external make the workspace
friendly to work in.
• Inefficient project management style: the project
manager needs to lead by
example. The team members absorb the work culture,
work ethic, and attitude
of the project manager and implement it in their work
style. If you display a
lack of leadership qualities and weak ideals, the
motivation levels decrease
across software team.
• Lack of stakeholder interest: For a software project
to be a success, each
stakeholder needs to take an active interest in the
progress of the project. Al1
stakeholders, including the customer, the
management, and the software
development team, need to commit to the success of
the project. For example,
if the software development team is not committed to
the project, then their
contribution may not be to the optimum level.
• Ineffective project sponsorship by management:
Lack of commitment of the
senior management to a software project lowers the
motivation level of the
team members. If the management commits to the
progress of a software
project, and takes a keen interest in the progress, the
confidence of the
software development team will increase.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
⇒Process- related Problems
The process-related problems in a software project
are:
• Unrealistic schedule: Assigning unrealistic deadlines
for a software project is
a primary reason why software projects are delayed.
Often, the marketing or
the management team commit a delivery date to the
customer in the hope of
getting the project contract. However, these dates are
not decided in
consultation with the development team. The
rationale for assigning the
deadlines is unfounded. You need to ensure that the
deadlines match the
ability of the software team to deliver the software
product. As it is not always
possible to shift deadlines committed to the customer,
you also need to plan
the resource allocation and project execution such
that the deadlines are met.
• Insufficient identification: Unidentified, partially
identified, and unplanned
risks pose a threat to the success of a software project.
You need to intensively
identify risks and evolve a risk management plan such
that the project is
completed successfully, on time.
Software Project Management (CS615)
87
© Copyright Virtual University of Pakistan
• Unsuitable life cycle model selection: Different
software projects require
different SDLC models. For example, a project to
create banking .software is
different from software for a satellite where the
concept needs to be
researched. For the former example, the Waterfall
model is more applicable.
For the latter example, the Spiral model is more
suitable. Selecting the correct
life cycle model is critical to the success of a software
project.
• Abandoning quality under pressure of deadlines:
Where a software project
faces a shortage of resources, time, and funds, project
managers often push
away quality concerns and focus on meeting deadlines
and staying within the
budget. Abandoning quality has a ripple effect that
actually adds even more
time, effort, and costs to the software projects. The
cost of doing things right
the first time is lower than the cost of inspection
during product delivery.
Also, the cost of inspection is lower than the cost of
debugging software after
the customer spots errors.
• Unstructured and hurried software development:
When software project
progresses with more focus on meeting deadlines and
staying within a budget,
the approach to the software development is
unstructured and hurried. You
should plan the software project such that all the
activities are identified,
sequenced properly, and roles and responsibilities
assigned to the various
people on the project. You should also maintain the
focus of the development
team toward a structured approach to software
development.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
⇒Product-related Problems
There are many product-related problems that you
can face in a software project.
These are:
• Product scope changed toward the end of the
project life cycle: The project
time, effort, and cost estimates for a software project
can go up dramatically
when the customer changes the scope 9f the product
toward the end of the
project. In such situations, you should verify the
criticality of the scope
change. However, if the change request is not critical,
you should retain the
original scope with a proper explanation to the
customer. If the change request
is critical, you should explain the situation to the
customer. Usually, a
customer gives more time and funds to a software
project if proper
justification is provided. In some cases, the scope
change may also be because
of a change in government policy. It may become
mandatory for you to
include such change requests.
• Research-oriented software development: Many
software projects digress
from the original scope because of the nature of the
From ChatGPT, designed with FancyGPT
software product or
technology used. When a totally new kind of software
is developed or a new
Software Project Management (CS615)
88
© Copyright Virtual University of Pakistan
technology is used, the software development team
can lose focus of the
objectives by getting into a research-oriented
approach. It becomes your
responsibility as the project manager to maintain the
focus on the objective.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
cs611 lecture 12
cs611 lecture 12
cs611 lecture 12
cs611 lecture 12
cs611 lecture 12
LECTURE # 12
2. Software Development Fundamentals
Management Fundamentals
2.10 Problems in Software Projects
⇒Product-related Problems
• III-defined scope: You need to define the scope of the
software product in the
initial stages of a software project. The scope of a software
product is defined
in terms of the functionality requirements, the performance
requirements, the
assumptions, and the constraints on the product. If the product
scope is ill
defined, the software project does not have a proper focus on
the features
required in the product.
• Fuzzy users: You also need to clarify the background
characteristics of the
users of the final software product at the beginning of the
software project. If
the description of the users is fuzzy, then the software analysis,
design, and
development stages may reflect the ambiguity with regard to
the functions and
performance of the final software product.
⇒Technology-related problems
You may also encounter technology-related problems in a
software project. These
include:
• Overestimated savings from reusable components and new
tools and
methods: You can reuse software components in a software
project to save
time, effort, and cost of creating the component again. It is
important that you
assess the savings that the use of such a software component
provides to a
software project. This expectation of both the customer and the
management
might not be met, if you overestimate the savings from reusing
software
components.
15/08/2024, 20:28 FancyGPT - cs611 lecture 12
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/6
• Switching tools in mid way: The current technology
environment offers new
tools and technologies for software development at a fast rate.
All these tools
and technologies offer the benefits of a shorter development
cycle, lower
costs, and under better functionality than earlier tools. You
should identify
and commit to the tool and technology for the software project
before the
project commences. Switching the tool or technology used
during the software
development stage causes the developers to relearn a new tool.
In addition,
Software Project Management (CS615)
90
© Copyright Virtual University of Pakistan
there is a chance that it might not be possible to integrate the
software already
developed with the new tool.
• Integrating different software products in cross-platform
implementation:
The modem software environment requires that all software
should integrate
with each other. However, many software projects do not plan
for integration
with existing software in the same or different domain. This
limits the
applicationofsu9h software and reduces the shelf life
drastically. They key to
the success of a software product is interoperability. The
software project
manager needs to determine the scope for the software
product such that is
can be integrated easily with existing software.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Certainly! Here are straightforward examples for each of the topics mentioned:
Product-related Problems
Ill-defined scope: Imagine a team is tasked with creating a new messaging app. If they
don’t clearly define what features the app should have, like text messaging, voice calls,
1
15/08/2024, 20:28 FancyGPT - cs611 lecture 12
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/6
⇒Summary
The phases in a software project can be organized into a project
life cycle. Some
standard life cycle models are the Waterfall model, the
Prototyping model, the
Incremental model, and the Spiral model.
Organizational policies and attitudes influence the progress of
a software project
and the tasks of a software project manager. For smooth
progress of software,
project, the organization should be proactive in adopting
changes in technology
and market environments, focused on developing software, and
accept software
projects that match the organizational capability baseline. In
addition, the
organization should implement employee-friendly human
resource policies and
good knowledge management system.
The role of a software project manager includes managing
resources, cost, risk,
schedules, project plan, and quality. Software project
management activities can
Technology-related Problems
and file sharing, the team might start adding unnecessary features like video calls or
games. This can lead to confusion and delay in the project because there’s no clear
understanding of what the app should do.
Fuzzy users: Suppose a company wants to develop a software tool for teachers. If they
don’t specify what kind of teachers (like high school, college, or elementary) or what
subjects they teach, the software might end up with features that aren’t useful for the
intended users. For example, a high school math teacher might need different features
compared to an elementary school art teacher.
2
Overestimated savings from reusable components and new tools: A team decides to
use a pre-built login system from another project to save time. They expect this to
reduce the development time by 50%. However, after integrating it, they realize it
doesn’t fully meet the current project’s requirements and needs significant
modifications, resulting in less savings than anticipated.
1
Switching tools midway: During a project, the team decides to switch from one
programming language to another because the new language promises faster
performance. However, the team spends a lot of time learning the new language, and
some of the initial code has to be rewritten. This ends up causing delays and increased
costs.
2
Integrating different software products in cross-platform implementation: A company
develops a new scheduling tool but doesn’t ensure it can connect with existing calendar
apps like Google Calendar or Outlook. As a result, users find it inconvenient to use the
new tool because it doesn’t integrate with the software they already use, reducing its
usefulness.
3
15/08/2024, 20:28 FancyGPT - cs611 lecture 12
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/6
be divided into phases. The main phases and the associated
activities are initiating
the project, planning, controlling, and tracking, implementing
the product, and
project closedown.
Initiating the project includes gathering requirements,
determining the scope,
allocating resources, and creating an initial project plan.
Planning, controlling,
and tracking involve creating a detailed project plan,
constructing software, and
implementing a control mechanism. Implementing the product
comprises
implementation plan, support plan, training plan, and user
acceptance plan.
Project closedown includes preparing closedown report,
identifying learning for
future projects, and identifying reusable software components
for future software
projects.
Problems- affecting software projects can be classified into
people-related,
project-related, product-related, and technology-related.
Various myths regarding software project management are
adding more people to
a late project can help to finish the project on time, combining
the best resources
Software Project Management (CS615)
91
© Copyright Virtual University of Pakistan
with the worst resources results in optimal resource allocation,
and changes to the
scope of the software project and the software product can be
made at any-time in
the SDLC.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are beginner-level examples for the key points from the lecture on software project
management:
Project Life Cycle Models
Project Life Cycle Models
Project Life Cycle Models
Project Life Cycle Models
Project Life Cycle Models
15/08/2024, 20:28 FancyGPT - cs611 lecture 12
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/6
Organizational Policies and Attitudes
Organizational Policies and Attitudes
Organizational Policies and Attitudes
Organizational Policies and Attitudes
Organizational Policies and Attitudes
Phases of Software Project Management
Phases of Software Project Management
Phases of Software Project Management
Phases of Software Project Management
Phases of Software Project Management
Problems in Software Projects
Problems in Software Projects
Problems in Software Projects
Problems in Software Projects
Problems in Software Projects
Waterfall Model: A team follows a linear process where they first gather all the
requirements, then design the software, write the code, test it, and finally deploy it.
Each phase must be completed before the next one begins.
Prototyping Model: Developers create a simple version of the software to demonstrate
basic functionality. The prototype is then shown to stakeholders for feedback, which is
used to refine the requirements and create a better final product.
Incremental Model: A software team builds a messaging app by first releasing a basic
version that only allows text messages. Over the next few months, they incrementally
add features like voice messaging, video calls, and group chats.
Spiral Model: A team develops a customer relationship management (CRM) system by
going through multiple iterations of gathering requirements, assessing risks, developing
the product, and getting feedback, allowing for adjustments at each stage.
Proactive in Adopting Changes: A company regularly updates its software
development tools to stay competitive, ensuring its developers are using the latest
technology to produce high-quality software efficiently.
Accept Software Projects Matching Capability: An organization declines a project that
requires expertise in machine learning because its team specializes in mobile app
development, ensuring they don't overextend their capabilities.
Employee-friendly HR Policies: A company offers flexible working hours and remote
work options to its developers, leading to higher job satisfaction and better retention
rates.
Knowledge Management System: A firm maintains a comprehensive database where
developers can access previous project documents, reducing the time needed to
resolve issues by leveraging past solutions.
Initiating the Project: A project manager gathers all the requirements for a new e-
commerce website, determines the features needed, allocates a team of developers,
and drafts an initial project timeline.
Planning, Controlling, and Tracking: The manager creates a detailed project plan for
the website, including timelines for each feature. They also set up a system to monitor
progress and ensure the project stays on track.
Implementing the Product: The team follows an implementation plan, providing
support and training to the client’s staff. They also ensure the product meets the client's
acceptance criteria.
Project Closedown: Once the e-commerce website is live, the team prepares a report
detailing the project's outcomes, lessons learned, and identifies code or modules that
can be reused in future projects.
People-related Problems: A team struggles because one developer is unfamiliar with
the chosen programming language, causing delays.
Project-related Problems: The team finds out that the project was scheduled to finish
within six months, but the required resources were not available until the third month,
causing timeline issues.
Product-related Problems: The software product's features were not clearly defined
initially, leading to disagreements about what functionality to implement.
Technology-related Problems: The team decides to use a new development framework
halfway through the project. However, this framework isn’t compatible with existing
components, causing integration issues.
15/08/2024, 20:28 FancyGPT - cs611 lecture 12
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/6
From ChatGPT, designed with FancyGPT
Myths in Software Project Management
Myths in Software Project Management
Myths in Software Project Management
Myths in Software Project Management
Myths in Software Project Management
Adding More People to a Late Project: A project that is behind schedule gets five
additional developers. However, the extra time needed to train them on the project
specifics actually delays the project further.
Combining Best and Worst Resources: A project manager pairs the most experienced
developer with a novice, hoping the former will mentor the latter. Instead, the
experienced developer spends most of their time teaching, slowing down the overall
progress.
Changes to Scope at Any Time: A client requests significant new features late in the
development process of a web application, leading to increased costs and delayed
delivery as the team has to rework existing modules.
15/08/2024, 20:28 FancyGPT - cs611 lecture 12
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/6
cs611 lecture 13
cs611 lecture 13
cs611 lecture 13
cs611 lecture 13
cs611 lecture 13
LECTURE # 13
2. Software Development Fundamentals
Technical Fundamentals
2.11 Requirements Management
⇒Preview
Software requirements engineering is a process of
discovery, refinement,
modeling and specification. The system requirements
and role allocated to
software-initially established by the system engineer-
are refined in detail.
Models of the required data information and control
flow and operational
behavior are created. Alternative solutions are
analyzed and a complete
analysis model is created.
Requirements engineering is the systematic use of
proven principles,
techniques, languages, and tools for the cost effective
analysis,
documentation, and on-going evolution of user needs
and the specification
of the external behavior of a system to satisfy those
user needs. Notice that
like all engineering disciplines, requirements
engineering is not conducted
in a sporadic random or otherwise haphazard fashion,
but instead is the
systematic use of proven approaches.
Both the software engineer and customer take an
active role in software
requirements engineering-a set of activities that is
often referred to as
analysis. The customer attempts to reformulate a
sometimes nebulous
system-level description of data, function and
behavior into concrete
detail. The developer acts as interrogator, consultant,
problem solver and
negotiator.
The overall role of Software in a larger system is
identified during system
engineering. However, it's necessary to take a harder
look at software's
role-to understand the specific requirements that
must be achieved to build
high-quality software. That's the job of software
requirements analysis. To
perform the job properly, you should follow a set of
underlying concepts
and principles. Generally, a software engineer
performs requirements
analysis However, for complex business applications a
'system analyst’
trained in the business aspects of the application
domain may perform the
task. If you don't analyze, it's highly likely that you'll
build a very elegant
software solution that solves the wrong problem. The
result is wasted time
and money, personal frustration and unhappy
customers.
Software Project Management (CS615)
93
© Copyright Virtual University of Pakistan
Data, functional, and behavioral requirements are
identified by eliciting
information from the customer. Requirements are
refined and analyzed to
assess their clarity, completeness, and consistency.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
⇒Requirements analysis
Requirements analysis is a software engineering task
that bridges the gap
between system level requirements engineering and
software design
(Figure 1). Requirements engineering activities result
in the specification
of software's operational characteristics (function,
data; and behavior),
indicate software's interface with other system
elements, and establish
constraints that software must meet. Requirements
analysis allows the
software engineer (sometimes called analyst in this.
role) to refine the
software allocation and build models of the data,
functional, and
behavioral domains that will be treated by software.
Requirements
analysis provides the software designer with a
representation of
information, function, and behavior that can be
translated to data,
architectural, interface, and component-level designs.
Finally, the
requirements specification provides the developer
and the customer with
the means to assess quality once software is built.
Figure 1: a bridge between system engineering and
software design
Software requirements analysis may be divided into
five areas of effort:
(1) Problem recognition,
(2) Evaluation and synthesis,
(3) Modeling
(4) Specification, and
(5) Review
System
Engineerin
g
Software
Design
Software
Requirement
s
Analysis
Software Project Management (CS615)
94
© Copyright Virtual University of Pakistan
Initially, the analyst studies the System Specification
(if one exists) and
the Software Project Plan. It is important to
understand software in a
system context and to review the software scope that
was used to generate
planning estimates. Next, communication for analysis
must be established
so that problem recognition is ensured. The goal is
recognition of the basic
problem elements as perceived by the customer/users.
ƒ Problem evaluation
ƒ Solution synthesis
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples related to the concepts in the given
prompt, ensuring coherence for lecture delivery:
1.
1.
1.
1.
1. Requirements Analysis as a Bridge Between System
Requirements Analysis as a Bridge Between System
Requirements Analysis as a Bridge Between System
Requirements Analysis as a Bridge Between System
Requirements Analysis as a Bridge Between System
Engineering and Software Design
Engineering and Software Design
Engineering and Software Design
Engineering and Software Design
Engineering and Software Design
Imagine you're working on a mobile banking app. At the system engineering level,
the overall system requirements, such as secure transactions, are defined.
Requirements analysis is the bridge that takes these high-level system
requirements and translates them into more detailed requirements specific to the
software. For instance, it details how secure transactions will be implemented in
the app, including encryption protocols, user authentication methods, and data
validation processes.
2.
2.
2.
2.
2. Software Operational Characteristics: Function,
Software Operational Characteristics: Function,
Software Operational Characteristics: Function,
Software Operational Characteristics: Function,
Software Operational Characteristics: Function,
Data, and Behavior
Data, and Behavior
Data, and Behavior
Data, and Behavior
Data, and Behavior
For the mobile banking app, the operational characteristics of the software
include:
3.
3.
3.
3.
3. Software Interface with Other System Elements
Software Interface with Other System Elements
Software Interface with Other System Elements
Software Interface with Other System Elements
Software Interface with Other System Elements
The mobile banking app needs to interface with various system elements, such as
the bank's core database, external payment gateways, and authentication services
like biometric verification (e.g., fingerprint or face ID). The requirements analysis
will define these interfaces, specifying how the app should communicate with
these systems, ensuring seamless data exchange and security.
4.
4.
4.
4.
4. Constraints that Software Must Meet
Constraints that Software Must Meet
Constraints that Software Must Meet
Constraints that Software Must Meet
Constraints that Software Must Meet
The app must meet specific constraints, such as ensuring transactions are
completed within 3 seconds, supporting multiple languages, and complying with
security regulations like GDPR. These constraints are identified during
requirements analysis to ensure the software adheres to necessary standards and
performance metrics.
5.
5.
5.
5.
5. Building Models of Data, Functional, and Behavioral
Building Models of Data, Functional, and Behavioral
Building Models of Data, Functional, and Behavioral
Building Models of Data, Functional, and Behavioral
Building Models of Data, Functional, and Behavioral
Domains
Domains
Domains
Domains
Domains
During requirements analysis, models are created to represent:
Function: Enabling users to view account balances, transfer funds, and pay
bills.
Data: Managing customer data, transaction history, and balance
information.
Behavior: Ensuring that the app responds appropriately to user actions,
such as sending confirmation messages after a successful transfer.
6.
6.
6.
6.
6. Representation of Information, Function, and
Representation of Information, Function, and
Representation of Information, Function, and
Representation of Information, Function, and
Representation of Information, Function, and
Behavior for Design
Behavior for Design
Behavior for Design
Behavior for Design
Behavior for Design
The requirements analysis results in detailed representations of how the app will
handle information (e.g., storing and retrieving transaction data), perform
functions (e.g., processing payments), and behave (e.g., responding to failed login
attempts). These representations are then passed on to the software designers to
create the architectural and component-level designs, ensuring that the app is
built according to the requirements.
7.
7.
7.
7.
7. Assessing Quality Based on Requirements
Assessing Quality Based on Requirements
Assessing Quality Based on Requirements
Assessing Quality Based on Requirements
Assessing Quality Based on Requirements
Specification
Specification
Specification
Specification
Specification
Once the app is built, the requirements specification serves as a reference to
assess its quality. For example, if the specification states that the app should
process transactions within 3 seconds, the built software is tested to verify that it
meets this performance requirement. This ensures that the app functions as
expected and satisfies the user's needs.
8.
8.
8.
8.
8. Five Areas of Effort in Requirements Analysis
Five Areas of Effort in Requirements Analysis
Five Areas of Effort in Requirements Analysis
Five Areas of Effort in Requirements Analysis
Five Areas of Effort in Requirements Analysis
Data Domain: A model showing how user information, account details, and
transactions are stored and managed within the app.
Functional Domain: A flowchart outlining the steps users take to perform
tasks like transferring money or checking their balance.
Behavioral Domain: A state diagram illustrating how the app behaves in
response to different user interactions, such as showing error messages
when login attempts fail.
Problem Recognition: The analyst identifies the key problem the mobile
banking app needs to solve, such as providing secure and convenient
banking access to users.
Evaluation and Synthesis: The analyst evaluates possible solutions, such as
different security measures (e.g., multi-factor authentication) and
synthesizes them into a coherent approach to address the identified
problem.
Modeling: The analyst creates models to represent how users interact with
the app, how data is processed, and how different components of the app
communicate with each other.
Specification: The analyst writes detailed specifications for each
requirement, such as the encryption standards to be used for securing
9.
9.
9.
9.
9. System Specification and Software Project Plan
System Specification and Software Project Plan
System Specification and Software Project Plan
System Specification and Software Project Plan
System Specification and Software Project Plan
Before starting requirements analysis, the analyst studies the system
specification, which might detail high-level objectives like support mobile
transactions and ensure data privacy. The software project plan outlines the
scope, timeline, and resources for developing the mobile banking app.
Understanding these documents is crucial for the analyst to ensure that the app is
designed to meet system-level goals within the project's constraints.
10.
10.
10.
10.
10. Communication for Analysis and Problem
Communication for Analysis and Problem
Communication for Analysis and Problem
Communication for Analysis and Problem
Communication for Analysis and Problem
Recognition
Recognition
Recognition
Recognition
Recognition
Effective communication with stakeholders is critical for recognizing the core
problem the app is meant to solve. For instance, through discussions with the
bank's management, the analyst might discover that the primary concern is
ensuring that customers can access their accounts quickly and securely from
anywhere. This problem recognition helps guide the rest of the requirements
analysis process.
11.
11.
11.
11.
11. Problem Evaluation and Solution Synthesis
Problem Evaluation and Solution Synthesis
Problem Evaluation and Solution Synthesis
Problem Evaluation and Solution Synthesis
Problem Evaluation and Solution Synthesis
The analyst evaluates different solutions to address the identified problem. For
instance, for securing transactions, the analyst might consider encryption
techniques, tokenization, or biometric verification. After evaluating the pros and
cons of each, the analyst synthesizes the best approach into the final
requirements.
These examples provide a practical and structured understanding of requirements
analysis, fitting into the larger context of the lecture on software development
fundamentals.
transactions or the specific error messages that should be displayed when a
user enters incorrect login details.
Review: The analyst reviews the requirements with the customer and
development team to ensure that they are complete, accurate, and align
with the overall system goals. Any discrepancies or ambiguities are resolved
during this review phase.
rs.
ƒ Problem evaluation
Problem evaluation and solution synthesis is the next
major area of
effort for analysis. The analyst must define all
externally observable
data objects, evaluate the flow and content of
information, define and
elaborate all software functions, understand software
behavior in the
context of events that affect the system, establish
system interface
characteristics, and uncover additional design
constraints. Each of
these tasks serves to describe the problem so that an
overall approach
or solution may be synthesized. For example, an
inventory control
system is required for a major supplier of auto parts.
The analyst finds
that problems with the current manual system
include:
(1) Inability to obtain the status of a component
rapidly
(2) Two or three-day turnaround to update a card file
(3) Multiple reorders to the same vendor because
there is no way to
associate vendors with components, and so forth.
Once problems have been identified, the analyst
determines what
information is to be produced by the new system and
what data will be
provided to the system. For instance, is the customer
desires a daily
report that indicates what parts have been taken from
inventory and
how many similar parts remain. The customer
indicates that inventory
clerks will log the identification number of each part as
it leaves the
inventory area.
ƒ Solution synthesis
Upon evaluating current problems and desired
information (input and
output), the analyst begins to synthesize one or more
solutions. To
begin, the data objects processing functions and
behavior of the system
are defined in detail. Once this information has been
established, basic
architectures for implementation are considered.
A client/server approach would seem to be
appropriate, but does the
software to support this architecture fall within the
scope outlined in
the Software Plan? A database management system
would seem to be
required, but is user/customer's need for associativity
justified? The
process of evaluation and synthesis continues until
both analyst and
Software Project Management (CS615)
95
© Copyright Virtual University of Pakistan
customer feel confident that software can be
adequately specified for
subsequent development steps.
Throughout evaluation and solution synthesis, the
analyst's primary
focus is on what, not how. What data does the
system produce and
consume what functions the system must perform.
What behaviors do
the system exhibit, what interfaces, are defined and
what constraints
apply?
During the evaluation and solution synthesis activity,
the analyst
creates models of the system in an effort to better
understand data and
control flow, functional processing, operational
behavior, and
information content. The model serves as a foundation
for software
design and as the basis for the creation of
specifications for the
Software. The customer may be unsure of precisely
what is required.
The developer may be unsure that a specific approach
will properly
accomplish function and performance. For these, and
many other
reasons, an alternative approach to requirements
analysis, called
Prototyping, may be conducted.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples related to the concepts provided in the
prompt, maintaining coherence for lecture delivery:
1.
1.
1.
1.
1. Problem Evaluation
Problem Evaluation
Problem Evaluation
Problem Evaluation
Problem Evaluation
Problem evaluation involves identifying and understanding issues within the
current system that need to be resolved. For example, in an inventory control
system for an auto parts supplier, the analyst may discover the following
problems:
By evaluating these problems, the analyst can clearly define what needs to be
fixed in the new system.
2.
2.
2.
2.
2. Solution Synthesis
Solution Synthesis
Solution Synthesis
Solution Synthesis
Solution Synthesis
Solution synthesis involves creating solutions to address the problems identified
during the evaluation. Once the problems are understood, the analyst can begin
designing the new system. For example:
Inability to Obtain Component Status Quickly: The current system may
not allow users to quickly find out how many parts are available in the
inventory.
Slow Update Times: Updating records might take several days, causing
delays in reordering parts.
Multiple Reorders to the Same Vendor: The system may lack the ability to
associate specific vendors with components, leading to redundant orders to
the same vendor.
Data Objects and Processing Functions: The new inventory control system
could include data objects like Parts and Vendors. The system would
perform functions such as checking part availability, placing orders, and
tracking shipments.
Behavior of the System: The system might be designed to automatically
update inventory records whenever parts are taken from or added to the
inventory. This ensures that data remains accurate in real time.
3.
3.
3.
3.
3. Evaluation and Solution Synthesis Process
Evaluation and Solution Synthesis Process
Evaluation and Solution Synthesis Process
Evaluation and Solution Synthesis Process
Evaluation and Solution Synthesis Process
During this process, the analyst continually assesses whether the proposed
solutions meet the customer’s needs and fit within the project scope. For example:
4.
4.
4.
4.
4. Focus on What Instead of How
Focus on What Instead of How
Focus on What Instead of How
Focus on What Instead of How
Focus on What Instead of How
During evaluation and synthesis, the analyst focuses on understanding what the
system needs to do, not how it will be built. For example:
The details of how these functions will be implemented, such as programming
languages or specific technologies, will be handled during the design phase.
5.
5.
5.
5.
5. Modeling the System
Modeling the System
Modeling the System
Modeling the System
Modeling the System
During this phase, the analyst creates models to represent different aspects of the
system:
Architectural Considerations: The analyst might decide that a client/server
architecture is appropriate, where the inventory system is accessed via
client applications that communicate with a central server. This architecture
supports centralized data management.
Database Management: The analyst might determine that a database
management system (DBMS) is necessary to handle the large amount of
data related to parts, vendors, and transactions. However, the analyst must
evaluate whether the added complexity of using a DBMS is justified based
on the customer’s requirements.
Scope Consideration: The analyst will check if the proposed solutions are
feasible given the time, budget, and resource constraints outlined in the
Software Project Plan.
What Data is Produced and Consumed: The system must produce reports
showing the quantity of each part in stock and consume data entered by
inventory clerks.
What Functions the System Performs: The system needs to allow inventory
clerks to log part information, check stock levels, and generate reordering
reports.
What Behaviors the System Exhibits: The system should automatically
update stock levels and trigger alerts when inventory is low.
Data Flow Model: A diagram might be created to show how data moves
through the system, such as from inventory entry to stock reports.
From ChatGPT, designed with FancyGPT
These models help the analyst and the development team understand the
system’s requirements in detail, serving as the foundation for design.
6.
6.
6.
6.
6. Prototyping as an Alternative Approach
Prototyping as an Alternative Approach
Prototyping as an Alternative Approach
Prototyping as an Alternative Approach
Prototyping as an Alternative Approach
Sometimes, the customer may not be entirely sure what they need, or the
development team might be uncertain if a particular approach will work. In such
cases, prototyping can be used as an alternative method. For example:
Prototyping can be especially useful in complex systems where detailed
requirements may be difficult to define upfront.
These examples offer a clear and structured understanding of problem evaluation,
solution synthesis, and related processes within the context of requirements
analysis, ensuring coherence in the lecture content.
Functional Processing Model: This could outline the specific functions the
system performs, like updating stock levels and generating reorder alerts.
Operational Behavior Model: A state diagram might be used to represent
the system’s behavior in response to user actions, such as what happens
when a part is logged out of the inventory.
The analyst might create a simple, working model of the inventory control
system that allows the customer to see how it will function. This prototype
helps both the customer and the developer clarify requirements and refine
the final solution.
cs611 lecture 14
cs611 lecture 14
cs611 lecture 14
cs611 lecture 14
cs611 lecture 14
LECTURE # 14
2. Software Development Fundamentals
Technical Fundamentals
2.11 Requirements Management
⇒Requirements Analysis
• Evaluation and Synthesis
Upon evaluating current problems and desired
information (input
and output), the analyst begins to synthesize one or
more solutions.
To begin, the data objects processing functions and
behavior of the
system are defined in detail. Once this information has
been
established, basic architectures for implementation
are considered.
A client/server approach would seem to be
appropriate, but does
the software to support this architecture fall within
the scope
outlined in the Software Plan? A database
management system
would seem to be required, but is user/customer's
need for
associativity justified? The process of evaluation and
synthesis
continues until both analyst and customer feel
confident that
software can be adequately specified for subsequent
development
steps.
Throughout evaluation and solution synthesis, the
analyst's
primary focus is on what, not how. What data does
the system
produce and consume what functions the system must
perform.
What behaviors do the system exhibit, what
interfaces, are defined
and what constraints apply?
• Models
During the evaluation and solution synthesis activity,
the analyst
creates models of the system in an effort to better
understand data
and control flow, functional processing, operational
behavior, and
information content. The model serves as a foundation
for software
design and as the basis for the creation of
specifications for the
Software.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
are.
• Specification
Software Project Management (CS615)
97
© Copyright Virtual University of Pakistan
During the evaluation and solution synthesis activity,
the analyst
creates models of the system in an effort to better
understand data
and control flow, functional processing, operational
behavior, and
information content. The model serves as a foundation
for software
design and as the basis for the creation of
specifications for the
Software. The customer may be unsure of precisely
what is
required. The developer may be unsure that a specific
approach
will properly accomplish function and performance.
For these, and
many other reasons, an alternative approach to
requirements
analysis, called Prototyping, may be conducted.
• Concerns for Review
The customer may be unsure of precisely what is
required. The
developer may be unsure that a specific approach will
properly
accomplish function and performance. For these, and
many other
reasons, an alternative approach to requirements
analysis, called
Prototyping, may be conducted.
For example, an inventory control system is required
for a major
supplier of auto parts. The analyst finds that problems
with the
current manual system include:
(1) Inability to obtain the status of a component
rapidly,
(2) Two- or three-day turn- around to update a card
file,
(3) Multiple reorders to the same vendor because
there is no way to
associate vendors with components, and so forth.
Once problems have been identified, the analyst
determines what
information is to be produced by the new system and
what data
will be provided to the system. For instance, customer
desires a
daily report that indicates what parts have been taken
from
inventory and how many similar parts remain. The
customer
indicates that inventory clerks will log the
identification number of
each part as it leaves the inventory area.
Upon evaluating current problems and desired
information (input
and output), the analyst begins to synthesize one or
more solutions.
To begin, the data objects, processing functions, and
behavior of
the system are defined in detail. Once this information
has been
established, basic architectures for implementation
are considered.
A client/server approach would seem to be
appropriate, but does
the software to support this architecture fall within
the scope
outlined in the Software Plan? A database
management system
would seem to be required, but is the user/customer's
need for
Software Project Management (CS615)
98
© Copyright Virtual University of Pakistan
associativity justified? The process of evaluation and
synthesis
continues until both analyst and customer feel
confident that
software can be adequately specified for subsequent
development
steps.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
s.
⇒Requirements Elicitation for Software
Before requirements can be analyzed, modeled, or
specified they must be
gathered through an elicitation process. A customer
has a problem that
may be amenable to a computer-based solution. A
developer responds to
the customer's request for help.
Communication has begun. But, as we have already
noted, the road from
communication to understanding is often full of
potholes.
1. Initiating the Process
The most commonly used requirements elicitation
technique is to
conduct a meeting or interview. The first meeting
between a
software engineer (the analyst) and the customer can
be likened to
the awkwardness of a first date between two
adolescents. Neither
person knows what to say or ask; both are worried
that what they
do say will be misinterpreted; both are thinking about
where it
might lead (both likely have radically different
expectations here);
both want to get the thing over with, but at the same
time, both
want it to be a success. Yet, communication must be
initiated.
Gause and Weinberg [GAU89] suggest that the
analyst start by
asking context-free questions. That is, a set of
questions that will
lead to a basic understanding of the problem, the
people who want
a solution, the nature of the solution that is desired,
and the
effectiveness of the first encounter itself. The first set
of contextfree, questions focuses on the customer, the
overall goals, and the
benefits. For example; the analyst might ask:
– Who is behind the request for this work?
– Who will use the solution?
– What will be the economic benefit of a successful
solution?
– Is there another source for the solution that you
need?
These questions help to identify all stakeholders who
will have
interest in the software to be built. In addition, the
questions
identify the measurable benefit of a successful
implementation and
possible alternatives to custom software
development.
Software Project Management (CS615)
99
© Copyright Virtual University of Pakistan
The next set of questions enables the analyst to gain a
better
understanding of the problem and the customer to
voice his or her
perceptions about a solution:
– How would you characterize good output that
would be
generated by a successful solution?
– What problem(s) will this solution address?
– Can you show me (or describe) the environment in
which the
solution will be used?
– Will special performance issues or constraints affect
the way
the solution is approached?
The final set of questions focuses on the effectiveness
of the
meeting. Gause and Weinberg call these meta-
questions and
propose the following (abbreviated) list:
– Are you the right person to answer these questions?
Are your
answers official?
– Are my questions relevant to the problem that you
have?
– Am I asking too many questions?
– Can anyone else provide additional information?
– Should I be asking you anything else?
These questions (and others) will help to break the
ice and
initiate the communication that is essential to
successful analysis.
But a question and answer meeting format is not an
approach that
has been overwhelmingly successful. In fact, the QA
session
should be used for the first encounter only and then
replaced by a
meeting format that combines elements of problem
solving,
negotiation, and specification. v
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Requirements Elicitation for Software
Requirements Elicitation for Software
Requirements Elicitation for Software
Requirements Elicitation for Software
Requirements Elicitation for Software
Initiating the Process
Initiating the Process
Initiating the Process
Initiating the Process
Initiating the Process
Before analyzing or specifying software requirements, the first step is to gather
them through a process called elicitation. This involves understanding the
customer's problem and determining if it can be solved using software. The key is
effective communication between the software engineer (the analyst) and the
customer.
Conducting the First Meeting
1
The first step in eliciting requirements usually involves a meeting or
interview between the analyst and the customer. This can be a bit
uncomfortable initially, as both parties might be unsure about what to
say or ask. However, this communication is crucial for understanding
the problem and starting the process.
2
Asking Context-Free Questions
Examples of Context-Free Questions:
These questions help identify everyone who has an interest in the project
and establish the goals and benefits of the solution.
3
The analyst begins by asking context-free questions—questions that
help establish a basic understanding of the problem, the stakeholders
involved, and the desired solution. These questions are designed to be
open-ended and non-technical, helping the analyst gather essential
information without making assumptions.
4
Who is behind the request for this work? (Identifies the main
stakeholders.)
5
Who will use the solution? (Determines the end users.)
6
What will be the economic benefit of a successful solution? (Assesses
the value of the solution.)
7
Is there another source for the solution that you need? (Explores
alternative options.)
8
Understanding the Problem and the Customer's Perspective
Examples of Problem-Focused Questions:
9
The analyst then asks questions that help them understand the
customer's problem and how they perceive a successful solution.
10
How would you characterize good output from a successful solution?
(Clarifies the desired outcomes.)
11
What problem(s) will this solution address? (Identifies the specific
issues to be solved.)
12
Can you describe the environment where the solution will be used?
(Helps understand the context.)
13
2. Facilitated Application Specification Techniques
Too often, customers and software engineers have an
unconscious
Overall, the goal of this initial meeting and the questions asked is to break the
ice and start the essential communication process that will lead to successful
requirements analysis. However, this question-and-answer format should be used
only for the first meeting. Subsequent discussions should focus more on problem-
solving, negotiation, and specifying the details of the project.
These questions allow the customer to express their needs and expectations
clearly, helping the analyst gain a deeper understanding of the project.
Will special performance issues or constraints affect the solution?
(Identifies any technical challenges or requirements.)
14
Evaluating the Effectiveness of the Meeting
Examples of Meta-Questions:
These questions help ensure that the initial communication is productive
and that both the analyst and the customer are aligned in their
understanding of the project.
15
At the end of the meeting, the analyst may ask meta-questions to
assess how effective the communication has been and to identify any
gaps in the information gathered.
16
Are you the right person to answer these questions? (Ensures that the
right stakeholders are involved.)
17
Are my questions relevant to the problem you have? (Checks if the
discussion is on track.)
18
Am I asking too many questions? (Ensures that the customer is
comfortable with the process.)
19
Can anyone else provide additional information? (Identifies other
potential sources of information.)
20
Should I be asking you anything else? (Ensures no important details are
missed.)
21
us and them mind-set. Rather than working as a
team to identify
and refine requirements, each constituency defines its
own
territory and communicates through a series of
memos, formal
position papers, documents, and question and answer
sessions.
History has shown that this approach doesn't work
very well.
Misunderstandings abound, important information is
omitted, and
a successful working relationship is never established.
It is with these problems in mind that a number of
independent
investigators have developed a team-oriented
approach to
requirements gathering that is applied during early
stages of
Software Project Management (CS615)
100
© Copyright Virtual University of Pakistan
analysis and specification. Called facilitated
application
specification techniques (FAST).
This approach encourages the creation of a joint team
of customers
and developers who work together to:
Identify the problem
Propose elements of the solution
Negotiate different approaches and specify a
preliminary set of
solution requirements.
FAST has been used predominantly by the information
systems
community, but the technique offers potential for
improved
communication in applications of all kinds.
Many different approaches to FAST have been
proposed. Each
makes use of a slightly different scenario, but all apply
some
variation on the following basic guidelines:
– A meeting is conducted at a neutral site and
attended by both
software engineers and customers.
– Rules for preparation and participation are
established.
– An agenda is suggested that is formal enough to
cover all
important points but informal enough to encourage
the free
flow of ideas.
– A ‘facilitator’ (can be a; customer, a developer, or an
outsider)
controls the meeting.
– A definition mechanism (can be work sheets, flip
charts, or
wall stickers or an electronic bulletin board, chat room
or
virtual forum) is used.
The goal is to identify the problem, propose elements
of the
solution, negotiate different approaches, and specify a
preliminary
set of solution requirements in an atmosphere that is
conducive to
the accomplishment of the goal.
To better understand the flow of events as they occur
in a typical
FAST meeting, we present a brief scenario that
outlines the
sequence of events that lead up to the meeting, occur
during the
meeting, and follow the meeting.
Initial meetings between the developer and customer
occur and
basic questions and answers help to establish the
scope of the
problem and the overall perception of a solution. Out
of these
initial meetings, the developer and customer write a
one- or twopage product request. A meeting place,
time, and date for FAST
are selected and a facilitator is chosen. Attendees
from both the
Software Project Management (CS615)
101
© Copyright Virtual University of Pakistan
development and customer/user organizations are
invited to attend.
The product request is distributed to all attendees
before the
meeting date.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Facilitated Application Specification Techniques (FAST)
Facilitated Application Specification Techniques (FAST)
Facilitated Application Specification Techniques (FAST)
Facilitated Application Specification Techniques (FAST)
Facilitated Application Specification Techniques (FAST)
In software development, effective communication between customers and
developers is crucial for gathering accurate requirements. However, traditional
methods of communication, such as memos and formal documents, often lead to
misunderstandings, missing information, and a lack of teamwork. To address these
issues, Facilitated Application Specification Techniques (FAST) were developed
as a more collaborative approach.
Key Elements of FAST
Key Elements of FAST
Key Elements of FAST
Key Elements of FAST
Key Elements of FAST
Joint Team Formation
Example: Imagine a team that includes software developers, project
managers, and representatives from a company that needs new software to
manage their inventory. This team works together to understand the
problem and figure out what the software needs to do.
1
In FAST, a team is formed that includes both customers (who need the
software) and developers (who will build the software). This team
works together from the early stages of the project to ensure that
everyone is on the same page.
2
Neutral Meeting Place
Example: The team might meet in a conference room at a third-party
location, rather than at the customer’s office or the developer’s office, to
ensure a neutral environment.
3
Meetings are held at a neutral location, where neither the customer
nor the developer feels like they are in enemy territory. This helps to
reduce tension and promote open communication.
4
Preparation and Participation Rules
Example: The team agrees that everyone will read the product request
document before the meeting and that all participants will have an equal
5
Before the meeting, rules are set for how everyone should prepare and
participate. This ensures that the meeting runs smoothly and that
everyone has a chance to contribute.
6
Flow of a Typical FAST Meeting
Flow of a Typical FAST Meeting
Flow of a Typical FAST Meeting
Flow of a Typical FAST Meeting
Flow of a Typical FAST Meeting
chance to speak.
Facilitator
Example: The team might choose an experienced project manager as the
facilitator to keep the meeting on track and make sure that all important
points are covered.
7
A facilitator is chosen to guide the meeting. This person can be a
customer, a developer, or even an outside party. The facilitator’s job is
to keep the discussion focused and ensure that everyone’s ideas are
heard.
8
Definition Mechanism
Example: During the meeting, the facilitator might use a flip chart to list all
the requirements that the team agrees upon, so everyone can see them in
real-time.
9
A definition mechanism, such as flip charts, wall stickers, or virtual
tools, is used to capture ideas and decisions during the meeting. This
helps the team visually organize their thoughts and ensures that
nothing is overlooked.
10
Pre-Meeting Activities
Example: Before the FAST meeting, the developer and customer discuss the
need for a new inventory management system and draft a product request
that summarizes what the software should achieve.
1
Initial meetings are held between developers and customers to
establish the scope of the problem. From these meetings, a brief
product request document is created, outlining the basic
requirements and goals of the project. This document is shared with all
participants before the FAST meeting.
2
During the FAST Meeting
Example: During the meeting, the team might discuss different ways to track
inventory levels and negotiate whether the system should include features
3
At the FAST meeting, the team discusses the problem, proposes
solutions, negotiates different approaches, and specifies a preliminary
set of requirements. The facilitator ensures that the meeting stays
productive and that all viewpoints are considered.
4
3. Quality Function Deployment
A quality management technique that translates
needs of customers
into technical requirements of software.
i. Normal Requirement: meeting objectives  goals
stated for a
product or system during meeting
i. Expected Requirement: Implicit to products / system
and may
be so fundamental that customer does not explicitly
state them
i. Exciting Requirement: Features beyond customer’s
expectation
and prove to be very satisfying when present
4. Use Cases
As requirements are gathered as part of:
• Informal meeting
By following the FAST approach, the development team and the customer can
work together more effectively, leading to a better understanding of the project’s
goals and requirements. This collaborative method helps prevent
misunderstandings and ensures that everyone involved has a clear and shared
vision of the software to be developed.
like automated reordering.
Post-Meeting Activities
Example: Following the FAST meeting, the developer might create a more
detailed specification document based on the agreed-upon requirements,
which will guide the development process.
5
After the meeting, the team reviews the outcomes and begins the
process of refining the requirements and planning the next steps of
the project.
6
• FAST or QFD
SW Engineer can create a set of scenario that identify
a thread of
usage for system to be constructed; providing a
description of how
system will be used.
5. Analysis Principles
A variety of modeling notations are developed by
investigators.
Each analysis method has a unique point of view.
However all
analysis methods are related by a set of operational
principles like:
– The information domain of a problem must be
represented and
understood.
– The functions that the software is to perform must
be defined.
– The behavior of the software (as a sequence of
external events)
must be represented.
– The models that depict information function and
behavior must
be partitioned in a manner that uncovers details in a
layered (or
hierarchical) fashion.
Software Project Management (CS615)
102
© Copyright Virtual University of Pakistan
– The analysis process should move from essential
information
toward implementation detail.
6. Software Prototyping
Analysis should be conducted regardless of the SW
From ChatGPT, designed with FancyGPT
engineering
paradigm. (Various approaches apply)
In some cases it is possible to apply operational
analysis principles
and derive a model of SW from which a design can be
developed.
In other situation Requirement Elicitation (FAST, QFD
etc) is
conducted and a model is built, called Prototype.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
cs611 lecture 15
cs611 lecture 15
cs611 lecture 15
cs611 lecture 15
cs611 lecture 15
LECTURE # 15
2. Software Development Fundamentals
Technical Fundamentals
2.11 Requirements Management
⇒The Software Requirements Specification
The Software Requirements Specification is produced
at the culmination of the
analysis task, The function and performance allocated
to software as part of
system engineering are refined by establishing a
complete information
description, a detailed functional description, a
representation of system behavior,
an indication of performance requirements and design
constraints, appropriate
validation criteria, and other: information pertinent to
requirements. The National
Bureau of Standards; IEEE (Standard No. 830-1984),
and the U.S. Department of
Defense have all proposed candidate formats for
software requirements
specifications (as well as other software engineering
documentation).
Mode of specification has a great impact on quality of
solution. Forcing SWE to
work with incomplete, inconsistence, or misleading
specifications result in
frustration and confusion affecting:
– Quality
– Timeliness and
– Completeness of SW product
• Principles
i. Separate functionality from implementation.
ii. Develop a model of desired behavior of a system
that encompasses data and
the functional response of a system to various stimuli
from the environment.
iii. Establish the context in which SW operates by
specifying the manner in which
other system components interact with software.
iv. Define the environment in which system operates
and indicate how a highly
inter-wined collection of agents react to stimuli in the
environment (changes
to objects) produced by those agents.
v. Create a cognitive model rather than a design or
implementation model.
Cognitive model describes a system as perceived by its
user community.
Software Project Management (CS615)
104
© Copyright Virtual University of Pakistan
vi. Recognize that; “the specifications must be tolerant
of incompleteness and
augmentable.”
vii. A specification is always a model –an abstraction-
of some real (or envisioned)
situation that is normally quite complex. Hence it will
be incomplete and will exit
at many levels of detail.
i. Establish the content and structure of a specification
in a way that will enable it to
be amenable to change.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
e.
• Representation
i. Representation format and content should be
relevant to the problem. (A
general outline of SRS can be developed).
ii. Information contained within the specification
should be nested.
iii. It should reveal layers of information so that reader
can move to the level
of detail required. Paragraph  diagram number
scheme to indicate level.
iv. Diagrams and other notational forms should be
restricted in number and
consistent in use. (Confusing or inconsistent notations,
whether graphical
or symbolic degrades understating and foster errors.)
v. Representation should be revisable.
vi. The content of specification will change. Ideally,
CASE tools should be
available to update all representations that are
affected by each change.
The function and performance allocated to software
as part of system engineering
are refined by establishing:
1. A complete information description,
2. A detailed functional description,
3. A representation of system behavior,
4. An indication of performance requirements and
design constraints,
5. Appropriate validation criteria, and other:
information pertinent to
requirements.
The Introduction of the software requirements
specification states the goals and
objectives of the software, describing it in the context
of the computer-based
system; actually, the Introduction may be nothing
more than the software scope of
the planning document.
Software Project Management (CS615)
105
© Copyright Virtual University of Pakistan
The Software Requirements Specification is produced
at the culmination of the
analysis task. The function and performance allocated
to software as part of
system engineering are refined by establishing:
– A complete information description
– A detailed functional description
– A representation of system behavior
– An indication of performance requirements and
design constraints
– Appropriate validation criteria and other
information pertinent to
requirements.
The Information Description provides a detailed
description of the problem that
the software must solve. Information content, flow,
and structure are documented.
Hardware, software, and human interfaces are
described (or external system
elements: and internal software functions.
A description of each function required to solve the
problem is presented in the
Functional Description.
A processing narrative is provided for each function:
– Design constraints are stated and justified
– Performance characteristics are stated, and
– One or more diagrams are included to graphically
represent the overall
structure of the software and interplay among
software functions and other
system elements
The Behavioral Description section of the
specification examines the operation of
the software as a consequence of external events and
internally generated control
characteristics.
Validation Criteria is probably the most important
and, ironically, the most often,
neglected section of the Software Requirements
specification.
– How do we recognize a successful implementation?
– What classes of tests must be conducted to validate
function, performance,
and constraints?
We neglect this section because completing it
demands a thorough understanding
of software requirements-something that we often do
not have at this stage.
Yet, specification of validation criteria acts as an
implicit review of all other
requirements. It is essential that time and attention be
given to this section.
Finally, the specification includes a Bibliography and
Appendix.
Software Project Management (CS615)
106
© Copyright Virtual University of Pakistan
– The bibliography contains references to all
documents that relate to the
software. These include other software engineering
documentation,
technical references, vendor literature, and;
standards.
– The appendix contains information that
supplements the specifications.
Tabular data, detailed description of algorithms,
charts, graphs and other
material, are presented as appendixes.
In many cases the Software Requirements
Specification may be accompanied by
an executable prototype (which in some cases may
replace the specification), a
paper prototype or a Preliminary User's Manual. The
Preliminary Users Manual
presents the software as a black box: That is, heavy
emphasis is placed on user
input and the resultant output. The manual can serve
as a valuable tool for
uncovering problems at the human/machine interface.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
⇒Review
A review of the Software Requirements Specification
(and/or prototype) is
conducted by both the software developer and the
customer.
Extreme care should be taken in conducting the
review because the specification
forms the foundation of the development phase.
The review is first conducted at a macroscopic level;
that is, reviewers attempt to
ensure that the specification is complete, consistent,
and accurate when the overall
information, functional, and behavioral domains; are
considered. However, to
fully explore each of these domains, the review
becomes more detailed,
examining not only broad descriptions but the way in
which requirements are
worded. For example, when specifications contain
vague terms (e.g., some,
sometimes, often, usual ordinarily, most, or mostly),
the reviewer should flag the
statements for further clarification.
Once the review is complete, the Software
Requirements Specification is signedoff by both the
customer and the developer. The specification
becomes a
contract for software development. Requests for
changes in requirements after
the specification is finalized will not be eliminated. But
the customer should note
that each after- the-fact change is an extension of
software scope and therefore
can increase cost, and/or protract the schedule.
Even with the best review procedures in place, a
number of common specification
problems persist. The specification is difficult to test
in any meaningful way,
and therefore inconsistency or omissions may pass
unnoticed. During the review,
changes to the specification may be recommended. It
can be extremely difficult to
assess the global impact of a change; that is, how a
change in one function affects
requirements for other functions. Modem software
engineering environments
incorporate CASE tools that have been developed to
help solve these problems.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Simple Beginner-Level Examples for Reviewing the
Simple Beginner-Level Examples for Reviewing the
Simple Beginner-Level Examples for Reviewing the
Simple Beginner-Level Examples for Reviewing the
Simple Beginner-Level Examples for Reviewing the
Software Requirements Specification (SRS)
Software Requirements Specification (SRS)
Software Requirements Specification (SRS)
Software Requirements Specification (SRS)
Software Requirements Specification (SRS)
Macroscopic Review
During the initial review of the SRS, both the software developer and the
customer should look at the document as a whole. For example, if the SRS
describes an online bookstore, reviewers should check if it covers all major
areas like user registration, book search, and checkout. The goal is to ensure
that the specification is complete and that there are no missing sections or
inconsistencies.
1
Detailed Review
Once the broad overview is complete, reviewers dive into the details. For
instance, if the SRS describes how users add books to their cart, the
reviewers should look for vague wording like usually or most of the time
and flag it for clarification. These unclear terms can lead to
misunderstandings during development, so they need to be replaced with
precise language.
2
Signed-Off Specification
After the review, both the customer and the developer sign off on the SRS,
indicating that they agree on what the software should do. For example,
after reviewing the online bookstore’s SRS, both parties agree that the
3
From ChatGPT, designed with FancyGPT
These examples illustrate the importance of careful review of the SRS,
highlighting how both broad and detailed checks help prevent issues later in the
development process.
specified search, cart, and checkout functionalities are correct and meet the
project goals. This signed document acts as a formal agreement for the
development phase.
Requests for Changes
If, after the SRS is signed, the customer wants to add a new feature, like a
wish list for the online bookstore, this change request will be considered an
extension of the project scope. The developer will explain that adding this
feature may require more time and budget, as it wasn’t included in the
original agreement.
4
Common Specification Problems
Even with thorough reviews, some issues might go unnoticed. For instance,
the SRS might specify that users should be able to remove items from their
cart but not detail what happens if they try to remove an item when the cart
is empty. This omission could cause problems during development, as the
requirement is not fully clear.
5
Global Impact of Changes
If a change is made to one part of the system, it might affect other areas. For
example, adding a wish list feature to the online bookstore might impact how
the user profile is managed, requiring updates to the login and account
management features. Assessing this impact can be challenging, as changes
can have ripple effects across the system.
6
CASE Tools for Managing Changes
Modern software engineering environments use CASE tools to help manage
these challenges. For instance, if the wish list feature is added, CASE tools
can help automatically update all related diagrams and documentation in the
SRS, ensuring consistency across the project.
7
cs611 lecture 16
cs611 lecture 16
cs611 lecture 16
cs611 lecture 16
cs611 lecture 16
LECTURE # 16
2. Software Development Fundamentals
Technical Fundamentals
2.12 Design
⇒Management Aspect
– Major design styles
• Object, structured, data-structured design
– Foundational design concepts
• Information hiding, abstraction, encapsulation, Inheritance,
basic
algorithms  data structures, ...
⇒Attributes of SW Design
Software design is actually a multi step process that focuses on
four
distinct attributes of a program:
– Data structure,
– Software architecture,
– Interface representations, and procedural (algorithmic) detail.
The design process translates requirements into a
representation of the
software that can be assessed for quality before coding begins.
Like requirements, the design is documented and becomes part
of the
software configuration.
Design is the technical kernel of software engineering. During
design,
progressive refinements of data structure, architecture,
interfaces, and
procedural detail of software components are developed,
reviewed, and
documented.
Design results in representations of software that can be
assessed for
quality. A number of fundamental software design principles
and concepts
have been proposed over the past four decades.
Design principles guide the software engineer as the design
process
proceeds. Design concepts provide basic criteria for design
quality.
Software Project Management (CS615)
108
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/12
© Copyright Virtual University of Pakistan
a. Code generation
The design must be translated into a machine-readable form.
The
code generation step performs this task. If design is performed
in a
detailed manner, code generation can be accomplished
mechanistically.
b. Testing
Once code has been generated, program testing begins. The
testing
process focuses on the logical internals of the software,
ensuring
that all statements have been tested and on the functional
externals;
that is, conducting tests to uncover errors and ensure that
defined
input will produce actual results that agree with required
results.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Certainly! Here are simple beginner-level examples of the topics and concepts related to
software development fundamentals, focusing on design and the software development
process.
Major Design Styles
Major Design Styles
Major Design Styles
Major Design Styles
Major Design Styles
Foundational Design Concepts
Foundational Design Concepts
Foundational Design Concepts
Foundational Design Concepts
Foundational Design Concepts
Object-Oriented Design: Imagine you are designing a simple drawing application. You
create a class called Shape, and from it, you derive specific shapes like Circle, Square, and
Triangle. Each of these shapes has common properties (like color) but also specific
methods and attributes (like radius for circles or side length for squares).
1
Structured Design: Consider a program that processes customer orders. You might
break down the program into functions such as inputOrder(), processOrder(), and
outputInvoice(). Each function performs a specific task, making the overall structure
clear and easy to manage.
2
Data-Structured Design: Imagine an application that manages a library of books. You
design the data around Book objects, each containing fields like title, author, and ISBN.
The program revolves around these data structures, with operations to add, remove, or
update books in the library.
3
Information Hiding: In a banking application, the balance of an account is hidden from
direct access by other parts of the program. Other parts of the program must use
methods like getBalance() or deposit(amount) to interact with the account balance.
1
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/12
⇒Key Features of Design
A number of fundamental software design principles and
concepts have
been proposed over the past four decades. Design principles
guide the
software engineer as the design process proceeds. Design
concepts provide
basic criteria for design quality.
Support
Support
Software will undoubtedly undergo change after it is delivered
to the
customer (a possible exception is embedded software). Change
will occur
Attributes of Software Design
Attributes of Software Design
Attributes of Software Design
Attributes of Software Design
Attributes of Software Design
Code Generation and Testing
Code Generation and Testing
Code Generation and Testing
Code Generation and Testing
Code Generation and Testing
Abstraction: For a vehicle simulation, you define an abstract class Vehicle with a
method move(). Specific vehicles like Car and Bike implement the move() method
differently, but the program can interact with them using the same interface.
2
Encapsulation: In a user management system, user data such as name and password are
encapsulated within a User class. The data can only be accessed or modified through the
class’s methods, like setPassword() or getName().
3
Inheritance: In an employee management system, you have a base class Employee and
derived classes like Manager and Developer. Both Manager and Developer inherit common
attributes like name and ID from Employee but have their own specific attributes and
methods.
4
Basic Algorithms  Data Structures: A simple algorithm example is sorting a list of
numbers. Basic data structures include arrays and linked lists, which you might use to
store and manage collections of data.
5
Data Structure: Designing a system that manages student records, you use a hash table
to efficiently store and retrieve student information based on student ID.
1
Software Architecture: You design a web application using the Model-View-Controller
(MVC) architecture. This separates the data model, the user interface, and the control
logic, making the application easier to develop and maintain.
2
Interface Representations: In a calculator application, you define an interface
CalculatorInterface that includes methods like add(), subtract(), etc. Any class
implementing this interface must provide these methods.
3
Procedural (Algorithmic) Detail: For a search feature in a text editor, you implement an
algorithm to find a word in a large document efficiently.
4
Code Generation: After designing a login system, you convert the design into code. For
instance, you create a User class in a programming language based on the design
specifications.
1
Testing: Once the code for a calculator application is written, you test it by checking
each operation (add, subtract, etc.) with different inputs to ensure they produce the
correct results. This includes checking edge cases like dividing by zero.
2
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/12
because errors have been encountered, because the software
must be
adapted to accommodate changes in its external environment
(e.g. a
change required because of a new operating system or
peripheral device),
or because the customer requires functional or performance
enhancements.
Software support/maintenance reapplies each of the preceding
phases to
an existing program rather than a new one.
Modularity
Modularity (in both program and data) and the concept of
abstraction
enable the designer to simplify and reuse software
components.
Refinement provides a mechanism for representing successive
layers of
functional detail. Program and data structure contribute to an
overall view
of software architecture, while procedure provides the detail
necessary for
algorithm implementation.
Software Project Management (CS615)
109
© Copyright Virtual University of Pakistan
Information hiding and functional independence provide
heuristics for
achieving effective modularity.
We try to solve the problem by rushing through the design
process so that
enough time will be left at the end of the project to uncover
errors that
were made because we rushed through the design process.
The moral is this: Don't rush through it! Design is worth the
effort.
⇒Standard design approaches
• Exception handling,
• Localization
• Portability
• Reuse
• Input/output
• Memory management,
• Performance
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/12
coherent examples.
Sure, here are simple beginner-level examples for the key features of software design and
standard design approaches as outlined:
Key Features of Design
Key Features of Design
Key Features of Design
Key Features of Design
Key Features of Design
Standard Design Approaches
Standard Design Approaches
Standard Design Approaches
Standard Design Approaches
Standard Design Approaches
Support: Consider a word processing application. After delivery, a user reports a bug
where the text formatting is lost after saving the document. To support and maintain the
software, the development team revisits the original design, identifies the issue in the
code, and provides a fix. Additionally, if a new feature like real-time collaborative editing
is requested, the design and code are updated to incorporate this enhancement.
1
Modularity: In a video game, the game logic, graphics rendering, and sound effects are
separated into different modules. Each module can be developed and tested
independently. If a bug is found in the sound module, it can be fixed without affecting
the graphics or game logic modules. This separation of concerns also allows for reusing
the sound module in another game.
2
Refinement: In designing a shopping cart system for an e-commerce site, you start with
a high-level overview, such as adding items, removing items, and checking out. You then
refine these functions into more detailed steps like handling different item categories,
applying discounts, and calculating taxes.
3
Information Hiding and Functional Independence: In a banking application, the method
to calculate the interest on a loan is hidden inside a class and is only accessible through a
public method calculateInterest(). This prevents other parts of the program from
directly accessing or modifying the interest calculation logic, ensuring that changes in
the interest calculation don't impact other parts of the program.
4
Exception Handling: In a file-reading program, if the program tries to open a file that
doesn’t exist, an exception is raised. The program catches this exception and displays a
message to the user instead of crashing.
1
Localization: A social media app is designed to support multiple languages. The text
strings for different languages are stored in separate files. When a user selects a
language, the app loads the strings from the corresponding file, allowing users
worldwide to interact with the app in their preferred language.
2
Portability: A simple calculator application is developed using a programming language
that is supported across multiple operating systems, such as Python. This allows the
application to run on Windows, macOS, and Linux without any modification to the code.
3
Reuse: In a web development project, a library for handling date and time calculations is
used. This library is already tested and proven to work, saving the developers time and
effort in writing and testing new code for date and time operations.
4
Input/Output: In a weather forecasting application, the user enters a city name (input),
and the application retrieves and displays the current weather information for that city
(output).
5
Memory Management: In a game, objects like bullets or enemies are created and
destroyed frequently. The game uses efficient memory management techniques to
ensure that these objects are created and disposed of properly, preventing memory
leaks and ensuring smooth gameplay.
6
Performance: A database query in an e-commerce application is optimized to retrieve
user order history quickly, ensuring that the user doesn't experience delays when
checking their past orders.
7
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/12
2.13 Construction
– Coding practices
Naming, layout, documentation
– Data-related concepts
Scope, persistence, binding time
– Data usage guidelines
Bytes, arrays
– Use of construction tools
Programming environment, group work support (documents,
code),
code libraries  generators
2.14 Software Configuration management
Software configuration management (SCM) takes care of
changes in a
software process. SCM identifies controls, audits, and reports
modifications that occur during software development. SCM
helps
maintain the integrity of configurable items produced during
software
development. SCM is an integral part of Software Quality
Assurance
(SQA). SCM involves assessing the impact of the changes made
during
SQA activities and making decisions based on cost and benefit
analysis.
SCM is used to establish and maintain integrity of software
items and
ensure that they can be traced easily. SCM helps define a library
structure
for storage and retrieval of software items.
Software Project Management (CS615)
110
© Copyright Virtual University of Pakistan
• To ensure that project stays consistent over time: You need
to:
a) Evaluate proposed changes
b) Track the changes
c) Control the Version
d) Check integrity of Source code, documents, plans, design
e) Ensure quality
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/12
coherent examples.
Here are beginner-level examples for the topics related to construction and software
configuration management as outlined:
Construction
Construction
Construction
Construction
Construction
Software Configuration Management (SCM)
Software Configuration Management (SCM)
Software Configuration Management (SCM)
Software Configuration Management (SCM)
Software Configuration Management (SCM)
Coding Practices:
1
Naming: In a student management system, use clear and descriptive names like
studentName, studentID, and enrollmentDate for variables and functions. This
makes the code easier to understand and maintain.
2
Layout: Maintain consistent indentation and spacing in the code to enhance
readability. For example, indent each block of code within a function to clearly
show its scope.
3
Documentation: Add comments in the code to explain complex logic or
algorithms. For instance, before a function that calculates a student’s GPA, add a
comment explaining how the calculation is performed.
4
Data-Related Concepts:
5
Scope: In a function that calculates the sum of two numbers, the variables holding
the numbers are local to the function, meaning they cannot be accessed outside of
it.
6
Persistence: In a game application, the player's score is stored in a database so
that the score persists even after the game is closed and reopened.
7
Binding Time: In a web application, the color of the header is determined at
runtime based on the user’s settings. This late binding allows for a more dynamic
user experience.
8
Data Usage Guidelines:
9
Bytes: In a file upload system, you might limit the file size to 2 megabytes
(2,048,000 bytes) to ensure quick uploads and downloads.
10
Arrays: In a calendar application, you use an array to store the names of the days
of the week ([Sunday, Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday]) for quick access and manipulation.
11
Use of Construction Tools:
12
Programming Environment: Using an integrated development environment (IDE)
like Visual Studio Code provides tools like syntax highlighting and code
completion to make coding more efficient.
13
Group Work Support: Teams use version control systems like Git to manage code
changes and collaborate effectively. They can share code libraries and use
generators to quickly scaffold new projects.
14
Evaluate Proposed Changes: In a web development project, a team member proposes
changing the database structure to optimize performance. The SCM process evaluates
the impact of this change on the existing code and data.
1
Track the Changes: Every modification made to the codebase is recorded in a version
control system. This allows the team to see who made what changes and when.
2
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/12
⇒Software Configuration Management Activities
SCM is used to establish and maintain integrity of software
items and
ensure that they can be traced easily. Using SCM, you can
define a library
structure for storage and retrieval of software items. SCM
needs to be
performed at all phases in the SDLC of a software project. The
various
SCM activities are:
1. Identifying Objects
2. Controlling Versions
3. Controlling Changes
4. Auditing
5. Communicating Changes
1. Identifying Objects
The first activity in SCM involves identifying software
configurable
items (SCIs). SCI is an aggregation of software that is
designated for
configuration management. It is treated as a single entity in the
configuration management process. For example, design
documents,
program code, test case, and custom requirement document
are
configurable items.
You can use the Item Traceability Matrix to identify SCIs at the
end of
each phase. A sample of Item Traceability Matrix is displayed in
Table
1. In the table, you can see the different SCIs in different phases
of the
development process.
Software Project Management (CS615)
111
© Copyright Virtual University of Pakistan
Table 1: Item Traceability Matrix
Control the Version: The SCM system maintains different versions of the software. For
instance, the team can switch between the stable release version and the development
version to test new features.
3
Check Integrity of Source Code, Documents, Plans, Design: Before releasing a new
version of the software, the SCM process involves reviewing the source code, checking
that all required documents are updated, and ensuring that the design plans are still
valid.
4
Ensure Quality: The SCM team conducts audits and reviews to ensure that the software
meets the required quality standards and that all changes are correctly implemented.
5
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/12
Phase Deliverable
Name Requirement
Analysis Design Construction Testing
Requirement
Analysis
Document
Requirement
Analysis Document
Design
Document
Functional
Specification
Document and
Program
Specification
Document
Code
Code A
Code B
Code C
Test Document
Unit Test
Cases
System Test
Cases
Database
Design
Document
Database Design
Specification
To identify SCls, you need to first breakdown the project
deliverable
to the SCI level. Each phase in the project has its own
deliverables. To
trace the deliverables, you need to map the SCls to the phases
in which
they are delivered.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/12
Here are beginner-level examples for the Software Configuration Management (SCM)
activities outlined:
Software Configuration Management Activities
Software Configuration Management Activities
Software Configuration Management Activities
Software Configuration Management Activities
Software Configuration Management Activities
These examples illustrate how SCM activities are integral to managing and maintaining the
integrity of software throughout its lifecycle.
Identifying Objects:
Sample Item Traceability Matrix:
Phase
Phase
Phase
Phase Deliverable Name
Deliverable Name
Deliverable Name
Deliverable Name
Requirement Analysis
Requirement Analysis
Requirement Analysis
Requirement Analysis Requirement Analysis Document
Requirement Analysis Document
Requirement Analysis Document
Requirement Analysis Document
Design
Design
Design
Design Design Document
Design Document
Design Document
Design Document
Construction
Construction
Construction
Construction Code A, Code B, Code C
Code A, Code B, Code C
Code A, Code B, Code C
Code A, Code B, Code C
Testing
Testing
Testing
Testing Unit Test Cases, System Test Cases
Unit Test Cases, System Test Cases
Unit Test Cases, System Test Cases
Unit Test Cases, System Test Cases
1
In a web application project, the team identifies software configurable items
(SCIs) such as the requirements document, design document, source code files,
test cases, and user manuals. Each of these items is designated for configuration
management and is treated as a single entity.
2
The team creates an Item Traceability Matrix to map each SCI to the specific
phase of the software development lifecycle (SDLC) in which it is delivered. For
example, the requirements document is associated with the Requirement
Analysis phase, while the design document is linked to the Design phase.
3
Controlling Versions:
4
During development, multiple versions of the source code are created as new
features are added and bugs are fixed. The team uses a version control system like
Git to manage these versions, allowing them to revert to previous versions if
necessary.
5
Each version of the software is tagged with a unique identifier, such as v1.0, v1.1,
v2.0, etc., to distinguish between different stages of development and release.
6
Controlling Changes:
7
When a change request is submitted, such as adding a new feature or fixing a bug,
it goes through a change control process. The impact of the change is assessed,
and if approved, the changes are implemented and documented.
8
The team maintains a change log that records all approved changes, including the
description of the change, the reason for the change, and the person responsible
for implementing it.
9
Auditing:
10
Before releasing a new version of the software, the team conducts an audit to
ensure that all changes have been implemented correctly and that the software
meets the required standards.
11
The audit involves reviewing the source code, design documents, and test results
to ensure that the software is complete and accurate.
12
Communicating Changes:
13
After a change has been implemented, the team communicates the change to all
stakeholders, including developers, testers, and end-users.
14
This communication may include updates to user manuals, release notes, and
internal documentation to ensure that everyone is aware of the changes and how
they affect the software.
15
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/12
2. Controlling Versions
Version control combines procedures and tools to manage
different
versions of configuration objects that are created during
software
product development. To control versions, you can use Version
Control Register. In Version Control Register, you enter the
details of
components, such as component identification numbers, their
versions,
and dates of validity. It is advisable to release a baseline after a
version
is released. Baseline is a specification or a product that is
formally
reviewed and agreed upon. This serves as the basis for further
development. Baseline can be changed only through formal
change
control procedures. A baseline consists of a set of SCIs that are
logically related to each other. Baselines are established when
subsequent changes to the SCIs need to be controlled. Version
control
is essential so that everybody uses only the latest version. Any
kind of
version mismatch might result in rework.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple beginner-level examples illustrating the concepts of controlling versions in
software configuration management:
Controlling Versions
Controlling Versions
Controlling Versions
Controlling Versions
Controlling Versions
Version Control Register:
1
In a mobile app development project, the team maintains a Version Control
Register. This register includes details such as the component name (e.g.,
UserInterfaceModule), identification number (UI001), version number (v1.2), and
date of validity (e.g., August 10, 2024). This helps the team track different
versions of each component throughout development.
2
Baseline:
3
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/12
From ChatGPT, designed with FancyGPT
These examples demonstrate how version control and baselines are critical for maintaining
the integrity and consistency of software throughout its development lifecycle.
After completing a major feature update for the application, the team releases a
baseline version, such as v2.0. This baseline includes the final versions of all
configuration items, such as the code, documentation, and test cases. The baseline
is reviewed and approved by all stakeholders, and it serves as the foundation for
any future updates or changes.
4
Change Control Procedures:
5
Suppose a new requirement comes in to add a dark mode feature to the
application. To implement this, the team follows formal change control
procedures. They first assess the impact of the change, get approval from the
relevant stakeholders, and then integrate the new feature into the baseline. The
updated version is then recorded in the Version Control Register as v2.1.
6
Preventing Version Mismatch:
7
By using version control tools like Git, the development team ensures that all
members are working with the latest version of the codebase. This prevents
issues where different team members might accidentally work on outdated code,
which could lead to integration problems and rework.
8
Logical Grouping of SCIs:
9
In the context of a web application, a baseline might include all related SCIs for a
specific functionality, such as user authentication. This could consist of the login
module, the database schema for user data, and the API endpoints for
authentication. By establishing a baseline for these items, the team can manage
changes more effectively and ensure consistency across related components.
10
15/08/2024, 20:45 FancyGPT - cs611 lecture 16
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/12
cs611 lecture 17
cs611 lecture 17
cs611 lecture 17
cs611 lecture 17
cs611 lecture 17
LECTURE # 17
2. Software Development Fundamentals
Technical Fundamentals
2.14 Software Configuration management
b. Controlling Versions
Version control combines procedures and tools to manage
different versions
of configuration objects that are created during software
product development.
To control versions, you can use Version Control Register. In
Version Control
Register, you enter the details of components, such as
component
identification numbers, their versions, and dates of validity. It is
advisable to
release a baseline after a version is released. Baseline is a
specification or a
product that is formally reviewed and agreed upon. This serves
as the basis for
further development. Baseline can be changed only through
formal change
control procedures. A baseline consists of a set of SCIs that are
logically
related to each other. Baselines are established when
subsequent changes to
the SCIs need to be controlled. Version control is essential so
that everybody
uses only the latest version. Any kind of version mismatch
might result in
rework.
c. Controlling Changes
Uncontrolled change can lead to chaos. Change control
combines human
procedures and automated tools to provide a mechanism for
controlling
change. The purpose of change control is to monitor and
control changes in
order to baseline SCIs. There are various reasons that trigger
changes. A
problem report might call for a change. Similarly, suggestions or
ideas from
brainstorming sessions and feedback from clients can result in
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/19
change.
Modifications or addition to functionality and changes in
environment can
also cause changes. The Figure 1 explains the formal change
control process
using a flow chart.
Software Project Management (CS615)
113
© Copyright Virtual University of Pakistan
Figure 1: Formal Change Control Process
A request for change triggers that change control procedure.
Then request is
logged in the change request register. Next, the change request
number is
recorded in the change request evaluation plan. The request is
evaluated and
analyzed to check if the change is valid. Change request is also
evaluated in
Start
Change request is made
Change request is logged
Change request is evaluated
Outcome is notified
Is the
Request
Rejected?
Change request is implemented
Stop
Yes
Yes
No
No
Is the
Request
Deferred?
Software Project Management (CS615)
114
© Copyright Virtual University of Pakistan
terms of the number of items affected and the effort involved in
effecting the
change. Finally, the possible outcome of the change request is
communicated.
The request for change is rejected, deferred, or approved. If the
request for
change is rejected, the requestor needs to log a fresh request. A
deferred
change request is evaluated at a later date while the change
request that is
approved is implemented.
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/19
There are tools that provide facilities to check in and check out
so that the
same version of the object is not updated more than once. The
check-in and
checkout facilities provide synchronization control.
Synchronization control
helps to ensure that parallel changes performed by two
different people do not
overwrite one another.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple beginner-level examples illustrating the concepts of controlling changes in
software configuration management, including the formal change control process:
Controlling Changes
Controlling Changes
Controlling Changes
Controlling Changes
Controlling Changes
Logging Change Requests:
1
In a software development team, when a developer or client identifies a need for
change, such as a new feature request or a bug fix, they create a change request
document. This document includes details such as the description of the change,
the reason for the change, and the impact of the change on the existing system.
2
The change request is then logged in a change request register, which keeps a
record of all change requests submitted. Each change request is assigned a unique
identification number for tracking purposes.
3
Evaluating Change Requests:
4
Once a change request is logged, the team evaluates it to determine its validity.
This involves analyzing the feasibility of the change, the resources required to
implement it, and the potential impact on the project timeline and budget.
5
The evaluation also considers the number of configuration items (SCIs) affected
by the change and the effort involved in making the changes.
6
Notifying the Outcome:
7
After the evaluation, the team communicates the outcome of the change request
to the requestor and other stakeholders. The change request can be either
approved, rejected, or deferred.
8
If the change request is rejected, the requestor is informed of the reasons for
rejection. They can revise and resubmit the request if necessary. If the request is
deferred, it is scheduled for evaluation at a later date. If the request is approved,
the change is implemented in the project.
9
Formal Change Control Process:
10
The formal change control process involves several steps, as depicted in the
flowchart:
11
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/19
d. Auditing
Configuration audit is conducted formally by the SQA group in
projects
where SCM is a formal activity. The identification, version
control, and
change control tasks help the developer maintain order and
decorum in an
environment of change. However, the control mechanisms
track a change only
until an item is generated. FTRs and software configuration
audits (SCA) are
conducted to ensure that change is properly implemented. FTR
verifies the
technical correctness of the SCI that is subjected to change.
SCA assesses
those characteristics of an SCI that are not considered during
FTRs. Audit
verifies whether the changes specified in the request for
change are made and
additional modifications, if any, are also noted. Audits ensure
that FTRs are
These examples illustrate how change control procedures help manage and implement
changes in software projects systematically and effectively.
Change request is made: A developer, tester, or client identifies a need for a
change and initiates a request.
12
Change request is logged: The request is documented in the change
request register.
13
Change request is evaluated: The team reviews the request to assess its
validity and feasibility.
14
Outcome is notified: The requestor is informed of the evaluation results—
whether the request is approved, rejected, or deferred.
15
Is the request rejected?: If yes, the process stops, and the requestor may
submit a new request.
16
Is the request deferred?: If yes, the request is put on hold and revisited
later. If no, the change request is implemented.
17
Change request is implemented: The approved changes are made to the
software, updating the affected SCIs.
18
Synchronization Control:
19
The team uses tools with check-in and check-out features to manage changes to
the codebase. These features ensure that when a developer is working on a
specific part of the code, it is locked to prevent other developers from making
conflicting changes simultaneously.
20
This synchronization control helps maintain the integrity of the codebase and
avoids issues where parallel changes by different team members could potentially
overwrite each other's work.
21
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/19
conducted to check for technical correctness. Audits verify that
changes made
are highlighted in the SCI. The change date and change author
are specified
and the attributes of SCI reflect the change. The SCM
procedures for noting,
recording, and reporting change are also followed. Audits also
ensure that
related SCIs are updated.
e. Communicating Changes
Another task of SCM is communicating changes. This task
ensures
communication between different members in the project. It
notes the
activities performed, the time when they are performed, those
involved in the
activities, and those affected by the activities. In short, the task
is all about
status reporting. In a large project, there is a possibility of
miscommunication
among various people involved in the project. This is usually
done using
configuration status report shown in Table 11.7. The table
contains the name
of the SCI, the latest released version, the date of release, brief
description of
changes performed, and associated change request. Further
details of the
changes can be obtained from the associated change request.
There can be
instances where two developers may be trying to modify the
same software
configurable item with different and conflicting intentions.
Absence of status
reporting could result in incorrect decisions being taken or
important decisions
Software Project Management (CS615)
115
© Copyright Virtual University of Pakistan
not being communicated. At times, those who should be
pointing out the
serious side effects caused by a change are not aware of the
implementation of
the change. There are also instances of version mismatch when
teams are
unaware of the latest version to be followed. To avoid such
hazards due to
lack of communication among the project team, changes are
communicated
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/19
among team members. Therefore, status reporting provides
information about
each change to those who need to know. Software
configuration management
takes care of changes in a software process. SCM identifies
controls, audits,
and reports modifications that occur during software
development. SCM helps
maintain the integrity of configurable items produced during
software
development.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are beginner-level examples for auditing and communicating changes in software
configuration management:
Auditing
Auditing
Auditing
Auditing
Auditing
Configuration Audit by SQA Group:
1
In a software project where Software Configuration Management (SCM) is
formalized, the Software Quality Assurance (SQA) team conducts configuration
audits. The purpose is to verify that all changes made to a Software Configurable
Item (SCI) are implemented correctly and that no additional, unauthorized
modifications have been made.
2
For example, if a change request specified updating a feature to improve its
performance, the audit will check whether the feature's code was modified as
described in the change request. The audit will also confirm that the new version
is correctly documented and that any related documents or SCIs are also updated.
3
Technical Review (FTR):
4
Formal Technical Reviews (FTRs) are conducted to verify the technical accuracy of
the SCIs before changes are implemented. The FTRs involve a group of peers who
review the proposed changes to ensure they are logical and error-free.
5
For example, if a new module is being added to the software, an FTR would involve
reviewing the design documents and code to ensure the module integrates
seamlessly with existing components and adheres to the project's coding
standards.
6
Verifying Change Implementation:
7
During the audit, the SQA team checks whether the changes made are
documented properly, including the change date and the author of the change.
The audit ensures that the attributes of the SCI reflect the changes accurately.
8
For instance, after a bug fix is implemented, the audit will check that the bug is
indeed resolved in the latest version, and the documentation is updated to reflect
the change, noting who made the change and when it was done.
9
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/19
2.14 Software Configuration management
Software configuration management (SCM) takes care of
changes in a
software process. SCM identifies controls, audits, and reports
modifications that occur during software development. SCM
helps
maintain the integrity of configurable items produced during
software
development. SCM is an integral part of Software Quality
Assurance
(SQA). SCM involves assessing the impact of the changes made
during
SQA activities and making decisions based on cost and benefit
analysis.
SCM is used to establish and maintain integrity of software
items and
ensure that they can be traced easily. SCM helps define a library
structure
Communicating Changes
Communicating Changes
Communicating Changes
Communicating Changes
Communicating Changes
These examples highlight the importance of auditing and communication in maintaining the
integrity and consistency of software throughout its development lifecycle.
Configuration Status Reporting:
1
SCM includes a status reporting mechanism to keep all team members informed
about the changes made to the software. This report includes the name of the SCI,
the latest version released, the release date, a brief description of the changes,
and the associated change request.
2
For example, after a feature enhancement is released, the status report would
include details about the enhancement, its version number, and the change
request ID. This report is shared with all relevant team members to ensure
everyone is aware of the changes.
3
Preventing Miscommunication:
4
Effective communication of changes helps prevent conflicts, such as two
developers unknowingly working on the same SCI with different objectives. The
status report provides clarity on the latest versions and modifications, avoiding
confusion and potential errors.
5
For instance, if two developers are working on different enhancements in the
same module, the status report will help them understand the current state of the
module, preventing conflicts or overwrites.
6
Notifying Affected Parties:
7
When a significant change is implemented, it’s crucial to inform all stakeholders
who might be affected by the change. This includes developers, testers, and
possibly even end-users.
8
For example, if a security patch is applied to the software, all team members,
especially those responsible for security and testing, are notified about the
patch's details, ensuring that the change is thoroughly tested and documented.
9
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/19
for storage and retrieval of software items.
Software Project Management (CS615)
110
© Copyright Virtual University of Pakistan
• To ensure that project stays consistent over time: You need
to:
a) Evaluate proposed changes
b) Track the changes
c) Control the Version
d) Check integrity of Source code, documents, plans, design
e) Ensure quality
⇒Software Configuration Management Activities
SCM is used to establish and maintain integrity of software
items and
ensure that they can be traced easily. Using SCM, you can
define a library
structure for storage and retrieval of software items. SCM
needs to be
performed at all phases in the SDLC of a software project. The
various
SCM activities are:
1. Identifying Objects
2. Controlling Versions
3. Controlling Changes
4. Auditing
5. Communicating Changes
1. Identifying Objects
The first activity in SCM involves identifying software
configurable
items (SCIs). SCI is an aggregation of software that is
designated for
configuration management. It is treated as a single entity in the
configuration management process. For example, design
documents,
program code, test case, and custom requirement document
are
configurable items.
You can use the Item Traceability Matrix to identify SCIs at the
end of
each phase. A sample of Item Traceability Matrix is displayed in
Table
1. In the table, you can see the different SCIs in different phases
of the
development process.
Software Project Management (CS615)
111
© Copyright Virtual University of Pakistan
Table 1: Item Traceability Matrix
Phase Deliverable
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/19
Name Requirement
Analysis Design Construction Testing
Requirement
Analysis
Document
Requirement
Analysis Document
Design
Document
Functional
Specification
Document and
Program
Specification
Document
Code
Code A
Code B
Code C
Test Document
Unit Test
Cases
System Test
Cases
Database
Design
Document
Database Design
Specification
To identify SCls, you need to first breakdown the project
deliverable
to the SCI level. Each phase in the project has its own
deliverables. To
trace the deliverables, you need to map the SCls to the phases
in which
they are delivered.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are beginner-level examples illustrating the activities of Software Configuration
Management (SCM) as described:
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/19
Identifying Objects
Identifying Objects
Identifying Objects
Identifying Objects
Identifying Objects
Controlling Versions
Controlling Versions
Controlling Versions
Controlling Versions
Controlling Versions
Controlling Changes
Controlling Changes
Controlling Changes
Controlling Changes
Controlling Changes
Auditing
Auditing
Auditing
Auditing
Auditing
Identifying Software Configurable Items (SCIs):
1
SCIs are individual components of the software that need to be managed. These
could include design documents, program code, test cases, and custom
requirement documents. Each of these items is considered a single entity within
the configuration management process.
2
For example, during the requirements analysis phase of a project, the requirement
analysis document is identified as an SCI. Similarly, during the design phase, the
design document is treated as an SCI. This ensures that each item is managed
consistently across the project.
3
Using Item Traceability Matrix:
4
The Item Traceability Matrix helps in identifying and tracking SCIs throughout the
different phases of the Software Development Life Cycle (SDLC). It provides a
structured way to map SCIs to their respective phases.
5
For instance, at the end of the design phase, the matrix will list the design
document as an SCI. During the construction phase, various codes (e.g., Code A,
Code B, and Code C) are listed as SCIs. This matrix ensures that all SCIs are
accounted for and can be traced back to their origin.
6
Version Control:
1
Version control is essential for managing different versions of SCIs. It involves
using tools and procedures to track changes made to these items over time. Each
change is documented, and a new version is created.
2
For example, when a developer modifies the code to fix a bug, a new version of the
code is created and documented in the version control system. This ensures that
any previous version can be retrieved if needed, and the history of changes is
maintained.
3
Baseline Establishment:
4
After a version is finalized and reviewed, it is set as a baseline. This baseline serves
as a reference point for future development and changes. Changes to the baseline
can only be made through a formal process.
5
For instance, once a functional specification document is approved and baselined,
any further changes to the document must go through a change control process to
ensure consistency and traceability.
6
Change Control:
1
Change control involves monitoring and managing changes to SCIs. It ensures that
changes are evaluated for their impact and are implemented in a controlled
manner.
2
For example, if a client requests a new feature, a change request is logged and
evaluated. The change is then planned and implemented only after its impact on
the existing system is fully assessed.
3
Configuration Audits:
1
Configuration audits are conducted to verify that the changes made to SCIs are
implemented correctly and that all related documentation is updated.
2
For example, after a new module is added to the software, an audit is conducted to
ensure that the module integrates correctly with the existing system and that all
associated documents reflect the change.
3
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/19
2. Controlling Versions
Version control combines procedures and tools to manage
different
versions of configuration objects that are created during
software
product development. To control versions, you can use Version
Control Register. In Version Control Register, you enter the
details of
components, such as component identification numbers, their
versions,
and dates of validity. It is advisable to release a baseline after a
version
is released. Baseline is a specification or a product that is
formally
reviewed and agreed upon. This serves as the basis for further
development. Baseline can be changed only through formal
change
control procedures. A baseline consists of a set of SCIs that are
logically related to each other. Baselines are established when
subsequent changes to the SCIs need to be controlled. Version
control
is essential so that everybody uses only the latest version. Any
kind of
version mismatch might result in rework.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Communicating Changes
Communicating Changes
Communicating Changes
Communicating Changes
Communicating Changes
These examples provide a straightforward understanding of SCM activities and their
importance in maintaining the integrity and consistency of software throughout its
development lifecycle.
Status Reporting:
1
Status reporting is used to communicate changes to all stakeholders. It includes
details about the SCI, the latest version, the changes made, and the rationale
behind the changes.
2
For instance, after a major update to the software, a status report is generated
and shared with the development team, project managers, and clients. This report
includes the version number, a summary of changes, and the impact of the
changes on the overall system.
3
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/19
⇒Software Configuration Management Vs Software
Maintenance
SCM is an integral part of SQA. SCM involves assessing the
impact of the
changes made during SQA activities and making decisions
based on cost and
benefit analysis. SCM can be defined as the art of identifying,
organizing, and
Controlling Versions
Controlling Versions
Controlling Versions
Controlling Versions
Controlling Versions
These examples highlight the importance of version control in maintaining the integrity and
consistency of software components throughout the development process.
Version Control Register:
1
A Version Control Register is used to document details about each version of a
software component. This includes the component identification number, version
number, and the date when it was valid or released.
2
Example: For a particular module in a software application, the register will have
entries like:
3
Component ID: Module_X_123
4
Version: 1.0
5
Release Date: 01-Jan-2024
6
Releasing a Baseline:
7
Once a version of a software component is reviewed and approved, it is
established as a baseline. This means that it is the official version to be used for all
future development until further changes are approved.
8
Example: After finalizing the functional specifications for a feature, the document
is set as a baseline. Any new changes to the feature must go through the formal
change control process before they are implemented.
9
Change Control Procedures:
10
Changes to the baseline can only be made through a formal process. This ensures
that all stakeholders are aware of the changes and agree on their implementation.
11
Example: If a bug is found in the baseline version of a software module, a change
request is submitted. The request is reviewed and, if approved, the changes are
made. The new version is then added to the version control register.
12
Avoiding Version Mismatch:
13
Proper version control ensures that all team members work with the latest
version of the software components. This prevents conflicts and reduces the need
for rework.
14
Example: If a developer accidentally uses an outdated version of a code library, it
might cause errors in the application. By using the version control system, the
developer can quickly identify the latest version and update their code
accordingly.
15
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/19
controlling changes in a software project with the objective of
minimizing
mistakes. SCM is different from software maintenance.
Software maintenance is
required after the software is delivered to the client and is put
into operation. As
opposed to this, SCM is a set of tracking and controlling
activities that begins
when a software project begins and ends only when the
software is taken out of
operation.
⇒Baselines vs. Interim Versions
SCM differentiates between baselines and interim versions. A
baseline is a tested
and certified version of a system. Baselines can be assigned
version numbers such
as 1.0, 2.0, 3.0, and so on. A baseline usually undergoes
intensive testing. Interim
versions, on the other hand, have version numbers, such as 1.1
or 1.2. The interim
version is a temporary version. Interim versions have a short
life and survive only
during bug fixing, testing, or debugging. However, interim
versions also have a
unique version number or name. Baselines are more visible
with the marketing
team and the vendors than the interim versions. However, as
part of SCM, all
versions of changes are saved, clearly labeled, and archived.
Archiving is the
process of maintaining controlled copies of prior versions.
Archiving helps in recreating earlier versions in the event of
data loss or data corruption.
⇒Effective Configuration Control
Effective configuration control requires effective and well-
defined organization.
Any configuration control method must be based on the
following four concepts:
A clearly defined configuration management authority must be
established.
Configuration control standards, procedures and guidelines
must be produced and
distributed to the developers.
Software Project Management (CS615)
116
© Copyright Virtual University of Pakistan
Configuration control cannot be effective without the
necessary tools and
facilities.
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/19
A configuration management plan must be developed at the
beginning of the
project.
The configuration management environment consists of the
resources necessary
for the implementation of the configuration control plan.
Configuration control tools, including:
ƒ Automatic version control and
ƒ Change control tools
ƒ Monitoring, auditing and registration support utilities
ƒ Storage facilities; a safe repository for all approved
configuration items,
including:
– On-site storage for the day to day development process
– Off-site storage for catastrophe recovery
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Software Configuration Management vs. Software
Software Configuration Management vs. Software
Software Configuration Management vs. Software
Software Configuration Management vs. Software
Software Configuration Management vs. Software
Maintenance
Maintenance
Maintenance
Maintenance
Maintenance
Baselines vs. Interim Versions
Baselines vs. Interim Versions
Baselines vs. Interim Versions
Baselines vs. Interim Versions
Baselines vs. Interim Versions
Software Configuration Management (SCM):
1
SCM is an ongoing process that begins when a software project starts and
continues until the software is no longer in use. It involves identifying, organizing,
and controlling changes within a software project to minimize errors.
2
Example: During the development of a new feature in a project, SCM is used to
track all the changes made to the code, documents, and design artifacts. This
ensures that all modifications are documented, reviewed, and approved.
3
Software Maintenance:
4
Software maintenance takes place after the software has been delivered and is in
use by the client. It involves fixing issues, making updates, and adding new
features based on user feedback and changing requirements.
5
Example: After delivering a mobile app to the client, the development team
notices that users are reporting bugs. The team then works on fixing these bugs
and updating the app, which is a part of software maintenance.
6
Baselines:
1
A baseline is a stable, tested, and certified version of a system that is formally
reviewed and approved. Baselines are often assigned major version numbers like
1.0, 2.0, etc.
2
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/19
⇒Guidelines for effective configuration management
The following are some additional guidelines for effective
configuration
management. Some of these guidelines are equally applicable
to other
management support functions.
• Configuration management requires authority in order to be
Effective Configuration Control
Effective Configuration Control
Effective Configuration Control
Effective Configuration Control
Effective Configuration Control
By implementing effective configuration control, teams can ensure that all changes are
properly managed, reducing the risk of errors and improving the overall quality of the
software.
Example: After completing all the testing and getting approval from the
stakeholders, the team releases version 1.0 of their software as the first baseline.
This version is considered stable and ready for use.
3
Interim Versions:
4
Interim versions are temporary versions created during bug fixing, testing, or
debugging. They usually have minor version numbers like 1.1, 1.2, etc., and are not
intended for long-term use.
5
Example: During the development phase, the team discovers some bugs and fixes
them, releasing version 1.1 as an interim version. This version is used internally
for further testing and is not released to the public.
6
Configuration Management Authority:
1
A specific authority or team is designated to oversee the configuration
management process and ensure compliance with the established standards.
2
Example: A project manager is assigned the role of configuration management
authority, responsible for approving changes and ensuring that all team members
follow the SCM procedures.
3
Standards, Procedures, and Guidelines:
4
Clear guidelines and procedures are developed and distributed to the
development team to ensure everyone understands the SCM process.
5
Example: The SCM team creates a document outlining the steps for requesting,
reviewing, and implementing changes. This document is shared with all
developers to ensure consistency.
6
Necessary Tools and Facilities:
7
The organization provides the required tools and resources, such as version
control systems and storage facilities, to support the SCM process.
8
Example: The team uses a version control system like Git to manage code changes
and a secure server to store all approved configuration items.
9
Configuration Management Plan:
10
A detailed plan is developed at the beginning of the project to outline how
configuration management will be implemented and maintained.
11
Example: Before starting the project, the team creates a configuration
management plan that includes the processes for version control, change control,
and auditing, ensuring everyone knows their roles and responsibilities.
12
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/19
effective. This
authority must be clearly delegated by the project manager to
the responsible
engineers. Any configuration management plan will become
meaningless if
the plan cannot be enforced.
• Blunt enforcement of any plan policy or standard is best
avoided, whenever
possible. One of the qualities of a good manager is the ability to
apply policy
with minimal enforcement. Whenever policies and standards
are readily
accepted by the developers, they are more willingly followed
and there are
fewer rejections of submitted material. This leads to a more
efficient
development process.
• Configuration management should be implemented from the
start of a
software project. Many of the formal documents issued during
the initial
concept phase are crucial for the requirements and design
phases, and must be
placed under configuration control.
• The early application of configuration management is
especially important in
rapid prototyping, spiral models, or other iterative development
methodologies. These development approaches initially
produce several
Software Project Management (CS615)
117
© Copyright Virtual University of Pakistan
versions of each product. Many different versions can become
an engineering
nightmare without orderly configuration control.
• Occasionally some software configuration control activities
may overlap with
software quality assurance activities. In small projects, these
two functions
may be assigned to a single support engineer. Even in large
projects, these two
functions are sometimes performed by a single support group.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/19
⇒Misapplication of Guidelines
It should be noted that configuration management can be
Guidelines for Effective Configuration Management
Guidelines for Effective Configuration Management
Guidelines for Effective Configuration Management
Guidelines for Effective Configuration Management
Guidelines for Effective Configuration Management
Authority in Configuration Management:
1
For configuration management (CM) to be effective, authority must be delegated
to the appropriate engineers by the project manager. This authority allows them
to enforce the CM plan effectively.
2
Example: The project manager delegates authority to the lead software engineer,
allowing them to approve or reject changes to the codebase based on the CM
plan. This ensures that the lead engineer can make decisions that align with the
project goals.
3
Minimal Enforcement of Policies:
4
Blunt enforcement of policies and standards should be avoided. Instead, the
policies should be applied in a way that makes them easily acceptable to
developers. This encourages compliance and reduces resistance.
5
Example: The CM team presents the policies in a way that highlights their
benefits to the developers, such as reducing rework and improving collaboration.
By doing so, the developers are more likely to follow the policies without feeling
forced.
6
Early Implementation of Configuration Management:
7
Configuration management should be implemented from the beginning of a
software project. This ensures that important documents and artifacts from the
initial phases are properly managed and controlled.
8
Example: As soon as the project begins, the CM team starts tracking and
managing documents like the project charter, requirements specification, and
design documents. This ensures that all changes are documented and controlled
right from the start.
9
Importance in Iterative Development Methodologies:
10
In development approaches like rapid prototyping, spiral models, or other
iterative methodologies, configuration management is especially important.
These methodologies produce multiple versions of the product, which can
become difficult to manage without proper CM.
11
Example: In a project using the spiral model, the team develops several iterations
of the software. The CM team tracks each version, ensuring that all changes are
documented and that there is a clear path from one version to the next.
12
Overlap with Software Quality Assurance:
13
In some projects, activities related to configuration management may overlap
with software quality assurance (SQA) activities. In small projects, these activities
may be handled by a single support engineer. In larger projects, they might be
managed by a single support group.
14
Example: In a small software project, a single engineer is responsible for both CM
and SQA. They ensure that changes are properly managed and that the software
meets the required quality standards. In larger projects, a dedicated support
group handles both CM and SQA, ensuring consistency across the project.
15
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 17/19
greatly exaggerated.
The various configuration control activities are not an objective
in themselves,
they are a means.
• A typical example of the misapplication of configuration
management (and
misguided quality control), is a requirement to modify reused
software to
comply with current standards and procedures.
• Reused software is software developed previously in another
project, and
found suitable to be incorporated into the current project. In
such cases it
rarely makes sense to modify a complete and working product
in order to
make it comply with administrative standards intended to make
it a complete
and working product.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
give me answer in not more than 170 words
Misapplication of Guidelines
Misapplication of Guidelines
Misapplication of Guidelines
Misapplication of Guidelines
Misapplication of Guidelines
Exaggerated Configuration Management:
1
Configuration management should not be viewed as an end in itself but rather as a
means to support project goals.
2
Example: A project team is required to enforce strict configuration management
rules even for trivial or non-critical changes. This leads to delays and frustration
among the team members without adding significant value to the project.
3
Unnecessary Modification of Reused Software:
4
Modifying reused software just to meet current standards, when the software is
already functioning correctly, is a common misapplication of configuration
management.
5
Example: A team decides to alter a well-tested and functioning module from a
previous project to comply with new documentation standards. This effort
consumes time and resources without improving the software's functionality or
performance, demonstrating a misapplication of configuration management
principles.
6
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 18/19
From ChatGPT, designed with FancyGPT
16/08/2024, 08:09 FancyGPT - cs611 lecture 17
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 19/19
cs611 lecture 18
cs611 lecture 18
cs611 lecture 18
cs611 lecture 18
cs611 lecture 18
LECTURE # 18
2. Software Development Fundamentals
Technical Fundamentals
2.15 Quality Assurance Management
⇒Definition
According to American Heritage Dictionary, quality is
defined as an inherent or
distinguishing characteristic or a property.
The distinguishing characteristics of a software
product are the cyclomatic
complexity, cohesion, function points, and lines of
code. These characteristics of
a software product define the quality of the product.
• The US DOD (1988) defines software quality rather
simply as:
– The ability of a software product to satisfy its
specified requirements.
• The British Standards Institution (1986) has stated
that:
– “Quality is in the eye of the beholder, a matter, of the
client's judgment.”
⇒Quality Standards and Procedures
The quality of software is said to be high if it meets the
standards and procedures,
defined for the product. Standards are criteria to
which the products are compared.
For example, there may be standards that govern the
quality review process.
Documentation standard design standard and code
standard are the three types of
standards that software projects usually follow.
Documentation standard specifies the form and
content for planning, control, and
product documentation. Design standards provide
rules and methods for
translating the software requirements into software
design. The design standards
are specified in the form and content of the product
design.
Unlike documentation standard, code standard
defines the language in which code
should be written. The standard clearly mentions the
structures, style conventions,
and rules for data structures and interfaces that will
be implemented in the project.
Software Project Management (CS615)
119
© Copyright Virtual University of Pakistan
Procedures are criteria to which the development and
control processes are
compared. Procedures are explicit steps followed in a
process. Procedures need to
be properly documented because they are needed for
configuration management,
nonconformance reporting, corrective action, testing,
and formal inspections.
Proper documentation of procedures is necessary
because SQA activities rely on
them for project compliance. Organizations normally
enforce quality standards
with the help of checklists, common error lists, and
standards and guidelines.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
⇒Concepts
Product quality depends on its conformance to
software requirements,
development standards, and implicit requirements.
During software development, the quality of a product
depends on the quality of
the design.
The quality of product design, in turn, depends on how
effectively the product
designer captures the client requirements and
specifications. At times, the client
has some implicit requirements that are not captured
in the requirements
document. There are three things that guide
requirements: want, desire, and wish.
Usually, wants are captured explicitly in the
requirements documents. However, if
you manage to capture desires and wishes, the
product becomes a great success.
The product designer needs to state these implicit
requirements clearly during
analysis. The adherence to these implicit requirements
is the key attribute that sets
one product apart from another.
The product quality also depends on how strictly, and
to what degree the
developer adheres to design specifications. This is
what the concept quality is
meeting or exceeding our client's needs and
requirements' means.
The product quality is said to be high if the product is
manufactured according to
design specifications.
⇒Quality Control
Quality control is a series of review activities, such as:
• Inspections
• Reviews and
• Tests, used throughout the SDLC of the software
product
The objective of quality control is to find problems as
early as possible and fix
them.
Quality control ensures that the software product
meets the requirements defined
at every stage in its development.
Software Project Management (CS615)
120
© Copyright Virtual University of Pakistan
There is provision for feedback mechanism during
quality control. Any slippage
in meeting the requirements during the development
process is communicated to
the development team immediately.
Feedback ensures that errors or misses found during
quality control are rectified
as soon as they are detected.
During software development, quality control plays a
valuable role by evaluating
products against standards and specifications.
Quality control activities can be fully automated
manual, or a combination of
these. Quality control involves monitoring specific
project results to determine if:
– They comply with relevant quality standards
– Identifying ways to eliminate causes of
unsatisfactory results.
Project results include both:
– Product results, such as deliverables, and
– Project management results, such as cost and
schedule performance.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples based on the text provided:
Concepts
Concepts
Concepts
Concepts
Concepts
Quality Control
Quality Control
Quality Control
Quality Control
Quality Control
Product Quality and Conformance: The quality of a software product is
judged by how well it meets the software requirements, follows the
development standards, and includes any additional needs that the client
might not have explicitly mentioned. For example, if a client asks for a
website that allows users to log in, the product must not only include a
working login system (explicit requirement) but also load quickly and look
good on all devices (implicit requirements).
Quality of Product Design: The effectiveness of the product design
depends on how well the designer understands and captures the client's
requirements. For instance, if a client wants an application that is easy to
use, the designer needs to understand what easy to use means to the
client and ensure that the final design reflects this. If the designer also
captures desires and wishes that the client didn’t clearly state, like a modern
user interface, the final product will likely exceed expectations.
Adherence to Design Specifications: The product's quality is high if the
developers strictly follow the design specifications when building the
software. For example, if the design specifies that the application should
load within 2 seconds, the developers need to ensure that this is achieved in
the final product.
Inspections: During inspections, developers or quality control teams
carefully check parts of the software or documents to find any issues. For
example, reviewing the code to ensure it follows coding standards.
Reviews: In reviews, the software team goes through various aspects of the
project, like design or test plans, to identify any potential problems. For
example, a design review might check if the software meets the user’s needs
before development starts.
Tests: Testing involves running the software to check if it works correctly.
For example, testing a login system to ensure it accepts valid credentials and
rejects invalid ones.
Feedback Mechanism: If any problems are found during inspections,
reviews, or tests, they are immediately communicated to the development
team so they can fix them quickly. For example, if a test reveals that a
feature isn’t working, the development team is informed right away so they
can correct the issue.
⇒Quality Factors
There are a number of factors that determine the
quality of a software product.
These factors can be measured either directly or
indirectly. McCall (MCC77) and
his colleagues proposed some software quality factors
based on three most
important aspects of a software product:
1. Product operation
2. Product revision and
3. Product transition
1. Product Operation Factors
The product operation factors determine the quality
of software when a
program is executed. Good quality software is not only
correct and reliable
but also delivers correct performance in all
circumstances. Some of the factors
of product operation are correctness, reliability,
efficiency, integrity, and
Monitoring Compliance with Quality Standards: Quality control also
involves checking if the software meets specific quality standards, like
ensuring that the software works correctly across different devices. If the
software fails to meet these standards, steps are taken to find and fix the
causes of these failures.
Project Results: Quality control doesn't only focus on the software itself
but also on how well the project is managed. For example, it monitors
whether the project is staying within the budget and timeline (project
management results) and whether the final software product meets the
expected quality (product results).
usability. You can look at the factor description in
Table 1.
Table 1: Product Operation Factors
Correctness Accuracy of the program and the extent
to which it fulfills design specifications
Reliability Extent to which the program is secure and
its ability to recover quickly from failure.
Software Project Management (CS615)
121
© Copyright Virtual University of Pakistan
Efficiency Performance of the program and its ability
to perform tasks within a time frame
Integrity Ability of the program to take care of
security and the extent to which it can prevent
unauthorized.
Usability Ease with which a user can learn, operates,
and uses the program.
2. Product Revision Factors
Product revision factors focus on the ease of
maintenance of the software
product. Maintenance tasks could be either correcting
faults in the original
design or making improvements to adapt the
functionality to changing
environments. Product revision covers the following
factors: maintainability,
flexibility, and testability. These factors are described
in Table 2.
Table 2: Product Revision Factors
Maintainability Ease with which a program is
debugged.
Flexibility Ease with which a program is modified.
Testability Ease with which a program is tested.
3. Product Transition Factors
The product transition factors determine the quality
of programs that are
designed for open systems. Here the focus is more on
the portability and
reusability of a software product. To help a system run
on different platforms,
certain parts of a system may be reused. The product
transition factors are
portability, reusability, interoperability, configurability,
and expandability.
These factors are described in Table 3.
Table 3: Product Transition Factors
Portability Efficiency with which a program runs on
different platforms or operating systems
Reusability Extent to which the program can be used
in more than one program or system
Interoperability Effort needed to transfer a program
to another system
Configurability Ability of the program to be installed
at more than one location with different
features at each location
Expandability Ability of the program to support an
increase in data and users
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples based on the text provided:
Quality Factors
Quality Factors
Quality Factors
Quality Factors
Quality Factors
1. Product Operation Factors
1. Product Operation Factors
1. Product Operation Factors
1. Product Operation Factors
1. Product Operation Factors
These factors determine how well the software works when it is running.
2. Product Revision Factors
2. Product Revision Factors
2. Product Revision Factors
2. Product Revision Factors
2. Product Revision Factors
These factors focus on how easy it is to maintain and update the software after it
has been developed.
Correctness: If a software program is designed to calculate taxes,
correctness means it should accurately calculate the correct amount of tax
based on the input it receives. If it follows the design specifications
perfectly, it is considered correct.
Reliability: A reliable software program, like an online banking app, should
consistently perform its tasks without crashing. If it encounters a problem, it
should be able to recover quickly, such as by reconnecting to the server
automatically after losing connection.
Efficiency: This refers to how well the software performs its tasks within a
given time. For example, a search function in an application should return
results quickly, even when searching through a large database.
Integrity: Integrity means the software is secure and can protect against
unauthorized access. For example, a password-protected system should
prevent users who don’t have the correct password from accessing sensitive
information.
Usability: Usability refers to how easy it is for users to learn and use the
software. For instance, a mobile app with clear navigation and simple
instructions is considered user-friendly and has high usability.
Maintainability: If a software program has a bug, maintainability refers to
how easily a developer can find and fix that bug. For example, if the code is
well-organized and documented, it will be easier to debug.
Flexibility: Flexibility means how easily the software can be modified to add
new features or adapt to changes. For instance, if a business wants to add a
new payment option to their e-commerce site, the software should be
flexible enough to allow this change without needing a complete overhaul.
From ChatGPT, designed with FancyGPT
3. Product Transition Factors
3. Product Transition Factors
3. Product Transition Factors
3. Product Transition Factors
3. Product Transition Factors
These factors determine how well the software can adapt to different
environments or be reused in other systems.
Testability: Testability refers to how easily the software can be tested to
ensure it works correctly. For example, if the software is designed with clear,
separate functions, it will be easier to test each part individually to ensure
there are no issues.
Portability: Portability refers to how easily the software can run on
different platforms, like moving a desktop application to run on both
Windows and macOS without much modification.
Reusability: If a software component, like a login system, can be reused in
different applications (e.g., a website, a mobile app, and a desktop app), it
has high reusability.
Interoperability: Interoperability means how easily the software can work
with other systems. For example, a messaging app that can send messages
to users on different platforms (like Android and iOS) has good
interoperability.
Configurability: Configurability refers to the ability to set up the software
differently depending on where it is installed. For instance, a point-of-sale
system might be installed in different stores with slightly different features
tailored to each store's needs.
Expandability: Expandability means the software can support an increase in
data or users without significant changes. For example, a cloud storage
service should be able to handle more users or more data as the need grows
without performance issues.
cs611 lecture 19
cs611 lecture 19
cs611 lecture 19
cs611 lecture 19
cs611 lecture 19
LECTURE # 19
2. Software Development Fundamentals
Technical Fundamentals
2.15 Quality Assurance Management
⇒Software Quality Assurance Activities
SQA is the process of evaluating the quality of a
product and enforcing adherence
to software product standards and procedures. It is an
umbrella activity that
ensures conformance to standards and procedures
throughout the SDLC of a
software product. There are a large number of tasks
involved in SQA activities.
These include:
i. Formulating a quality management plan
ii. Applying software engineering techniques
iii. Conducting formal technical reviews
iv. Applying a multi-tiered testing strategy
v. Enforcing process adherence
vi. Controlling change
vii. Measuring impact of change
viii. Performing SQA audits
ix. Keeping records and reporting
i. Formulating a Quality Management Plan
One of the tasks of SQA is the formulation of a quality
management plan. The
quality management plan identifies the quality aspects
of the software product to
be developed. It helps in planning checkpoints for
work products and the
development process. It also tracks changes made to
the development process
based on the results of the checks. The quality
management plan is tracked as a
live plan throughout the SDLC.
ii. Applying Software Engineering
Application of software engineering techniques helps
the software designer to
achieve high quality specification. The designer
gathers information using
techniques such as interviews and FAST. Using the
information gathered, the
designer prepares project estimation with the help of
techniques such as WBS,
SLOC estimation, or FP estimation.
iii. Conducting Formal Technical Reviews
Formal technical review (FTR) in conducted to assess
the quality and design of
the prototype. It is a meeting with the technical staff
to discuss the quality
Software Project Management (CS615)
123
© Copyright Virtual University of Pakistan
requirements of a software product and its design
quality. FTRs help in detecting
errors at an early phase of development. This prevents
errors from percolating
down to the latter phases and resulting in rework.
iv. Applying a Multi-tiered Testing Strategy
Software testing is a critical task of SQA activity,
which aims at error detection.
Unit testing is the first level of testing. The
subsequence levels of testing are
integration testing and system level testing. There are
various testing strategies
followed by organization. At times, developers
perform unit testing and
integration testing with independence testing support.
There are also occasions
where testers perform functional testing and system
level testing with developer
support. Sometimes beta testing with selected clients
is also conducted to test the
product before it is finally released.
v. Enforcing Process Adherence
This task of SQA emphasizes the need for process
adherence during product
development. In addition, the development process
should also adhere to
procedures defined for product development.
Therefore, this is a combination of
two tasks, product evaluation and process monitoring.
vi. Product Evaluation
Product evaluation ensures that the standards laid
down for a project are followed.
During product evaluation, the compliance of the
software product to the existing
standards is verified. Initially, SQA activities are
conducted to monitor the
standards and procedures of the project. Product
evaluation ensures that the
software product reflects the requirements identified
in the project management
plan.
vii. Process Monitoring
Process monitoring ensures that appropriate steps to
follow the product
development procedures are carried out. SQA
monitors processes by comparing
the actual steps carried out with the steps in the
documented procedures.
Product evaluation and process monitoring ensure
that the development and
control processes described in the project
management plan are correctly carried
out. These tasks ensure that the project-re1ated
procedures and standards are
followed. They also ensure that products and
processes conform to standards and
procedures. Audits ensure that product evaluation
and process monitoring are
performed.
viii. Controlling Change
This task combines human procedures and automated
tools to provide a
mechanism for change control. The change control
mechanism ensures software
quality by formalizing requests for change, evaluating
the nature of change, and
controlling the impact of change. Change control
mechanism is implemented
during the development and maintenance stages.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
ix. Measuring Impact of Change
Change is inevitable in the SDLC. However, the change
needs to be measured and
monitored. Changes in the product or process are
measured using software quality
metrics. Software qua1ity metrics helps in estimating
the cost and resource
requirements of a project. To control software quality;
it is essential to measure
quality and then compare it with established
standards. Software qua1ity metrics
are used to evaluate the effectiveness of techniques
and tools, the productivity of
development activities and the qua1ity of products.
Metrics enables mangers and
developers to monitor the activities and proposed
changes throughout the SDLC
and initiate corrective actions.
x. Performing SQA Audits
SQA audits scrutinize the software development
process by comparing it to
established processes. This ensures that proper
control is maintained over the
documents required during SDLC. Audits also ensure
that the status of an activity
performed by the developer is reflected in the status
report of the developer.
xi. Keeping Records and Reporting
Keeping records and reporting ensure the collection
and circulation of information
relevant to SQA. The results of reviews, audits, change
control, testing, and other
SQA activities are reported and compiled for future
reference.
⇒Software Review
Software review is an effective way of filtering errors
in a software product.
Typically, an error found after the product release
costs 50 times as much to
correct as one detected during the design phase.
This means the cost of fixing a defect rises
dramatically if it is found late in the
development life cycle of the product. Therefore, you
need to filter errors as early
as possible.
Software review is used as a filter at various points of
software development.
Reviews conducted at each of these phases, analysis,
design, coding, and testing
reveal areas of improvement in the product.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Reviews also indicate those areas that do not need any
improvement. You can use
software reviews to achieve consistency and
uniformity across products. Reviews
also make the task of product creation more
manageable. Some of the most
common software review techniques, practiced across
software organizations
include:
a) Inspection
b) Walkthrough
c) Formal technical reviews
a) Inspections
Software Project Management (CS615)
125
© Copyright Virtual University of Pakistan
Inspections improve the reliability, availability, and
maintainability of a
software product. Anything readable that is produced
during software
development can be inspected. The readable material
can be requirements
specifications, design documents and models, test
plans, system
documentation, and user aids. Group inspections
enable team members to
exchange knowledge and ideas during an inspection
session.
Inspections can be combined with structured,
systematic testing to provide a
powerful tool for creating defect-free programs. The
inspection activity
follows a specified process and the participants play
well-defined roles. An
inspection team consists of three to eight members
who play the roles of
moderator, author, reader, recorder, and inspector.
Moderator leads the inspection, schedules meetings,
controls meetings, reports
inspection results, and follows up on rework issues.
Author creates or
maintains the work product being inspected. Reader
describes the sections of
the work product to the team as they proceed through
inspection. Recorder
classifies and records defects and issues raised during
the inspection. The
moderator might perform this role in a small
inspection team. Inspector finds
errors in the product. All participants play the role of
inspectors. However,
good inspectors are those who have created the
specification for the work
product being inspected. For example, the designer
can act as an inspector
during code inspection while a quality assurance
representative can act as
standard enforcer. It also helps to have a client
representative participate in
requirements specification inspections.
b) Walkthroughs
The term walkthrough refers to a group activity in
which the developer of the
product guides the progress of the review.
Walkthroughs are less rigorous than
either formal inspections or peer reviews in which the
developer plays a more
passive role. Normally walkthroughs turn into a
presentation by the author.
The focus of finding errors is diluted. Such
misadventures make walkthroughs
usually less successful at detecting bugs than the more
formal review
methods.
Two useful walkthrough approaches adopted
worldwide are group reviews
with individual preparation and individual peer desk-
checks. Group reviews
are not very rigorous like inspections. The group
reviews involve many of the
same activities and roles, such as individual
preparation and the use of a
moderator and a recorder. Usually the overview
meeting and the follow-up
steps are skipped and checklists are used sparingly. At
the end, the readers
paraphrase their interpretation of what a program is
doing.
Software Project Management (CS615)
126
© Copyright Virtual University of Pakistan
Individual peer desk-checks are quite cost-effective.
Only one person besides
the author examines the material. This approach can
be more effective if there
are individuals who are extremely good at finding
defects on their own.
Tip:
If someone consistently finds most of the group-
identified defects during the
individual preparation step, such a person is fit to
perform individual peer
desk-checks.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
cks.
c) Formal Technical Reviews
One of the most common, yet important, software
quality assurance activity
performed is FTR. This activity is performed to check
errors in logic,
function, or implementation for any representation of
the software.
Using FTR, you can verify whether or not the software
product adheres to the
defined standards. FTR is also conducted to check for
consistency in the
software product and audit the manageability of the
software product. It
includes activities such as walkthrough and inspection.
FTR focuses on specific parts of the software product,
such as the
requirements components, detailed design module,
and the source code listing
for a module.
FTR also concentrates on the entire product. The
participants in FTR are the
developer, the project leader, and all the reviewers.
At the end of the review meeting, the issues recorded
are formalized into
review issues list. The minutes of the meeting are
summarized into a review
summary report as displayed in table 4.
Technical Review Report
Review Identification
Project Name Current Phase Review Number
Product Identification
Item Reviewed Version No. Developer
Brief Description
Documents Referred (along with versions, if any)
Start Name End Time
Review Material Attached: Yes / No
Participants Role Preparation Time
Software Project Management (CS615)
127
© Copyright Virtual University of Pakistan
Total Review Time (No. of Participants * Actual
duration of meeting)
Total Review Person Hours
Product Appraisal
Accepted as is ( ) With Minor Modification ( )
Not Accepted Major Revision ( ) Minor Revision ( )
Review Not Completed (Explanation as follows)
Supplementary Material Attached
Issue Lists: Others
Revise and Reschedule (if required) Target Date for
Next Review
Verification of Defect Closure
Responsibility of: Planned Date of Verification
Recommended for Release Signature: Date:
Table 4: Technical Review Report
Tip:
To prepare realistic schedule, you can collect data
from past projects. Speak to related
project managers regarding time estimation for
reviews, the review capacity of the
reviewer, and estimates the review effort accordingly.
Percentage of
Defects Removed
Development
Time
Fastest schedule
(BEST schedule)
Most Organizations Are somewhere around this
point
95% 100%
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
The image provided appears to be a chart demonstrating the relationship
between Development Time and Percentage of Defects Removed in software
development, with annotations highlighting key points like the Fastest schedule
(BEST schedule) and where Most Organizations Are somewhere around this
point.
This chart illustrates the balance between removing defects and minimizing
development time. The curve suggests that, as more defects are removed,
development time initially decreases, reaching an optimal point. Beyond this
point, attempting to remove more defects (e.g., moving from 95% to 100%) causes
an increase in development time, likely due to diminishing returns and the
difficulty of finding and fixing the remaining defects.
To tie this chart to your lecture on software quality assurance activities and
review techniques:
FTR (Formal Technical Reviews): Formal Technical Reviews, such as
inspections and walkthroughs, help identify and fix defects early, moving the
development process toward that optimal point on the curve where the
highest number of defects are removed with minimal additional
development time.
Multi-tiered Testing Strategy: A testing strategy that includes unit testing,
integration testing, and system-level testing is critical for defect removal. As
organizations aim for a higher percentage of defects removed, this strategy
ensures that defects are caught across different levels, contributing to a
more efficient development process.
SQA Audits and Change Control: These processes help monitor adherence
to quality standards, ensuring that the development doesn't fall off track.
From ChatGPT, designed with FancyGPT
In practice, this chart reminds us that striving for 100% defect removal can be
counterproductive if it significantly extends development time. The goal is to find
an optimal balance where most defects are removed while keeping development
time within a reasonable limit.
When issues are found, these mechanisms allow for correction without
causing a significant delay in development time.
cs611 lecture 20
cs611 lecture 20
cs611 lecture 20
cs611 lecture 20
cs611 lecture 20
Figure 1: Quality Assurance
LECTURE # 20
3. Processes
3.1 Software Process
When you build a product or system, it's important to
go through a series of
predictable steps – a road map that helps you create a
timely, high-quality result,
The road map that you follow is called a 'software
process' .
Software engineers and their managers adapt the
process to their needs and then
follow it. In addition, the people who have ties defined
by the process requested
the software play a role in the software process.
It provides stability, control, and organization to an
activity that can, if left
uncontrolled, become quite chaotic.
At a detailed level, the process that you adopt depends
on the software you're
building. One process might be appropriate for
creating software for an aircraft
avionics system, while an entirely different process
would be indicated for the
creation of a web site.
From the point of view of a software engineer, the
work products are the
programs, documents and data produces as a
consequence of the software
engineering activities defined by the process.
A number of software process assessment
mechanisms enable organizations to
determine the “maturity” of a software process.
However, the quality, timeliness
and long-term viability of the product you build are
the best indicators of the
efficacy of the process that you use.
A common process framework is established by
defining a small number of
framework activities that are applicable to all
software projects, regardless of their
size or complexity. A number of task sets-each a
collection of software
engineering work tasks, project milestones, work
products, and quality assurance
points enable the framework activities to be adapted
to the characteristics of the
software project and the requirements of the project
team. Finally, umbrella
activities-such as software quality assurance, software
configuration management,
and measurement - overlay the process model.
Umbrella activities are
independent of anyone framework activity and occur
through- out the process.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Let's break down the concepts from the provided text and give simple, beginner-
level examples for each:
Software Process
Software Process
Software Process
Software Process
Software Process
Common Process Framework
Common Process Framework
Common Process Framework
Common Process Framework
Common Process Framework
Framework Activities
Framework Activities
Framework Activities
Framework Activities
Framework Activities
Task Sets
Task Sets
Task Sets
Task Sets
Task Sets
Definition: A software process is a set of steps that software engineers and
managers follow to create a software product.
Example: Imagine you are working on a project to develop a mobile app. The
software process would be the specific steps you follow, like planning,
designing, coding, testing, and deploying the app.
Definition: A common process framework is a structure that includes key
activities applicable to all software projects, no matter how big or small.
Example: Whether you are building a small website or a large enterprise
system, you would follow certain common steps like requirement gathering,
designing the system architecture, implementing the code, and testing the
software before release.
Definition: These are the core activities that are necessary for any software
project.
Example: In any project, you need to plan what needs to be done, design the
solution, write the code, test the solution, and finally deploy it.
Definition: Task sets are collections of work tasks, milestones, work
products, and quality assurance points tailored to a specific project.
Example: If you are developing an e-commerce website, your task set might
include tasks like setting up a product database, integrating payment
gateways, testing user login functionality, and ensuring the website meets
quality standards.
⇒Software Process Vs Software Engineering
But what exactly is a software process from a
technical point of view? A software
Project Milestones
Project Milestones
Project Milestones
Project Milestones
Project Milestones
Work Products
Work Products
Work Products
Work Products
Work Products
Quality Assurance Points
Quality Assurance Points
Quality Assurance Points
Quality Assurance Points
Quality Assurance Points
Umbrella Activities
Umbrella Activities
Umbrella Activities
Umbrella Activities
Umbrella Activities
These examples are simple and aligned with the lecture content you provided,
ensuring a coherent and consistent explanation.
Definition: Milestones are significant points in the project timeline where
specific goals or objectives are achieved.
Example: A milestone in your project could be completing the design phase
or successfully launching the beta version of your software.
Definition: Work products are the tangible outcomes produced during the
software process, such as code, documentation, and data.
Example: The code you write, the user manuals you create, and the test
results you document are all work products.
Definition: Quality assurance points are checks in the process where the
quality of the work products is evaluated.
Example: Before you release your software, you might have a quality
assurance point where you thoroughly test the software to make sure it
works correctly and meets user requirements.
Definition: These are ongoing activities that support the software process
but are not tied to any specific step in the process.
Example: Throughout the project, you might continuously manage changes
to the code (configuration management) or measure the progress of the
project (measurement). These are umbrella activities that happen alongside
the main steps of the process.
process is a framework for the tasks that are required
to build high-quality
software. Is process synonymous with software
engineering? The answer is yes
and no. A software process defines the approach
that is taken as software is
engineered. But software engineering also
encompasses technologies that
populate the process-technical methods and
automated tools.
More important, software engineering is performed
by creative, knowledgeable
people who should work within a defined and mature
software process that is
appropriate for the products they build, and the
demands of their marketplace.
⇒Software Engineering
Software engineering is a layered technology.
Referring to Figure 2, any
engineering approach (including software
engineering) must rest on an
organizational commitment to quality. Total quality
management and similar
philosophies foster a continuous process
improvement culture, and this culture
ultimately leads to the development of increasingly
more mature approaches to
Figure 1: The software Process
Tasks
Milestones,
SQA points
Tasks
Framework activities
Common process
Software Project Management (CS615)
130
© Copyright Virtual University of Pakistan
software engineering. The bedrock that supports
software engineering is a quality
focus.
Figure 2: Software engineering layers
The foundation for software engineering is the
process layer. Software
engineering process is the glue that holds the
technology layers together and
enables rational and timely development of computer
software. Process defines a
framework for a set of key process areas that must be
established for effective
delivery of software engineering technology.
The key process areas form the basis for management
control of software projects
and establish the context in which technical methods
are applied, work products
(models, documents, data, reports, forms, etc.) are
produced, milestones are
established, quality is ensured, and change is properly
managed.
Software engineering methods provide the technical
how-to’s for building
software. Methods encompass a broad array of tasks
that include requirements
analysis, design, program construction testing and
support. Software engineering
methods rely on a set of basic principles that govern
each area of the technology
and include modeling and other descriptive
techniques.
Software engineering tools provide automated or
semi-automated support for the
process and the methods. When tools are integrated
so that information created by
one tool can be used by another, a stem for the
support of software development
called computer-aided software engineering, is
established. CASE combines
software, hardware, and a software engineering
database (a repository containing
important information about analysis, design, program
construction and testing) to
create software engineering environment analogous
to CAD/CAE (computeraided design engineering) for
hardware.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Let's break down the concepts from the provided text and give simple, beginner-
level examples for each:
Software Process vs. Software Engineering
Software Process vs. Software Engineering
Software Process vs. Software Engineering
Software Process vs. Software Engineering
Software Process vs. Software Engineering
Software Process:
Definition: A software process is a framework that outlines the tasks
required to develop high-quality software.
Software Engineering Layers
Software Engineering Layers
Software Engineering Layers
Software Engineering Layers
Software Engineering Layers
The layers represent the components that support software engineering as a
structured and effective practice.
Example: Think of a software process as a step-by-step guide you
follow when creating a mobile app, from planning and design to
coding and testing.
Software Engineering:
Definition: Software engineering is the application of engineering
principles to software development. It includes not just the process,
but also the methods, tools, and people involved.
Example: When you develop a software application, software
engineering covers everything from understanding what the software
needs to do, designing the software, writing the code, and testing it, to
using tools that help make these tasks easier.
Quality Focus:
Definition: The foundation of software engineering is a commitment
to quality. This means focusing on delivering software that meets user
needs and performs reliably.
Example: If you’re developing a website, ensuring that it loads quickly,
works well on different devices, and is easy to use reflects a quality
focus.
Process Layer:
Definition: The process layer is the framework that binds all aspects
of software engineering together, ensuring that the project is
managed effectively and that the software is developed in an
organized way.
Example: The process layer would involve planning the project,
setting timelines, defining tasks, and tracking progress to make sure
everything stays on course.
Methods:
Definition: Methods are the technical steps you take to build
software. This includes analyzing requirements, designing the system,
writing code, testing, and maintaining the software.
3.2 PM Process Groups
Project management processes can be organized into
five groups of one or more
processes each:
1. Initiating processes—authorizing the project or
phase
2. Planning processes—defining and refining
objectives and selecting the best
of the alternative courses of action to attain the
objectives that the project
was undertaken to address
3. Executing processes—coordinating people and
other resources to carry out
the plan
4. Controlling processes—ensuring that project
objectives are met by
monitoring and measuring progress regularly to
These examples are simple and aligned with the lecture content you provided,
ensuring a coherent and consistent explanation.
Example: To develop a mobile app, methods would include gathering
user requirements, creating wireframes (designs), writing the code,
and then testing the app to ensure it functions correctly.
Tools:
Definition: Tools are software or systems that help you carry out the
methods and support the process. These can be automated or semi-
automated.
Example: Using an Integrated Development Environment (IDE) like
Visual Studio to write code, or a testing tool to automatically check
for bugs in your software, are examples of tools in software
engineering.
identify variances from plan
so that corrective action can be taken when necessary
5. Closing processes—formalizing acceptance of the
project or phase and
bringing it to an orderly end
Each process is described by:
– Inputs
– Tools  Techniques
– Outputs
3.3 PM Process Links
The process groups are linked by the results they
produce—the result or outcome of one often becomes
an input to another.
Among the central process groups, the links are
iterated—planning provides
executing with a documented project plan early on,
and then provides documented
updates to the plan as the project progresses. These
connections are illustrated in
Figure 3.
The project management process groups are not
discrete, one-time events; they
are overlapping activities that occur at varying levels
of intensity throughout each
phase of the project. These process groups overlap
and vary within a phase.
Figure 4 illustrates how the process groups overlap
and vary within a phase.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
e.
3.4 PM Phase interactions
Software Project Management (CS615)
132
© Copyright Virtual University of Pakistan
Finally, the process group interactions also cross
phases such that closing one
phase provides an input to initiating the next. For
example, closing a design phase
requires customer acceptance of the design
document. Simultaneously, the design
document defines the product description for the
ensuing implementation phase.
This interaction is illustrated in Figure 5. Repeating
the initiation processes at the
start of each phase helps to keep the project focused
on the business need that it
was undertaken to address. It should also help ensure
that the project is halted if
the business need no longer exists, or if the project is
unlikely to satisfy that need.
It is important to note that the actual inputs and
outputs of the processes depend
upon the phase in which they are carried out.
Although Figure 5 is drawn with
discrete phases and discrete processes, in an actual
project there will be many
overlaps. The planning process, for example, must not
only provide details of the
work to be done to bring the current phase of the
project to successful completion,
but must also provide some preliminary description of
work to be done in later
phases. This progressive detailing of the project plan is
often called rolling wave
planning; indicating that planning is an iterative and
ongoing process.
Involving stakeholders in the project phases generally
improves the probability of
satisfying customer requirements and realizes the
buy-in or shared ownership of
the project by the stakeholders, which is often critical
to project
success.
Figure 3: Links among Process Groups in a phase
Planning
Processes
Initiating
Processes
Controlling
Processes Executing
Processes
Closing
Processes
Software Project Management (CS615)
133
© Copyright Virtual University of Pakistan
Figure 4: Overlap of Process Groups in a Phase
Figure 5: Interaction between phases
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Let's break down the content you've provided into simple, beginner-level
examples for each topic.
Software Process vs. Software Engineering
Software Process vs. Software Engineering
Software Process vs. Software Engineering
Software Process vs. Software Engineering
Software Process vs. Software Engineering
Software Engineering Layers
Software Engineering Layers
Software Engineering Layers
Software Engineering Layers
Software Engineering Layers
Software Process: Think of it as the series of steps or tasks that are
required to develop software. It includes everything from planning to
designing, coding, testing, and maintenance.
Software Engineering: This is a broader concept that includes the software
process but also involves the tools and methods used to develop software,
as well as the knowledge and creativity of the people involved.
Quality Focus: This is the foundation of software engineering. It emphasizes
the importance of maintaining high standards throughout the software
development process.
1
Process Layer: This layer ensures that all activities involved in software
engineering are carried out in an organized and systematic way.
2
Methods Layer: This layer includes the techniques and practices used to
carry out tasks like requirement analysis, design, coding, testing, and
support.
3
Tools Layer: These are the software or applications used to support the
process and methods, making tasks easier and more efficient.
4
Project Management Process Groups
Project Management Process Groups
Project Management Process Groups
Project Management Process Groups
Project Management Process Groups
Process Group Links
Process Group Links
Process Group Links
Process Group Links
Process Group Links
Process Group Overlap
Process Group Overlap
Process Group Overlap
Process Group Overlap
Process Group Overlap
Process Group Interactions Across Phases
Process Group Interactions Across Phases
Process Group Interactions Across Phases
Process Group Interactions Across Phases
Process Group Interactions Across Phases
These explanations should be coherent and consistent for a lecture setting. Let me
know if you need further details or additional examples!
Initiating Processes: These processes are all about starting a project or a
new phase of a project. It involves getting the necessary authorization and
setting the stage for planning.
1
Planning Processes: This group focuses on defining the project’s goals and
how to achieve them. It includes creating plans for scope, time, cost, quality,
and more.
2
Executing Processes: Here, the plans are put into action. The necessary
resources, including people, are coordinated to carry out the tasks defined in
the plan.
3
Controlling Processes: These processes ensure the project stays on track.
Progress is monitored, and any deviations from the plan are corrected to
meet the project’s objectives.
4
Closing Processes: These processes are about formally completing the
project or phase, making sure everything is finalized and the project is closed
properly.
5
Linking Processes: The outcome of one process often becomes the input for
another. For example, the output of the planning process provides the
guidelines for executing the project. As the project progresses, updated
plans provide new directions for execution.
Overlap in Phases: The processes in a project are not isolated; they overlap.
For instance, planning might continue even as execution begins, and
controlling happens throughout execution to keep the project on track.
Interactions Between Phases: The completion of one phase often feeds into
the initiation of the next phase. For example, completing the design phase
might involve getting customer approval, which then triggers the start of
the implementation phase. Planning is also ongoing, with each phase
providing more detailed plans for subsequent phases.
From ChatGPT, designed with FancyGPT
cs611 lecture 21
cs611 lecture 21
cs611 lecture 21
cs611 lecture 21
cs611 lecture 21
LECTURE # 21
3. Processes
3.5 Initiating Process
⇒Inputs
• Product Description
• Strategic Plan
• Selection Criteria
• Historical Information
⇒Outputs
• Project Charter
• Project Manager assignments
• Constraints
• Assumptions
⇒Tools and Techniques
• Project selection methods
• Expert judgment
The tasks performed for project initiation are
mentioned below:
• Requirement gathering: The first task is to gather
the customer requirements.
Customer requirements may be spoken or unspoken.
Therefore, the challenge for
the project manager is to elicit the requirements in
such a way that both the
spoken and unspoken customer needs and wants are
gathered. After collecting the
required information, you need to translate the
customer requirements into
technical specifications for the software project.
• Scope determination: The scope of a software
project can be defined as the
combination of the software product arid services to
be delivered to the customer.
You carry out the scope determination exercise to
define the scope of the software
project. The scope determination exercise enables you
to refine and understand
the customer requirements. You can refine the scope
definition further by
breaking down each deliverable into smaller and more
manageable activities. The
scope determination exercise also helps you identify
the technology for creating
the software product.
• Resource allocation: During project initiation, you
identify the resources required
and allocate them to the software project. The
resources identified may be people,
reusable software components, and hardware or
software tools. You allocate the
resource to the software project on the basis of the
activities defined in the scope
Software Project Management (CS615)
135
© Copyright Virtual University of Pakistan
determination exercise. While allocating appropriate
resources for a software
project, you also need to calculate the cost of each
resource. The cost of a
resource is calculated according to the duration of the
resource in the software
project. Estimating the cost of resources also helps
you prepare a budget for the
software project.
• Initial project plan: Another exercise that you carry
out during project initiation
is the creation of a rough project plan. This plan is a
draft version and carries only
the primitive project plan features. This project plan
carries the initial risk
analysis of the software project, the initial start and
end dates, the duration of the
activities in the project, and the sequencing of these
activities.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
es.
3.6 Planning Process
Devising and maintaining a workable scheme to
accomplish the business need
that the project was undertaken to address
Planning is setting the direction for something -- some
system -- and then guiding
the system to follow the direction.
The basic planning process typically includes similar
nature of activities carried
out in similar sequence.
The phases are carried out carefully or -- in some cases
-- intuitively, for example,
when planning a very small, straightforward effort the
complexity of the various
phases (and their duplication throughout the system)
depend on the scope of the
system.
For example, in a large corporation, the following
phases would be carried out in
the corporate offices:
• In each division
• In each department
• In each group, etc.
Planning typically includes use of the following basic
terms
• Goals: Goals are specific accomplishments that must
be accomplished in total, or
in some combination, in order to achieve some larger,
overall result preferred
from the system, for example, the mission of an
organization. (goals are outputs
from the system.)
• Strategies or Activities: These are the methods or
processes required in total, or
in some combination, to achieve the goals. (strategies
are processes in the
system.)
Software Project Management (CS615)
136
© Copyright Virtual University of Pakistan
• Objectives: Objectives are specific accomplishments
that must be accomplished
in total, or in some combination, to achieve the goals in
the plan. Objectives are
usually milestones along the way when
implementing the strategies
• Tasks: Particularly in small organizations, people are
assigned various tasks
required to implement the plan. If the scope of the
plan is very small, tasks and
activities are often essentially the same.
• Resources (and Budgets): Resources include the
people, materials, technologies,
money, etc., required to implement the strategies or
processes. The costs of these
resources are often depicted in the form of a budget.
(Going back to our reference
to systems, resources are input to the system.)
Goals and Objectives Should Be SMARTER
SMARTER is an acronym, that is, a word composed by
joining letters from
different words in a phrase or set of words. In this
case, a SMARTER goal or
objective is:
Specific:
For example, it's difficult to know what someone
should be doing if they are to
pursue the goal to work harder. It's easier to
recognize Write a paper.
Measurable:
It's difficult to know what the scope of Writing a
paper really is. It's easier to
appreciate that effort if the goal is Write a 30-page
paper.
Acceptable:
If I'm to take responsibility for pursuit of a goal, the
goal should be acceptable to
me. For example, I'm not likely to follow the directions
of someone telling me to
write a 30-page paper when I also have to five other
papers to write.
However, if you involve me in setting the goal so I can
change my other
commitments or modify the goal, I'm much more likely
to accept pursuit of the
goal as well.
Realistic: Even if I do accept responsibility to pursue a
goal that is specific and
measurable, the goal won't be useful to me or others if,
for example, the goal is to
Write a 30-page paper in the next 10 seconds.
Time frame: It may mean more to others if I commit to
a realistic goal to Write
a 30-page paper in one week. However, it'll mean
more to others (particularly if
they are planning to help me or guide me to reach the
goal) if I specify that I will
write one page a day for 30 days, rather than including
the possibility that I will
write all 30 pages in last day of the 30-day period.
Software Project Management (CS615)
137
© Copyright Virtual University of Pakistan
Extending: The goal should stretch the performer's
capabilities. For example, I
From ChatGPT, designed with FancyGPT
might be more interested in writing a 30-page paper if
the topic of the paper or the
way that I write it will extend my capabilities.
Rewarding: I'm more inclined to write the paper if the
paper will contribute to an
effort in such a way that I might be rewarded for my
effort.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
cs611 lecture 22
cs611 lecture 22
cs611 lecture 22
cs611 lecture 22
cs611 lecture 22
LECTURE # 22
3. Processes
⇒Planning Process Tasks
1. Scope Planning
2. Scope Definition
3. Activity Definition
4. Activity Sequencing
5. Activity Duration Estimating
6. Resource Planning
7. Cost Estimating
8. Cost Budgeting Risk Planning
9. Schedule Development
10. Quality Planning
11. Communications Planning
12. Organization Planning
13. Staff Acquisition
14. Procurement Planning
15. Project Plan Development
1) Scope Planning — developing a written scope
statement as the basis for
future project decisions
2) Scope Definition—subdividing the major project
deliverables into smaller,
more manageable components
3) Activity Definition—identifying the specific
activities that must be
performed to produce the various project deliverables
4) Activity Sequencing—identifying and documenting
interactivity
dependencies
5) Activity Duration Estimating—estimating the
number of work periods that
will be needed to complete individual activities.
6) Resource Planning—determining what resources
(people, equipment,
materials, etc.) and what quantities of each should be
used to perform project
activities.
7) Cost Estimating—developing an approximation
(estimate) of the costs of the
resources required to complete project activities.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
8) Cost Budgeting—allocating the overall cost
estimates to individual work
packages.
9) Schedule Development —analyzing activity
sequences, activity durations,
and resource requirements to create the project
schedule.
10) Quality Planning—identifying which quality
standards are relevant to the
project and determining how to satisfy them.
11) Communications Planning—determining the
information and
communications needs of the stakeholders: who needs
what information,
when will they need it, and how will it be given to
them.
12) Organizational Planning—identifying,
documenting, and assigning project
roles, responsibilities, and reporting relationships.
13) Staff Acquisition—getting the human resources
needed assigned to and
working on the project.
14) Procurement Planning—determining what to
procure, how much to procure,
and when.
15) Project Plan Development —taking the results of
other planning processes
and putting them into a consistent, coherent
document.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
nt.
3.7 Executing Process
⇒Executing Process Tasks
1. Project Plan Execution—carrying out the project
plan by performing the
activities included therein.
2. Quality Assurance—evaluating overall project
performance on a regular basis to
provide confidence that the project will satisfy the
relevant quality standards
3. Team Development —developing individual and
group skills/competencies to
enhance project performance
4. Information Distribution—making needed
information available to project
stakeholders in a timely manner.
5. Solicitation —obtaining quotations, bids, offers, or
proposals as appropriate.
6. Source Selection —choosing from among potential
sellers.
Software Project Management (CS615)
140
© Copyright Virtual University of Pakistan
7. Contract Administration —managing the
relationship with the seller.
3.8 Controlling Process
Ensuring that project objectives are met by
monitoring and measuring progress
and taking corrective measures when necessary
Project performance must be monitored and
measured regularly to identify
variances from the plan. Variances are fed into the
control processes in the
various knowledge areas. To the extent that significant
variances are observed
(i.e., those that jeopardize the project objectives),
adjustments to the plan are
made by repeating the appropriate project planning
processes. For example, a
missed activity finish date may require adjustments to
the current staffing plan,
reliance on overtime, or tradeoffs between budget and
schedule objectives.
Controlling also includes taking preventive action in
anticipation of possible
problems.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
⇒Controlling Process Tasks
1. Integrated Change Control
2. Scope Verification
3. Scope Change Control
4. Schedule Control
5. Cost Control
6. Quality Control
7. Performance Reporting
8. Risk Response Control
The controlling process group contains core processes
and facilitating processes.
1. Integrated Change Control —coordinating changes
across the entire project.
2. Scope Verification—formalizing acceptance of the
project scope.
3. Scope Change Control—controlling changes to
project scope.
4. Schedule Control—controlling changes to the
project schedule.
5. Cost Control—controlling changes to the project
budget.
6. Quality Control—monitoring specific project results
to determine if they comply
with relevant quality standards and identifying ways
to eliminate causes of
unsatisfactory performance.
7. Performance Reporting—collecting and
disseminating performance
information. This includes status reporting, progress
measurement, and
Software Project Management (CS615)
141
© Copyright Virtual University of Pakistan
forecasting.
8. Risk Response Control—keeping track of identified
risks, monitoring residual
risks and identifying new risks, ensuring the execution
of risk plans, and
evaluating their effectiveness in reducing risk.
3.9 Closing Process
Formalizing acceptance of the project or phase and
bringing it to an orderly end.
⇒Closing Process Tasks
• Contract Closeout —completion and settlement of
the contract, including
resolution of any open items.
• Administrative Closure—generating, gathering, and
disseminating information
to formalize phase or project completion, including
evaluating the project and
compiling lessons learned for use in planning future
projects or phases.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
From ChatGPT, designed with FancyGPT
cs615 lecture 23
cs615 lecture 23
cs615 lecture 23
cs615 lecture 23
cs615 lecture 23
LECTURE # 23
4. PLANNING
Planning is one of the most important management
activities and is an ongoing effort
throughout the life of the project. Software project
management begins with a set of
activities that are collectively called Project Planning.
• Preliminary planning starts on day one even in the
pre-project phase
• It should not be conducted “in secret”
• It needs buy-in and approval
4.1 Project Planning Objectives
The objective of software project planning is to
provide a framework that enables the
manager to make reasonable estimates of:
• Resources
• Cost, and
• Schedule
These estimates are made within a limited time frame
at the beginning of a software
project and should be updated regularly as the project
progresses.
In addition, estimates should attempt to define best
case and worst-case scenarios so
that project outcomes can be bounded.
Planning is one of the most important management
activities and is an ongoing effort
throughout the life of the project.
Software project management begins with a set of
activities that are collectively
called Project Planning.
The software project planner must estimate following
things before a project begins:
1. How much will it cost?
2. How long will it take?
3. How many people will it take?
4. What might go wrong?
4.2 Project Planning - Definition
Software Project Management (CS615)
143
© Copyright Virtual University of Pakistan
• What is it? Software project planning involves
estimation - your attempt to
determine how much money, how much effort, how
many resources, and how
much time it will take to build a specific software-
based system or product.
• Who does it? Software Project Managers- Using
information solicited from
customers and software engineers and software
metrics data collected from past
projects. It is advisable to generate your estimates
using at least two different
methods (as a cross check). Problem complexity and
risk are considered before a
final estimate is made.
• What is the work product? A Simple table
delineating the tasks to be
performed, the functions to be implemented and the
cost, effort and time involved
for each is generated. A list of required project
resources is also produced.
• How do I ensure that I've done it right? That’s hard,
because you won't really
know until the project has been completed. However,
if you have experience and
follow a systematic approach, generate estimates
using solid historical data, create
estimation, data points using at least two different
methods, and factors in
complexity and risk. You can feel confident that you've
done a right job to
achieve the targets.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
4.3 Project Planning: Key Tasks
1. Set goal and scope
2. Select lifecycle
3. Set organization team form
4. Start team selection
5. Determine risks
6. Create WBS
7. Identify tasks
8. Estimate size
9. Estimate effort
10. Identify task dependencies
11. Assign resources
12. Schedule work
4.4 Project Management Process
The software development management section,
which describes the organization and
resources that will be used to develop the product,
should always be included. The
management section discusses how the facilities will
be organized to support the
development effort. This is one of the sections that
provide much of the detail needed
to prepare the heart of the development plan, namely
the development schedule. The
schedule provides answers to two basic planning
questions: what and when, while
much of the remaining sections discuss how.
Software Project Management (CS615)
144
© Copyright Virtual University of Pakistan
The discussion in the how sections provides
information on how the project will be
organized, how risks will be handled, how reviews will
be conducted, how standards
will be applied, what development methodologies will
be used, and how the product
will be tested.
It is usually best to leave the completion of the
schedule section for last. The
schedule, being dependent on most of the other
sections, is the most sensitive part of
the development plan. After a first draft of the
development plan is ready, an initial
development schedule can then be prepared. As we
shall see, the schedule will then
be further refined as the development plan goes
through progressive iteration.
Why is the system being developed? The answer to
this question enables all parties
to assess the validity of business reasons for the
software work. Stated in another
way, does the business purpose justify the expenditure
of people, time and money?
What will be done, by when? The answers to these
questions help the team to
establish a project schedule by identifying key project
tasks and the milestones that
are required by the customer.
Who is responsible for a function? Earlier in this
chapter, we noted that the role and
responsibility of each member of the software team
must be defined. The answer to
this question helps accomplish this.
Where they are organizationally located? Not all roles
and responsibilities reside
within the software team itself. The customer, users,
and other stake holders also
have responsibilities.
How will the job be done technically and managerially?
Once product scope is
established, a management and technical strategy for
the project-must be defined.
How much of each resource is needed? The answer to
this question is derived by
developing estimates based on answers to earlier
questions.
The definition phase focuses on what. That is, during
definition, the software
engineer attempts to identify what information is to
be processed, what function and
performance are desired, what system behavior can
be expected, what interfaces are
to be established, what design constraints exist, and
what validation criteria are
required to define a successful system. The key
requirements of the system and the
software are identified. Although the methods applied
during the definition phase will
vary depending on the software engineering paradigm
(or combination of paradigms)
that is applied, three major tasks will occur in some
form: system or information
engineering, software project planning and
requirements analysis.
The development phase focuses on how. That is,
during development a software
engineer attempts to define how data are to be
structured, how function is to be
implemented within a software architecture, how
procedural details are to be
Software Project Management (CS615)
145
© Copyright Virtual University of Pakistan
implemented, how interfaces are to be characterized,
how the design will be
translated into a programming language (or
nonprocedural language), and how testing
will be performed. The methods applied during the
development phase will vary, but
three specific technical tasks should always occur:
software design, code generation,
and software testing.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
The support Phase focuses on Change associated with
error correction, adaptations
required as the software's environment evolves, and
changes due to enhancements
brought about by changing customer requirements.
The support phase reapplies the
steps of the definition and development phases but
does so in the context of existing
software. Four types of change are encountered
during the support phase:
1. Correction
Even with the best quality assurance activities, it is
likely that the customer will
uncover defects in the software. Corrective
maintenance changes the software to
correct defects.
2. Adaptation
Over time, the original environment (e.g., CPU,
operating system, business rules,
external product characteristics) for which the
software was developed is likely to
change. Adaptive maintenance results in modification
I the software to
accommodate changes to its external environment.
3. Enhancement
As software is used, the customer/user will recognize
additional functions that
will provide benefit. Perfective maintenance extends
the software beyond its
original functional requirements.
4. Prevention
Computer software deteriorates due to change, and
because ( this, preventive
maintenance, often called software reengineering,
must be conducted to enable
the software to serve the needs of its end users, in
essence, preventive
maintenance makes changes to computer programs so
that they ca be more easily
corrected, adapted, and enhanced.
In addition to these support activities, the users of
software require continuing
support. In-house technical assistants, telephone-help
desks, and applicationspecific Web sites are often
implemented as part of the support phase.
4.5 Planning Puzzle
Planning is one of the most important management
activities and includes the
preparation of good estimates, the maintenance of the
development schedules and the
efficient assignment of personnel.
i. Scope Planning
Software Project Management (CS615)
146
© Copyright Virtual University of Pakistan
Scope planning is the process of progressively
elaborating and documenting the
project work (project scope) that produces the
product of the project.
ii. Risk Planning
Risk management planning is the process of deciding
how to approach and plan
the risk management activities for a project. It is
important to plan for the risk
management processes that follow to ensure that the
level, type, and visibility of
risk management are commensurate with both the
risk and importance of the
project to the Organization.
iii. Schedule Development
Analyzing activity sequences, activity durations, and
resource requirements to
create the project schedule.
iv. Cost Estimating
Developing an approximation (estimate) of the costs
of the resources required to
complete project activities
v. Project Control
Project Control may be considered to be one of the
continuous objectives for the
project manager. As such he is responsible for taking
remedial actions, within
the defined terms of reference, to correct potential
problems or taking risk
avoidance measures. The prime objective is to protect
the integrity of the project
at all times.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
mes.
4.6 Primary Planning Steps
Once the scope of the project has been defined in the
Terms of Reference, the project
enters the detailed planning phase. This involves the
creation of a:
1. Project Plan (outlining the activities, tasks,
dependencies and timeframes)
2. Resource Plan (listing the labor, equipment and
materials required)
3. Financial Plan (identifying the labor, equipment and
materials costs)
4. Quality Plan (providing quality targets, assurance
and control measures)
5. Risk Plan (highlighting potential risks and actions
taken to mitigate them)
6. Acceptance Plan (listing the criteria to be met to
gain customer acceptance)
7. Communications Plan (listing the information
needed to inform stakeholders)
8. Procurement Plan (identifying products to be
sourced from external suppliers).
At this point the project has been planned in detail and
is ready to be executed
By this stage, the benefits and costs of the project
have been clearly documented, the
objectives and scope have been defined, the project
team has been appointed and a
formal project office environment established. It is
now time to undertake detailed
planning to ensure that the activities performed in the
execution phase of the project
are properly sequenced, resourced, executed and
controlled.
Software Project Management (CS615)
147
© Copyright Virtual University of Pakistan
1. Develop Project Plan
The first step is to document the Project Plan. A 'Work
Breakdown Structure'
(WBS) is identified, which includes a hierarchical set of
phases, activities and
tasks to be undertaken on the project. After the WBS
has been agreed, an
assessment of the effort required to undertake the
activities and tasks is made. The
activities and tasks are sequenced, resources are
allocated and a detailed project
schedule is formed. This project schedule will become
the primary tool for the
Project Manager to assess the progress of the project.
2. Develop Resource Plan
Immediately after the Project Plan is formed, it is
necessary to allocate the
resources required to undertake each of the activities
and tasks within the Project
Plan. Although general groups of resources may have
already been allocated to
the Project Plan, a detailed resource assessment is
required to identify the:
ƒ Types of resources (labor, equipment and materials)
ƒ Total quantities of each resource type
ƒ Roles, responsibilities and skill-sets of all human
resources
ƒ Items, purposes and specifications of all equipment
resource
ƒ Items and quantities of material resource
A schedule is assembled for each type of resource so
that the Project Manager can
assess the resource allocation at each stage in the
project.
3. Develop Financial Plan
Similar to the Resource Plan, a Financial Plan is
prepared to identify the quantity
of money required for each stage in the project. The
total cost of labor, equipment
and materials is quantified and an expense schedule is
defined which provides the
Project Manager with an understanding of the
forecast spending vs. the actual
spending throughout the project. Preparing a detailed
Financial Plan is extremely
important as the project's success will depend on
whether or not it is delivered
within the 'time, cost and quality' estimates for this
project.
4. Develop Quality Plan
Meeting the quality expectations of the customer is
critical to the success of the
project. To ensure that the quality expectations are
clearly defined and can
reasonably be achieved, a Quality Plan is documented.
The Quality Plan:
ƒ Defines what quality means in terms of this project
Software Project Management (CS615)
148
© Copyright Virtual University of Pakistan
ƒ Lists clear and unambiguous quality targets for each
deliverable. Each quality
target provides a set of criteria and standards which
must be achieved to meet
the expectations of the customer
ƒ Outlines a plan of activities which will assure the
customer that the quality
targets will be met (i.e. a Quality Assurance Plan)
ƒ Identifies the techniques used to control the actual
level of quality of each
deliverable as it is built (i.e. a Quality Control Plan).
Finally, it is important to review the quality not only of
the deliverables produced
by the project but also of the management processes
which produce them. A
summary of each of the management processes
undertaken during the execution
phase is identified, including Time, Cost, Quality,
Change, Risk, Issue,
Procurement, Acceptance and Communications
Management.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for each of the Primary Planning Steps
as part of a lecture on project management:
4.6 Primary Planning Steps
4.6 Primary Planning Steps
4.6 Primary Planning Steps
4.6 Primary Planning Steps
4.6 Primary Planning Steps
Develop Project Plan:
1
Example: In a project to build a new website for a client, the project
manager creates a Work Breakdown Structure (WBS) that divides the
work into phases like Design, Development, and Testing. Each
phase is broken down into smaller tasks such as Create wireframes
or Develop homepage code. The tasks are sequenced, and a project
schedule is created to track progress.
2
Develop Resource Plan:
3
Example: For the website project, the resource plan details the types
of resources needed, such as web developers, graphic designers, and
computers. It specifies how many developers are required, what skills
4
they need (e.g., HTML, CSS), and what tools they will use. The plan
ensures resources are allocated to each task at the right time.
Develop Financial Plan:
5
Example: The financial plan for the website project estimates the cost
of hiring developers, purchasing design software, and hosting the site.
The project manager creates a budget that shows how much money
will be spent at different stages, ensuring the project stays within
financial limits.
6
Develop Quality Plan:
7
Example: The quality plan for the website project defines quality
standards like page load times and responsiveness on mobile devices.
It sets specific quality targets, such as ensuring all pages load within 3
seconds. The plan outlines quality assurance activities like code
reviews and testing to ensure these targets are met.
8
Develop Risk Plan:
9
Example: The risk plan identifies potential risks in the website project,
such as delays due to developer illness or security vulnerabilities in the
code. The plan includes strategies to mitigate these risks, like having
backup developers or performing regular security checks.
10
Develop Acceptance Plan:
11
Example: The acceptance plan for the website project lists the criteria
that need to be met for the client to approve the final product. This
could include requirements like a fully functional e-commerce system,
a user-friendly interface, and successful completion of user testing.
12
Develop Communications Plan:
13
Example: The communications plan outlines how the project team will
keep stakeholders informed about progress. This may include regular
status meetings, email updates, and a shared project dashboard where
team members can check progress in real-time.
14
Develop Procurement Plan:
15
Example: The procurement plan identifies the items the project needs
to source externally, such as purchasing web hosting services or design
software licenses. The plan includes details on suppliers, timelines, and
costs for these external purchases.
16
5. Develop Risk Plan
The foreseeable project risks are then documented
within a Risk Plan and a set of
actions to be taken formulated to both prevent each
risk from occurring and
reduce the impact of the risk should it eventuate.
Developing a clear Risk Plan is
an important activity within the planning phase as it is
necessary to mitigate all
critical project risks prior to entering the Execution
phase of the project.
6. Develop Acceptance Plan
The key to a successful project is gaining acceptance
from the customer that each
deliverable produced meets (or exceeds) his/her
requirements. To clarify the
criteria used to judge each deliverable for customer
acceptance, an Acceptance
Plan is produced. The Acceptance Plan provides the
criteria for obtaining
customer acceptance, a schedule of acceptance
reviews within which customer
acceptance will be sought and a summary of the
process used to gain acceptance
of each deliverable from the customer.
7. Develop Communications Plan
Prior to the Execution phase, it is also necessary to
These examples explain each concept in a straightforward manner, ensuring
coherence as part of the lecture content. If you need further elaboration on any
topic, feel free to ask!
identify how each of the
stakeholders will be kept informed of the progress of
the project. The
Communications Plan identifies the types of
information to be distributed, the
methods of distributing information to stakeholders,
the frequency of distribution
and responsibilities of each person in the project team
for distributing information
regularly to stakeholders.
8. Develop Procurement Plan
The last planning activity within the Planning phase is
to identify the elements of
the Project which will be acquired from external
suppliers to the project. The
Procurement Plan provides a detailed description of
the Products (i.e. goods and
services) to be procured from suppliers, the
justification for procuring each
Software Project Management (CS615)
149
© Copyright Virtual University of Pakistan
product externally, as opposed to from within the
business, and the schedule for
procurement. It also references the process for the
selection of a preferred supplier
(Tender Process) and the process for the actual
order and delivery of the
procured products (Procurement Process).
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for each of the additional Planning
Steps as part of a coherent lecture on project management:
5.
5.
5.
5.
5. Develop Risk Plan
Develop Risk Plan
Develop Risk Plan
Develop Risk Plan
Develop Risk Plan:
:
:
:
:
6.
6.
6.
6.
6. Develop Acceptance Plan
Develop Acceptance Plan
Develop Acceptance Plan
Develop Acceptance Plan
Develop Acceptance Plan:
:
:
:
:
7.
7.
7.
7.
7. Develop Communications Plan
Develop Communications Plan
Develop Communications Plan
Develop Communications Plan
Develop Communications Plan:
:
:
:
:
8.
8.
8.
8.
8. Develop Procurement Plan
Develop Procurement Plan
Develop Procurement Plan
Develop Procurement Plan
Develop Procurement Plan:
:
:
:
:
Example: In a project to develop a mobile app, the project manager
identifies risks such as delays in app testing or issues with app store
approvals. The risk plan outlines actions to prevent these risks, like
scheduling extra time for testing and staying informed about app store
guidelines. If a risk occurs, the plan also includes steps to reduce its impact,
such as prioritizing critical fixes if testing takes longer than expected.
Example: For a software development project, the acceptance plan specifies
the criteria for customer approval. For example, the software must pass all
functional tests, meet performance benchmarks, and align with the client's
user interface design requirements. The plan includes a schedule for
acceptance reviews, where the client will evaluate each deliverable, such as
when the software is handed over for user testing or deployment.
Example: In a project to launch a new e-commerce website, the
communications plan outlines how the team will keep stakeholders
informed. This could include weekly status reports via email to the client,
regular updates to an internal project management tool for team members,
and monthly meetings to review progress with senior management. The
plan also assigns specific team members to handle these communications.
Example: For a project to implement a new IT system in an organization, the
procurement plan lists the products and services to be purchased from
external suppliers. This might include hardware like servers and software
licenses. The plan justifies why external suppliers are needed, provides a
4.7 The Software Development Plan (SDP)
The project development plan is one of the first formal
documents produced by the
project. Within this document, the project manager
describes in detail:
ƒ How the project will be developed?
ƒ What resources will be required?
ƒ How these resources will be used?
The project development plan assures that the
development of the project is well
charted before the main development activities begin.
In -addition to the basic
development schedule, the plan addresses such issues
as:
ƒ The timely provision of equipment and tools so that
they are available to
developers when needed.
ƒ The availability of staff to perform the development
tasks in accordance with
the schedule.
ƒ Provision of contingency plans in the event that
project risks materialize
ƒ The designation .of duties within the development
team, and the assignment
of these duties to the team members.
These examples provide clarity for the lecture on project management planning,
ensuring the explanations are straightforward and connected to the content
covered in earlier sections. Let me know if you need more details on any topic!
timeline for procurement, and details the process for selecting vendors,
including how bids will be evaluated and how orders will be placed.
Preparing the project plan for a software project helps
you ensure that the specified
requirements and objectives are met successfully. It is
a collation of all planning
activities that have happened for a software project.
This includes activities such as
design and analysis, activity definition, risk planning,
and cost estimation. To create
the plan, you assess all planning activities,
organizational policies regarding the
creation of the project plan and assumption and
constraints for the project. To
implement the software project plan, you require
management skills, such as
leadership, communication, and problem solving,
along with the basic knowledge
about the software. You also need to ensure that the
senior management bf the
company has authorized work on the software project.
Knowledge management
techniques help you to make informed decision
regarding the project plan.
After the project plan is executed, you manage the
changes to it in such a way that the
performance measurement baselines are not
impacted, To manage the project plan
effectively you monitor the project plan, periodic
performance status reports, and
requests for change. The primary tool that you can use
to control the changes in the
project plan is the change control mechanism: This is a
set of formal procedures for
changing the project plan.
4.7.1 Software Development Plan (SDP) Information
needs
Software Project Management (CS615)
150
© Copyright Virtual University of Pakistan
The Project Plan is a vital part of the project initiation
stage. The plan
should normally contain the following information:
1. Introduction and status of the plan
2. The authorisation procedures
3. Statement of project objectives
4. Statement of requirement
5. Deliverables in the project
6. A Work Breakdown Structure
7. The project milestones
8. The resource requirements
9. Interdependencies of work
10. The timetable of events
11. Staffing, organisation and responsibilities
12. Development methods and toolsets to be used
13. Source documentation
14. Resource and financial summary
This information creates the generation of a Project
Book (log). The log
should be in a loose-leaf binder with clearly identified
sections and version
control exercised over the documentation sets. These
logs are now often
retained as computer file, which enables a greater
level of security to be
maintained over them and version control to be
established as an automatic
feature.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples of the Software Development Plan
(SDP) topics that align with the lecture:
Software Development Plan (SDP) Examples
Software Development Plan (SDP) Examples
Software Development Plan (SDP) Examples
Software Development Plan (SDP) Examples
Software Development Plan (SDP) Examples
The Software Development Plan (SDP) is a key document prepared at the start of
a project. Below are examples of the essential elements:
Introduction and Status of the Plan:
1
Example: A software project to create an online shopping app starts
with an introduction that outlines the project’s purpose. The status of
the plan might be labeled as “Draft,” meaning it is still being refined.
2
Authorization Procedures:
3
Example: The project manager ensures that the app development
project gets approval from the company's senior management before
beginning work. This includes official sign-offs from key stakeholders.
4
Statement of Project Objectives:
5
Example: The objective of the online shopping app project is to create
a user-friendly platform that allows customers to browse products,
add items to a cart, and make purchases easily.
6
Statement of Requirements:
7
Example: The requirements for the app might include features like
product search, user login, and secure payment integration. These
requirements are clearly listed in this section.
8
Deliverables in the Project:
9
Example: Deliverables include the final version of the online shopping
app, user manuals, and a maintenance guide. These will be delivered at
different stages of the project.
10
Work Breakdown Structure (WBS):
11
Example: The WBS for the app development project includes tasks
such as designing the user interface, coding the back-end system, and
testing the app before release. Each task is broken down into smaller,
manageable activities.
12
Project Milestones:
13
Example: Milestones for the app project include completing the design
phase, finishing the first prototype, and launching the app on app
stores. These milestones help track progress.
14
Resource Requirements:
15
Example: Resources required for the app project include developers,
designers, testers, software licenses, and cloud storage. The project
plan lists these resources to ensure they are available when needed.
16
Interdependencies of Work:
17
Example: The app’s back-end system must be developed before the
user interface can be fully integrated. This dependency is noted so that
tasks are performed in the right order.
18
Timetable of Events:
19
Example: The timetable shows when each phase of the project will
start and finish, like beginning development in September and
completing testing by November.
20
Staffing, Organization, and Responsibilities:
21
Example: The project team consists of a project manager, developers,
designers, and testers. Each team member has specific responsibilities,
such as coding or testing.
22
Development Methods and Toolsets:
23
Example: The app will be developed using the Agile methodology with
toolsets like Git for version control and Jenkins for continuous
24
4.7.2 Software Development Plan (SDP) Steps/items
required
The contents of the project development plan may be
adapted to the size of
the project; it may be a large document or just a few
pages. Table 1 presents
an outline of some of the subjects covered in the
project development plan.
Not all subjects in Table 1 are applicable to all projects.
For example, many
projects do not administer their own budget. Some
organizations have a
Project Book (Log)
Project Book (Log)
Project Book (Log)
Project Book (Log)
Project Book (Log)
These examples help illustrate the key components of a Software Development
Plan and ensure that the lecture content remains coherent and easy to
understand. If you need more details or further examples, feel free to ask!
integration.
Source Documentation:
25
Example: The source documentation includes design documents, code
repositories, and test plans, all stored in a secure location like a cloud-
based project management system.
26
Resource and Financial Summary:
27
Example: The financial summary details the budget for the app
development, including costs for hiring developers, purchasing
software licenses, and marketing the app after launch.
28
Example: A Project Book (Log) for the online shopping app is created to
track progress, issues, and changes. It is stored digitally in a shared drive
with version control, ensuring that any changes made are recorded, and
previous versions can be accessed if needed.
financial officer responsible for the administration of
project budgets. The
interface with external sources is another area riot
applicable to all projects.
The term, external sources covers such activities as
interfacing with
subcontractors, vendors and representatives of the
customer.
Many standards have been produced for the project
development plan. The
formal structure or the project development plan
document differs,
depending on the actual documentation standard
used. For example, the US
DOD standard 2167 provides the option of describing
the testing,
configuration management and quality assurance
plans in three separate
documents. For large projects, this option can become
a requirement.
Software Project Management (CS615)
151
© Copyright Virtual University of Pakistan
The IEEE standard 1058.1 describes what is referred
to as the software
project management plan, which is essentially the
same as the project
development plan. This standard is largely compatible
with the 2167 project
development plan, although it is significantly less
detailed.
This standard, too, provides the option of including
configuration
management and quality assurance plans, or of
describing them in separate
documents. The project development plan should be
prepared as a
standalone document, in the sense that it should be
read and understood
without the need to refer to other documents.
A general overview of the project is therefore usually
included in the first
section of the document. References for additional
detail, of course, should
always be provided, including pointers to such
documents as the project
contract, the concept document or the market
research analysis.
Software Project Management (CS615)
152
© Copyright Virtual University of Pakistan
Table 1: Software project development plan items
1. System overview
2. Software development management
Project organization and resources
Development facilities
Project organizational structure
Personnel
3. Schedule and milestones
Scheduled activities
Milestones and baselines
Activity network diagrams
System component source
Budget administration
Milestone payments
Major budgetary expenditures
Expenditure authorization procedure
4. Risk analysis
5. Security
6. Interface with external sources
7. Procedure for formal reviews
8. Corrective action process
9. Problem change report
10. Software engineering
Standards and procedures
Development methodology
Development resources
Personnel - qualifications and function
11. Testing procedure
12. Software configuration management
13 Software quality assurance
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples of the topics and items mentioned in the
Software Development Plan (SDP) outlined in the lecture. These examples are
designed to fit into the context of a lecture and maintain coherence:
Software Development Plan (SDP) Items
Software Development Plan (SDP) Items
Software Development Plan (SDP) Items
Software Development Plan (SDP) Items
Software Development Plan (SDP) Items
System Overview:
1
Example: The system overview describes the overall structure and
purpose of a software project. For an online shopping app, the system
overview explains that the app allows users to browse products, make
2
purchases, and track deliveries. It provides a high-level summary of the
system's purpose and its key components.
Software Development Management:
3
Project Organization and Resources:
4
Example: The development team is organized into groups like
developers, testers, and designers. Resources include software
licenses, computers, and cloud storage.
5
Development Facilities:
6
Example: Development facilities may include workstations,
software development environments, and access to a version
control system like Git.
7
Project Organizational Structure:
8
Example: The organizational structure outlines the roles within
the team, such as a project manager overseeing the project,
developers writing code, and testers ensuring quality.
9
Personnel:
10
Example: Personnel include developers, testers, and project
managers, each with their defined roles and responsibilities.
11
Schedule and Milestones:
12
Scheduled Activities:
13
Example: Activities like requirements gathering, coding, testing,
and deployment are scheduled with specific timelines.
14
Milestones and Baselines:
15
Example: A milestone could be completing the app’s prototype,
while a baseline refers to the original timeline for completing
each phase of the project.
16
Activity Network Diagrams:
17
Example: These diagrams show the sequence of activities and
dependencies, such as finishing the design phase before starting
development.
18
System Component Source:
19
Example: This refers to where the components of the app come
from, such as open-source libraries or custom code.
20
Budget Administration:
21
Example: If the project has its own budget, it will be managed by
tracking expenses like developer salaries and software licenses.
22
Milestone Payments:
23
Example: Payments might be made to vendors or
subcontractors when specific milestones, like completing a
design phase, are achieved.
24
Major Budgetary Expenditures:
25
Example: Expenditures could include buying servers for hosting
or paying for cloud services.
26
Expenditure Authorization Procedure:
27
Example: This outlines how spending is approved, such as
requiring sign-off from the project manager for purchases above
a certain amount.
28
Risk Analysis:
29
Example: Risk analysis might identify potential risks like delays in
delivery, security breaches, or lack of resources, and plan actions to
mitigate these risks.
30
Security:
31
Example: Security measures for the online shopping app might include
encryption of user data, secure login processes, and regular security
audits.
32
Interface with External Sources:
33
Example: External sources might include third-party payment
processors or vendors supplying APIs (Application Programming
Interfaces) used in the app. The plan outlines how the project will
communicate and work with these external entities.
34
Procedure for Formal Reviews:
35
Example: The formal review procedure might involve scheduled
meetings where the team reviews the progress of the project with
stakeholders to ensure everything is on track.
36
Corrective Action Process:
37
Example: If a problem arises, like a delay in development, the
corrective action process outlines steps to get the project back on
track, such as reallocating resources or adjusting timelines.
38
These examples explain the essential items in a Software Development Plan and
align with the lecture content. If you need further explanations or more detailed
examples, feel free to ask!
Problem Change Report:
39
Example: This report documents any issues that arise during
development, like bugs or design flaws, and tracks their resolution.
40
Software Engineering:
41
Standards and Procedures:
Example: The team follows coding standards, such as naming
conventions and code review processes, to ensure quality and
consistency.
Development Methodology:
Example: The project uses Agile methodology, which involves
iterative development and regular feedback from stakeholders.
Development Resources:
Example: Resources include development tools like integrated
development environments (IDEs), version control systems, and
testing frameworks.
Personnel - Qualifications and Function:
Example: Developers might have specific qualifications like expertise
in Java or Python, and their functions include writing and testing
code.
Testing Procedure:
1
Example: The testing procedure includes unit testing, integration
testing, and user acceptance testing to ensure that the app works as
intended before release.
2
Software Configuration Management:
3
Example: Configuration management tracks changes to the software
code, ensuring that updates are controlled and that previous versions
can be restored if needed.
4
Software Quality Assurance:
5
Example: Quality assurance involves regular checks to ensure the
software meets quality standards, such as ensuring the app is free
from critical bugs and performs well under various conditions.
6
4.7.3 Inputs to SDP
Project plan development uses the outputs of the
other planning processes,
including strategic planning, to create a consistent,
coherent document that
can be used to guide both project execution and
project control. This process
is almost always iterated several times. For example,
the initial draft may
include generic resource requirements and an
undated sequence of activities
while the subsequent versions of the plan will include
specific resources and
explicit dates.
1. Other planning outputs. All of the outputs of the
planning processes in
the other knowledge areas are inputs to developing
the project plan. Other
planning outputs include both base documents, such
as the WBS, and the
Software Project Management (CS615)
153
© Copyright Virtual University of Pakistan
supporting detail. Many projects will also require
application area-specific
inputs (e.g., most major projects will require a cash-
flow forecast).
2. Historical information. The available historical
information (e.g.,
estimating data-bases, records of past project
performance) should have
been consulted during the other project planning
processes. This
information should also be available during project
plan development to
assist with verifying assumptions and assessing
alternatives that are
identified as part of this process.
3. Organizational policies. Any and all of the
organizations involved in the
project may have formal and informal policies whose
effects must be
considered. Organizational policies that typically must
be considered
include, but are not limited to:
ƒ Quality management—process audits, continuous
improvement
targets
ƒ Personnel administration—hiring and firing
guidelines, employee
performance reviews
ƒ Financial controls—time reporting, required
expenditure and
disbursement reviews, accounting codes, and
standard contract
provisions.
4. Constraints. A constraint is an applicable restriction
that will affect the
performance of the project. For example, a predefined
budget is a
constraint that is highly likely to limit the team’s
options regarding scope,
staffing, and schedule. When a project is performed
under contract,
contractual provisions will generally be constraints.
5. Assumptions. Assumptions are factors that, for
planning purposes, are
considered to be true, real, or certain. Assumptions
affect all aspects of
project planning, and are part of the progressive
elaboration of the project.
Project teams frequently identify, document, and
validate assumptions as
part of their planning process. For example, if the date
that a key person
will become available is uncertain, the team may
assume a specific start
date. Assumptions generally involve a degree of risk.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples of the inputs to the Software
Development Plan (SDP) as outlined in the lecture. These examples are designed
to maintain coherence in the lecture.
Inputs to the Software Development Plan (SDP)
Inputs to the Software Development Plan (SDP)
Inputs to the Software Development Plan (SDP)
Inputs to the Software Development Plan (SDP)
Inputs to the Software Development Plan (SDP)
Other Planning Outputs:
1
Example: Outputs from other planning processes, like the Work
Breakdown Structure (WBS), serve as inputs to the SDP. For example,
if the WBS outlines the tasks required to develop a software
2
application, these tasks and their breakdown into smaller units are
included in the project plan. The project plan will also include
information like resource allocation, which may come from a resource
management plan, and a timeline for activities that can be derived
from the schedule planning process.
Historical Information:
3
Example: When developing a software project plan, the team might
look at past projects to estimate how long it will take to complete
similar tasks. For example, if a previous project took six months to
develop a feature similar to one in the current project, this information
can help in making realistic time and cost estimates. Historical data
like past project performance, budget, and resource usage guide the
planning process by providing benchmarks and helping to avoid
repeating past mistakes.
4
Organizational Policies:
5
Example: Organizational policies such as quality management
procedures need to be considered. For instance, the company may
have a policy requiring regular code reviews to ensure quality, or there
could be specific guidelines on hiring practices, like requiring a
particular qualification for developers. Financial controls may also
dictate how time is reported or how expenditures are reviewed,
impacting how the budget is managed in the project.
6
Constraints:
7
Example: A predefined budget is an example of a constraint. If a
project has a budget limit of $100,000, the project team will need to
plan accordingly, ensuring that the scope of the project, staffing, and
the schedule are all aligned with this financial constraint. Other
constraints might include deadlines that cannot be moved or
technology restrictions, such as having to use specific software or
hardware due to contractual obligations.
8
Assumptions:
9
Example: Assumptions are conditions believed to be true during the
planning process. For instance, the team might assume that a key
developer will be available to start working on a specific date, even
though this is uncertain. If this assumption turns out to be incorrect,
the project timeline might be affected. Assumptions can involve risks,
10
From ChatGPT, designed with FancyGPT
These examples help illustrate the inputs required for the Software Development
Plan (SDP), providing a clear and coherent understanding of how these factors
contribute to the overall planning process. Let me know if you need more details
on any of these topics!
and the team needs to be aware of them as they might impact the
project’s success.
cs615 lecture 24
cs615 lecture 24
cs615 lecture 24
cs615 lecture 24
cs615 lecture 24
LECTURE # 24
4. PLANNING
4.7.4 Tools and Techniques for SDP
6. Project planning methodology. A project planning
methodology is any
structured approach used to guide the project team during
development of the
project plan. It may be as simple as standard forms and
templates (whether
paper or electronic, formal or informal) or as complex as a
series of required
simulations (e.g., Monte Carlo analysis of schedule risk). Most
project
planning methodologies make use of a combination of “hard”
tools, such as
project management software, and “soft” tools, such as
facilitated startup
meetings.
7. Stakeholder skills and knowledge. Every stakeholder has
skills and
knowledge that may be useful in developing the project plan.
The project
management team must create an environment in which the
stakeholders can
contribute appropriately. Who contributes, what they con-
tribute, and when
they contribute will vary. For example:
ƒ On a construction project being done under a lump-sum
contract, the
professional cost engineer will make a major contribution to the
profitability objective during proposal preparation when the
contract
amount is being determined.
ƒ On a project where staffing is defined in advance, the
individual
contributors may contribute significantly to meeting cost and
schedule
objectives by reviewing duration and effort estimates for
reasonableness.
8. Project management information system (PMIS). A PMIS
consists of the
tools and techniques used to gather, integrate, and disseminate
16/08/2024, 08:30 FancyGPT - cs615 lecture 24
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/8
the outputs of
project management processes. It is used to support all aspects
of the project
from initiating through closing, and can include both manual
and automated
systems.
9. Earned value management (EVM). A technique used to
integrate the
project’s scope, schedule, and resources and to measure and
report project
performance from initiation to closeout.
4.7.5 Outputs from SDP
1. Project plan: The project plan is a formal, approved document
used to
manage project execution. The project schedule lists planned
dates for
Software Project Management (CS615)
155
© Copyright Virtual University of Pakistan
performing activities and meeting milestones identified in the
project plan.
The project plan and schedule should be distributed as defined
in the
communications management plan (e.g., management of the
performing
organization may require broad coverage with little detail,
while a contractor
may require complete details on a single subject). In some
application areas,
the term integrated project plan is used to refer to this
document. A clear
distinction should be made between the project plan and the
project
performance measurement baselines. The project plan is a
document or
collection of documents that should be expected to change over
time as more
information becomes available about the project. The
performance
measurement baselines will usually change only intermittently
and then
generally only in response to an approved scope of work or
deliverable
change.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
16/08/2024, 08:30 FancyGPT - cs615 lecture 24
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/8
coherent examples.
4.7.6 SDP Execution
Project plan execution is the primary process for carrying out
the project plan the
vast majority of the project’s budget will be expended in
performing this process.
Here are beginner-level examples for each of the topics in your lecture:
6. Project Planning Methodology
6. Project Planning Methodology
6. Project Planning Methodology
6. Project Planning Methodology
6. Project Planning Methodology
Example: In a software development project, the project manager could use a project
planning methodology that includes a standard template for creating the project plan. This
template might include sections for project objectives, scope, milestones, resource allocation,
and risk management. The team fills out the template to create a structured plan. For more
complex projects, the methodology might also include using project management software to
simulate potential risks and outcomes, such as identifying the likelihood of delays in the
schedule through Monte Carlo analysis.
7. Stakeholder Skills and Knowledge
7. Stakeholder Skills and Knowledge
7. Stakeholder Skills and Knowledge
7. Stakeholder Skills and Knowledge
7. Stakeholder Skills and Knowledge
Example: On a bridge construction project, a structural engineer contributes their expertise
during the design phase to ensure the bridge can handle expected loads. At the same time, a
financial analyst reviews the project's cost estimates to ensure they align with the budget.
The project manager coordinates these contributions, ensuring the right people provide input
at the right times to optimize the project plan's effectiveness.
8. Project Management Information System (PMIS)
8. Project Management Information System (PMIS)
8. Project Management Information System (PMIS)
8. Project Management Information System (PMIS)
8. Project Management Information System (PMIS)
Example: A PMIS for a marketing campaign project might include software that tracks task
progress, budget expenditures, and resource allocation. Team members enter updates on
their tasks, and the PMIS compiles these into reports that the project manager can review.
This system helps keep everyone informed and ensures that all aspects of the project are
aligned and on track from the beginning to the end of the project.
9. Earned Value Management (EVM)
9. Earned Value Management (EVM)
9. Earned Value Management (EVM)
9. Earned Value Management (EVM)
9. Earned Value Management (EVM)
Example: In a software development project, EVM is used to compare the planned work with
the actual work completed. For instance, if the project was supposed to complete 50% of the
coding phase by a certain date, but only 40% is done, EVM will highlight this discrepancy. The
project manager can then take corrective action to get the project back on schedule and
within budget.
4.7.5 Outputs from SDP
4.7.5 Outputs from SDP
4.7.5 Outputs from SDP
4.7.5 Outputs from SDP
4.7.5 Outputs from SDP
Example: The project plan for a new website development includes a detailed schedule
outlining when each section of the website will be designed, developed, tested, and launched.
The plan also specifies key milestones, such as completing the homepage or launching the
site. This plan is distributed to all stakeholders, ensuring everyone understands the project's
timeline and objectives. The project plan will evolve as the project progresses and new
information emerges. The performance measurement baselines, such as the cost and timeline
estimates, will only change if there are approved modifications to the project's scope or
deliverables.
16/08/2024, 08:30 FancyGPT - cs615 lecture 24
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/8
In this process, the project manager and the project
management team must
coordinate and direct the various technical and organizational
interfaces that exist
in the project. It is the project process that is most directly
affected by the project
application area in that the product of the project is actually
created here.
Performance against the project baseline must be continuously
monitored so that
corrective actions can be taken based on actual performance
against the project
plan. Periodic forecasts of the final cost and schedule results
will be made to
support the analysis.
4.7.7 Inputs to SDP Execution
1. Project plan: The subsidiary management plans (scope
management plan,
risk management plan, procurement management plan,
configuration
management plan, etc.) and the performance measurement
baselines are key
inputs to project plan execution.
2. Supporting detail
3. Organizational policies: Any and all of the organizations
involved in the
project may have formal and informal policies that may affect
project plan
execution.
4. Preventive action: Preventive action is anything that reduces
the probability
of potential consequences of project risk events.
5. Corrective action: Corrective action is anything done to bring
expected
future project performance in line with the project plan.
Corrective action is
an output of the various control processes—as an input here it
completes the
feedback loop needed to ensure effective project management.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
16/08/2024, 08:30 FancyGPT - cs615 lecture 24
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/8
4.7.8 Tools and Techniques for SDP Execution
Software Project Management (CS615)
156
© Copyright Virtual University of Pakistan
1. General management skills: General management skills such
as leadership,
Here are simple beginner-level examples for each of the topics in the lecture on SDP
Execution:
4.7.6 SDP Execution
4.7.6 SDP Execution
4.7.6 SDP Execution
4.7.6 SDP Execution
4.7.6 SDP Execution
Example: In a software development project, the project manager is responsible for ensuring
the development team is building the software according to the project plan. They coordinate
between different teams, such as developers, designers, and testers, to make sure everyone is
working towards the same goal. The project manager monitors the progress of the project by
comparing it to the baseline, which includes the planned schedule and budget. If they notice
that the project is falling behind schedule or over budget, they will take corrective actions,
such as reallocating resources or adjusting the timeline, to keep the project on track.
4.7.7 Inputs to SDP Execution
4.7.7 Inputs to SDP Execution
4.7.7 Inputs to SDP Execution
4.7.7 Inputs to SDP Execution
4.7.7 Inputs to SDP Execution
Project Plan
Example: For a construction project, the project plan includes detailed subsidiary plans,
such as the scope management plan, which outlines the boundaries of the project, and
the risk management plan, which identifies potential risks and how to handle them. The
project manager uses these plans to guide the execution of the project and ensure that
all activities align with the project's objectives.
1
Supporting Detail
Example: In a marketing project, the supporting detail could include market research
data, a list of required materials, and specifications for promotional materials. This
information helps the project team understand the context and requirements of the
project, ensuring that the project is executed according to the plan.
2
Organizational Policies
Example: In a pharmaceutical project, the company might have policies regarding safety
procedures and compliance with regulations. These policies must be followed during the
execution of the project to ensure legal and ethical standards are met. The project
manager ensures the team is aware of and adheres to these policies throughout the
project.
3
Preventive Action
Example: In a software development project, preventive action might involve
conducting regular code reviews and automated testing to catch and fix issues early on,
reducing the likelihood of significant bugs later in the project. By taking these
preventive actions, the project team minimizes the risk of major setbacks.
4
Corrective Action
Example: If a project to develop a new app is running behind schedule because a feature
is taking longer to develop than expected, the project manager might take corrective
action by assigning additional developers to help complete the feature on time. This
helps align the project's future performance with the original plan.
5
16/08/2024, 08:30 FancyGPT - cs615 lecture 24
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/8
communicating, and negotiating are essential to effective
project plan
execution.
2. Product skills and knowledge: The project team must have
access to an
appropriate set of skills and knowledge about the project’s
product.
3. Work authorization system. A work authorization system is a
formal
procedure for sanctioning project work to ensure that work is
done at the right
time and in the proper sequence. The primary mechanism is
typically a written
authorization to begin work on a specific activity or work
package. The design
of a work authorization system should balance the value of the
control
provided with the cost of that control. For example, on many
smaller projects,
verbal authorizations will be adequate.
4. Status review meetings. Status review meetings are regularly
scheduled
meetings held to exchange information about the project. On
most projects,
status review meetings will be held at various frequencies and
on different
levels (e.g., the project management team may meet weekly by
itself and
monthly with the customer).
5. Project management information system.
6. Organizational procedures. Any and all of the organizations
involved in the
project may have formal and informal procedures that are
useful during
project execution.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple beginner-level examples for each of the topics in the lecture on Tools and
Techniques for SDP Execution:
1. General Management Skills
1. General Management Skills
1. General Management Skills
1. General Management Skills
1. General Management Skills
16/08/2024, 08:30 FancyGPT - cs615 lecture 24
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/8
4.7.9 Outputs from SDP Execution
1. Work results. Work results are the outcomes of the activities
performed to
accomplish the project. Information on work results—which
deliverables have
been completed and which have not, to what extent quality
standards are
being met, what costs have been incurred or committed, etc.—is
collected as
part of project plan execution and fed into the performance
reporting process.
It should be noted that although outcomes are frequently
tangible deliverables
such as buildings, roads, etc., they are also often intangibles
Example: In a web design project, the project manager needs to use leadership to inspire the
team, communicate effectively to ensure everyone understands their tasks and negotiate
with stakeholders to manage expectations and project scope. These skills help the project
manager navigate challenges and keep the project on track.
2. Product Skills and Knowledge
2. Product Skills and Knowledge
2. Product Skills and Knowledge
2. Product Skills and Knowledge
2. Product Skills and Knowledge
Example: In a mobile app development project, the team members need to know
programming languages like Java or Swift and understand user interface design principles.
This knowledge enables them to create an app that meets the project’s requirements and
delivers a high-quality product.
3. Work Authorization System
3. Work Authorization System
3. Work Authorization System
3. Work Authorization System
3. Work Authorization System
Example: In a manufacturing project, the project manager uses a work authorization system
to formally approve the start of each production phase. This system might involve issuing
written authorizations that specify when to begin work on different components of the
product. For smaller tasks, the project manager might use verbal authorizations to streamline
the process while still maintaining control.
4. Status Review Meetings
4. Status Review Meetings
4. Status Review Meetings
4. Status Review Meetings
4. Status Review Meetings
Example: In a marketing campaign project, the project team holds weekly status review
meetings to discuss progress, address any issues, and plan the next steps. Once a month, a
larger meeting with the client is held to provide updates and ensure alignment with their
expectations. These meetings help keep everyone informed and focused on the project’s
objectives.
5. Project Management Information System (PMIS)
5. Project Management Information System (PMIS)
5. Project Management Information System (PMIS)
5. Project Management Information System (PMIS)
5. Project Management Information System (PMIS)
Example: A PMIS in a construction project might include software tools that track project
progress, resource usage, and budget expenditures. Team members input data, and the
system compiles this into reports for the project manager. These reports help the project
manager make informed decisions and ensure the project stays on track.
6. Organizational Procedures
6. Organizational Procedures
6. Organizational Procedures
6. Organizational Procedures
6. Organizational Procedures
Example: In a healthcare IT project, the organization might have procedures for handling
patient data securely and ensuring compliance with health regulations. These procedures
must be followed during the project execution to maintain data privacy and meet legal
requirements. The project manager ensures the team is aware of and adheres to these
procedures throughout the project.
16/08/2024, 08:30 FancyGPT - cs615 lecture 24
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/8
From ChatGPT, designed with FancyGPT
such as people
trained who can effectively apply that training.
2. Change requests. Change requests (e.g., to expand or
contract project scope,
to modify cost [budgets], or schedule estimates [dates, etc.]) are
often
identified while the work of the project is being done.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple beginner-level examples for each of the topics in the lecture on Outputs from
SDP Execution:
1. Work Results
1. Work Results
1. Work Results
1. Work Results
1. Work Results
Example: In a software development project, the work results include the completed modules
of the software, documentation, and test results. The project manager collects this
information to report on the project’s progress, indicating which parts of the software have
been developed, tested, and are ready for deployment. In addition to the software itself, work
results could also include intangible outcomes, such as training sessions conducted for team
members to improve their skills in using the new software tools.
2. Change Requests
2. Change Requests
2. Change Requests
2. Change Requests
2. Change Requests
Example: During the construction of a new office building, a client may request additional
office spaces or a change in the layout. This requires the project team to adjust the project
scope and potentially the budget and timeline. The project manager documents these change
requests, assesses their impact on the project, and seeks approval before implementing the
changes. This process ensures that any modifications to the project are formally managed and
communicated to all stakeholders.
16/08/2024, 08:30 FancyGPT - cs615 lecture 24
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/8
cs615 lecture 25
cs615 lecture 25
cs615 lecture 25
cs615 lecture 25
cs615 lecture 25
LECTURE # 22
3. Processes
⇒Planning Process Tasks
1. Scope Planning
2. Scope Definition
3. Activity Definition
4. Activity Sequencing
5. Activity Duration Estimating
6. Resource Planning
7. Cost Estimating
8. Cost Budgeting Risk Planning
9. Schedule Development
10. Quality Planning
11. Communications Planning
12. Organization Planning
13. Staff Acquisition
14. Procurement Planning
15. Project Plan Development
1) Scope Planning — developing a written scope
statement as the basis for
future project decisions
2) Scope Definition—subdividing the major project
deliverables into smaller,
more manageable components
3) Activity Definition—identifying the specific
activities that must be
performed to produce the various project deliverables
4) Activity Sequencing—identifying and documenting
interactivity
dependencies
5) Activity Duration Estimating—estimating the
number of work periods that
will be needed to complete individual activities.
6) Resource Planning—determining what resources
(people, equipment,
materials, etc.) and what quantities of each should be
used to perform project
activities.
7) Cost Estimating—developing an approximation
(estimate) of the costs of the
resources required to complete project activities.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
8) Cost Budgeting—allocating the overall cost
estimates to individual work
packages.
9) Schedule Development —analyzing activity
sequences, activity durations,
and resource requirements to create the project
schedule.
10) Quality Planning—identifying which quality
standards are relevant to the
project and determining how to satisfy them.
11) Communications Planning—determining the
information and
communications needs of the stakeholders: who needs
what information,
when will they need it, and how will it be given to
them.
12) Organizational Planning—identifying,
documenting, and assigning project
roles, responsibilities, and reporting relationships.
13) Staff Acquisition—getting the human resources
needed assigned to and
working on the project.
14) Procurement Planning—determining what to
procure, how much to procure,
and when.
15) Project Plan Development —taking the results of
other planning processes
and putting them into a consistent, coherent
document.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
nt.
3.7 Executing Process
⇒Executing Process Tasks
1. Project Plan Execution—carrying out the project
plan by performing the
activities included therein.
2. Quality Assurance—evaluating overall project
performance on a regular basis to
provide confidence that the project will satisfy the
relevant quality standards
3. Team Development —developing individual and
group skills/competencies to
enhance project performance
4. Information Distribution—making needed
information available to project
stakeholders in a timely manner.
5. Solicitation —obtaining quotations, bids, offers, or
proposals as appropriate.
6. Source Selection —choosing from among potential
sellers.
Software Project Management (CS615)
140
© Copyright Virtual University of Pakistan
7. Contract Administration —managing the
relationship with the seller.
3.8 Controlling Process
Ensuring that project objectives are met by
monitoring and measuring progress
and taking corrective measures when necessary
Project performance must be monitored and
measured regularly to identify
variances from the plan. Variances are fed into the
control processes in the
various knowledge areas. To the extent that significant
variances are observed
(i.e., those that jeopardize the project objectives),
adjustments to the plan are
made by repeating the appropriate project planning
processes. For example, a
missed activity finish date may require adjustments to
the current staffing plan,
reliance on overtime, or tradeoffs between budget and
schedule objectives.
Controlling also includes taking preventive action in
anticipation of possible
problems.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
⇒Controlling Process Tasks
1. Integrated Change Control
2. Scope Verification
3. Scope Change Control
4. Schedule Control
5. Cost Control
6. Quality Control
7. Performance Reporting
8. Risk Response Control
The controlling process group contains core processes
and facilitating processes.
1. Integrated Change Control —coordinating changes
across the entire project.
2. Scope Verification—formalizing acceptance of the
project scope.
3. Scope Change Control—controlling changes to
project scope.
4. Schedule Control—controlling changes to the
project schedule.
5. Cost Control—controlling changes to the project
budget.
6. Quality Control—monitoring specific project results
to determine if they comply
with relevant quality standards and identifying ways
to eliminate causes of
unsatisfactory performance.
7. Performance Reporting—collecting and
disseminating performance
information. This includes status reporting, progress
measurement, and
Software Project Management (CS615)
141
© Copyright Virtual University of Pakistan
forecasting.
8. Risk Response Control—keeping track of identified
risks, monitoring residual
risks and identifying new risks, ensuring the execution
of risk plans, and
evaluating their effectiveness in reducing risk.
3.9 Closing Process
Formalizing acceptance of the project or phase and
bringing it to an orderly end.
⇒Closing Process Tasks
• Contract Closeout —completion and settlement of
the contract, including
resolution of any open items.
• Administrative Closure—generating, gathering, and
disseminating information
to formalize phase or project completion, including
evaluating the project and
compiling lessons learned for use in planning future
projects or phases.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
LECTURE # 25
4. PLANNING
4.7.4 Elements of SDP
Project Plan is iteratively defined through Concept 
Requirements Phase. Initial
estimates are refined as scope and requirements
become clearer. There are two
phases of project plan:
1. Preliminary
2. Final
Following are some elements of Software Project
Plan:
a) Scope Planning
• Scope planning is the process of progressively
elaborating and documenting
the project work (project scope) that produces the
product of the project.
• Project Scope Planning starts with the initial inputs
of product description, the
project charter, and the initial definition of constraints
and assumptions.
• Note that the product description incorporates
product requirements that
reflect agreed-upon customer needs and the product
design that meets the
product requirements.
• The outputs of scope planning are the scope
statement and scope management
plan, with the supporting detail.
• The scope statement forms the basis for an
agreement between the project and
the project customer by identifying both the project
objectives and the project
deliverables.
• Project teams develop multiple scope statements
that are appropriate for the
level of project work decomposition.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
b) Objectives – Business Requirements
– Could be “Mission Statement”
– Defines Business objectives for project
– Includes Business Case (NPV Model)  Detailed
Description of assumptions.
c) Technical Approach
Software Project Management (CS615)
158
© Copyright Virtual University of Pakistan
• Description of how new system is to be developed
– Technologies
– In House vs. Consultants
– Derivatives of existing (i.e. use existing object model)
– Architectural Layout – Layers
d) Contractual Aspects
• Specifies general needs from outside sources
– Consultants
– Software Suppliers
– Hardware Suppliers
– Network/Infrastructure Suppliers
• There are two types of contracts
1. Cost -Plus
2. Fixed Price
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples related to the additional elements of the
Software Project Plan, focusing on Objectives – Business Requirements, Technical
Approach, and Contractual Aspects:
Objectives – Business Requirements
Objectives – Business Requirements
Objectives – Business Requirements
Objectives – Business Requirements
Objectives – Business Requirements
Mission Statement
Example: The project’s mission might be to Develop a user-friendly e-
1
Technical Approach
Technical Approach
Technical Approach
Technical Approach
Technical Approach
Contractual Aspects
Contractual Aspects
Contractual Aspects
Contractual Aspects
Contractual Aspects
commerce platform that increases online sales by 20% within the first year
of launch.
Business Objectives for the Project
Example: The business objectives might include “Expanding market reach by
enabling online sales,” “Improving customer satisfaction through a better
online shopping experience,” and “Reducing operational costs by automating
order processing.”
2
Business Case (NPV Model)  Detailed Description of Assumptions
Example: The business case might include a financial model showing that the
project is expected to generate a positive Net Present Value (NPV) over five
years. The assumptions might include factors like “The online market will
grow by 10% annually,” and “The project will be completed within six
months.”
3
Description of How the New System Is to Be Developed
Example: The project might decide to develop the e-commerce platform
using a combination of in-house resources and external consultants, using
the latest web development technologies like React for the frontend and
Node.js for the backend.
1
Technologies
Example: The project will use specific technologies such as MySQL for the
database, AWS for cloud hosting, and Python for backend processing.
2
In-House vs. Consultants
Example: The project team might handle the core development in-house but
bring in consultants to design the user interface or set up the cloud
infrastructure.
3
Derivatives of Existing Systems
Example: If the organization already has an object model for managing
customer data, the project might reuse this existing model rather than
developing a new one from scratch.
4
Architectural Layout – Layers
Example: The project’s architectural design might include different layers
such as a presentation layer (user interface), a business logic layer
(processing transactions), and a data access layer (interacting with the
database).
5
Most other relationships are some kind of
combination of these two
1. Cost-plus (also called Time and material)
Cost-plus is a contractual relationship where the
developer is paid for the cost of
the service provided and in addition is allowed an
Specifying General Needs from Outside Sources
Example: The project might need to contract with external suppliers for
software licenses, additional hardware, or network infrastructure.
1
Consultants
Example: The project might hire a consulting firm to help with the system's
architecture design or to provide specialized expertise in cloud computing.
2
Software Suppliers
Example: The project might purchase third-party software modules or
libraries to integrate into the e-commerce platform, such as a payment
gateway.
3
Hardware Suppliers
Example: The project might need to buy new servers or other hardware
components from a hardware supplier to support the platform's
infrastructure.
4
Network/Infrastructure Suppliers
Example: The project might work with a network supplier to ensure the
necessary bandwidth and connectivity for the e-commerce platform.
5
Cost-Plus Contracts
Example: In a cost-plus contract, the project would pay the supplier for the
actual costs of the work, plus an additional fee for their profit. This might be
used when the exact scope of work is uncertain.
6
Fixed-Price Contracts
Example: In a fixed-price contract, the project would pay a predetermined
amount for the supplier’s services, regardless of how much it costs the
supplier to complete the work. This might be used when the scope is well-
defined.
7
agreed profit margin.
This is rather like renting a car the customer pays for
the time that the car is used
(by the hour, day, week etc.), and for any other
expenses such as insurance and
gasoline.
2. Fixed price
A fixed price contract is a commitment by the
developer to provide an agreed
product or service for an agreed fee, within an agreed
schedule.
This is similar to purchasing a bus ticket, when the bus
company agrees to take
the customer to a specific destination within a
published timetable, and for an
agreed fee.
e) Schedules
• Defines specific dates for milestones components
• Work Breakdown Structure
• Use Scheduling Engines like MS project etc.
f) Resource Allocation
Software Project Management (CS615)
159
© Copyright Virtual University of Pakistan
• Resources such as licenses, servers, or other
software/hardware related items
• Personnel – how many people of what type and for
how long
(Remember these are initial estimates in preliminary
project plan)
g) Evaluation Methods
• What methods to be used to validate performance
– Testing for adherence to spec
– Monitoring usage
From ChatGPT, designed with FancyGPT
• Web trends
• Database Logs
– Transaction logs
– Setup schedule for reviews
h) Overview of Project Management
• Define where possible problems can occur
– New technologies
– Business risks
– Resources
• Define Contingency Plans
– Development methods
– If the worst happens, what to do
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
cs615 lecture 26
cs615 lecture 26
cs615 lecture 26
cs615 lecture 26
cs615 lecture 26
LECTURE # 26
5. ORGANIZATION
4.8.1 Life cycle Models
To ensure the successful execution of a project, it is
necessary to break down the
project into: multiple manageable tasks.
Each task is performed in a series using processes. To
understand what a process
is, consider an example of a non software-related
project. You are planning the
market launch of an office management product. To
create an effective plan, you
need to perform certain tasks.
• First, you schedule a meeting of all managers and the
Finance, Marketing,
Production, and Systems personnel. You can follow a
process to complete
this 'task. You may send email messages or call them
up personally.
• Next, you decide some feasible marketing and
advertising strategies.
Again there are processes that help you select the
strategies.
• Fina1ly, you determine the territory where the
product should be launched.
This is done in consultation with the Production and
Marketing
departments.
Just like a non software-related project plan consists
of multiple processes, a
software development activity also consists of
multiple tasks. A process or a
combination of multiple processes is required to
complete each task. A typical
SDLC follows a consistent sequence of processes or a
process model.
A process is defined as a collection of related tasks
with specific milestones. To
ensure smooth progress of a software project,
relevant processes are arranged and
executed in a sequence. Every software project is
discrete with respect to its
complexity, size, and goals. Therefore, different
process models are designed for
different software projects. These process models
provide approaches that decide
the path of software development from the
conceptualization of a project to its
formal termination.
1. The Waterfall model: This is the traditional life cycle
model. It assumes that
all phases in a software project are carried out
sequentially and that each
phase is completed before the next is taken up.
2. The Prototyping Model: A model that works on an
iterative cycle of
gathering customer requirements, producing a
prototype based on the
requirement specifications, and getting the prototype
validated by the
Software Project Management (CS615)
161
© Copyright Virtual University of Pakistan
customer. Each iteration of the life cycle builds on the
prototype produced in
the previous iteration.
3. The Incremental Model: The Incremental model is
an example of an
evolutionary life cycle model. It combines the linear
nature of the Waterfall
model and the iterative nature of the Prototyping
model. The Incremental
model divided the development life cycle into multiple
linear sequences, each
of which produces an increment of the final software
product. In this model,
the software product is developed in builds. A build is
defined as a selfcontained unit of the development
activity. The entire development cycle is
planned for a specific number of logical builds, each
having a specific set of
features.
4. The Spiral model: Another evolutionary life cycle
model that combines the
linear nature of the Waterfall model and the iterative
nature of the Prototyping
model. The project life cycle is divided into phases, and
each phase is
executed in all of the iteration of the Spiral Model.
5. The RAD Model:
A Process defines the overall processes that an
organization needs to follow to
manage a project efficiently. It defines a structured
approach to sequence the
phases and identify the requirements of each phase in
the SDLC. The definition of
the phases in a process model helps organize, monitor,
and execute a project
efficiently.
A process model is flexible and does not follow any
rigid rules of implementation.
An organization can deploy a totally new process
model for its overall software
development effort. It can also customize an existing
process model to merge with
its implemented process model. For example, figure 1,
shows two process models,
A and B. Process model A was used by an organization
that manufactures
confidential defense applications. The management
used the model to plan
extensively for unexpected project risks. However,
after discussing with the
project managers and system analysts, the
organization wants to merge its current
process model with a model lat has simple and
consistent SDLC phases. This
leads to the evolution of the process model B.
Software Project Management (CS615)
162
© Copyright Virtual University of Pakistan
Figure: Customizing Process Models
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Let's break down the topics mentioned in your prompt into simple, beginner-level
examples for a coherent lecture.
Life Cycle Models in Software Development:
Life Cycle Models in Software Development:
Life Cycle Models in Software Development:
Life Cycle Models in Software Development:
Life Cycle Models in Software Development:
To manage and execute software projects efficiently, different life cycle models
are used. These models help define the approach for development and ensure that
tasks are executed in the right sequence. Here are some common life cycle
models:
Waterfall Model:
1
Example: Imagine you have a software project that must be developed
in a specific order, starting with gathering requirements, then moving
to design, followed by coding, testing, and finally deployment. The
project cannot proceed to the next phase until the current one is fully
completed.
2
Prototyping Model:
3
Example: Suppose a customer is unsure about their requirements. You
create a prototype (a rough version of the software), get feedback
from the customer, make improvements, and continue refining the
software until the customer is satisfied.
4
Incremental Model:
5
Example: In this approach, you break down the software project into
smaller parts (increments). Each increment is developed and delivered
separately. For instance, you could first build the core functionality of
the software, deliver it to the customer, and then keep adding
additional features in subsequent increments.
6
Spiral Model:
7
Example: This model combines elements of the Waterfall and
Prototyping models. Each phase of the project (such as requirements
8
Process Models and Customization:
Process Models and Customization:
Process Models and Customization:
Process Models and Customization:
Process Models and Customization:
A process model outlines the overall approach an organization follows to manage
a software project. It provides a structured way to sequence the phases and
identify the requirements for each phase.
Key Takeaways:
Key Takeaways:
Key Takeaways:
Key Takeaways:
Key Takeaways:
This structure ensures clarity and flexibility in project management while
adapting to the specific needs of software development projects.
gathering, design, etc.) is revisited multiple times, allowing for
continuous refinement. After completing each cycle, risks are
evaluated, and the next steps are planned.
RAD (Rapid Application Development) Model:
9
Example: This model focuses on quickly developing software using
iterative prototyping and rapid feedback. It’s useful when there is a
need for faster delivery of a software product.
10
Customizing Process Models:
Example: Let's say an organization originally used a complex process
model (Process Model A) that involved extensive risk planning for a
defense application. After evaluating the effectiveness of this
approach, the organization decides to simplify the process by
combining it with a model that has more straightforward phases
(Process Model B). The new customized model maintains some of the
risk planning while introducing a more streamlined process.
Software development is divided into manageable tasks that follow a
specific life cycle model.
Each life cycle model serves different project needs, ranging from strict
sequential approaches (like the Waterfall model) to more flexible, iterative
approaches (like the Spiral and Incremental models).
Organizations can customize their process models to suit their unique
requirements, combining elements of existing models to create a tailored
approach.
4.8.2 Choosing the lifecycle model
In choosing a lifecycle model for your project, you
should examine:
1. How well requirements are understood at the
beginning? Is it going to
change when moving through the project?
2. Is system architecture understood? Any changes on
the way?
3. Level of reliability?
4. Level of re-design for future versions?
5. Risk Level?
6. Stuck With Predefined Schedule?
7. Need For Midcourse Correction?
8. Customer Informed through the Project?
9. Visible Management through the Project?
10. If a Model is chosen, how much it needs
Modification?
Selecting an appropriate process model is crucial
because it can provide a basic
framework to initiate and carry out a project to its
conclusion. It also defines the path for
various project- related activities.
For example, if you select a process model, you know
for sure that you need to carry out
certain activities, such as planning, scheduling,
resource allocation, risk management, and
cost and effort estimation. These activities ensure
smooth progress of a project within the
Process Model A Process Model B
Software Project Management (CS615)
163
© Copyright Virtual University of Pakistan
allocated time and ensure maintenance of quality and
measurability throughout the
project.
With so many process models available, a project
manager is likely to face the dilemma
of selecting the right process model for managing a
software project efficiently.
To select a process model that is suitable to a project,
the following criteria can be
considered:
• Business goals of the organization
• Expected size of the project
• Client and project requirements
• Availability of funds and development staff
• Risks perceived in the project
Business Goals of the Organization
This criterion indicates the overall approach and
mindset of an organization. If the
organization has a past history of developiI;1g projects
in accordance with well-defined
plans and other job aids in every phase, the suitable
process model can be the Waterfall
model. However, if the organization is well equipped
with the resources to deal with
financial, technological, and personnel risks, it can
choose the Spiral model. The
organization can choose the Prototyping model if it is
used to working in an experimental
and a constant feedback mode.
Expected Size of the Project
If the size of a project is extensive and the client
prefers all the features of the proposed
project at the first delivery, you can select the
Waterfall model. When you want the entire
product to be developed and delivered in piecemeal so
that the clieI;1t can immediately
begin the unit testing of each module, you would
select the Incremental model. In
contrast, if the size of the project is doubtful, you can
go for the Prototyping or Spiral
model. These models help to develop projects that
have a vague and uncertain estimate of
the project size.
Client and Project Requirements
The Waterfall model or the Incremental model is
chosen if the client needs and the
project requirements are defined and approved. In
addition, no changes or negligible
changes are 1 expected in the future regarding design
requirements. In contrast, you
would choose the Spiral j and Prototyping models
when the client needs and system
requirements are uncertain and is likely to change in
the future.
Availability of Funds and Development Staff
The Waterfall and Prototyping models require
predetermined and adequate resources at
the start of a project. However, if you expect
additional funds and human resources as
you progress through the different phases, you should
go in for the Incremental or Spiral
models. This is because the Incremental model
operates on the assumption of developing
a project into several builds due to lack of human
resources. Similarly, the funds and
Software Project Management (CS615)
164
© Copyright Virtual University of Pakistan
staffing requirements in the Spiral model may increase
or decrease depending on the
changes in requirements arid feasibility of the
proposed project in the future.
Risks Perceived in a Project
This is yet another important criterion for the
selection of a process model. You choose
the Waterfall or Incremental model if the occurrence
of risks and their impact perceived
is minimum. However, you should go in for the Spiral
model if the risks and their
perceived impact are very high.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
You should use the waterfall model if:
• The project is large yet it is clearly divided into
discrete phases and each phase
has defined number of days, personnel, and resources
allocated. The Waterfall
model requires the presence of defined phases and
processes in each phase.
• The development also perceives that it can have
defined set of input and certified
output. This is because each phase would lead to
another and the next phase
would not begin until the previous phase is certified as
closed. This way baselines
and milestones for each phase can be identified. The
Waterfall model assumes the
closure of a previous phase before the successive
phase begins. This ensures
linear progression of a project where developers do
not need to revert to an earlier
phase or a process.
• The development team is not likely to face any
bumps in the development process
because of clear cut project requirements as well
documentation provided to them
by the client. Clarity of project vision and project
requirements are the essential
features of the Waterfall model, which are fulfilled in
the preceding scenario.
Therefore, if the requirements are defined and a
project is large enough to be divided into
defined phases, you can go for the Waterfall model.
However Waterfall model has the following
drawbacks:
• There cannot be a sudden crossover from one phase
to the next. Real-time projects
require sudden crossover between phases because
such projects are subjected to
change in every phase of the development cycle. For
example, real-time projects such
as embedded software development where the phases
and the requirements for every
phase cannot be determined at the analysis phase
cannot deploy the Waterfall model.
• Another reason for the unpopularity of the Waterfall
model is that it requires too
much effort for stringent documentation-in every
phase. Every phase is closed with
formal documentation. Projects with predictable final
product, such as banking
software or an airline reservation project, usually have
formal documentation. This is
because the phases of these projects are defined.
However, it is difficult for research
and development (RD) related projects to complete
all project documentation.
• The Waterfall model does not support the
development of a working model of a
Software Project Management (CS615)
165
© Copyright Virtual University of Pakistan
project first and then further development based on
client feedback. Absence of a
working model prevents you from detecting an issue
in an early phase. As a result,
you incur higher expenditure in rectifying the issue in
a later phase. This in turn has
an adverse effect on the effort, cost, and time spent on
rework.
• Finally, the Waterfall model causes, as a blocking
state. When a blocking state
occurs, some team members wait for other team
members to finish a dependent task.
For example, in the following figure, the team member
assigned to do the design task
cannot begin work until the analysis is complete. This
delays the turnaround of the
software project. Many times, the blocking state
wastes a lot of developers' time that
could have been spent on productive project -related
work.
Figure: Idle Team Members in the Phases of the
Waterfall Model
You should use Prototyping model when:
• The client is not clear about the requirements of the
proposed system or
Analysis
Design
Coding
Testing
Implementation 
Design
Software Project Management (CS615)
166
© Copyright Virtual University of Pakistan
• When there is a conflict in client requirements.
To resolve the conflict, the development team
develops a working model so that the
requirements of the client become defined. Defined
client requirements enable the
physical development of the actual product.
The Prototyping model enables an analysis team to
first construct a working model with
their prior software experience combined with the
vague needs of the client.
The Prototyping model can be as simple as a drawing
on a paper or as complex as the real
working software. The closer your prototype is to the
actual product, the more precise is
your evaluation.
There are different types of prototyping methods that
an organization can implement:
• Rapid prototyping
• Reusable prototyping
• Modular prototyping
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Lecture: Software Development Models - Waterfall
Lecture: Software Development Models - Waterfall
Lecture: Software Development Models - Waterfall
Lecture: Software Development Models - Waterfall
Lecture: Software Development Models - Waterfall
and Prototyping Models
and Prototyping Models
and Prototyping Models
and Prototyping Models
and Prototyping Models
This lecture focuses on the Waterfall and Prototyping models of software
development, explaining when and why to use them, as well as their drawbacks.
Let's break down the key points with simple, beginner-level examples to help
understand these concepts.
Waterfall Model
Waterfall Model
Waterfall Model
Waterfall Model
Waterfall Model
When to Use the Waterfall Model:
1
Large Project with Defined Phases:
2
Example: Imagine you are working on a project to create a
banking software system. You know exactly what each phase of
the project will involve, such as gathering requirements,
3
designing the system, coding, testing, and implementation. Each
phase is well-defined, and you allocate specific resources
(people, time, and tools) for each phase. This makes the
Waterfall model a good choice.
Defined Inputs and Outputs:
4
Example: Each phase of your banking project has a clear start
and end. For instance, you won’t move on to coding until the
design phase is completed and approved. The Waterfall model is
useful when you need this type of linear, step-by-step approach.
5
Clear Project Requirements and Vision:
6
Example: The client has provided detailed documentation about
what they want in the banking system. Since there is no
uncertainty in the requirements, the Waterfall model works
well because it relies on having everything clearly laid out from
the beginning.
7
Drawbacks of the Waterfall Model:
8
No Sudden Crossovers Between Phases:
9
Example: In a real-time embedded software project, such as
developing firmware for a medical device, requirements may
change frequently. The Waterfall model does not support these
changes easily because it doesn’t allow jumping back and forth
between phases.
10
Heavy Documentation:
11
Example: The Waterfall model requires detailed documentation
at each phase. In a banking software project, this might be fine,
but for research projects like developing a new AI algorithm,
where requirements evolve, this can be a burden.
12
No Early Detection of Issues:
13
Example: Without a working model early on, you may not detect
problems until later phases, such as during testing. This can
increase costs if significant changes are needed late in the
project.
14
Blocking State:
15
Prototyping Model
Prototyping Model
Prototyping Model
Prototyping Model
Prototyping Model
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
The Waterfall model is suited for projects with well-defined phases and
requirements, like banking software, but can be problematic in projects requiring
flexibility or frequent changes. On the other hand, the Prototyping model is ideal
Example: During the design phase of the banking project,
developers working on the coding phase are idle because they
cannot start until the design is finished. This delay causes
inefficiencies, as shown in the diagram where team members
wait for others to finish their tasks.
16
When to Use the Prototyping Model:
1
Unclear Client Requirements:
2
Example: You are building an e-commerce platform, but the
client is unsure about how they want the product pages to look.
You use the Prototyping model to create a simple prototype,
like a rough sketch or a basic working model, which helps the
client better understand what they need. Once they see it, they
can provide more specific requirements.
3
Conflicting Requirements:
4
Example: If the marketing and sales teams disagree on how the
checkout process should function, you create a prototype to
resolve this conflict. Seeing a tangible model helps both teams
clarify their needs.
5
Types of Prototyping:
6
Rapid Prototyping:
7
Example: You quickly build a rough version of the e-commerce
platform to show the client. It’s not fully functional, but it helps
in quickly gathering feedback.
8
Reusable Prototyping:
9
Example: You develop a prototype that can be reused as part of
the final product, such as the basic layout of the platform.
10
Modular Prototyping:
11
Example: You break down the e-commerce platform into smaller
modules, such as the login system, product pages, and checkout
process. You develop prototypes for each module separately.
12
Rapid prototyping
This model is suitable when:
• The cost and time required to create a prototype is
minimal.
• The project has a substantially long cycle
• Development team wants the design to be strong.
Reusable prototyping
This model is used when:
• The old design needs major changes but the
supplementary components of the old
design do not need major changes.
Modular prototyping
This model is used when:
• Considerable cost, time and effort are deployed to
create a prototype.
• Client feedback for enhancements is not major
• Minor improvisations are needed to obtain client
approval.
Using the Prototyping model saves cost and time
involved in the build-it-twice approach.
The experience of developing the prototype is useful
for developers while developing the
final product. It reduces the risks of an unfeasible
project design because the developers
when client requirements are unclear or conflicting, allowing the development
team to build a working model for clarification.
These models represent different approaches to software development, and
choosing the right one depends on the project’s specific needs, requirements, and
constraints.
gain a fair idea of the resources and the probable time
taken to create the [mal product.
They also get a feel of the implementation tool to be
used in the project.
Incremental Model
Software Project Management (CS615)
167
© Copyright Virtual University of Pakistan
You can use the Incremental model approach in
software projects:
• Where human resource is scarce.
In such cases, the management can decide to divide
and develop a product in individual
builds. When the resources are available, the
subsequent builds are planned and executed.
This process model is useful in real life because
normally all the resources required to
complete the project are not available at the same
time.
Example:
Consider a situation in which you might need to use
the Incremental model of SDLC.
Supersoft2000 requires a software product that
automates the employee and their salary
details. It has assigned this project to Blue Valley
Consulting (BVC) that specializes in
developing Human Resources (HR)-related
applications. The project requirements are
defined to start the project. However, the client wants
to roll out the new system for the
benefit of its employees as early as possible. The
analysis team in BVC has been able to
divide the entire project into seven independent
modules. On the basis of their prior
experience, it feels each module can be executed and
deployed independently by the
client. After all the modules are completed, the
maintenance team in BVC can assemble
and implement the system at the client site. Currently,
the development personnel in BVC
are hired on contract and BVC faces shortage of
skilled personnel.
In such a case, you use the Incremental model because
of the following reasons:
• Time and lack of skilled personnel are the main
hindrances in this project.
Therefore, by using the Incremental model, you can
design, develop, and deliver
independent modules. This way by using a few skilled
personnel you are able to develop
a system with basic features and provide it to the
client immediately. The most important
and the least dependent module are developed first.
While the client is using the module,
BVC can arrange for additional skilled personnel to
complete the rest of the modules and
deliver them to the client.
The Incremental model enables you to revert to an
earlier phase and refine the product
based on client feedback. After all the modules have
been developed, the development
personnel can be released. BVC can then hire or retain
a few experienced personnel to
create a maintenance team. This team would assemble
and implement the entire
employee salary details product at the client site. This
flexibility of personnel can be
exercised because you use the Incremental model.
Using the Incremental model enables:
• Division of skilled labor
• Division of a complex project into modules
• Development of those modules within a short time
frame
Software Project Management (CS615)
168
© Copyright Virtual University of Pakistan
Therefore, if time and skilled personnel are
constraints of a Project, you can effectively
use the Incremental model.
Spiral Model
The basic goal of using the Spiral model is to define
ways of eliminating risks in the
design phase. Consequently, minimum and
manageable risks percolate into the
development phase.
Example:
LMN Inc. has acquired a project to develop a
telecommunications project using the
Voice-over Internet telephony (VOIP) technology. The
company does not have any prior
experience or the required level of expertise to
develop such a project. There is a team of
three analysts and the company does not propose to
dedicate a team to complete this
project. This is because it anticipates many risks and a
large amount of rework that may
add to the cost of project execution. The company has
determined multiple models and
designs to execute the project. After presenting the
models to the client, the client is itself
confused. However, it assures LMN Inc. of continued
feedback and support. The client
fully understands the ambitiousness of the project and
does not consider time and budget
as constraints for the project. Consequently, LMN Inc.
decides to use the client feedback
and risk analysis effectively until the end of the
project.
In this situation, you would use the Spiral model
because of the following reasons:
• LMN Inc. has no prior experience or expertise in
executing such a project.
Therefore, it expects a lot of rework in reverting to an
earlier phase and
incorporating client feedback therein. Using the Spiral
model, you can to revert to
an earlier phase to incorporate client feedback and
compete that phase.
• It needs to perform risk analysis effectively to
eliminate losses arising due to
uncertain development models, resource
requirements, project constraints, and
time.
• It is also preferable to create a prototype for every
deliverable that LMN Inc.
might deem necessary to receive client feedback.
• Spiraling cumulative project costs can be covered up
by the liberal budget
provided by the client.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
4.9 Planning Documents
You (the PM) need to choose which documents are
appropriate. Documents do not have
to be lengthy.
The requirements phase produces one main product
document:
• The software requirements specification document
And two Project Planning Documents:
Software Project Management (CS615)
169
© Copyright Virtual University of Pakistan
1. The Project Development Plan
• The Software Test Plan
The requirements phase formally concludes with the
project's first major review: the
software requirements review (SRR). It is this review
that signs off the requirements
specification and formally declares the requirements
document as the first approved
project baseline.
2. The Statement of Requirement (SOR)
The project manager (or the advising consultant
adopting this role) must ensure
that the project sponsor has produced a written
statement of requirements (SOR).
This must be a thorough document which is:
o Unambiguous
o Fully defined or complete
o Verifiable deliverables
o No conflicts
o Consistent
o Auditable
The SOR will be the document against which change
control will be exercised.
The SOR should be closely matched to the contract
and there should be no
conflict of interests between the two. Where
consultants are involved, the client or
sponsor SOR will normally form the basis of the
proposal. All of these documents
must carefully align and there should be no scope for
misinterpretation, confusion
or lack of understanding. This will be the cornerstone
of the project.
3. System Specification
If a System Specification has been properly developed,
nearly all information
required for a description of software scope is
available and documented before
software project planning begins. In cases where a
specification has not been
developed, the planner must take on the role of
system analyst to determine
attributes and bounds that will influence estimation
tasks.
4. Design Specification
The first stage of risk analysis requires a review of all,
project technical and
administrative plans in order to identity potential
problems. It includes:
• The project development plan
• The requirements specification
• The design specification
Software Project Management (CS615)
170
© Copyright Virtual University of Pakistan
All major dependencies in the project development
plan are examined and
evaluated.
Examples may be the dependence on external sources
such as subcontractors,
vendors and suppliers, and service providers.
Problems will arise if external
components or services are not provided on time, or if
they do not function as
expected.
The project design specification is a detailed plan of
how the requirements are to
be implemented.
The implementation decisions involved may contain
potential problems, For
example, problems will arise if the selected hardware
turns out to be inadequate,
such as if the CPU is too slow, the LAN is not
sufficiently reliable, or the
maximum available memory is insufficient.
A list of all anticipated problems is then compiled,
identifying each problem and
describing the potential effect on the project.
Following table presents an example
of an anticipated problem list.
Table 1: Example of an anticipated problem list
Problem Description
1. Late delivery of the If the computer is not delivered
by June 1, as
Development computer planned the integration phase
will be delayed.
2. Insufficient memory The size of the memory
resident part of the
System may exceed 8 megabytes (the maximum
memory size supported by the computer).
3. No operating system The system requires changes
to the standard expert
operating system. John Adams is the only OS
Expert in the company, and he may not be available
for this project.
4. System response time The required system
response time to the
input
too slow. may exceed the 5 seconds specified in the
requirements.
5. High staff turnover The schedule is tight with only
minimal slack
time. If there is more than average staff
Replacement during development, we will slip the
schedule.
Software Project Management (CS615)
171
© Copyright Virtual University of Pakistan
6. Communication The standard communications
package is too
too slow slow. The design is based on the new binary
Communication package. This package has never
Been used with this system and may not be suitable.
7. Late delivery of the The data based subsystem is
subcontracted to
Data base subsystem Software Developer Inc. (SDI),
who have
Committed to delivery by April 15, SDI may not
Deliver on time, thus delaying the final integration
and test phase.
The anticipated problem list should be compiled with
the participation of the
principle members of the project development team.
Other people may also be
invited to contribute to the list, based on their
experience and technical or
administrative knowledge. This might include people
from other project teams,
support groups, the company's legal department or
the purchasing department.
While the objective is not to list every conceivable
problem that any project may
experience, it is necessary to identify those problems
that should reasonably be
considered in relation to the project. In any event, the
following analysis stage is
designed to isolate only those problems that could
have significant impact on the
project, and that can reasonably be expected to
appear.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for the topics mentioned in your lecture
content:
1.
1.
1.
1.
1. Software Requirements Specification (SRS)
Software Requirements Specification (SRS)
Software Requirements Specification (SRS)
Software Requirements Specification (SRS)
Software Requirements Specification (SRS)
Document
Document
Document
Document
Document
2.
2.
2.
2.
2. Project Development Plan
Project Development Plan
Project Development Plan
Project Development Plan
Project Development Plan
3.
3.
3.
3.
3. Software Test Plan
Software Test Plan
Software Test Plan
Software Test Plan
Software Test Plan
4.
4.
4.
4.
4. Statement of Requirements (SOR)
Statement of Requirements (SOR)
Statement of Requirements (SOR)
Statement of Requirements (SOR)
Statement of Requirements (SOR)
Purpose: The SRS document outlines all the software requirements in
detail. It serves as the foundation for the entire project.
Example: A team is working on developing an e-commerce platform. The
SRS document contains all the functional and non-functional requirements,
such as the ability to add products to a cart, process payments, and ensure
secure transactions.
Purpose: This document outlines how the software project will be
developed. It includes the schedule, resources, and tasks needed for the
project.
Example: In the e-commerce project, the Project Development Plan
specifies that the development will be done in three phases: user interface
development, payment integration, and final testing. It also defines the
timeline for each phase and the resources allocated to them.
Purpose: The Software Test Plan outlines how the software will be tested to
ensure it meets all the requirements.
Example: For the e-commerce platform, the Software Test Plan specifies
that testing will be done in two stages: unit testing of individual components
(like product listing and payment processing) and system testing of the
entire platform.
Purpose: The SOR is a formal document provided by the project sponsor,
detailing the project requirements clearly and without ambiguity.
5.
5.
5.
5.
5. System Specification
System Specification
System Specification
System Specification
System Specification
6.
6.
6.
6.
6. Design Specification
Design Specification
Design Specification
Design Specification
Design Specification
7.
7.
7.
7.
7. Anticipated Problem List
Anticipated Problem List
Anticipated Problem List
Anticipated Problem List
Anticipated Problem List
Example: The SOR for the e-commerce project might state that the system
must support at least 500,000 users, must process payments within 2
seconds, and should be compliant with data privacy regulations.
Purpose: The System Specification document provides detailed information
about the system's technical and functional aspects. It helps in defining the
software's scope.
Example: For the e-commerce platform, the System Specification document
would include details about the server infrastructure, databases,
programming languages, and third-party integrations required for payment
gateways.
Purpose: The Design Specification details how the system will be
implemented. It includes technical choices such as hardware, software, and
network configurations.
Example: In the e-commerce project, the Design Specification would outline
that the platform will run on cloud servers, use a relational database for
storing product information, and implement a specific encryption algorithm
for secure transactions.
Purpose: This list identifies potential problems that could arise during the
project and describes their impact on the project.
Example:
Problem: Late delivery of the development server.
Impact: If the server is delayed, integration and testing might be
pushed back, affecting the overall project timeline.
Problem: Insufficient memory in the development system.
Impact: The system might not be able to handle the required
operations, leading to performance issues during development.
Problem: Lack of an available operating system expert.
Impact: If the expert is unavailable, it might delay configuring
the system and integrating the necessary software.
Problem: Communication too slow.
Impact: If the communication system is slower than expected, it
could affect the real-time processing of orders and customer
5. The Data Item Descriptions (DID s)
Standard 2168 (DOD 1988b) contains the
requirements for the development,
documentation and implementation of a software
quality program. The software
quality program includes planning for and conducting:
ƒ Evaluations of the quality of software
ƒ Associated documentation and related activities
ƒ Follow-up activities necessary to assure timely and
effective resolution of
problems
The DID s are a comprehensive set of documentation
standards that cover all
phases of software development, maintenance and the
production of user
reference manuals. The DID s include a section called
preparation instructions
that provide a large degree of freedom by permitting
8.
8.
8.
8.
8. Software Requirements Review (SRR)
Software Requirements Review (SRR)
Software Requirements Review (SRR)
Software Requirements Review (SRR)
Software Requirements Review (SRR)
By addressing these elements in a project, the development team can ensure that
the software is built according to the agreed-upon requirements and any risks are
managed effectively.
transactions.
Purpose: The SRR is a formal review process where the project's
requirements are approved and signed off as the first project baseline.
Example: After completing the SRS document for the e-commerce platform,
the project manager and stakeholders hold an SRR meeting. During this
meeting, they ensure that all requirements are clear, agreed upon, and no
conflicts exist between the client’s expectations and the document.
tailoring of the document
format and the use of alternate presentation styles.
The full set of DID s is
described in Table 2.
Standard 2167 states that it is not intended to specify
or discourage the use of any
particular software development method (DOD
1988a). However, as mentioned
previously, the standard is heavily inclined toward
phased development
methodologies, such as the Waterfall paradigm. The
phased approach is inherent
Software Project Management (CS615)
172
© Copyright Virtual University of Pakistan
in the required development stages and reviews,
requiring system design to be
followed by software requirements, software design,
implementation and testing.
The Data Item Descriptions define the formal
documentation standards for all
required documents generated during the
development of software according to
standard 2167. DID s apply to the development of one
or more computer system
configuration items (CSCI s), a term used throughout
the 2167 standard to
identify high level decomposition components of a
computer system.
Table 2: DOD Data Item Descriptions (DID s)
Development documentation
• Software development plan
System documentation
• System/segment specification
• System/segment design document
Software design and requirements
• Software requirements specification
• Software design document
Interface design and requirements
• Interface requirements, specification
• Interface design document
Version description
• Version description document
Test documentation
• Software test plan
• Software test description
• Test report
Release manuals
• Computer system operator's manual
• Software user's manual
• Software programmer's manual
• Firmware support manual
Maintenance documentation and source code
• Computer resources integrated support document
• Software product specification
Software Project Management (CS615)
173
© Copyright Virtual University of Pakistan
A CSCI, as applied to software; is a component of the
system that can be
individually controlled, configured, tested and
documented. CSCI s are often
reviewed and approved as separate development
items, and though a single
review or audit can consider more than one CSCI, each
is usually addressed
separately during the review process. There are no
clear-cut guidelines for the
division of a software system into CSCI s as the
division is essentially one of
convenience.
Table 3: DOD Data Item Description standards
Data requirements title Acronym
1. System segment design document SSDD
2.Software development plan SDP
3.Software requirements specification SRS
4. Interface requirements specification IRS
5. Interface design document IDD
6. Software design document SDD
7. Software product specification SPS
8. Version description document VDD
9. Software test plan STP
10. Software test description STD
II. Software test report STR
12. Computer system operator's manual CSOM
13. Software user's manual SUM
14. Software programmer's manual SPM
15. Software support manual FSM
16. Computer resources integrated support document
CRISD
17. Engineering change proposal ECP
18. Specification change notice SCN
Table 3 contains a list of the DID s referenced by
standard 2167A. The software
quality DID is referenced separately in the DOD
software quality program
standard 2168. All DID document formats follow a
similar pattern. Several of the
sections are common to most, if not all of the
documents, such as:
• Title page format
• Table of contents
• Scope (including identification, overview, references
etc.)
• Other applicable documents
• Notes and appendices
Software Project Management (CS615)
174
© Copyright Virtual University of Pakistan
phasis is on the required content and not on the
required format. This is
specifically addressed in the preparation instructions
accompanying each DIn
addition, the page format, page numbering scheme,
section numbering scheme
and various other preparation instructions are
common. This clearly suggests the
use of an automatic tool to assist in the preparation of
the documents, a practice
greatly encouraged by the 2167 standard. Many such
tools have been developed
to support 2167, and Polack, in a paper analyzing the
use of CASE tools for DOD
projects (Polack 1990), concludes that these tools do
indeed save time, and result
in a higher quality software system.
Each DID describe the requirements for the
preparation of a specific document,
but the main emID, which state that other
presentation styles, including charts,
tables or matrices, are acceptable (e.g. Hatley and
Pirbhai (1988) or Ward and
Mellor (1986). There is also substantial flexibility in
the requirements regarding
the content of the documents. The standard provides
for considerable tailoring to
adapt the standard to the type of project being
developed.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Tailoring the standard
Tailoring of standard 2167 is not only encouraged, it is
required. The foreword to
2167 states that the standard must be appropriately
tailored by the Program
Manager to ensure that only cost-effective
requirements are cited in defense
solicitations and contracts.
The DOD has issued a guide for tailoring that can be
used as a reference source
for adapting the standards to the type of project being
developed. Two basic
principles apply to tailoring:
• The tailoring process is the deletion of non-
applicable requirements.
• Tailoring of the standard should be carried out by
the contracting agency.
The first principle means that these modifications can
only include the deletion of
requirements from the standard (and not changes to
the requirements in the
standard). The second principle means that the
contractor (i.e. the developer)
cannot tailor the standard without receiving
permission from the contracting
agency (i.e. the DOD).
Tailoring of the 2167 standard must be completed as
early as possible. This is best
performed either during contract negotiations or as
one of the initial activities as
soon as the project begins. The following is a
description of the basic procedure
for tailoring standard 2167:
1. Review all standard 2167 requirements, including;
• reviews and audits
• documentation
Software Project Management (CS615)
175
© Copyright Virtual University of Pakistan
• testing activities
• quality assurance activities
• configuration control activities
• other required development activities
2. Identify the requirements that are not applicable,
justifiable or reasonable for
the project being developed. For example, the
Firmware Support Manual will
not be required if no firmware is being developed: or
two design reviews
(POR and COR) may not be necessary for a small
project.
3. Prepare a list of requests for deletions from the
standard. This may include:
• exclusion of documents
• exclusion of sections in documents
• exclusion of activities.
• exclusion of parts of activities
4. Prepare a written description of the justifications
for each item that is
requested to be tailored out.
5. Submit the tailoring request, together with the
justification, as early as
possible (preferably before the project begins).
In order to be able to differentiate between forgotten
items and tailored items, all
tailored items must be clearly referenced. When
submitting a list of documents for
a formal review or milestone, all documents tailored
out should be listed together
with a statement to that effect. Within a document,
when a paragraph is tailored
out a statement to that effect will appear directly after
the paragraph number. If a
paragraph and all of its subparagraphs are tailored out,
only the highest level
paragraph number need be included.
The list of the DID s together with the list of tailoring
approvals are an integral
part of the project deliverables. Until tailoring
approval has been granted, the
developer is obligated to provide the full list of Dills,
with all their inclusions.
This is the reason why tailoring should be concluded as
early as possible.
6. The software configuration management plan
(SCMP)
The software configuration management plan (SCMP)
is part of the project's
software development plan. The SCMP may appear as
a separate document or as
a section within the project development plan.
The SCMP documents the resources that are needed,
how they are to be used, and
which standards and procedures will be applied during
the project.
Software Project Management (CS615)
176
© Copyright Virtual University of Pakistan
The SCMP then becomes the mandate for the
configuration control group during
project development. The issuance of this plan is the
responsibility of the project
manager, though in large projects it may be delegated
to the configuration Control
manager.
Table 4 contains a list of the main subjects covered in
the SCMP. When any of
these subjects is covered elsewhere (e.g. in the
software quality assurance plan), it
can be omitted from the SCMP and replaced by a
pointer to the document in
which it is covered. Though most of the subjects in
Table 1 are self-descriptive,
the following are some guidelines:
Configuration status accounting describes the way in
which status information
flows:
ƒ From the developers to the configuration
management organization (audits
and reviews)
ƒ From the configuration management organization to
project management
(status reporting procedures)
Configuration identification describes the method for
designating development
items as SCCI s. This is part of the high level
decomposition of the system into
major development components.
The section on identification methods describes the
way in which each component
generated by the project is marked for unique
identification. Security, restricted
access and classification refer to the secure
development of sensitive products
(such as documents, software, patents, military
classified information etc.). It is
often convenient to assign many of these tasks to
configuration control because of
the need to be involved in the review and classification
of documents and other
related activities that are associated with security.
Subcontractors, vendors and suppliers mayor may not
implement their own
configuration management plan. It is the project
manager's responsibility to assure
that either subcontractors or external developers
submit a CMP for review, or that
the project's configuration manager assumes
responsibility for their work.
The SCMP may also include diagrams and flow charts
to describe procedures for
submitting change requests, or for reporting
problems.
7. Statistical software process improvement (SSPI)
As an organization becomes more comfortable with
the collection and use or
process metrics, the derivation of simple indicators
gives way to a more rigorous
approach called statistical software process
improvement (SSPI).
Software Project Management (CS615)
177
© Copyright Virtual University of Pakistan
In essence, SSPI uses software failure analysis to
collect information about all
errors and defects encountered as an application,
system, or product is developed
and used. Failure analysis works in the following
manner:
1. All errors and defects are categorized by origin (e.g.,
flaw in specification, flaw in
logic, non conformance to standards).
2. The cost to correct each error and defect is
recorded.
3. The number of errors and defects in each category
is counted and ranked in
descending order.
4. The overall cost of errors and defects in each
category is computed.
5. Resultant data are analyzed to uncover the
categories that result in highest cost to
the organization.
6. Plans are developed to modify the process with the
intent of eliminating or
reducing the frequency of the class of errors and
defects that is most costly.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Table 4: Example of the contents of a software
configuration management plan
1. Software configuration management organization
and resources
ƒ Organization structure
ƒ Personnel skill level and qualifications
ƒ Resources
2. Standards, procedures, policies and guidelines
3. Configuration identification
ƒ Method for defining SCCI s Description of the SCCI s
for this project
4. Identification methods (naming and marking of
documents, software components,
revisions. releases, etc.)
5. Submission of configuration items
ƒ Approval/rejection procedure
6. Change control
ƒ Change control procedures (method of submission,
review. approval and
rejection)
ƒ Reporting documentation (change requests, problem
reports)
ƒ Change review procedures and review board
7. Version control
ƒ Preparation of software and documentation
versions
ƒ Release approval procedure
8. Storage, handling and delivery of project media
ƒ Storage requirements
ƒ Backups
Software Project Management (CS615)
178
© Copyright Virtual University of Pakistan
9. Configuration control of subcontractors, vendors
and suppliers
10. Additional control
ƒ Miscellaneous control procedures
ƒ Project specific control (security etc)
11. Configuration status accounting
ƒ Configuration audits and reviews
ƒ Configuration structure reporting procedures
12. Configuration management major milestones
13. Tools, techniques and methodologies
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for each section of a Software
Configuration Management Plan (SCMP) based on the contents listed in the table:
1.
1.
1.
1.
1. Software Configuration Management Organization
Software Configuration Management Organization
Software Configuration Management Organization
Software Configuration Management Organization
Software Configuration Management Organization
and Resources
and Resources
and Resources
and Resources
and Resources
2.
2.
2.
2.
2. Standards, Procedures, Policies, and Guidelines
Standards, Procedures, Policies, and Guidelines
Standards, Procedures, Policies, and Guidelines
Standards, Procedures, Policies, and Guidelines
Standards, Procedures, Policies, and Guidelines
3.
3.
3.
3.
3. Configuration Identification
Configuration Identification
Configuration Identification
Configuration Identification
Configuration Identification
4.
4.
4.
4.
4. Identification Methods
Identification Methods
Identification Methods
Identification Methods
Identification Methods
Organization Structure: This section describes who is responsible for
configuration management in the project. For example, it might outline that
there is a configuration management team led by a configuration manager
who reports to the project manager.
Personnel Skill Level and Qualifications: This outlines the qualifications
and skills required by the personnel involved in configuration management.
For example, team members might need experience in version control
systems and knowledge of the project's software development tools.
Resources: Lists the resources needed for configuration management, such
as version control software, storage servers, and backup systems.
This section specifies the standards and guidelines the project will follow.
For example, it might reference the DOD-STD-2167 standard and any
company-specific guidelines for software development and configuration
management.
Method for Defining SCCIs: Defines how Software Configuration Items
(SCCIs) are identified. For example, each software component might be
assigned a unique identifier, like COMP01 for a specific module in the
system.
Description of the SCCIs for This Project: Lists the specific SCCIs that are
part of the project. For example, a particular software module or document
could be identified as an SCCI.
5.
5.
5.
5.
5. Submission of Configuration Items
Submission of Configuration Items
Submission of Configuration Items
Submission of Configuration Items
Submission of Configuration Items
6.
6.
6.
6.
6. Change Control
Change Control
Change Control
Change Control
Change Control
7.
7.
7.
7.
7. Version Control
Version Control
Version Control
Version Control
Version Control
8.
8.
8.
8.
8. Storage, Handling, and Delivery of Project Media
Storage, Handling, and Delivery of Project Media
Storage, Handling, and Delivery of Project Media
Storage, Handling, and Delivery of Project Media
Storage, Handling, and Delivery of Project Media
This section describes how configuration items, such as documents,
software components, and releases, are named and marked. For example,
software versions might follow a naming convention like v1.0, v1.1, etc.,
while documents might be labeled with a unique document code.
Approval/Rejection Procedure: Describes how configuration items are
submitted for review and approval. For example, after a software
component is developed, it is submitted to the configuration management
team for approval. If the component meets all requirements, it is approved;
if not, it is rejected with feedback for revision.
Change Control Procedures: This section outlines how changes to
configuration items are managed. For example, developers submit change
requests through a change control system, which are then reviewed and
either approved or rejected by a change control board.
Reporting Documentation: Specifies the documentation required for
change requests and problem reports. For example, a change request form
might need to include the reason for the change, the impact on the project,
and the approval status.
Change Review Procedures and Review Board: Describes how the change
review process works and who is on the review board. For example, the
review board might include senior developers, project managers, and
quality assurance personnel.
Preparation of Software and Documentation Versions: Details how
different versions of software and documentation are prepared. For
example, after significant changes, a new version of the software is
prepared, tested, and documented as version 2.0.
Release Approval Procedure: Specifies how new versions are approved for
release. For example, after testing is completed, the release manager
reviews the results and, if everything is satisfactory, approves the software
for release.
Storage Requirements: Describes how project media, such as software
code and documentation, should be stored. For example, the plan might
9.
9.
9.
9.
9. Configuration Control of Subcontractors, Vendors,
Configuration Control of Subcontractors, Vendors,
Configuration Control of Subcontractors, Vendors,
Configuration Control of Subcontractors, Vendors,
Configuration Control of Subcontractors, Vendors,
and Suppliers
and Suppliers
and Suppliers
and Suppliers
and Suppliers
10.
10.
10.
10.
10. Additional Control
Additional Control
Additional Control
Additional Control
Additional Control
11.
11.
11.
11.
11. Configuration Status Accounting
Configuration Status Accounting
Configuration Status Accounting
Configuration Status Accounting
Configuration Status Accounting
12.
12.
12.
12.
12. Configuration Management Major Milestones
Configuration Management Major Milestones
Configuration Management Major Milestones
Configuration Management Major Milestones
Configuration Management Major Milestones
13.
13.
13.
13.
13. Tools, Techniques, and Methodologies
Tools, Techniques, and Methodologies
Tools, Techniques, and Methodologies
Tools, Techniques, and Methodologies
Tools, Techniques, and Methodologies
require that all media be stored in a secure, climate-controlled environment
with access restrictions.
Backups: Specifies the backup procedures for configuration items. For
example, the plan might require daily backups of all critical data and weekly
offsite backups for disaster recovery.
This section ensures that subcontractors, vendors, and suppliers follow the
project's configuration management procedures. For example, a
subcontractor providing a software component must follow the same
version control and change management processes as the primary
development team.
Miscellaneous Control Procedures: Covers any additional control
procedures that apply to the project. For example, there might be
procedures for handling specific security requirements.
Project-Specific Control: Describes any controls unique to the project, such
as handling classified information or implementing stricter security
measures.
Configuration Audits and Reviews: Outlines the process for performing
configuration audits and reviews. For example, the configuration
management team might perform regular audits to ensure that all
configuration items are properly tracked and controlled.
Configuration Structure Reporting Procedures: Describes how
configuration status is reported. For example, the project manager might
receive weekly status reports detailing the current configuration of all
project components.
This section lists the major milestones for configuration management
activities. For example, key milestones might include the completion of
initial configuration identification, the first version release, and final project
delivery.
8. Communications management plan
A communications management plan is a document
that provides:
• A collection and filing structure that details what
methods will be used to gather
and store various types of information. Procedures
should also cover collecting
and disseminating updates and corrections to
previously distributed material.
• A distribution structure that, details to whom
information (status reports, data,
schedule, technical documentation, etc.) will flow, and
what methods (written
reports, meetings, etc.) will be used to distribute
various types of information.
This structure must be compatible with the
responsibilities and reporting
relationships described by the project organization
chart.
• A description of the information to be distributed,
including format, content, level
of detail, and conventions/definitions to be used.
• Production schedules showing when each type of
communication will be
These examples align with the coherent structure of the lecture, providing
students with clear and practical understanding of how these components fit into
the Software Configuration Management Plan (SCMP).
This section details the specific tools, techniques, and methodologies that
will be used for configuration management. For example, it might specify the
use of a particular version control system (e.g., Git) and describe the
techniques for performing code reviews and audits.
produced.
• Methods for accessing information between
scheduled communications.
• A method for updating and refining the
communications management plan as the
project progresses and develops. The communications
management plan may be
formal or informal, highly detailed or broadly framed,
based on the needs of the
project. It is a subsidiary component of the overall
project plan.
9. The software quality assurance plan
Every project must have a quality plan. The quality
plan will be presented as a
section in the project plan.
Software Project Management (CS615)
179
© Copyright Virtual University of Pakistan
It is drawn up by the project manager at the start of
the project and should be
agreed with the project sponsor.
You would expect the quality plan to contain the
following elements:
ƒ Statement of the quality control organisation
ƒ Identification of specific standards and methods that
will be used
ƒ Definition of the quality control procedures; this is
aligned to the Work
Breakdown Structure
ƒ Specification of quality milestones
ƒ Detail of unusual features
ƒ Change control and configuration management
ƒ Detail of acceptance procedures
ƒ Specification of quality assurance procedures
The software quality assurance plan (SQAP), like the
software configuration plan,
is also part of the overall software project
development plan.
The SQAP documents which resources are needed,
how they should be used and
which standards and procedures will be applied during
the project.
The SQAP then becomes the mandate for the quality
assurance group during
project development. The issuance of this plan is the
responsibility of the project
manager, though in large projects it will usually be
delegated to the quality
assurance manager.
The SQAP may appear as a separate document or as a
section within the project
development plan, and may include the configuration
management plan (if this
has not been documented separately).
Table 5 contains a list of the main subjects covered in
the SQAP. When any of
these subjects is covered elsewhere, such as in the
software configuration
management plan (SCMP), it can be omitted from the
SQAP and replaced by a
pointer to the document in which it is covered.
However, the SCMP and the SQAP are concerned with
different aspects of the
controlled items. The SCMP is primarily concerned
with the format of controlled
items while the SQAP is more involved with the
contents of controlled items.
The SQAP must cover subcontractors, vendors and
suppliers, irrespective of
whether or not these external entities have their own
quality assurance
organization.
In any project, the quality of external components is
ultimately the concern of the
project manager and the SQA organization. When a
system fails, it usually makes
Software Project Management (CS615)
180
© Copyright Virtual University of Pakistan
little difference whether the failure is due to an
externally developed component
or an in-house developed component.
The plans for supervising these external groups must
be adapted to the type of
external components being provided (off the shelf or
new development) and the
type of organization (do they have their own quality
assurance organization?).
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for the Communications Management
Plan and Software Quality Assurance Plan (SQAP) based on the contents listed in
your prompt. These examples are coherent and part of a single lecture, ensuring
clarity.
8.
8.
8.
8.
8. Communications Management Plan
Communications Management Plan
Communications Management Plan
Communications Management Plan
Communications Management Plan
Collection and Filing Structure: This section specifies how information will
be collected and stored. For example, status reports might be collected
weekly via a project management tool like Jira, and stored in a shared drive
that all team members have access to. The procedures also explain how
updates or corrections to previously distributed information, such as
revised project timelines, will be handled and communicated to relevant
stakeholders.
Distribution Structure: This section details who will receive project
information and how it will be delivered. For example, the project manager
might distribute weekly status reports to the development team through
email and hold monthly meetings with senior management to review
progress. This structure should align with the project’s organization chart,
where responsibilities and reporting relationships are clearly defined.
Description of Information to Be Distributed: This section describes what
information will be communicated, its format, and how detailed it should be.
For example, technical documentation might be distributed as PDF files
with a detailed description of system architecture, while status reports
could be brief, summarizing key milestones achieved and any risks
encountered.
Production Schedules: This section outlines when different types of
communication will be created and distributed. For example, the project
plan might specify that status reports will be produced every Friday, while a
quarterly technical review will be scheduled at the end of each quarter.
Methods for Accessing Information Between Scheduled Communications:
This section provides guidelines for team members who need to access
information between scheduled communications. For example, project
members might be able to access up-to-date project documentation on the
company’s internal wiki or project management software.
Updating the Communications Management Plan: This section explains
how the plan will be updated over time. For example, if the project scope
changes and new stakeholders are added, the communications plan might
be revised to include them in the distribution of status reports. The plan
might be reviewed and updated every six months or as needed based on
project developments.
9.
9.
9.
9.
9. Software Quality Assurance Plan (SQAP)
Software Quality Assurance Plan (SQAP)
Software Quality Assurance Plan (SQAP)
Software Quality Assurance Plan (SQAP)
Software Quality Assurance Plan (SQAP)
Statement of the Quality Control Organization: This section describes who
is responsible for ensuring software quality. For example, a quality
assurance (QA) team is led by a QA manager, who reports to the project
manager. This team oversees all quality control activities within the project.
Identification of Specific Standards and Methods: This section specifies the
standards and methods that will be used to ensure quality. For example, the
project might adopt the ISO 9001 standard for quality management and use
automated testing tools like Selenium to verify software functionality.
Definition of Quality Control Procedures: This section details the quality
control procedures that will be followed during the project. For example,
the team may follow a procedure where each new software feature must
pass unit testing, integration testing, and user acceptance testing before it is
considered complete.
Specification of Quality Milestones: This section outlines key milestones
related to quality assurance. For example, quality milestones might include
the completion of the first round of testing, the resolution of all high-
priority defects, and the final approval of the software by the quality
assurance team.
Detail of Unusual Features: This section describes any unusual features or
special requirements that affect quality control. For example, the project
may involve integrating a third-party component that requires special
testing procedures due to its complexity.
Change Control and Configuration Management: This section describes
how changes to the software will be managed. For example, any change
requests must go through a formal approval process, and configuration
management tools like Git will be used to track changes to the codebase.
Detail of Acceptance Procedures: This section specifies how the project
will determine if the software meets the required quality standards. For
example, the acceptance procedure might involve conducting a formal
review with the client, where the software is demonstrated and evaluated
against the project’s acceptance criteria.
Specification of Quality Assurance Procedures: This section describes the
overall procedures the quality assurance team will follow. For example, QA
procedures might include regular code reviews, automated regression
testing, and manual testing of user interfaces.
Table 5: Example of the contents of a software quality
assurance plan
1. Software quality assurance organization and
resources
Organizational structure
Personnel skill level and qualifications
Resources
2. SQA standards. Procedures, policies and guidelines
3. SQA documentation requirements
List of all documentation subject to quality control
Description of method of evaluation and approval
4. SQA software requirements
Evaluation and approval of software
Description of method of evaluation
Evaluation of the software development process
Evaluation of reused software
This structure provides students with a clear understanding of both the
Communications Management Plan and the Software Quality Assurance Plan,
explaining how these plans are integrated into the overall project management
process and tailored to the specific needs of the project.
Covering Subcontractors, Vendors, and Suppliers: This section explains
how the SQAP applies to external entities, such as subcontractors or
vendors. For example, the project might require that all subcontractors
follow the same testing and quality assurance procedures as the in-house
team. The QA team will review and verify the quality of any external
components before they are integrated into the project.
Adaptation to External Groups: This section describes how the plan will be
adapted based on the type of external components or the nature of the
external organization. For example, if a vendor is providing an off-the-shelf
product, the QA team might focus on integration testing, while if a
subcontractor is developing a custom module, the team may require that
the subcontractor follows the full quality assurance process.
Evaluation of non-deliverable software
5. Evaluation of storage handling and delivery
Project documents
Software
Data files
6. Reviews and audits
7. Software configuration management (when not
addressed in a separate document)
8. Problem reporting and corrective action
9. Evaluation of test procedures
10. Tools techniques and methodologies
11. Quality control of subcontractors, vendors and
suppliers
12. Additional control
Miscellaneous control procedures
Project specific control
13. SQA reporting, records and documentation.
Status reporting procedures
Maintenance
Storage and security
Retention period
The SQAP, as part of the project development plan,
should be reviewed and
updated periodically and whenever any requirements,
project development
procedures, methodologies or other relevant activities
are changed.
Software Project Management (CS615)
182
© Copyright Virtual University of Pakistan
The IEEE SQAP guide recommends periodic
evaluation of two aspects of the
plan:
(1) The plan's content and
(2) The plan's implementation
The plan's content should be evaluated with regard to
the specific SQAP standard
used, to assure the plan's continuing compliance with
the standard even when the
characteristics of the software project change.
The plan's implementation should be evaluated in
terms of the changing scope of
the project, including the tasks and responsibilities
referenced in the plan, and
other new or changed characteristics of the project.
When updating the SQAP the following project
activities and events should be
considered:
ƒ New or changed contractual requirements
ƒ Additional standards and policies
ƒ Additional project documents
ƒ Changes in the project's organizational structure
ƒ New tools and utilities
ƒ Additional subcontractors and vendors
10. The RMMM Plan
A collection of risk information sheets developed for
all risks that lie above the
cut off. A risk management strategy can be included in
the software project plan
or the risk management steps can be organized into a
separate Risk Mitigation,
Monitoring and Management Plan. The RMMM plan
documents all work
performed as part of risk analysis and are used by the
project manager as part of
the overall project plan.
Some software teams do not develop a formal RMMM
document. Rather, each
risk is documented individually using a risk
information sheet (RIS) [WIL97]. In
most cases, the RIS is maintained using a database
system, so that creation and
information entry, priority ordering, searches, and
other analysis may be
accomplished easily.
Once RMMM has been documented and the project
has begun, risk mitigation
and monitoring steps commence.
Software Project Management (CS615)
183
© Copyright Virtual University of Pakistan
As we have already discussed, risk mitigation is a
problem avoidance activity.
Risk monitoring is a project tracking activity with
three primary objectives:
1. To assess whether predicted risks do, in fact, occur;
2. To ensure that risk aversion steps defined for the
risk are being properly
applied; and
3. To collect information that can be used for future
risk analysis. In many cases,
the problems that occur during a project can be traced
to more than one risk.
Another job of risk monitoring is to attempt to allocate
origin (what risk(s)
caused which problems throughout. the project).
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for the contents of a Software Quality
Assurance Plan (SQAP) and the Risk Mitigation, Monitoring, and Management
(RMMM) Plan, ensuring coherence as they are part of a single lecture.
Software Quality Assurance Plan (SQAP)
Software Quality Assurance Plan (SQAP)
Software Quality Assurance Plan (SQAP)
Software Quality Assurance Plan (SQAP)
Software Quality Assurance Plan (SQAP)
Software Quality Assurance Organization and Resources
1
Organizational Structure: This section details the structure of the
SQA team. For example, a QA Manager leads a team of QA engineers
and testers, who report their findings to the project manager.
2
Personnel Skill Level and Qualifications: Here, the plan describes the
qualifications required for the QA team, such as knowledge of testing
methodologies, experience with testing tools, and familiarity with
software development practices.
3
Resources: This section lists the resources available to the QA team,
such as testing environments, hardware for performance testing, and
software tools like Selenium or JIRA for tracking defects.
4
SQA Standards, Procedures, Policies, and Guidelines
5
This section specifies the standards (e.g., ISO 9001), procedures (e.g.,
code review process), and policies (e.g., defect reporting) that the
project must follow to ensure quality.
6
SQA Documentation Requirements
7
List of Documentation Subject to Quality Control: All project
documents such as requirements specifications, design documents,
and test plans must undergo quality checks.
8
Description of Method of Evaluation and Approval: For example,
documents may be reviewed through formal peer reviews, and
approval is given by the QA manager after all identified issues are
resolved.
9
SQA Software Requirements
10
Evaluation and Approval of Software: The team assesses the
software to ensure it meets the requirements. For example, user
stories and features are tested to verify they function as expected.
11
Evaluation of the Software Development Process: This involves
evaluating whether the development team is following the established
processes, such as using version control or conducting code reviews.
12
Evaluation of Reused Software: Any software components reused
from other projects are evaluated for compatibility and correctness.
13
Evaluation of Non-Deliverable Software: Tools and utilities used
internally, such as scripts or custom testing tools, are evaluated to
ensure they work correctly.
14
Evaluation of Storage, Handling, and Delivery
15
Project Documents: Procedures are defined to ensure that all project
documents are stored securely, such as using a version-controlled
repository (e.g., GitHub) to prevent unauthorized changes.
16
Software and Data Files: The plan describes how software and data
files should be stored and delivered securely, ensuring that no
corruption occurs during transfer.
17
Reviews and Audits
18
Regular reviews and audits of the software and project documents are
scheduled. For example, code audits might be conducted at the end of
each sprint to ensure adherence to coding standards.
19
Software Configuration Management (When Not Addressed in a Separate
Document)
20
This section explains how configuration management is handled. For
example, version control systems like Git are used to track changes to
the software, ensuring consistency across different versions.
21
Problem Reporting and Corrective Action
22
This section details the process for reporting defects and
implementing corrective actions. For example, defects are reported
using an issue-tracking system like JIRA, and the development team is
responsible for fixing them within a specified timeframe.
23
Risk Mitigation, Monitoring, and Management
Risk Mitigation, Monitoring, and Management
Risk Mitigation, Monitoring, and Management
Risk Mitigation, Monitoring, and Management
Risk Mitigation, Monitoring, and Management
(RMMM) Plan
(RMMM) Plan
(RMMM) Plan
(RMMM) Plan
(RMMM) Plan
Evaluation of Test Procedures
24
Test procedures are evaluated to ensure they are thorough and
effective. For example, automated tests may be reviewed to confirm
they cover all critical scenarios.
25
Tools, Techniques, and Methodologies
26
This section lists the tools, techniques, and methodologies used in the
project. For example, the team might use Selenium for automated testing
and follow the Agile methodology.
Quality Control of Subcontractors, Vendors, and Suppliers
1
This section describes how the quality of work done by subcontractors and
vendors is controlled. For example, any software components delivered by
subcontractors must be tested according to the same quality standards as
in-house components.
Additional Control
1
Miscellaneous Control Procedures: Additional quality control procedures
that are unique to the project are listed here. For example, special security
testing might be required for certain features.
Project-Specific Control: Any controls that are specific to the project are
documented. For example, a project involving a medical device might
require compliance with FDA regulations.
SQA Reporting, Records, and Documentation
1
Status Reporting Procedures: This section defines how the quality
assurance team will report its status to the project manager, such as
through weekly reports or dashboard updates.
Maintenance: This section explains how quality-related documentation will
be maintained, such as by using version control for all documents.
Storage and Security: Procedures for securely storing QA documents, such
as using encrypted cloud storage, are outlined.
Retention Period: The plan specifies how long QA records will be retained,
which might be required for compliance with industry standards.
By covering both the SQAP and RMMM Plan in this lecture, students will have a
clear understanding of how quality assurance and risk management are handled in
software projects, with examples that illustrate the practical application of these
concepts.
Risk Information Sheets (RIS)
1
A Risk Information Sheet is created for each identified risk. For
example, if there’s a risk of a key team member leaving, this risk would
be documented in an RIS, including details about its likelihood, impact,
and mitigation strategies.
2
Risk Management Strategy
3
The risk management strategy outlines how the team will handle
identified risks. For example, if there’s a risk of project delays, the
strategy might include adding buffer time to the schedule or cross-
training team members to handle multiple roles.
4
Risk Mitigation
5
Problem Avoidance: Risk mitigation focuses on avoiding potential
problems. For example, if there’s a risk of data loss, the team might
implement regular data backups to mitigate this risk.
6
Risk Monitoring
7
Assessing Predicted Risks: The team continuously monitors the
project to see if any predicted risks occur. For example, if there’s a risk
of a vendor delivering late, the team regularly checks in with the
vendor to ensure they’re on track.
8
Ensuring Proper Application of Risk Aversion Steps: The team
ensures that risk aversion steps are being followed. For example, if
additional testing was identified as a mitigation strategy for a high-risk
feature, the team checks that this testing is being carried out as
planned.
9
Collecting Information for Future Risk Analysis: The team collects
data on risks that occurred and how they were managed, which can
help in future projects. For example, if a project was delayed due to a
specific issue, that information can be used to improve planning in the
future.
10
11. Project Development Budget
Good estimates are important, as they form the
foundations of a good project
development plan. This plan, prepared by the project
manager, is produced during
the initial stages of the project and includes estimates
related to:
• The project development budget
• The project development schedule
• The required development resources (development
staff, development
equipment etc.)
In parallel with integration and testing, the following
managerial and activities
take place:
• Final budgeting of the project; the cost of changes is
determined, risk
contingency activities are evaluated, and the budget is
updated.
• Training is conducted for users, operators,
customers, installers, maintenance
engineers, and marketing engineers.
• Installation sites are prepared, and the
infrastructure for hardware and special
equipment is planned and installed.
• The development team size is reduced.
12. Maintenance Documents
The phased approach to software development
divides the development life cycle
into:
• The development of the software code
• Preparation for integration and test of the system
(the next phase)
• The development of the maintenance plan
Apart from the actual code being written (and
hopefully being well commented),
some of the other documents that are developed
during this phase include:
Software Project Management (CS615)
184
© Copyright Virtual University of Pakistan
• The programmer's notebook, documenting coding
decisions, unit tests, and
resolution of implementation problems.
• Maintenance plan and documentation, including all
necessary documentation
needed for system maintenance.
• Initial versions of the user documentation, including
reference manuals and
operator guides.
At the conclusion of the integration and test phase all
documentation must be
complete and ready for delivery, including:
• Maintenance documentation
• Final user documentation
• All updated development documentation
• Test documentation and test reports
Maintenance requires a much smaller team, and a
different type of management. In
fact, a single maintenance group can be established to
maintain several products, with
common management, configuration control,
installation and field engineers, and
maintenance of documentation.
The documents that need to be updated during this
phase include:
• Version release documentation
• Problem reports
• All development documentation
• All user documentation
• Maintenance logs and customer service reports
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Here are simple, beginner-level examples for the topics related to the project
development budget and maintenance documents, ensuring coherence as these
are part of a single lecture.
11. Project Development Budget
11. Project Development Budget
11. Project Development Budget
11. Project Development Budget
11. Project Development Budget
Project Development Budget
1
The project manager prepares a budget estimate during the initial
project planning stages. For example, the budget includes costs for
development staff salaries, software licenses, hardware requirements,
and other resources needed throughout the development process.
This helps the team ensure they have enough funds to complete the
project.
2
Project Development Schedule
3
The project manager also creates a schedule that estimates how long
different phases of the project will take. For example, the schedule
might allocate three months for development, one month for testing,
and another month for deployment.
4
Required Development Resources
5
12. Maintenance Documents
12. Maintenance Documents
12. Maintenance Documents
12. Maintenance Documents
12. Maintenance Documents
The project manager estimates the resources required for the project,
such as the number of developers needed, the development tools
required (e.g., IDEs like Visual Studio), and any special equipment for
testing or deployment (e.g., specific servers for deployment).
6
Final Budgeting of the Project
7
Once integration and testing begin, the project manager finalizes the
budget. For example, if changes are made during development, such as
adding new features, the additional costs are evaluated and the
budget is updated to reflect these changes. Risk contingency costs, like
preparing for potential delays, are also reviewed.
8
Training for Users and Other Stakeholders
9
Training sessions are conducted to prepare users, operators, and other
stakeholders (e.g., marketing engineers) for the new software. For
example, end-users might attend a training session to learn how to use
the system, while maintenance engineers are trained on how to
troubleshoot and repair it.
10
Preparation of Installation Sites
11
The installation site for the software is prepared during this phase. For
example, if the software is to be installed in a data center, the required
servers and network infrastructure are set up in advance to ensure
everything is ready for deployment.
12
Development Team Size Reduction
13
As the project progresses into the final stages, the size of the
development team is reduced. For example, after the major
development work is completed, fewer developers are needed, and
some may move on to other projects, leaving a smaller team to handle
final fixes and integration.
14
Phased Approach to Software Development
1
The software development life cycle is divided into phases, such as
coding, integration, and testing. For example, after writing the code,
the next phase might involve integrating the code into the overall
system and performing system-level tests to ensure everything works
as expected.
2
Development of the Maintenance Plan
3
A maintenance plan is created to ensure the software can be
effectively maintained after it is delivered. For example, the plan might
specify how updates and bug fixes will be managed, and who will be
responsible for maintaining the software over time.
4
Programmer's Notebook
5
During development, programmers keep a notebook documenting
important details such as coding decisions, unit tests, and how they
resolved any problems they encountered. For example, if a
programmer encounters a bug in the code, they might document the
steps they took to identify and fix the issue.
6
Maintenance Documentation
7
The maintenance documentation provides all the information needed
to maintain the software after it is delivered. For example, this
includes detailed instructions on how to install updates, troubleshoot
problems, and perform routine maintenance tasks.
8
User Documentation
9
Initial versions of user documentation are also developed during this
phase. For example, reference manuals and operator guides provide
end-users and system operators with detailed instructions on how to
use the software and troubleshoot common issues.
10
Conclusion of Integration and Test Phase
11
At the end of the integration and test phase, all project documentation
must be complete and ready for delivery. For example, maintenance
documentation, user manuals, development documentation, and test
reports are finalized to ensure they are accurate and up-to-date.
12
Smaller Maintenance Team
13
After the project is delivered, a smaller maintenance team is formed to
handle ongoing support. For example, while a large team might have
been needed during the development phase, only a few people are
required to handle updates and fixes during the maintenance phase.
14
Version Release Documentation
15
Version release documentation is updated to reflect any changes or
updates made to the software. For example, this might include a list of
16
From ChatGPT, designed with FancyGPT
By covering both the project development budget and maintenance documents in
this lecture, students will have a clear understanding of how budgeting,
scheduling, resource planning, and documentation play critical roles throughout
the software development and maintenance phases.
new features or bug fixes introduced in the latest software release.
Problem Reports
17
Problem reports document any issues encountered during the use of
the software. For example, if a user reports a bug, the problem report
details the issue, its impact, and the steps taken to resolve it.
18
Updated Development Documentation
19
All development documentation, such as design documents and code
specifications, is updated to reflect any changes made during the final
stages of the project.
20
Updated User Documentation
21
User documentation, such as manuals and guides, is updated to
include any new features or changes made to the software after
delivery.
22
Maintenance Logs and Customer Service Reports
23
Maintenance logs track all maintenance activities, such as bug fixes
and updates. Customer service reports document any issues reported
by users, along with the actions taken to resolve them.
24
cs615 lecture 26a
cs615 lecture 26a
cs615 lecture 26a
cs615 lecture 26a
cs615 lecture 26a
13. The statement of work (SOW)
The statement of work is the basis of the contract between the
pro-poser and the
customer, and is often incorporated into the contract. The SOW
contains a
detailed list of all work to be performed by the pro-poser for
the benefit of the
customer.
It is a narrative description of products or services to be
supplied by the project.
For internal projects, the project initiator or sponsor provides
the statement of
work based on business needs, or product or service
requirements. For external
projects, the statement of work can be received from the
customer as part of a bid
document, for example, request for proposal, request for
information, request for
bid, or as part of a contract. The SOW indicates a:
• Business need - an organization’s business need, can be based
on needed
training, market demand, technological advance, legal
requirement, or
governmental standard.
Software Project Management (CS615)
185
© Copyright Virtual University of Pakistan
• Product scope description - documents the product
requirements and
characteristics of the product or service that the project will be
undertaken to
create. The product requirements will generally have less detail
during the
initiation process and more detail during later processes, as the
product
characteristics are progressively elaborated. These
requirements should also
document the relationship among the products or services
being created and
the business need or other stimulus that causes the need. While
the form and
substance of the product requirements document will vary, it
18/08/2024, 13:29 FancyGPT - cs615 lecture 26a
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/4
should always be
detailed enough to support later project planning.
• Strategic plan - all projects support the organization’s
strategic goals—the
strategic plan of the performing organization should be
considered as a factor
in project selection decisions.
The SOW starts as a general list of required deliverables in the
RFP. A more
detailed version t of the SOW is submitted as part of the
proposal, and is still
considered only an initial description of the work to be
performed. The blinding
version of the SOW is finalized during contract negotiations, or
after the detailed
project requirements have been completed.
Table 6 presents an example of an SOW outline for a software
project. The list of
items varies considerably, depending on the type of project
being developed; for
example not all projects include the delivery of hardware
components, and not all
projects require training or installation.
The basic guideline for the preparation of the SOW is that any
activity, service or
product required by the customer, and agreed to by the
developer, must be
included. This means that there can be no binding work items
that were
informally understood or agreed to verbally, which do not
appear in the SOW.
The formal SOW must include all and only the work to be
performed. This
condition prevents misunderstandings and disagreements later,
after the project
begins.
The statement of work (SOW) describes the procurement item
in sufficient detail
to allow prospective sellers to determine if they are capable of
providing the item.
“Sufficient detail” may vary, based on the nature of the item, the
needs of the
buyer, or the expected contract form.
Some application areas recognize different types of SOW. For
example, in some
government jurisdictions, the term SOW is reserved for a
procurement item that is
a clearly specified product or service, and the term Statement
of Objectives (SOO)
18/08/2024, 13:29 FancyGPT - cs615 lecture 26a
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/4
is used for a procurement item that is presented as a problem
to be solved.
The statement of work may be revised and refined as it moves
through the
procurement process. For example, a prospective seller may
suggest a more
Software Project Management (CS615)
186
© Copyright Virtual University of Pakistan
efficient approach or a less costly product than that originally
specified. Each
individual procurement item requires a separate statement of
work. However,
multiple products or services may be grouped as one
procurement item with a
single SOW.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Sure! Let's break down the topics from the Statement of Work (SOW) section into simple,
beginner-level examples.
1.
1.
1.
1.
1. Business Need
Business Need
Business Need
Business Need
Business Need
2.
2.
2.
2.
2. Product Scope Description
Product Scope Description
Product Scope Description
Product Scope Description
Product Scope Description
3.
3.
3.
3.
3. Strategic Plan
Strategic Plan
Strategic Plan
Strategic Plan
Strategic Plan
4.
4.
4.
4.
4. General List of Required Deliverables in the RFP
General List of Required Deliverables in the RFP
General List of Required Deliverables in the RFP
General List of Required Deliverables in the RFP
General List of Required Deliverables in the RFP
5.
5.
5.
5.
5. Detailed SOW Submitted as Part of the Proposal
Detailed SOW Submitted as Part of the Proposal
Detailed SOW Submitted as Part of the Proposal
Detailed SOW Submitted as Part of the Proposal
Detailed SOW Submitted as Part of the Proposal
Example: Imagine a company needs to develop new software to meet updated
government regulations. The business need here is to comply with these regulations by
creating the necessary software.
Example: Suppose the project is to develop an e-commerce website. The product scope
description would include the required features like a shopping cart, payment gateway,
and user login system. Initially, this description might be broad, but as the project
progresses, more details about each feature will be added.
Example: If a company’s strategic goal is to expand into online markets, a project to
build an e-commerce website would align with this goal. The SOW should consider this
strategic plan to ensure the project supports the company's overall direction.
Example: In an RFP (Request for Proposal) for developing a mobile app, the general list
might include the creation of the app, user testing, and final delivery of the app to the
app stores. This list is broad and will be refined later.
Example: When a software development company submits a proposal for the mobile
app project, they might detail the specific programming languages they’ll use, the
timeline for development, and how they’ll handle user testing.
18/08/2024, 13:29 FancyGPT - cs615 lecture 26a
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/4
From ChatGPT, designed with FancyGPT
6.
6.
6.
6.
6. Binding Version of the SOW Finalized During Contract
Binding Version of the SOW Finalized During Contract
Binding Version of the SOW Finalized During Contract
Binding Version of the SOW Finalized During Contract
Binding Version of the SOW Finalized During Contract
Negotiations
Negotiations
Negotiations
Negotiations
Negotiations
7.
7.
7.
7.
7. Prevention of Misunderstandings
Prevention of Misunderstandings
Prevention of Misunderstandings
Prevention of Misunderstandings
Prevention of Misunderstandings
8.
8.
8.
8.
8. SOW Describing Procurement Items in Sufficient Detail
SOW Describing Procurement Items in Sufficient Detail
SOW Describing Procurement Items in Sufficient Detail
SOW Describing Procurement Items in Sufficient Detail
SOW Describing Procurement Items in Sufficient Detail
9.
9.
9.
9.
9. Different Types of SOW (e.g., Statement of Objectives)
Different Types of SOW (e.g., Statement of Objectives)
Different Types of SOW (e.g., Statement of Objectives)
Different Types of SOW (e.g., Statement of Objectives)
Different Types of SOW (e.g., Statement of Objectives)
10.
10.
10.
10.
10. SOW Revised During Procurement Process
SOW Revised During Procurement Process
SOW Revised During Procurement Process
SOW Revised During Procurement Process
SOW Revised During Procurement Process
These examples are intended to clarify how each aspect of the SOW is applied in a project,
helping you understand its importance in managing project scope and expectations.
Example: After discussing the proposal with the client, the final SOW might be adjusted
to include a specific launch date or additional features that were requested during
negotiations. This finalized SOW will be the binding document for the project.
Example: If the SOW specifies that the mobile app will include a chat feature, both the
developer and the client know this feature must be delivered. Any additional features
requested later that aren’t in the SOW would require a new agreement.
Example: If the project involves purchasing third-party software for integration, the
SOW would detail the specific software needed, including version, licensing
requirements, and how it should integrate with the project.
Example: In a government project, the SOW might detail the exact software to be
developed, while the Statement of Objectives (SOO) might only outline the problem
that needs solving, allowing bidders to propose their solutions.
Example: During the bidding process, a vendor might propose a cheaper software
solution that still meets the project’s needs. The SOW could be revised to reflect this
change before the contract is signed.
18/08/2024, 13:29 FancyGPT - cs615 lecture 26a
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/4
cs611 lecture 26c
cs611 lecture 26c
cs611 lecture 26c
cs611 lecture 26c
cs611 lecture 26c
Table 6: A sample SOW outline for a software project
1. Referenced documents
• requirements specification
• existing system description
• customer's RFP
• developer's proposal
• vendor's and developer's technical literature
2. Software deliverables
• functionality (as documented in the requirements
specification)
• list of major software components
3. Equipment and hardware deliverables
• functionality (as documented in the requirements
specification)
• list of major hardware components
4. Training
• user courses
• operator training
• installation training
5. Market research
6. Procurement
7. Supervision of subcontractors
8. Documentation
• development documentation
• user documentation
• maintenance documentation
• other technical documentation
9. Testing
• alpha testing
• beta testing
• acceptance tests (ATP)
10. Installation
11. Maintenance services
12. Other services and deliverable items
13. Method of delivery
Software Project Management (CS615)
187
© Copyright Virtual University of Pakistan
• software
• documentation
• hardware
The statement of work should be as clear, as complete, and as
18/08/2024, 13:54 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/4
concise as possible.
It should include a description of any collateral services
required, such as
performance reporting or post-project operational support for
the procured item.
In some application areas, there are specific content and format
requirements for a
SOW.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Lecture: Understanding the Sample Statement of Work
Lecture: Understanding the Sample Statement of Work
Lecture: Understanding the Sample Statement of Work
Lecture: Understanding the Sample Statement of Work
Lecture: Understanding the Sample Statement of Work
(SOW) for a Software Project
(SOW) for a Software Project
(SOW) for a Software Project
(SOW) for a Software Project
(SOW) for a Software Project
In this lecture, we’ll go through the different sections of a sample Statement of Work (SOW)
for a software project, providing simple, beginner-level examples for each topic mentioned.
The goal is to make you familiar with what each part of the SOW entails.
1. Referenced Documents
1. Referenced Documents
1. Referenced Documents
1. Referenced Documents
1. Referenced Documents
Referenced documents are existing documents that provide background or additional
information needed for the project. Examples include:
2. Software Deliverables
2. Software Deliverables
2. Software Deliverables
2. Software Deliverables
2. Software Deliverables
This section lists the software components that will be delivered to the customer. For
example:
3. Equipment and Hardware Deliverables
3. Equipment and Hardware Deliverables
3. Equipment and Hardware Deliverables
3. Equipment and Hardware Deliverables
3. Equipment and Hardware Deliverables
If the project includes physical hardware, this section outlines what will be provided. For
instance:
Requirements Specification: A document listing all the features and functionalities the
software must have.
Existing System Description: An overview of the current system that the new software
will replace or integrate with.
Customer’s RFP (Request for Proposal): A formal document from the customer
outlining what they need in the new software.
Developer’s Proposal: The document in which the developer explains how they plan to
meet the customer's needs.
Vendor's and Developer's Technical Literature: Manuals, brochures, or guides that
describe products or technologies used in the project.
Functionality: The specific features of the software, like user login, data processing, or
report generation.
List of Major Software Components: The main parts of the software, such as the user
interface, database, and backend services.
18/08/2024, 13:54 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/4
4. Training
4. Training
4. Training
4. Training
4. Training
Training ensures that users and operators know how to use the software and hardware.
Examples include:
5. Market Research
5. Market Research
5. Market Research
5. Market Research
5. Market Research
Market research involves studying market trends, competitors, and customer needs to ensure
the software meets its intended market. An example might include:
6. Procurement
6. Procurement
6. Procurement
6. Procurement
6. Procurement
Procurement involves acquiring the necessary hardware, software, or services for the
project. An example:
7. Supervision of Subcontractors
7. Supervision of Subcontractors
7. Supervision of Subcontractors
7. Supervision of Subcontractors
7. Supervision of Subcontractors
This involves overseeing other companies or teams hired to complete parts of the project. For
example:
8. Documentation
8. Documentation
8. Documentation
8. Documentation
8. Documentation
Documentation is the written material that supports the project. Examples include:
9. Testing
9. Testing
9. Testing
9. Testing
9. Testing
Testing ensures the software works correctly before it’s released. Examples include:
10. Installation
10. Installation
10. Installation
10. Installation
10. Installation
This section covers the process of setting up the software and hardware at the customer’s
site. An example:
Functionality: The purpose or use of the hardware, like servers for data storage or
routers for network connectivity.
List of Major Hardware Components: Key items like servers, workstations, or
networking devices.
User Courses: Classes or tutorials that teach end-users how to operate the software.
Operator Training: Training sessions for those responsible for maintaining and running
the software or hardware.
Installation Training: Guidance on how to correctly install the software or hardware.
Conducting surveys to understand what features users expect from similar software
products.
Purchasing licenses for third-party software that will be integrated into the project.
Ensuring that a third-party team responsible for developing a specific software module
is meeting deadlines and quality standards.
Development Documentation: Documents explaining how the software was built, like
design documents and code comments.
User Documentation: Manuals or guides that help users understand how to use the
software.
Maintenance Documentation: Information on how to maintain and update the
software after it’s deployed.
Other Technical Documentation: Any other technical guides, such as installation
instructions or troubleshooting tips.
Alpha Testing: Early testing done by developers to catch bugs.
Beta Testing: Testing done by a small group of actual users to get feedback and find
more issues.
Acceptance Tests (ATP): The final tests to confirm the software meets the customer’s
requirements before delivery.
18/08/2024, 13:54 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/4
From ChatGPT, designed with FancyGPT
11. Maintenance Services
11. Maintenance Services
11. Maintenance Services
11. Maintenance Services
11. Maintenance Services
Maintenance services include ongoing support after the software is deployed. An example:
12. Other Services and Deliverable Items
12. Other Services and Deliverable Items
12. Other Services and Deliverable Items
12. Other Services and Deliverable Items
12. Other Services and Deliverable Items
This category includes any additional items or services not covered elsewhere in the SOW. An
example:
13. Method of Delivery
13. Method of Delivery
13. Method of Delivery
13. Method of Delivery
13. Method of Delivery
This section describes how the software, documentation, and hardware will be delivered to
the customer. For example:
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
The Statement of Work (SOW) is a critical document in a software project as it clearly defines
what will be delivered and what is expected. By understanding each section of the SOW, both
the customer and the developer can ensure that the project runs smoothly and meets the
required objectives.
Installing the software on the customer's servers and ensuring it runs as expected.
Regular updates to fix bugs or add new features as needed.
Providing customer support for a set period after the software is deployed.
Software: Delivering the software as a downloadable file or pre-installed on a server.
Documentation: Providing user manuals in PDF format.
Hardware: Shipping the necessary hardware to the customer’s location.
18/08/2024, 13:54 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/4
cs611 lecture 26c
cs611 lecture 26c
cs611 lecture 26c
cs611 lecture 26c
cs611 lecture 26c
14. Responsibility Assignment Matrix (RAM)
Project roles (who do what) and responsibilities (who decide
what) must be
assigned to the appropriate project stakeholders.
Roles and responsibilities may vary over time. Most roles and
responsibilities will
be assigned to stakeholders who are actively involved in the
work of the project,
such as the project manager, other members of the project
management team, and
the individual contributors.
The roles and responsibilities of the project manager are
generally critical on most
projects, but vary significantly by application area. Project roles
and
responsibilities should be closely linked to the project scope
definition.
A Responsibility Assignment Matrix (RAM) is often used for this
purpose. On
larger projects, RAM s may be developed at various levels.
For example, a high-level RAM may define which group or unit
is responsible for
each component of the work breakdown structure, while
lower-level RAM s are
used within the group to assign roles and responsibilities for
specific activities to
particular individuals.
A structure that relates the project organization structure to
the work breakdown
structure, to help ensure, that each element of the project’s
scope of work is
assigned to a responsible individual.
– Shows who does what (x=person, y=phase). The most
important feature of the
RAM is the participatory development process involving all
stakeholders.
Show who is participant, who is accountable, who handles
reviews, who
provides input and who must sign off on specific work packages
or project
phases.
18/08/2024, 13:50 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/6
15. Project Charter
Software Project Management (CS615)
188
© Copyright Virtual University of Pakistan
A document issued by senior management that formally
authorizes the existence
of a project. And it provides the project manager with the
authority to apply
organizational resources to project activities.
16. Risk management plan
The risk management plan describes how risk identification,
qualitative and
quantitative analysis, response planning, monitoring, and
control will be
structured and performed during the project life cycle. The risk
management plan
may include the following.
– Methodology. Defines the approaches, tools, and data sources
that may be
used to perform risk management on this project. Different
types of
assessments may be appropriate, depending upon the project
stage, amount of
information available, and flexibility remaining in risk
management.
– Roles and responsibilities. Defines the lead, support, and risk
management
team membership for each type of action in the risk
management plan. Risk
management teams organized outside of the project office may
be able to
perform more independent, unbiased risk analyses of project
than those from
the sponsoring project team.
– Budgeting. Establishes a budget for risk management for the
project.
– Timing. Defines how often the risk management process will
be performed
throughout the project life cycle. Results should be developed
early enough to
affect decisions. The decisions should be revisited periodically
during project
execution.
– Scoring and interpretation. The scoring and interpretation
methods
appropriate for the type and timing of the qualitative and
quantitative risk
analysis being performed. Methods and scoring must be
determined in
18/08/2024, 13:50 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/6
advance to ensure consistency.
– Thresholds. The threshold criteria for risks that will be acted
upon, by whom,
and in what manner. The project owner, customer, or sponsor
may have a
different risk threshold. The acceptable threshold forms the
target against
which the project team will measure the effectiveness of the
risk response plan
execution.
– Reporting formats. Describes the content and format of the
risk response
plan. Defines how the results of the risk management processes
will be
documented, analyzed, and communicated to the project team,
internal and
external stakeholders, sponsors, and others.
Software Project Management (CS615)
189
© Copyright Virtual University of Pakistan
– Tracking. Documents how all facets of risk activities will be
recorded for the
benefit of the current project, future needs, and lessons
learned. Documents if
and how risk processes will be audited.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
4.10 Scheduling
Any project can be completed, given an infinite amount of time
and resources.
Realistically, the amount of time available for project
development is always
finite.
In fact, in most cases it is less than the project manager
considers sufficient.
Few projects are completed ahead of time; many projects
overrun their schedule.
18/08/2024, 13:50 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/6
The project schedule is one of the most important parts of the
project
development plan.
The plan includes:
– Scheduling of development activities and
– Scheduling of project resources, particularly people
The project development plan describes in detail:
– how the project manager plans to develop the project
– what resources will be required and
– how these resources will be applied
No matter how well the project schedule is prepared, that
schedule is useless
unless it is adhered to. It is the project manager's responsibility
to withstand
pressure and to assure that the project is developed in an
orderly fashion,
according to the schedule. Whenever circumstances change,
the project schedule
should then be updated to reflect the new situation.
A schedule is a list of:
– Activities and
– Anticipated time of implementation of these activities
There are many ways of representing a schedule:
– Lists of activities,
– Diagrams,
– Graphs etc.
Software Project Management (CS615)
190
© Copyright Virtual University of Pakistan
The most common methods of schedule representation are :
– precedence network diagrams (such as PERT),
– Gantt charts and
– lists of milestones
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Sure! Here are simple, beginner-level examples for the topics related to scheduling:
Scheduling
Scheduling
Scheduling
Scheduling
Scheduling
Project Schedule
1
Example: For a project to create a new website, the project schedule might
include tasks like designing the homepage, writing content, coding, and testing.
2
18/08/2024, 13:50 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/6
These examples illustrate how to plan, schedule, and track project activities and resources to
ensure a project is completed on time.
Each task will have a start and end date.
Scheduling of Development Activities
3
Example: The website project schedule lists activities such as Design Homepage
starting on August 1st and ending on August 5th, Write Content from August
6th to August 10th, and so on.
4
Scheduling of Project Resources
5
Example: The project plan indicates that the web designer will work from August
1st to August 5th, the content writer will be involved from August 6th to August
10th, and the developer will work from August 11th to August 20th.
6
Project Development Plan
7
Example: The plan details how the website will be built, what tools and people will
be needed (like graphic design software and a web designer), and how these will
be used (e.g., the designer will create the layout using Photoshop).
8
Adhering to the Schedule
9
Example: If the Design Homepage task is delayed due to a design issue, the
project manager must update the schedule and adjust subsequent tasks to keep
the project on track.
10
Activity List and Anticipated Time
11
Example: The schedule lists activities such as:
12
Create Wireframe – 2 days
13
Develop Frontend – 5 days
14
Review and Testing – 3 days
15
Representation of Schedules
16
Lists of Activities:
17
Example: A simple list might show:
18
Design Homepage (August 1 - August 5)
19
Write Content (August 6 - August 10)
20
Coding (August 11 - August 20)
21
Testing (August 21 - August 25)
22
Diagrams:
23
Example: A Precedence Network Diagram (like PERT) shows that Design
Homepage must be completed before Coding starts.
24
Gantt Charts:
25
Example: A Gantt Chart visually displays the project schedule with bars
representing the duration of each task along a timeline.
26
Lists of Milestones:
27
Example: Milestones might include:
28
Homepage Design Completed (August 5)
29
Content Written (August 10)
30
Website Launched (August 25)
31
18/08/2024, 13:50 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/6
From ChatGPT, designed with FancyGPT
18/08/2024, 13:50 FancyGPT - cs611 lecture 26c
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/6
user
4.11 Guidelines for successful Planning A common failure in many
kinds of planning is that the plan is never really implemented.
Instead, all focus is on writing a plan document. Most of the
following guidelines help to ensure that the planning process is
carried out completely and is implemented completely or, deviations
from the intended plan are recognized and managed accordingly. i.
Involve the Right People in the Planning Process It's critical that
all parts of the system continue to exchange feedback in order to
function effectively. This is true no matter what type of system.
When planning, get input from everyone who will be responsible to
carry out parts of the plan, along with representative from groups
who will be affected by the plan. Of course, people involved should
be responsible to review and authorize the plan. ii. Write Down the
Planning Information and Communicate it Widely New managers, in
particular, often forget that others don't know what these managers
know. Even if managers do communicate their intentions and plans
verbally, chances are that others won't completely hear or understand
what the manager wants done. Also, as plans change, it's extremely
difficult to remember who is supposed to be doing what and according
to which version of the plan. Key stakeholders (employees, management,
board members, sponsors, customers, clients, etc.) may request copies
of various types of plans. Therefore, it's critical to write plans
down and communicate them widely. iii. Goals and Objectives Should Be
SMARTER • Specific • Measurable Software Project Management (CS615)
191 © Copyright Virtual University of Pakistan • Acceptable •
Realistic • Time frame • Extending • Rewarding iv. Build in
Accountability (Regularly Review Who's Doing What and By When?) Plans
should specify who is responsible for achieving each result,
including goals and objectives. Dates should be set for completion of
each result, as well. Responsible parties should regularly review
status of the plan. Be sure to have someone of authority sign off
on the plan, including putting their signature on the plan to
indicate they agree with and support its contents. Include
responsibilities in policies, procedures, job descriptions,
performance review processes, etc. v. Note Deviations from the Plan
and Re-plan Accordingly It's OK to deviate from the plan. The plan is
not a set of rules. It's an overall guideline. It is equally
important to notice deviations and adjust the plan accordingly. vi.
Evaluate Planning Process and the Plan During the planning process,
regularly collect feedback from participants. Do they agree with the
planning process? If not, what don't they like and how could it be
done better? In large, ongoing planning processes (such as strategic
planning, business planning, project planning, etc.), it's critical
to collect this kind of feedback regularly. During regular reviews of
implementation of the plan, assess if goals are being achieved or not.
If not, were goals realistic? Do responsible parties have the
resources necessary to achieve the goals and objectives? Should goals
be changed? Should more priority be placed on achieving the goals?
What needs to be done? Write down how the planning process could have
been done better. File it away and read it the next time you conduct
the planning process. Software Project Management (CS615) 192 ©
Copyright Virtual University of Pakistan vii. Recurring Planning
Process is at Least as Important as Plan Document Far too often,
primary emphasis is placed on the plan document. This is extremely
unfortunate because the real treasure of planning is the planning
process itself. During planning, planners learn a great deal from
ongoing analysis, reflection, discussion, debates and dialogue around
issues and goals in the system. The ongoing communications are what
sensitize people to understanding and following the values and
behaviors described viii. Nature of the Process Should Be Compatible
to Nature of Planners A prominent example of this type of potential
problem is when planners don't prefer the top down or bottom up,
linear type of planning For example, going from general to specific
along the process of an environmental scan, SWOT analysis,
mission/vision/values, issues and goals, strategies, objectives,
timelines, etc. (my prompt is that give me simple beginner level
examples of all the topics or text above given by me in this prompt)
Important Note1: do not use analogies. Important Note2: in this new
chat all the topics are part of a lecture given by one lecturer so
keep in mind in that and give coherent examples.
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
Certainly! Here are beginner-level examples for each guideline in the planning process:
### i. Involve the Right People in the Planning Process
**Example:** Imagine a company is planning to launch a new product. To make sure the plan is
effective, the company should involve people from different departments: product development,
marketing, sales, and customer service. For instance, the product development team can provide
insights on technical feasibility, while the marketing team can offer input on promotional strategies.
### ii. Write Down the Planning Information and Communicate it Widely
**Example:** A school is planning a new after-school program. The principal writes a detailed plan
outlining the program’s objectives, schedule, and responsibilities. This plan is then distributed to all
teachers, parents, and students involved. This ensures everyone knows the details and can refer to
the plan if needed.
### iii. Goals and Objectives Should Be SMARTER
**Example:** A gym wants to increase membership. Instead of saying “We want more members,”
they set a SMARTER goal: “Increase gym membership by 20% over the next 6 months by
implementing a referral program, ensuring it is realistic and rewarding for the staff who bring in new
members.”
### iv. Build in Accountability (Regularly Review Who's Doing What and By When?)
**Example:** A team is working on a community garden project. The project plan specifies that Jane
is responsible for securing donations by the end of the month, and Tom is responsible for
coordinating volunteers. Every two weeks, the team holds a meeting to check on progress and ensure
everyone is meeting their deadlines.
### v. Note Deviations from the Plan and Re-plan Accordingly
**Example:** During a company’s software development project, the initial plan included a release
date of June 1. If the development team realizes they need more time, they adjust the release date to
June 15 and update the plan to reflect this change.
### vi. Evaluate Planning Process and the Plan
**Example:** After completing a marketing campaign, a company gathers feedback from the
marketing team about what worked and what didn’t. They find that certain strategies were less
effective than anticipated. They review the campaign's goals and adjust future plans based on this
feedback to improve their approach.
### vii. Recurring Planning Process is at Least as Important as Plan Document
**Example:** A non-profit organization is planning an annual fundraising event. Instead of just
focusing on the event plan document, they hold monthly meetings to discuss progress, address any
issues, and make adjustments. This ongoing planning process helps them stay on track and adapt to
any changes.
### viii. Nature of the Process Should Be Compatible to Nature of Planners
**Example:** A small start-up team prefers informal and flexible planning methods. They use
brainstorming sessions and iterative adjustments rather than a rigid, step-by-step plan. This approach
suits their dynamic work style and helps them adapt quickly to new ideas.
These examples illustrate how to apply each guideline in a practical, beginner-friendly way.
cs615 lecture 27
cs615 lecture 27
cs615 lecture 27
cs615 lecture 27
cs615 lecture 27
LECTURE # 27
5. ORGANIZATION
5.1 Basic Definition
Basically, an organization is a group of people intentionally
organized to
accomplish an overall, common goal or set of goals. Business
organizations can
range in size from two people to tens of thousands.
How you interpret each of the above major parts of an
organization depends very
much on your values and your nature. People can view
organizations as machines,
organisms, families, groups, etc.
People are managed through an organizational structure. This
hierarchical
structure is based on the four cornerstones of management:
– Delegation
– Authority
– Responsibility
– Supervision.
Delegation bestows authority, and authority produces (and
requires)
responsibility. Both authority and responsibility require
supervision, and effective
supervision requires a suitable organizational structure:
Most projects are organized as teams, with each team assigned
specific functions
within the project.
Different types of project require different types of team
structure, as for example
a team of junior programmers requires a technical team leader
while a team of
experts may require only an administrative team leader.
It is the project manager's responsibility to select the structure
best suited for the
project.
Basically an organization is a group of people intentionally
organized to
accomplish an overall, common goal or set of goals. Business
organizations can
range in size from two people to tens of thousands.
How you interpret each of the above major parts of an
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/16
organization depends very
much on your values and your nature. People can view
organizations as machines,
organisms, families, groups, etc.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
5.2 Organization as a System
It helps to think of organizations are systems.
Here are simple beginner-level examples for each of the topics in the lecture on Organization:
Basic Definition
Basic Definition
Basic Definition
Basic Definition
Basic Definition
Example: A non-profit organization that aims to reduce plastic waste organizes volunteers
and staff to conduct beach clean-ups and run educational workshops. This organization has a
clear goal of reducing plastic waste and brings people together to achieve that goal.
Organizational Structure
Organizational Structure
Organizational Structure
Organizational Structure
Organizational Structure
Example: A retail company has a hierarchical structure where the CEO is at the top, followed
by the managers of different departments like sales, marketing, and finance. Each manager
has a team of employees working under them, creating a clear line of authority and
responsibility.
Delegation, Authority, Responsibility, and Supervision
Delegation, Authority, Responsibility, and Supervision
Delegation, Authority, Responsibility, and Supervision
Delegation, Authority, Responsibility, and Supervision
Delegation, Authority, Responsibility, and Supervision
Example: In a software development project, the project manager delegates the task of
creating a user interface to a team of designers. The team leader has the authority to make
decisions about the design and is responsible for ensuring the interface meets the project's
requirements. The project manager supervises the team leader, providing guidance and
support as needed.
Team Structure
Team Structure
Team Structure
Team Structure
Team Structure
Example: For a project developing a new smartphone app, the project manager organizes a
team of junior programmers with a technical team leader who has experience in mobile app
development. The technical team leader guides the junior programmers, helping them solve
problems and learn new skills. In contrast, a team of experienced software architects working
on a complex project might only require an administrative team leader to handle scheduling
and resource allocation.
Project Manager’s Responsibility
Project Manager’s Responsibility
Project Manager’s Responsibility
Project Manager’s Responsibility
Project Manager’s Responsibility
Example: A project manager working on a construction project decides to use a matrix team
structure. This allows for flexibility and better communication among different specialists like
architects, engineers, and construction workers. The project manager evaluates the project's
needs and selects the team structure that best fits those requirements.
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/16
Simply put, a system is an organized collection of parts that are
highly integrated
in order to accomplish an overall goal.
The system has various inputs which are processed to produce
certain outputs,
which together, accomplish the overall goal desired by the
organization.
There is ongoing feedback among these various parts to ensure
they remain
aligned to accomplish the overall goal of the organization.
There are several
classes of systems, ranging from very simple frameworks all the
way to social
systems, which are the most complex. Organizations are, of
course, social
systems.
Systems have inputs, processes, outputs and outcomes. To
explain, inputs to the
system include resources such as raw materials, money,
technologies and people.
These inputs go through a process where they're aligned,
moved along and
carefully coordinated, ultimately to achieve the goals set for the
system. Outputs
are tangible results produced by processes in the system, such
as products or
services for consumers.
Another kind of result is outcomes, or benefits for consumers,
e.g., jobs for
workers, enhanced quality of life for customers, etc. Systems
can be the entire
organization, or its departments, groups, processes, etc.
Feedback comes from, e.g., employees who carry out processes
in the
organization, customers/clients using the products and
services, etc.
Feedback also comes from the larger environment of the
organization, e.g.,
influences from government, society, economics, and
technologies.
Each organization has numerous subsystems, as well. Each
subsystem has its own
boundaries of sorts, and includes various inputs, processes,
outputs and outcomes
geared to accomplish an overall goal for the subsystem.
Common examples of subsystems are departments, programs,
projects, teams and
processes to produce products or services, etc.
Organizations are made up of people - who are also systems of
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/16
systems of
systems - and on it goes. Subsystems are organized in a
hierarchy needed to
accomplish the overall goal of the overall system.
Software Project Management (CS615)
195
© Copyright Virtual University of Pakistan
The organizational system is defined by, e.g., its legal
documents (articles of
incorporation, by laws, roles of officers, etc.), mission, goals and
strategies,
policies and procedures, operating manuals, etc.
The organization is depicted by its organizational charts, job
descriptions,
marketing materials, etc.
The organizational system is also maintained or controlled by
policies and
procedures, budgets, information management systems, quality
management
systems, performance review systems, etc.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple beginner-level examples for each of the topics in the lecture on Organization
as a System:
Organization as a System
Organization as a System
Organization as a System
Organization as a System
Organization as a System
Example: A hospital can be seen as a system where various departments like emergency,
surgery, and pharmacy work together to achieve the overall goal of providing healthcare to
patients. The hospital receives inputs such as medical supplies, staff, and patient information,
which are processed through coordinated medical procedures and treatments to produce
outputs like cured patients and medical reports.
Inputs, Processes, Outputs, and Outcomes
Inputs, Processes, Outputs, and Outcomes
Inputs, Processes, Outputs, and Outcomes
Inputs, Processes, Outputs, and Outcomes
Inputs, Processes, Outputs, and Outcomes
Example:
Feedback
Feedback
Feedback
Feedback
Feedback
Inputs: A manufacturing company receives raw materials, machinery, workers, and
capital as inputs.
Processes: These inputs are then used in manufacturing processes to create products
like automobiles.
Outputs: The outputs are the finished cars that are ready for sale.
Outcomes: The outcomes include customer satisfaction, job creation for workers, and
revenue generation for the company.
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/16
5.3 Structural Dimensions
The organization's structure, or design, is the overall
arrangement of the
organization's various roles, processes and their relationships
in the organization.
The design of an organization is a means to accomplishing the
organization's
overall goal - the structure is not an end in itself.
In systems theory terms, the design ensures that the
appropriate inputs go through
the necessary processes to produce the required outputs to
produce the intended
outcomes.
ƒ Centralization -the extent to which functions are dispersed in
the
organization, either in terms of integration with other functions
or
geographically
ƒ Formalization - regarding the extent of policies and
procedures in the
organization
Example: A restaurant collects feedback from customers about their dining experience
through surveys. This feedback is used to improve the menu, service, and ambiance, ensuring
the restaurant continues to meet customer expectations. Feedback can also come from
health and safety regulations that the restaurant must follow to stay in business.
Subsystems
Subsystems
Subsystems
Subsystems
Subsystems
Example: In a university, different subsystems include departments like admissions,
academics, and finance. The admissions department processes student applications (inputs),
determines acceptance (process), and provides admitted students (outputs). The outcome
might be a diverse and qualified student body that contributes to the university's reputation.
Organizational System Definition
Organizational System Definition
Organizational System Definition
Organizational System Definition
Organizational System Definition
Example: A software company’s organizational system is defined by its legal documents, such
as its incorporation papers, which establish it as a legal entity. Its mission statement might
focus on developing innovative software solutions, and it has specific policies and procedures,
like coding standards and development practices, to ensure quality and consistency.
Organizational Charts and Job Descriptions
Organizational Charts and Job Descriptions
Organizational Charts and Job Descriptions
Organizational Charts and Job Descriptions
Organizational Charts and Job Descriptions
Example: In a retail company, an organizational chart shows the hierarchy, with the CEO at
the top, followed by department managers (like marketing, sales, and HR), and then their
respective teams. Each position has a job description that outlines the specific duties and
responsibilities of the role, ensuring everyone understands their role in achieving the
company’s goals.
Organizational System Maintenance and Control
Organizational System Maintenance and Control
Organizational System Maintenance and Control
Organizational System Maintenance and Control
Organizational System Maintenance and Control
Example: A bank maintains its organizational system through policies such as security
protocols to protect customer data, budgets that allocate resources effectively, and
performance review systems that evaluate employee performance. These controls help the
bank operate smoothly and meet its financial and service goals.
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/16
ƒ Hierarchy - regarding the extent and configuration of levels in
the
structure
ƒ Routinization - regarding the extent that organizational
processes are
standardized
ƒ Specialization - regarding the extent to which activities are
refined
ƒ Training - regarding the extent of activities to equip
organization
members with knowledge and skills to carry out their roles.
5.4 Organizational Systems
Project-based organizations are those whose operations
consist primarily of
projects. These organizations fall into two categories:
– Organizations that derive their revenue primarily from
performing projects for
others—architectural firms, engineering firms, consultants,
construction contractors, government contractors,
nongovernmental organizations, etc
– Organizations that have adopted management by projects,
these organizations
Software Project Management (CS615)
196
© Copyright Virtual University of Pakistan
tend to have management systems in place to facilitate project
management.
For example, their financial systems are often specifically
designed for
accounting, tracking, and reporting on multiple simultaneous
projects.
Non project-based organizations often lack management
systems designed to
support project needs efficiently and effectively.
The absence of project-oriented systems usually makes project
management more
difficult.
In some cases, non project-based organizations will have
departments or other
subunits that operate as project-based organizations with
systems to match.
The project management team should be acutely aware of how
the organization’s
systems affect the project.
For example, if the organization rewards its functional
managers for charging
staff time to projects, then the project management team may
need to implement
controls to ensure that assigned staff members are being used
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/16
effectively on the
project.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple beginner-level examples for each of the topics in the lecture on Structural
Dimensions and Organizational Systems:
5.3 Structural Dimensions
5.3 Structural Dimensions
5.3 Structural Dimensions
5.3 Structural Dimensions
5.3 Structural Dimensions
Example: A company’s structure is how it organizes its departments, roles, and processes to
achieve its goals.
5.4 Organizational Systems
5.4 Organizational Systems
5.4 Organizational Systems
5.4 Organizational Systems
5.4 Organizational Systems
Example:
Centralization: In a national retail chain, the decision-making power is centralized at
the headquarters. Store managers must follow guidelines from the head office for
pricing and promotions, even though the stores are spread across different regions.
Formalization: In a large manufacturing company, there are strict policies and
procedures for everything from how products are assembled to how employees
request time off. These formal rules ensure consistency and quality across all
operations.
Hierarchy: In a hospital, there is a clear hierarchy. At the top, you have the hospital
director, followed by department heads like those for surgery, nursing, and
administration, and then the staff members in each department. This structure helps
maintain order and clarity in decision-making and responsibilities.
Routinization: A fast-food chain standardizes its cooking processes so that every
burger is made the same way, no matter which location you visit. This routinization
ensures that customers receive the same product quality at every outlet.
Specialization: In a law firm, lawyers specialize in different areas like corporate law,
criminal law, or family law. Each lawyer focuses on their specialty, making them experts
in their specific field.
Training: A tech company regularly conducts training sessions for its employees on the
latest software development tools and practices. This training ensures that the staff is
up-to-date with the skills needed to perform their jobs effectively.
Project-Based Organizations: An engineering firm primarily works on different
projects for clients, such as designing bridges or buildings. Each project is unique and
managed individually, with its own budget, timeline, and team. The firm’s entire
business is structured around completing these projects successfully.
Organizations Using Management by Projects: A large construction company has
adopted a project-based management approach. Even though they might have ongoing
operations, their financial systems and management processes are designed to handle
multiple projects at once, such as building residential complexes, office spaces, and
shopping malls simultaneously.
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/16
5.5 Organizational Cultures and Styles
Most organizations have developed unique and describable
cultures. These
cultures are reflected in their:
– Shared values,
– Norms,
– Beliefs
– Expectations
– Policies and
– Procedures
– View of authority relationships and numerous other factors
Organizational cultures often have a direct influence on the
project.
– A team proposing an unusual or high-risk approach is more
likely to secure
approval in an aggressive or entrepreneurial organization.
– A project manager with a highly participative style is apt to
encounter
problems in a rigidly hierarchical organization, while a project
manager with
an authoritarian style will be equally challenged in a
participative
organization.
The structure of the performing organization often constrains
the availability of or
terms under which resources become available to the project.
Software Project Management (CS615)
197
© Copyright Virtual University of Pakistan
Organizational structures can be characterized as spanning a
spectrum from
functional to projectized, with a variety of matrix structures in
between.
The following table shows key project related characteristics of
the major types of
enterprise organizational structures:
Non Project-Based Organizations: A manufacturing company primarily focuses on
producing goods like furniture. However, if they decide to take on a large, one-time
project like setting up a new production facility, they might struggle because their
systems aren’t designed to manage projects effectively. In this case, the company may
form a temporary project team with the specific skills and tools needed to manage the
project.
Departments Operating as Project-Based Organizations: In a university, the research
department operates as a project-based unit. Each research project has its own budget,
timeline, and goals. The department has systems in place for tracking research progress
and managing project finances, even though the rest of the university operates
differently.
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/16
Table: Organizational Structure Influences on Projects
Project Matrix
Characteristics
Organization
Structure
Functional
Weak Balanced Strong
Projectized
Project Manager’s Authority Little or non Limited Low to
Moderate
Moderate
to High
High to
almost Total
Percent of Performing
Organization’s Personnel assigned
Full time to Project work
Virtually
None 0-25% 15-60% 50-95% 85-100%
Project Manager’s Role Part-time Part time Full-time Full-time
Full-time
Common Titles for Project
Manager’s Role
Project
Coordinator/
Project
Leader
Project
Coordinato
r/ Project
Leader
Project
Manager/Pr
oject
Officer
Project
Manager/
Program
Manager
Project
Manager/
Program
Manager
Project Management
Administrative Staff
Part-time Part time Part-time Full-time Full-time
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/16
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple beginner-level examples for each of the topics in the lecture on
Organizational Cultures and Styles:
5.5 Organizational Cultures and Styles
5.5 Organizational Cultures and Styles
5.5 Organizational Cultures and Styles
5.5 Organizational Cultures and Styles
5.5 Organizational Cultures and Styles
Example: Different companies have unique ways of doing things, which are shaped by their
shared values, norms, and beliefs. This culture influences how projects are managed and
executed within the organization.
Influence of Organizational Culture on Projects
Influence of Organizational Culture on Projects
Influence of Organizational Culture on Projects
Influence of Organizational Culture on Projects
Influence of Organizational Culture on Projects
Organizational Structure Influences on Projects
Organizational Structure Influences on Projects
Organizational Structure Influences on Projects
Organizational Structure Influences on Projects
Organizational Structure Influences on Projects
Shared Values: In a tech startup, innovation and creativity are highly valued. Employees
are encouraged to experiment with new ideas, even if they carry some risk. This shared
value supports projects that involve developing cutting-edge technology.
Norms: In a consulting firm, it is a norm for employees to work long hours to meet client
deadlines. This expectation shapes how projects are planned, with tight schedules and
high-pressure environments being common.
Beliefs: A non-profit organization might strongly believe in social responsibility. This
belief influences the types of projects they take on, focusing on those that benefit the
community or the environment.
Expectations: In a corporate law firm, there is an expectation that all project
deliverables will be of the highest quality. This drives project managers to implement
rigorous review processes to ensure that all outputs meet these high standards.
Policies and Procedures: In a government agency, there are strict policies and
procedures that must be followed for every project. These might include detailed
documentation, regular audits, and adherence to legal regulations.
View of Authority Relationships: In a traditional manufacturing company, authority is
strictly hierarchical. Decisions are made by senior management, and employees are
expected to follow orders without question. This culture would influence how a project
manager communicates and implements project tasks.
Aggressive/Entrepreneurial Organization: In a marketing agency known for its
aggressive and entrepreneurial approach, a team proposing a new and risky advertising
campaign is likely to get approval because the organization values bold, creative
strategies.
Participative vs. Authoritarian Styles: In a participative non-profit organization where
decisions are made collaboratively, a project manager who tries to impose decisions
without consulting the team might face resistance. Conversely, in a company with a top-
down approach, a project manager who seeks too much input from team members
might be seen as indecisive.
Functional Organization: In a large corporation where departments like marketing,
finance, and operations work separately, a project manager in the marketing
department might have limited authority and work part-time on projects. The team
members are not fully dedicated to the project, as they have other departmental
responsibilities.
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/16
5.6 Traditional Structures of Business Organization
i. Functional Structure
Most business organizations start out with a functional
structure, or a small
variation of this structure. This is the basic building block for
other structures.
In this structure, there is a central office which oversees various
departments or
major functions, e.g., human resources, finances, sales,
marketing, engineering,
etc.
Think of a picture that has a box at the top labeled Central
Office. Think of a
row of boxes underneath the top box. Each box is labeled, e.g.,
sales, engineering,
human resources, etc.
Software Project Management (CS615)
198
© Copyright Virtual University of Pakistan
Connect the boxes with lines coming down from the top box to
each of the boxes
below. Use functional structures when the organization is small,
geographically
centralized, and provides few goods and services.
When the organization experiences bottlenecks in decision
making and
difficulties in coordination, it has outgrown its functional
structure.
The classic functional organization is a hierarchy where each
employee has one
clear superior. Staff members are grouped by specialty, such as
production,
marketing, engineering, and accounting at the top level, with
engineering further
subdivided into functional organizations that support the
business of the larger
organization (e.g., mechanical and electrical).
Functional organizations still have projects, but the perceived
scope of the project
is limited to the boundaries of the function: the engineering
department in a
functional organization will do its work independent of the
manufacturing or
marketing departments.
For example, when a new product development is undertaken
Weak Matrix Organization: In
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/16
in a purely
functional organization, the design phase is often called a
design project and
includes only engineering department staff. If questions about
manufacturing
arise, they are passed up the hierarchy to the department head,
who consults with
the head of the manufacturing department. The engineering
department head then
passes the answer back down the hierarchy to the engineering
project manager.
ii. Projectized Structure
In this structure, there is a centralized corporate office and
under it, are various
divisions each of which is dedicated to producing and / or
selling a certain type of
business or product, e.g., product 1, product 2, etc.
Each division that is dedicated to a certain business or product
is, in turn, is
organized as its own functional structure.
So, for example, the division dedicated to making product 1 has
its own sales
department, human resources, etc. Basically, project structure
is a bunch of
functional structures each of which reports to one central
office.
Use a divisional structure when the organization is relatively
large, geographically
dispersed, and/or produces wide range of goods/services.
In a projectized organization, team members are often
collocated. Most of the
organization’s resources are involved in project work, and
project managers have
a great deal of independence and authority.
Software Project Management (CS615)
199
© Copyright Virtual University of Pakistan
Projectized organizations often have organizational units called
departments, but
these groups either report directly to the project manager or
provide support
services to the various projects.
iii. Matrix Structure
Think of the functional structure. Imagine if you took someone
from each of the
major functions in the functional structure (the boxes along the
bottom of the
organization chart), e.g., people from sales, engineering, etc.,
and organized them
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/16
into a separate group intended to produce and sell one certain
kind of product or
service.
Members of this group stay together until that product is
produced or they
continue to sell and service it. This overall structure (made up of
a functional
structure that also has groups assigned to products) is a matrix
structure.
This structure is useful because it focuses highly skilled people
from across the
organization to work on a complex product or service.
It can be difficult, though, because each person essentially
reports to two
supervisors: the supervisor of the functional area (e.g.,
engineering) and the
product manager, as well.
When the organization needs constant coordination of its
functional activities,
then lateral relations do not provide sufficient integration.
Consider the matrix
structure.
To adopt the matrix structure effectively, the organization
should modify many
traditional management practices.
Matrix organizations are a blend of functional and projectized
characteristics.
Weak matrices maintain many of the characteristics of a
functional organization,
and the project manager role is more that of a coordinator or
expediter than that of
a manager.
In similar fashion, strong matrices have many of the
characteristics of the
projectized organization—full-time project managers with
considerable authority
and full-time project administrative staff.
Software Project Management (CS615)
200
© Copyright Virtual University of Pakistan
Figure 1: Weak Matrix Organization
Figure 2: Balanced Matrix Organization
Chief
Executive
Functional
Manager
Functional
Manager
Functional
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/16
Manager
Staff
Staff
Project
Manag
Staff
Staff
Staff
Staff
Staff
Staff
Chief
Executive
Functional
Manager
Functional
Manager
Functional
Manager
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Staff
Project
Coordinatio
Project
Coordinatio
Software Project Management (CS615)
201
© Copyright Virtual University of Pakistan
Figure 3: Strong Matrix Organization
(Black boxes represent staff engaged in project activites)
iv. Project Office
There is a range of uses for what constitutes a project office. A
project office may
operate on a continuum from providing support functions to
project managers in
the form of training, software, templates, etc. to actually being
responsible for the
results of the project.
Most modern organizations involve all these structures at
various levels. For
example, even a fundamentally functional organization may
create a special
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/16
project team to handle a critical project.
Such a team may have many of the characteristics of a project in
a projectized
organization.
The team may include full-time staff from different functional
departments, it
may develop its own set of operating procedures, and it may
operate outside the
standard, formalized reporting structure.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple beginner-level examples for each of the traditional structures of business
organizations:
i. Functional Structure
i. Functional Structure
i. Functional Structure
i. Functional Structure
i. Functional Structure
Example: In a small software company, there might be a central office with different
departments such as Human Resources, Finance, Sales, and Engineering. The Engineering
department focuses only on developing software, while the Sales department handles all the
sales-related activities. When the company needs to develop a new software feature, the
Engineering department works on it independently, without much direct interaction with
other departments.
ii. Projectized Structure
ii. Projectized Structure
ii. Projectized Structure
ii. Projectized Structure
ii. Projectized Structure
Example: Imagine a large construction company where different divisions are responsible for
specific projects. For instance, one division might be dedicated to building residential houses,
while another focuses on commercial buildings. Each division has its own team with roles like
sales, finance, and engineering, all working full-time on their specific projects. The division
working on residential houses has its own sales team, engineers, and HR staff, all reporting to
the project manager of that division.
iii. Matrix Structure
iii. Matrix Structure
iii. Matrix Structure
iii. Matrix Structure
iii. Matrix Structure
Example: Consider a consumer electronics company that manufactures smartphones and
laptops. In this company, there is a functional structure with departments like Sales,
Engineering, and Marketing. However, to develop a new smartphone, the company might
create a project team consisting of engineers from the Engineering department, marketers
from the Marketing department, and salespeople from the Sales department. These team
members report both to their functional manager (e.g., Head of Engineering) and the project
manager responsible for the smartphone project.
Weak Matrix Example: In a weak matrix structure, the project manager has limited
authority. For instance, the smartphone project manager mainly coordinates tasks but
doesn't have much decision-making power. The engineers still prioritize tasks assigned
by their functional manager over the project tasks.
Balanced Matrix Example: In a balanced matrix, the smartphone project manager
shares authority with the functional managers. Team members work on the
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/16
From ChatGPT, designed with FancyGPT
iv. Project Office
iv. Project Office
iv. Project Office
iv. Project Office
iv. Project Office
Example: In a large IT consulting firm, there might be a Project Office that provides resources
like templates, training, and software tools to project managers working on different client
projects. In some cases, the Project Office might even take full responsibility for overseeing
major projects, ensuring they are completed on time and within budget. For instance, if the
firm takes on a complex project for a government client, the Project Office might assign a
dedicated team to manage every aspect of the project from start to finish.
smartphone project part-time and report equally to their functional manager and the
project manager.
Strong Matrix Example: In a strong matrix, the smartphone project manager has
significant authority, almost like a projectized structure. The project manager can make
decisions, and team members are dedicated full-time to the project, reporting directly
to the project manager.
18/08/2024, 09:53 FancyGPT - cs615 lecture 27
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/16
cs615 lecture 28
cs615 lecture 28
cs615 lecture 28
cs615 lecture 28
cs615 lecture 28
LECTURE # 28
5. ORGANIZATION
5.7 ORGANIZATIONAL PLANNING
Organizational planning involves identifying, documenting, and
assigning
project roles, responsibilities, and reporting relationships.
Roles, responsibilities, and reporting relationships may be
assigned to
individuals or to groups. The individuals and groups may be part
of the
organization performing the project, or they may be external to
it. Internal
groups are often associated with a specific functional
department such as
engineering, marketing, or accounting.
On most projects, the majority of organizational planning is
done as part
of the earliest project phases.
However, the results of this process should be reviewed
regularly
throughout the project to ensure continued applicability. If the
initial
organization is no longer effective, then it should be revised
promptly.
Organizational planning is often tightly linked with
communications
planning since the project’s organizational structure will have a
major
effect on the project’s communications requirements.
5.7.1 Inputs to Organizational Planning
i. Project interfaces. Project interfaces generally fall into one of
three categories:
– Organizational interfaces—formal and informal reporting
relationships
among different organizational units. Organizational interfaces
may be
highly complex or very simple. For example, developing a
complex
telecommunications system may require coordinating
numerous
subcontractors over several years, while fixing a programming
error in a
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/41
system installed at a single site may require little more than
notifying the
user and the operations staff upon completion.
– Technical interfaces—formal and informal reporting
relationships among
different technical disciplines. Technical interfaces occur both
within
project phases (e.g., the site design developed by the civil
engineers must
be compatible with the superstructure developed by the
structural
Software Project Management (CS615)
203
© Copyright Virtual University of Pakistan
engineers) and between project phases (e.g., when an
automotive design
team passes the results of its work along to the retooling team
that must
create the manufacturing capability for the vehicle).
– Interpersonal interfaces—formal and informal reporting
relationships
among different individuals working on the project. These
interfaces often
occur simultaneously, as when an architect employed by a
design firm
explains key design considerations to an unrelated construction
contractor’s project management team.
ii. Staffing requirements. Staffing requirements define what
kinds of competencies
are required from what kinds of individuals or groups and in
what time frames.
Staffing requirements are a subset of the overall resource
requirements identified
during resource planning.
iii. Constraints. Constraints are factors that limit the project
team’s options. A
project’s organizational options may be constrained in many
ways. Common
factors that may constrain how the team is organized include,
but are not limited
to, the following:
– Organizational structure of the performing organization—an
organization whose basic structure is a strong matrix means a
relatively
stronger role for the project manager than one whose basic
structure is a
weak matrix.
– Collective bargaining agreements—contractual agreements
with unions
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/41
or other employee groups may require certain roles or
reporting
relationships (in essence, the employee group is a stakeholder).
– Preferences of the project management team—if members of
the project
management team have had success with certain structures in
the past,
then they are likely to advocate similar structures in the future.
– Expected staff assignment —how the project is organized is
often
influenced by the competencies of specific individuals
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
5.7.2 Tools and Techniques for Organizational Planning
i. Templates. Although each project is unique, most projects will
resemble another
project to some extent. Using the role and responsibility
definitions or reporting
relationships of a similar project can help expedite the process
of organizational
planning.
ii. Human resource practices. Many organizations have a
variety of policies,
guidelines, and procedures that can help the project
management team with
various aspects of organizational planning. For example, an
organization that
views managers as “coaches” is likely to have documentation on
how the role of
“coach” is to be performed.
Software Project Management (CS615)
204
© Copyright Virtual University of Pakistan
iii. Organizational theory. There is a substantial body of
literature describing how
organizations can and should be structured. Although only a
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/41
small subset of this
body of literature is specifically targeted toward project
organizations, the project
management team should be generally familiar with the subject
of organizational
theory so as to be better able to respond to project
requirements.
iv. Stakeholder analysis. The identification of stakeholders and
the needs of the
various stakeholders should be analyzed to ensure that their
needs will be met.
5.7.3 Outputs from Organizational Planning
i. Role and responsibility assignments. Project roles (who does
what) and
responsibilities (who decides what) must be assigned to the
appropriate project
stakeholders. Roles and responsibilities may vary over time.
Most roles and
responsibilities will be assigned to stakeholders who are
actively involved in the
work of the project, such as the project manager, other
members of the project
management team, and the individual contributors. The roles
and responsibilities
of the project manager are generally critical on most projects,
but vary
significantly by application area. Project roles and
responsibilities should be
closely linked to the project scope definition. A Responsibility
Assignment
Matrix is often used for this purpose. On larger projects, RAM s
may be
developed at various levels. For example, a high-level RAM may
define which
group or unit is responsible for each component of the work
breakdown structure,
while lower-level RAM s are used within the group to assign
roles and
responsibilities for specific activities to particular individuals.
ii. Staffing management plan. The staffing management plan
describes when and
how human resources will be brought onto and taken off of the
project team. The
staffing plan may be formal or informal, highly detailed or
broadly framed, based
on the needs of the project. It is a subsidiary element of the
overall project plan.
The staffing management plan often includes resource
histograms. Particular
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/41
attention should be paid to how project team members
(individuals or groups) will
be released when they are no longer needed on the project.
Appropriate
reassignment procedures may:
– Reduce costs by reducing or eliminating the tendency to
“make work” to
fill the time between this assignment and the next.
– Improve morale by reducing or eliminating uncertainty about
future
employment opportunities.
iii. Organization chart. An organization chart is any graphic
display of project
reporting relationships. It may be formal or informal, highly
detailed or broadly
framed, based on the needs of the project. For example, the
organization chart for
a three- to four-person internal service project is unlikely to
have the rigor and
detail of the organization chart for a 3,000-person disaster
response team. An
Software Project Management (CS615)
205
© Copyright Virtual University of Pakistan
Organizational Breakdown Structure (OBS) is a specific type of
organization
chart that shows which organizational units are responsible for
which work
packages.
iv. Supporting detail. Supporting detail for organizational
planning varies by
application area and project size. Information frequently
supplied as supporting
detail includes, but is not limited to: Organizational impact—
what alternatives are
precluded by organizing in this manner.
– Job descriptions—written outlines by job title of the
competencies,
responsibilities, authority, physical environment, and other
characteristics
involved in performing a given job. Also called position
descriptions.
– Training needs—if the staff to be assigned is not expected to
have the
competencies needed by the project, those competencies will
need to be
developed as part of the project.
5.8 STAFF ACQUISITION
Staff acquisition involves getting the needed human resources
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/41
(individuals or
groups) assigned to and working on the project. In most
environments, the “best”
resources may not be available, and the project management
team must take care
to ensure that the resources that are available will meet project
requirements.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple, beginner-level examples for the topics you provided:
5.7.2 Tools and Techniques for Organizational Planning
5.7.2 Tools and Techniques for Organizational Planning
5.7.2 Tools and Techniques for Organizational Planning
5.7.2 Tools and Techniques for Organizational Planning
5.7.2 Tools and Techniques for Organizational Planning
i. Templates
ii. Human Resource Practices
iii. Organizational Theory
iv. Stakeholder Analysis
5.7.3 Outputs from Organizational Planning
5.7.3 Outputs from Organizational Planning
5.7.3 Outputs from Organizational Planning
5.7.3 Outputs from Organizational Planning
5.7.3 Outputs from Organizational Planning
i. Role and Responsibility Assignments
Imagine you’re managing a software development project. You might have a template
from a previous similar project that outlines the roles and responsibilities of team
members, like who is responsible for coding, testing, and documentation. Using this
template can save time in setting up your current project.
If your organization has a policy that managers should act as mentors, there might be a
guideline or document explaining how managers should support their teams, such as
providing feedback, helping with career development, and ensuring team members
have the resources they need to do their jobs effectively.
Suppose you’re leading a project and you need to decide how to structure your team.
Organizational theory might guide you in choosing between a hierarchical structure,
where decisions flow from the top down, or a flat structure, where team members have
more autonomy. Understanding these theories helps you make better decisions on how
to organize your team.
When planning a project, you identify that key stakeholders include the project
sponsor, end-users, and regulatory bodies. You analyze their needs, such as the sponsor
wanting the project completed within budget, users needing a product that is easy to
use, and regulators requiring compliance with specific standards. This analysis helps
you ensure that the project meets all these needs.
In a software project, the project manager might assign roles like lead developer, quality
assurance lead, and technical writer. Responsibilities are also assigned, such as the lead
developer being responsible for the overall code quality and the technical writer being
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/41
5.8.1 Inputs to Staff Acquisition
i. Staffing management plan. It includes the project’s staffing
requirement
ii. Staffing pool description. When the project management
team is able to influence
or direct staff assignments, it must consider the characteristics
of the potentially
available staff. Considerations include, but are not limited to:
– Previous experience—have the individuals or groups done
similar or related
work before? Have they done it well?
– Personal interests—are the individuals or groups interested in
working on this
project?
– Personal characteristics—are the individuals or groups likely
to work well
together as a team?
– Availability—will the most desirable individuals or groups be
ii. Staffing Management Plan
iii. Organization Chart
iv. Supporting Detail
5.8 Staff Acquisition
5.8 Staff Acquisition
5.8 Staff Acquisition
5.8 Staff Acquisition
5.8 Staff Acquisition
These examples are designed to be simple and beginner-friendly, consistent with the rest of
the lecture content.
responsible for creating user manuals. These roles and responsibilities ensure that
everyone knows what they are supposed to do.
Suppose your project is planned to last one year. The staffing management plan might
outline that you need three developers from the start, two testers midway through the
project, and then you release the testers after the testing phase is complete. This plan
helps ensure that the right people are available at the right times and helps manage
costs by not keeping people on the project longer than needed.
For a small internal project with four team members, the organization chart might
simply show the project manager at the top with three team members below, each
responsible for a different aspect of the project. For a larger project, the chart could
show multiple teams with different leads reporting to the project manager. This visual
helps everyone understand who reports to whom.
For example, if you’ve organized a project team in a certain way, the supporting detail
might include a job description for each role, outlining the required skills,
responsibilities, and any necessary training. If someone needs additional training to
perform their role effectively, that training is noted in the project’s plan.
Let’s say you need a database administrator (DBA) for your project, but the best DBA in
your company is already assigned to another project. You might have to choose
someone with less experience, so you ensure that this person has the necessary
support and resources to succeed. This process involves acquiring the staff needed for
the project, even if they are not the first choice.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/41
available in the
necessary time frames?
– Competencies and proficiency—what competencies are
required and at what
level?
iii. Recruitment practices. One or more of the organizations
involved in the project
may have policies, guidelines, or procedures governing staff
assignments. When
they exist, such practices act as a constraint on the staff-
acquisition process.
Software Project Management (CS615)
206
© Copyright Virtual University of Pakistan
5.8.2 Tools and Techniques for Staff Acquisition
i. Negotiations. Staff assignments must be negotiated on most
projects. For
example, the project management team may need to negotiate
with:
– Responsible functional managers to ensure that the project
receives
appropriately competent staff in the necessary time frame.
– Other project management teams within the performing
organization to
assign scarce or specialized resources appropriately.
The team’s influencing competencies play an important role in
negotiating staff
assignments, as do the politics of the organizations involved.
For example, a
functional manager may be rewarded based on staff utilization.
This creates an
incentive for the manager to assign available staff who may not
meet all of the
project’s requirements.
ii. Pre-assignment. In some cases, staff may be pre-assigned to
the project. This is
often the case when a) the project is the result of a competitive
proposal, and
specific staff was promised as part of the proposal, or b) the
project is an internal
service project, and staff assignments were defined within the
project charter.
iii. Procurement. Project procurement management can be
used to obtain the
services of specific individuals or groups of individuals to
perform project
activities. Procurement is required when the performing
organization lacks the inhouse staff needed to complete the
project (e.g., as a result of a conscious decision
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/41
not to hire such individuals as full-time employees, as a result of
having all
appropriately competent staff previously committed to other
projects, or as a
result of other circumstances).
5.8.3 Outputs from Staff Acquisition
i. Project staff assigned. The project is staffed when appropriate
people have been
reliably assigned to work on it. Staff may be assigned full time,
part time, or
variably, based on the needs of the project.
ii. Project team directory. A project team directory lists all the
project team
members and other stakeholders. The directory may be formal
or informal, highly
detailed or broadly framed, based on the needs of the project.
5.9 TEAM DEVELOPMENT
Team development includes both enhancing the ability of
stakeholders to
contribute as individuals as well as enhancing the ability of the
team to function
as a team. Individual development (managerial and technical) is
the foundation
necessary to develop the team. Development as a team is
critical to the project’s
ability to meet its objectives.
Software Project Management (CS615)
207
© Copyright Virtual University of Pakistan
Team development on a project is often complicated when
individual team
members are accountable to both a functional manager and the
project manager.
Effective management of this dual reporting relationship is
often a critical success
factor for the project, and is generally the responsibility of the
project manager.
Team development occurs throughout the project.
5.9.1 Inputs to Team Development
i. Project staff. The staff assignments implicitly define the
individual competencies
and team competencies available upon which to build.
ii. Project plan. The project plan describes the technical context
within which the
team operates.
iii. Staffing management plan.
iv. Performance reports. Performance reports provide feedback
to the project team
about performance against the project plan.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/41
v. External feedback. The project team must periodically
measure itself against the
expectations of those outside the project.
5.9.2 Tools and Techniques for Team Development
i. Team-building activities. Team-building activities include
management and
individual actions taken specifically and primarily to improve
team performance.
Many actions—such as involving non-management-level team
members in the
planning process, or establishing ground rules for surfacing and
dealing with
conflict— may enhance team performance as a secondary
effect. Team-building
activities can vary from a five-minute agenda item in a regular
status review
meeting to an extended, off-site, professionally facilitated
experience designed to
improve interpersonal relationships among key stakeholders.
There is a
substantial body of literature on team building. The project
management team
should be generally familiar with a variety of team-building
activities.
ii. General management skills. General management skills are of
particular
importance to team development.
iii. Reward and recognition systems. Reward and recognition
systems are formal
management actions that promote or reinforce desired
behavior. To be effective,
such systems must make the link between project performance
and reward clear,
explicit, and achievable. For example, a project manager who is
to be rewarded
for meeting the project’s cost objective should have an
appropriate level of
control over staffing and procurement decisions. Projects must
often have their
own reward and recognition systems since the systems of the
performing
Software Project Management (CS615)
208
© Copyright Virtual University of Pakistan
organization may not be appropriate. For example, the
willingness to work
overtime to meet an aggressive schedule objective should be
rewarded or
recognized; needing to work overtime as the result of poor
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/41
planning should not
be. Reward and recognition systems must also consider cultural
differences. For
example, developing an appropriate team reward mechanism in
a culture that
prizes individualism may be very difficult.
iv. Co-location. Collocation involves placing all, or almost all, of
the most active
project team members in the same physical location to enhance
their ability to
perform as a team. Collocation is widely used on larger projects
and can also be
effective for smaller projects (e.g., with a war room, where the
team congregates
and posts schedules, updates, etc.). On some projects,
collocation may not be an
option; where it is not viable, an alternative may be scheduling
frequent face to
face meetings to encourage interaction.
v. Training. Training includes all activities designed to enhance
the competencies
of the project team. Some authors distinguish among training,
education, and
development, but the distinctions are neither consistent nor
widely accepted.
Training may be formal (e.g., classroom training, computer-
based training) or
informal (e.g., feedback from other team members). There is a
substantial body of
literature on how to provide training to adults. If the project
team members lack
necessary management or technical skills, such skills must be
developed as part of
the project, or steps must be taken to re-staff the project
appropriately. Direct and
indirect costs for training are generally paid by the performing
organization.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple, beginner-level examples for the topics you provided:
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/41
5.8.1 Inputs to Staff Acquisition
5.8.1 Inputs to Staff Acquisition
5.8.1 Inputs to Staff Acquisition
5.8.1 Inputs to Staff Acquisition
5.8.1 Inputs to Staff Acquisition
i. Staffing Management Plan
ii. Staffing Pool Description
iii. Recruitment Practices
5.8.2 Tools and Techniques for Staff Acquisition
5.8.2 Tools and Techniques for Staff Acquisition
5.8.2 Tools and Techniques for Staff Acquisition
5.8.2 Tools and Techniques for Staff Acquisition
5.8.2 Tools and Techniques for Staff Acquisition
i. Negotiations
ii. Pre-assignment
iii. Procurement
5.8.3 Outputs from Staff Acquisition
5.8.3 Outputs from Staff Acquisition
5.8.3 Outputs from Staff Acquisition
5.8.3 Outputs from Staff Acquisition
5.8.3 Outputs from Staff Acquisition
i. Project Staff Assigned
ii. Project Team Directory
If a project requires five software developers, two testers, and one project manager, the
staffing management plan would include these requirements and outline when and how
these roles need to be filled throughout the project.
When considering available staff for a new project, the project management team
might look at:
Previous Experience: A developer who has successfully worked on similar
projects in the past.
Personal Interests: A team member who is eager to learn new skills related to the
project.
Personal Characteristics: Choosing team members who work well together
based on past collaborations.
Availability: Ensuring that a key developer is not already committed to another
project during the critical phases of this one.
Competencies and Proficiency: Selecting someone who is proficient in the
specific programming languages needed for the project.
Suppose the company has a policy that requires all new project staff to go through a
specific recruitment process, including interviews and background checks. These
procedures must be followed, even if it takes extra time, as they act as a constraint on
how quickly staff can be acquired.
The project manager might need to negotiate with the head of the IT department to get
a highly skilled developer assigned to the project. This negotiation could involve
agreeing on the developer's availability or sharing the developer with another project.
If a project was won based on a proposal that promised a specific expert would lead the
technical development, this expert would be pre-assigned to the project even before
other team members are selected.
If the company doesn’t have an in-house graphic designer for the project, the project
manager might need to hire a freelance designer through a procurement process to
handle the design tasks.
Once the project team is finalized, you might have a situation where three developers
are working full-time, two testers are working part-time, and a project manager is
available as needed. These assignments are documented and confirmed.
The project manager creates a directory that lists everyone involved in the project,
including their roles, contact information, and any other relevant details. This directory
could be a simple document shared among the team.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/41
5.9 Team Development
5.9 Team Development
5.9 Team Development
5.9 Team Development
5.9 Team Development
Team Development involves both improving the skills of individual team members and
ensuring the team works well together to achieve project goals.
5.9.1 Inputs to Team Development
5.9.1 Inputs to Team Development
5.9.1 Inputs to Team Development
5.9.1 Inputs to Team Development
5.9.1 Inputs to Team Development
i. Project Staff
ii. Project Plan
iii. Staffing Management Plan
iv. Performance Reports
v. External Feedback
5.9.2 Tools and Techniques for Team Development
5.9.2 Tools and Techniques for Team Development
5.9.2 Tools and Techniques for Team Development
5.9.2 Tools and Techniques for Team Development
5.9.2 Tools and Techniques for Team Development
i. Team-Building Activities
ii. General Management Skills
iii. Reward and Recognition Systems
iv. Co-location
v. Training
The project team consists of members with various skills like coding, testing, and
project management. These existing competencies form the basis for further team
development activities.
The project plan might outline the technical tasks that the team needs to complete,
such as developing a software module or conducting system tests. This plan helps guide
the team’s efforts.
This plan will detail how the team will grow or shrink during the project, ensuring that
team development activities are aligned with the availability of team members.
If a team member consistently delivers high-quality work ahead of schedule, this
feedback helps identify areas where the team is strong and where further development
may be needed.
If a client reviews a project milestone and provides feedback that some aspects need
improvement, the team can use this feedback to make adjustments and improve their
performance.
The project manager might organize a workshop to help team members improve their
communication skills. This could be a short session during a regular meeting or a longer,
dedicated event to enhance team collaboration.
The project manager might use their leadership skills to resolve conflicts within the
team, ensure clear communication, and motivate team members to stay focused on the
project goals.
Suppose a team member consistently meets their deadlines and produces high-quality
work. The project manager might recognize this effort with a formal reward, such as a
bonus or a public acknowledgment during a team meeting.
On a large project, the team members might be placed in the same office space,
allowing them to collaborate more easily and quickly address issues as they arise.
If a team member needs to learn a new programming language for the project, they
might attend a training course or receive on-the-job training from a more experienced
colleague.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/41
5.9.3 Outputs from Team Development
i. Performance improvements. Team performance
improvements can come from
many sources and can affect many areas of project
performance; for example:
– Improvements in individual skills may allow a specific person
to perform
assigned activities more effectively.
– Improvements in team behaviors (e.g., surfacing and dealing
with conflict)
may allow project team members to devote a greater
percentage of their
efforts to technical activities.
– Improvements in either individual or team competencies may
facilitate
identifying and developing better ways of doing project work.
ii. Input to performance appraisals. Project staff should
generally provide input to
the appraisals of any project staff members with whom they
interact in a
significant way.
5.10 Organizational Management Tools
i. Management Development
– Responsibility
Software Project Management (CS615)
209
© Copyright Virtual University of Pakistan
– Authority
– Competence
– Resource Distribution
– Pre-requisites
– Constraints
– Calendar
ii. Supervisory Training
– Field/on site operations
– Concept clearance
– Procedural details
– Resource management
– Activity Scheduling
iii. Team Building
– Managers
– Professionals
– Technical support group
These examples are straightforward and aimed at helping you understand the concepts
without using analogies, maintaining coherence throughout the explanation.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/41
– Logistical support group
– Skill set evaluation
iv. Vital Statistics
– Historical facts
– Technical data
– Direct concerns
– Lesson learned
– Identification of missing links
– Reliability of data
– Relevance of data
v. Progress reporting
– Mandatory periodic reports
– Exception reports
– Event reporting
– Current status reporting
– Reporting formats
– Reporting frequency
– Report recipient
– Reporting officer
– Reporting Media
– Response analysis (of previous reporting)
– Review of Reports
– Signing of Reports
– Tracking of Reports
– Mitigations offered
– Corresponding the dead lines
Software Project Management (CS615)
210
© Copyright Virtual University of Pakistan
vi. Compliance of Rule of Business
– Financial
– Procedural
– Administrative
– Justifications for deviations
– Acceptance of derailments
vii. Trade Offs
– Trade off between DO or DON’T
– Quality of job (in the light of constraints)
– Limiting the scope/deliverables
– Meeting targets with minimum standards
– Unavoidable mandatory deliverables
viii. Quality Assurance
– Standard QA procedures
– Self defined measures
– Task-specific controls
ix. Beneficiaries Concern
– Acceptance
– Enthusiasm
– Adding comforts in terms of use, cost or time
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/41
– Confidence building-The Reliability
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are simple, beginner-level examples for the topics you provided:
5.9.3 Outputs from Team Development
5.9.3 Outputs from Team Development
5.9.3 Outputs from Team Development
5.9.3 Outputs from Team Development
5.9.3 Outputs from Team Development
i. Performance Improvements
ii. Input to Performance Appraisals
5.10 Organizational Management Tools
5.10 Organizational Management Tools
5.10 Organizational Management Tools
5.10 Organizational Management Tools
5.10 Organizational Management Tools
i. Management Development
ii. Supervisory Training
Individual Skills: After a developer attends a training session on a new coding
framework, they can now complete their assigned tasks more quickly and with fewer
errors.
Team Behaviors: When team members start openly discussing and resolving conflicts
during meetings, they can focus more on their work and complete their tasks more
efficiently.
Competencies: As the team becomes more familiar with project processes, they
develop better methods for tracking project progress, leading to smoother project
execution.
A project manager might ask team members to provide feedback on their colleagues'
performance, especially if they have worked closely together. This input could be used
to evaluate how well a team member is contributing to the project.
Responsibility: A project manager is responsible for overseeing the project’s progress
and ensuring that tasks are completed on time.
Authority: The project manager has the authority to make decisions regarding the
project’s direction and resource allocation.
Competence: The project manager needs to have the necessary skills and knowledge to
lead the project effectively.
Resource Distribution: The project manager allocates resources, such as time and
budget, to different tasks within the project.
Pre-requisites: Before starting a project phase, the project manager ensures that all
necessary conditions, such as approvals and materials, are in place.
Constraints: The project manager must work within certain constraints, such as a
limited budget or tight deadlines.
Calendar: The project manager uses a project calendar to track deadlines, milestones,
and important meetings.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/41
iii. Team Building
iv. Vital Statistics
v. Progress Reporting
Field/on-site Operations: Supervisors receive training on how to manage work done at
the project site, ensuring that tasks are performed correctly and safely.
Concept Clearance: Supervisors are trained to understand the project’s goals and
objectives, so they can effectively guide their teams.
Procedural Details: Supervisors learn the specific procedures required to complete
project tasks, ensuring consistency and quality.
Resource Management: Supervisors are trained to manage resources, such as
materials and manpower, efficiently to avoid waste.
Activity Scheduling: Supervisors learn how to schedule activities to maximize
productivity and meet project deadlines.
Managers: Managers participate in team-building activities to strengthen leadership
and coordination among themselves.
Professionals: Engineers and other professionals engage in activities that enhance
collaboration and knowledge sharing.
Technical Support Group: The IT team might engage in exercises to improve their
ability to solve technical problems together.
Logistical Support Group: The logistics team works on improving their coordination in
handling supplies and equipment.
Skill Set Evaluation: The team assesses each member’s skills to ensure they are utilized
effectively and identify areas for improvement.
Historical Facts: The project team reviews past projects’ data to avoid previous
mistakes and replicate successful strategies.
Technical Data: The team gathers and analyzes technical information relevant to the
project to ensure accuracy and reliability.
Direct Concerns: The team identifies and addresses issues directly affecting the
project, such as potential risks or resource shortages.
Lessons Learned: The team documents what worked well and what didn’t in the project,
so future projects can benefit from these insights.
Identification of Missing Links: The team identifies gaps in the project plan or
execution that need to be addressed to ensure success.
Reliability of Data: The team ensures that all data used in the project is accurate and
trustworthy to avoid errors.
Relevance of Data: The team ensures that the data being used is directly related to the
project’s objectives.
Mandatory Periodic Reports: The team submits regular progress reports to
stakeholders to keep them informed of the project’s status.
Exception Reports: If an issue arises that could affect the project’s timeline or budget,
the team creates a report detailing the problem and potential solutions.
Event Reporting: The team documents significant events, such as achieving a major
milestone or encountering a significant obstacle.
Current Status Reporting: The team provides updates on the current status of the
project, including completed tasks and pending activities.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 17/41
vi. Compliance of Rule of Business
vii. Trade-Offs
viii. Quality Assurance
Reporting Formats: The team uses standardized templates for reports to ensure
consistency and clarity.
Reporting Frequency: The team decides how often reports will be generated, such as
weekly or monthly, based on project needs.
Report Recipient: The team identifies who will receive the reports, such as the project
sponsor or stakeholders.
Reporting Officer: The team designates a person responsible for preparing and
submitting reports.
Reporting Media: The team decides whether reports will be delivered electronically, in
print, or both.
Response Analysis (of Previous Reporting): The team reviews feedback on previous
reports to improve future reporting.
Review of Reports: The team periodically reviews reports to ensure they are accurate
and provide valuable information.
Signing of Reports: The project manager or other authorized person signs off on
reports before they are distributed.
Tracking of Reports: The team tracks report submissions to ensure they are delivered
on time and to the correct recipients.
Mitigations Offered: The team suggests solutions or mitigation strategies for any
issues highlighted in the reports.
Corresponding the Deadlines: The team ensures that all reports and related actions
are aligned with the project’s deadlines.
Financial: The project manager ensures that all financial transactions and budget
allocations comply with organizational policies.
Procedural: The project team follows the organization’s procedures for all project
activities to ensure consistency and compliance.
Administrative: The project manager adheres to administrative rules, such as approvals
and documentation, to keep the project on track.
Justifications for Deviations: If the project deviates from the original plan, the team
provides a clear explanation and justification for the change.
Acceptance of Derailments: The team acknowledges and addresses any significant
deviations from the project plan to minimize their impact.
Trade-Off Between DO or DON’T: The project manager might need to decide whether
to proceed with a risky task or delay it until more information is available.
Quality of Job (in the Light of Constraints): The team may have to balance delivering a
high-quality product with the need to meet tight deadlines.
Limiting the Scope/Deliverables: The team might decide to reduce the project’s scope
to ensure it is completed on time and within budget.
Meeting Targets with Minimum Standards: The team might have to meet project
targets using the minimum acceptable quality to stay within budget or time constraints.
Unavoidable Mandatory Deliverables: The team identifies deliverables that must be
completed, even if they require additional resources or time.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 18/41
5.11 Contractual Obligations
A contract is a mutually binding agreement that obligates the
seller to provide the
specified product and obligates the buyer to pay for it.
A contract is a legal relationship subject to remedy in the
courts. The agreement
may be simple or complex, usually (but not always) reflecting
the simplicity or
complexity of the product.
Contracts may be called, among other names, a contract, an
agreement, a
subcontract, a purchase order, or a memorandum of
understanding. Most
organizations have documented policies and procedures
specifically defining who
can sign such agreements on behalf of the organization,
typically called a
delegation of procurement authority.
Although all project documents are subject to some form of
review and approval,
the legally binding nature of a contract usually means that it will
be subjected to a
more extensive approval process. In all cases, a primary focus of
the review and
approval process should be to ensure that the contract
language describes a
ix. Beneficiaries Concern
These examples aim to provide a clear, straightforward understanding of each topic without
using analogies, ensuring coherence throughout the explanation.
Standard QA Procedures: The project follows established quality assurance processes,
such as regular testing and reviews, to ensure the product meets standards.
Self-Defined Measures: The team might develop its own quality measures specific to
the project’s needs, such as additional testing for a critical feature.
Task-Specific Controls: The team implements specific controls, such as peer reviews or
automated tests, to ensure that critical tasks are completed correctly.
Acceptance: The team ensures that the final product meets the expectations of those
who will use it, such as end-users or clients.
Enthusiasm: The team works to generate enthusiasm among stakeholders by involving
them in the project and showing how it will benefit them.
Adding Comforts in Terms of Use, Cost, or Time: The team might introduce features
that make the product easier to use or reduce costs, enhancing the overall value to the
users.
Confidence Building—The Reliability: The team focuses on delivering a reliable
product that users can trust, thereby building confidence among stakeholders.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 19/41
product or service that will satisfy the identified need. In the
case of major
Software Project Management (CS615)
211
© Copyright Virtual University of Pakistan
projects undertaken by public agencies, the review process may
even include
public review of the agreement.
• Types of Contracts
Owing to the rapid advances in technology during the last
several decades, it has
become increasingly necessary for high technology
organizations to specialize in
specific, well-defined areas. Specialization has not only defined
many new
branches of engineering, it has also defined areas of expertise
within the
engineering disciplines. This is especially true of software
engineering.
Frequently, organizations that do not specialize in software
development hire
other organizations that do so to develop software for them.
Even organizations
that do develop their own software may decide to hire outside
specialists in
specific areas. IBM hired Microsoft to develop the PC-DOS
operating system,
because Microsoft had experience in developing
microcomputer systems and IBM
had not.
The development of software is much less deterministic and
more risky than other
areas of technology. This often leads to misunderstandings and
disagreements that
could have been avoided if they had been anticipated and
contained early enough.
To standardize our terminology, the organization to whom, a
proposal is being
submitted will be referred to as the customer, and the
organization submitting the
proposal will be referred to as the pro-poser. Other terms
commonly used
elsewhere for the pro-poser include bidder, vendor or
contractor and for the
customer requestor or issuer. The organization submitting the
winning proposal,
after being selected, will be referred to as the developer.
a) The cost-plus contract
Cost-plus is a contractual relationship where the developer is
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 20/41
paid for the cost of
the service provided and in addition is allowed an agreed profit
margin.
This is rather like renting a car the customer pays for the time
that the car is used
(by the hour, day, week etc.), and for any other expenses such as
insurance and
gasoline. Thus, in a cost-plus contract the total cost of the
projects is only known
after the project has been completed.
As an example, company Alpha may contract software company
Beta to develop
a system, company Beta will be paid $80 by company Alpha for
each hour
invested by their engineers in the project. In additional 20
percent may then be
added to cover managerial, secretarial and other services.
Additional expenses
incurred by company Beta for the benefit of the project would
then be reimbursed
by company Alpha. These expenses might cover such areas as:
Software Project Management (CS615)
212
© Copyright Virtual University of Pakistan
• Special purpose development equipment (computers,
compilers, networks
etc.)
• Travel expenses incurred by employees of company Beta for
the benefit of
the project
• Target equipment procured by company Beta for the use of
company
Alpha
• Services from other outside sources requested by company
Beta for the
project
The customer company, Alpha, may require the developer,
company Beta, to
receive prior authorization before incurring any single expense
exceeding $250,
and any expense in excess of $6000 monthly total. Such
authorization should
always be in writing. This defines a basic cost-plus contractual
relationship
between the two companies.
In many cases, cost-plus can be the most appropriate way to
contract development
work however, there are numerous potential problems. A
conflict of interest may
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 21/41
arise due to the developer's lack of motivation to complete the
project as quickly
as possible, or due to the customer's reluctance to authorize
additional expenses.
Cost-plus is often appropriate for small undefined projects,
when it is difficult to
identify the project's requirements in advance. In fact, in many
cases the
requirements phase of a project is offered as a cost-plus
contract, all the remaining
phases are contracted at a fixed price.
The requirements phase is then used to bring the rest of the
project to a
sufficiently well-defined state from which it can then be
contracted at a fixed
price. Occasionally, one company is awarded a cost-plus
contract for the
requirements phase, and another company is awarded the
remaining phases as a
fixed price contract.
Cost-plus may be preferred by the customer who wants to
retain control of the
development process. In some cases, the developer is perceived
as an extension of
the customer's organization, and the development activities are
managed by the
customer. A cost-plus contract should cover the following
issues:
• List of persons to be assigned to the project
• Work definition
• The assignment percentage for each person
• Hourly or daily work rate for each person
• Administrative overhead
• Authorized expenses to be reimbursed
• Billing procedure
• Payment procedure
• Termination procedure
Software Project Management (CS615)
213
© Copyright Virtual University of Pakistan
The assignment percentage refers to the amount of time each
person will be
expected to devote to the project. This may be 100 percent for
some engineers,
and 50-60 percent for experts in specific areas.
The assignment percentage may also be quoted in terms of
maximum or
minimum, meaning that, for example, a quality assurance
engineer will devote no
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 22/41
more than 20 hours a week to the project, and no fewer than 10
hours a week to
the project.
The billing rate may be a fixed rate for all persons assigned to
the project, or
individual rates may be set for each person or class of people.
For example, for each hour worked on the project, the
developer will bill $80,
irrespective of who, worked that hour. Or the contract may
stipulate that design
engineers bill at $120 per hour, coders at $60 per hour,
documentation writers at
$50 per hour, and so forth. The most difficult cost-plus contract
billing rate
method is the individual billing method, where Frank Jones is
billed at $90 per
hour, John Smith at $75 etc. This means that each time a person
is replaced or
added to the project, the hourly rate must renegotiated.
For a software development organization, there can be real
advantages in costplus contracts these include:
• No financial or business risk
• Acquisition of knowledge and experience at the expense of
another
organization
However, as in most cases, these advantages come with some
disadvantages,
which include:
• Low business profit
• Possible staff discontent
• Reduced control of staff and development work
• Potential friction with the customer due to a lack of well-
defined goals and
motivation factors
• Contract continuity is not assured
Most employees prefer a clear definition of the hierarchy to
which they belong. In
a cost-plus contract the employee works within the customer's
hierarchy, but
belongs to the developer's hierarchy, and this can cause
discontent.
In general, from the developer's perspective, a cost-plus
contract is a solid, low
profit, no risk business relationship.
From the customer's perspective, the advantages of a cost-plus
contract are:
Software Project Management (CS615)
214
© Copyright Virtual University of Pakistan
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 23/41
• Retention of control over development
• No commitment needed for a full project contract
• A possible reduced business risk (due to the ability to
terminate the
contract at any time
The customer's possible disadvantages are:
• Increased development costs
• Customer's assumption of development risks
• Increased involvement in development
• Potential friction with the developer due to a lack of well-
defined goals
and motivation factors
For the customer, the desirability of a cost-plus contract is
difficult to establish.
Clearly is dependent on the type of project and the conditions
under which it will
be developed, as we as on other non-technical business
considerations.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Here are beginner-level examples related to the topics you provided:
5.11 Contractual Obligations
5.11 Contractual Obligations
5.11 Contractual Obligations
5.11 Contractual Obligations
5.11 Contractual Obligations
Definition of a Contract
Legal Relationship
Names for Contracts
Delegation of Procurement Authority
Review and Approval Process
Example: A software company (the seller) agrees to create a custom software
application for a retail business (the buyer). The retail business agrees to pay a set
amount once the software is delivered and meets all specified requirements.
Example: If the software company fails to deliver the software on time, the retail
business can take legal action to enforce the contract or seek compensation for losses.
Example: The agreement between the software company and the retail business could
be called a contract, agreement, or purchase order, depending on the
organization's terminology.
Example: In a large corporation, only the procurement manager has the authority to
sign contracts with external vendors on behalf of the company.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 24/41
Types of Contracts
Types of Contracts
Types of Contracts
Types of Contracts
Types of Contracts
Specialization in Software Development
Risk and Uncertainty in Software Development
Roles in Contracting
a) The Cost-Plus Contract
a) The Cost-Plus Contract
a) The Cost-Plus Contract
a) The Cost-Plus Contract
a) The Cost-Plus Contract
Basic Definition
Example of a Cost-Plus Contract
Potential Issues with Cost-Plus Contracts
Appropriate Use of Cost-Plus Contracts
Maintaining Control
Elements Covered in a Cost-Plus Contract
Elements Covered in a Cost-Plus Contract
Elements Covered in a Cost-Plus Contract
Elements Covered in a Cost-Plus Contract
Elements Covered in a Cost-Plus Contract
List of Persons to be Assigned
Work Definition
Assignment Percentage
Example: Before signing the contract, the retail business’s legal team reviews the
contract to ensure it clearly defines the software to be delivered and that all terms are
acceptable.
Example: A bank that specializes in financial services but not in software development
hires a software company to build an online banking platform.
Example: A software company is hired to develop a new mobile app, but because the
exact requirements are unclear, there is a high risk of misunderstandings between the
company and the client.
Example: A government agency (the customer) issues a request for proposals to
develop a public service app. Several software companies (proposers) submit their
proposals, and the agency selects one developer to complete the project.
Example: A startup hires a software development company to create a mobile app. The
startup agrees to pay for the actual cost of the development (e.g., hourly wages for
developers) plus an additional 20% profit margin for the software company.
Example: Company Alpha hires software company Beta to develop a new system. Beta
charges $80 per hour for their engineers’ work and adds a 20% fee to cover
management and other services. If Beta needs to buy special equipment for the project,
Alpha reimburses those costs.
Example: If Beta’s engineers take longer than expected to complete the project, Alpha’s
costs increase, which could lead to conflicts if Alpha believes Beta is not working
efficiently.
Example: Alpha uses a cost-plus contract when hiring Beta for the initial phase of the
project, where requirements are not fully defined. Once the project is clearly defined,
Alpha may switch to a fixed-price contract for the remaining work.
Example: Alpha prefers a cost-plus contract because it allows them to closely manage
the development process, ensuring that Beta’s work aligns with their expectations.
Example: The contract specifies that three software engineers and one project manager
from Beta will work on the project.
Example: The contract outlines that Beta’s engineers will develop the front-end and
back-end of the new system.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 25/41
Hourly or Daily Work Rate
Administrative Overhead
Authorized Expenses
Billing Procedure
Payment Procedure
Termination Procedure
Advantages and Disadvantages of Cost-Plus Contracts
Advantages and Disadvantages of Cost-Plus Contracts
Advantages and Disadvantages of Cost-Plus Contracts
Advantages and Disadvantages of Cost-Plus Contracts
Advantages and Disadvantages of Cost-Plus Contracts
For the Developer (Beta)
For the Customer (Alpha)
Example: The contract states that the project manager will devote 50% of their time to
this project, while one senior engineer will be fully dedicated (100%) to it.
Example: The contract specifies that Beta will charge $80 per hour for developers and
$100 per hour for the project manager.
Example: The contract includes a 20% fee on top of the hourly rates to cover Beta’s
administrative costs.
Example: The contract allows Beta to be reimbursed for any travel expenses related to
the project, as long as Alpha approves any single expense over $250 in advance.
Example: The contract states that Beta will send an invoice every two weeks, detailing
hours worked and any authorized expenses.
Example: The contract specifies that Alpha will pay each invoice within 30 days of
receipt.
Example: The contract allows either party to terminate the contract with 30 days'
notice, with Beta being compensated for all work completed up to the termination date.
Advantages:
No Financial Risk: Beta is paid for all costs incurred, so there is no risk of losing
money on the project.
Knowledge Acquisition: Beta gains experience and knowledge from working on
the project, which can benefit future projects.
Disadvantages:
Low Profit: Beta’s profit margin is limited to the agreed percentage, which might
not be as high as in a fixed-price contract.
Staff Discontent: Beta’s engineers might feel uncertain about their roles, as they
work within Alpha’s hierarchy but are employed by Beta.
Reduced Control: Beta may have less control over how its staff works since
Alpha closely manages the project.
Advantages:
Control Over Development: Alpha can oversee the development process,
ensuring that the project meets their standards.
Flexibility: Alpha can terminate the contract if the project is not progressing as
expected, reducing the risk of being stuck in a non-productive contract.
Disadvantages:
Increased Costs: Alpha may end up paying more than expected if the project
takes longer to complete.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 26/41
b) The fixed price contract
A fixed price contract is a commitment by the developer to
provide an agreed
product or service for an agreed fee, within an agreed schedule.
This is similar to purchasing a bus ticket, when the bus company
agrees to take
the customer to a specific destination within a published
timetable, and for an
agreed fee. Of course, travelers can elect to rent a car, instead
of purchasing a bus
ticket, and then drive to their destinations themselves.
However, this may turn out
to be more expensive, and requires of the traveler some prior
skills and
knowledge, such driving skills and knowledge of the route to
the destination. So
travelers (or customers) must decide between providing the
service themselves
and contracting someone else to provide the service.
A fixed price contract can only be applied to a well-defined
project. Both
customer and developer must be able to define the final
deliverable product or
service. Once this has been achieved, one of the main
weaknesses of the fixed
price contract will have been removed. The advantages of a
fixed price contract
for the developer include:
• Full control of the development process
• Possible higher business profit
• Commitment for a complete project
The commitment for a complete project is a significant
advantage over cost-plus
contract that may end at any time, at the customer's discretion.
Of course, fixed
price contracts also have some disadvantages for the developer,
which include:
Software Project Management (CS615)
These examples are designed to help beginners understand the concepts without using
analogies, while maintaining coherence as if delivered in a lecture.
Development Risks: Alpha assumes the risk if the project encounters significant
issues or delays, as costs will continue to rise.
Potential Friction: Without clear goals, there might be disagreements between
Alpha and Beta, leading to tension and reduced productivity.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 27/41
215
© Copyright Virtual University of Pakistan
• Assumption of business and development risks
• Potential friction with the customer due to:
− continuing requirement changes
− project completion criteria
− interpretation of requirements
A successful software organization will often prefer a fixed
price contract. These
are usually the projects that build a company's professional
reputation, and
generate profit to enable growth.
Unfortunately, these are also the projects that generate loss,
and which often
severely harm a company. Stiff competition for an important
contract
occasionally tempts a company to underbid, which ultimately
generates losses for
the developer.
It is almost inevitable in any project that the developer will be
requested to change
requirements during development. Such changes are usually
associated with
additional cost the customer, and are invariably a cause of
disagreement between
developer and customer.
This is often due to unclear or ambiguous requirements, which,
in turn lead to
disagreement regarding the criteria for project completion.
This, essentially,
returns the contract to insufficiently defined state.
From the customer's perspective, the advantages in a fixed
price contract include:
• A fixed budget for the project.
• Most of the development risks are transferred to the
developer
• Minimal involvement in the development process
The disadvantages to the customer are:
• Risk of late delivery by the developer
• Reduced control of the development process
• Potential friction with the developer due to:
− high cost of requirement changes
− unclear project completion criteria
− interpretation of requirements
Even though the interests of the developer and the customer
may be different,
fixed price contracts are still often preferred by both parties. If
the project is
sufficiently detailed and clear and if the relationship between
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 28/41
the two parties is
Software Project Management (CS615)
216
© Copyright Virtual University of Pakistan
well defined, then fixed price contracts can be beneficial to both
the developer
and the customer.
• The Cost-Plus Vs Fixed Price
There is often a real or imagined conflict of interest between
the developer and
the customer. The customer wants to spend less and the
developer wants to earn
more. As we shall see, a good relationship between developer
and customer need
not necessarily lead to this conflict of interest.
There are basically two types of contractual relationship
between the customer
and the Developer:
− Cost-plus (also called Time and material)
− Fixed price
Most other relationships are some kind of combination of these
two
• Contract type selection:
Different types of contracts are more or less appropriate for
different types of
purchases. Contracts generally fall into one of three broad
categories:
ƒ Fixed-price or lump-sum contracts—this category of contract
involves a
fixed total price for a well-defined product. To the extent that
the product is
not well defined, both the buyer and seller are at risk—the
buyer may not
receive the desired product or the seller may need to incur
additional costs to
provide it. Fixed-price contracts may also include incentives for
meeting or
exceeding selected project objectives, such as schedule targets.
ƒ Cost-reimbursable contracts—this category of contract
involves payment
(Reimbursement) to the seller for its actual costs plus, typically,
a fee
representing seller profit. Costs are usually classified as direct
costs or
indirect costs. Direct costs are costs incurred for the exclusive
benefit of the
project (e.g. salaries of full-time project staff). Indirect costs,
also called
overhead costs, are costs allocated to the project by the
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 29/41
performing
organization as a cost of doing business (e.g., salaries of
corporate
executives). Indirect costs are usually calculated as a
percentage of direct
costs. Cost-reimbursable contracts often include incentives for
meeting or
exceeding selected project objectives, such as schedule targets
or total cost.
ƒ Time and Material (TM) contracts—TM contracts are a
hybrid type of
contractual arrangement that contains aspects of both cost-
reimbursable and
fixed-price-type arrangements. TM contracts resemble cost-
type
arrangements in that they are open ended, because the full
value of the
arrangement is not defined at the time of the award. Thus, TM
contracts can
Software Project Management (CS615)
217
© Copyright Virtual University of Pakistan
grow in con-tract value as if they were cost-reimbursable-type
arrangements.
Conversely, TM arrangements can also resemble fixed-unit
arrangements
when, for example, the unit rates are preset by the buyer and
seller, as when
both parties agree on the rates for the category of “senior
engineers.”
• Other Customer-Developer Relationships
Cost-plus and fixed price are two of the traditional contractual
relationships
between developer and customer. There are many variations of
these two
basic relationships, including various combinations that are
tailored to suit
specific projects. Some of these relationships are associated
with the roles of
customer and developer, and attempt to provide more
incentives for the
developer to support the customer's objectives beyond
contractual obligations.
Additional types of customer-developer relationship include:
• Combinations of fixed price and cost-plus
• Joint ventures
• Royalty agreements
• Long-term commitments
Joint ventures are instances where the customer-developer
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 30/41
dividing line can
become hazy, and many of the previously discussed advantages
and
disadvantages may not apply. There are many cases where
some form of joint
venture may be desirable for both parties, such as when the
developer wants to
retain rights to the product, or when the developer joins the
customer in
funding part of the development effort.
One way the customer can offer the developer moderate
participation in the
business aspect of the project is by substituting royalties as
partial payment. This
generates an added dimension to the developer's interest in the
success of the
project. The royalties are usually such that the failure of the
project would
produce less revenue for the developer than a straightforward
fixed price contract,
and the success of the project will increase the developer's
revenue.
Long-term relationships are often important for the developer.
In many cases,
long term commitments are also in the customer's interest. This
occurs when the
developer, by being awarded the initial contract, gains, through
acquired
knowledge, a major advantage over others for subsequent
development work.
Clearly, when the developer successfully completes a large and
complex project,
a significant advantage is then acquired over other companies
with respect to
future extensions of the project. A long-term commitment may
then be of mutual
interest to both parties, wherein the customer assures future
services from the
developer and the developer assures a long term income
commitment.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 31/41
5.12 The statement of work (SOW)
Software Project Management (CS615)
218
© Copyright Virtual University of Pakistan
The statement of work is the basis of the contract between the
pro-poser and the
customer, and is often incorporated into the contract. The SOW
contains a
detailed list of all work to be performed by the pro-poser for
the benefit of the
customer.
It is a narrative description of products or services to be
supplied by the project.
For internal projects, the project initiator or sponsor provides
the statement of
work based on business needs, or product or service
requirements.
For external projects, the statement of work can be received
from the customer as
part of a bid document, for example, request for proposal,
request for
information, request for bid, or as part of a contract. The SOW
indicates a:
ƒ Business need - an organization’s business need, can be based
on needed
training, market demand, technological advance, legal
requirement, or
governmental standard.
ƒ Product scope description - documents the product
requirements and
characteristics of the product or service that the project will be
undertaken
to create. The product requirements will generally have less
detail during
the initiation process and more detail during later processes, as
the product
characteristics are progressively elaborated. These
requirements should
also document the relationship among the products or services
being
created and the business need or other stimulus that causes the
need.
While the form and substance of the product requirements
document will
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 32/41
vary, it should always be detailed enough to support later
project planning.
ƒ Strategic plan - all projects support the organization’s
strategic goals—the
strategic plan of the performing organization should be
considered as a
factor in project selection decisions.
The SOW starts as a general list of required deliverables in the
RFP. A more
detailed version t of the SOW is submitted as part of the
proposal, and is still
considered only an initial description of the work to be
performed. The blinding
version of the SOW is finalized during contract negotiations, or
after the detailed
project requirements have been completed.
Following table presents an example of an SOW outline for a
software project.
The list of items varies considerably, depending on the type of
project being
developed; for example not all projects include the delivery of
hardware
components, and not all projects require training or installation.
Software Project Management (CS615)
219
© Copyright Virtual University of Pakistan
Table: A sample SOW outline for a software project
14. Referenced documents
• requirements specification
• existing system description
• customer's RFP
• developer's proposal
• vendor's and developer's technical literature
15. Software deliverables
• functionality (as documented in the requirements
specification)
• list of major software components
16. Equipment and hardware deliverables
• functionality (as documented in the requirements
specification)
• list of major hardware components
17. Training
• user courses
• operator training
• installation training
18. Market research
19. Procurement
20. Supervision of subcontractors
21. Documentation
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 33/41
• development documentation
• user documentation
• maintenance documentation
• other technical documentation
22. Testing
• alpha testing
• beta testing
• acceptance tests (ATP)
23. Installation
24. Maintenance services
25. Other services and deliverable items
26. Method of delivery
• software
• documentation
• hardware
Software Project Management (CS615)
220
© Copyright Virtual University of Pakistan
The basic guideline for the preparation of the SOW is that any
activity, service or
product required by the customer, and agreed to by the
developer, must be
included. This means that there can be no binding work items
that were
informally understood or agreed to verbally, which do not
appear in the SOW.
The formal SOW must include all and only the work to be
performed. This
condition prevents misunderstandings and disagreements later,
after the project
begins.
The statement of work (SOW) describes the procurement item
in sufficient detail
to allow prospective sellers to determine if they are capable of
providing the item.
“Sufficient detail” may vary, based on the nature of the item, the
needs of the
buyer, or the expected contract form.
Some application areas recognize different types of SOW. For
example, in some
government jurisdictions, the term SOW is reserved for a
procurement item that is
a clearly specified product or service, and the term Statement
of Objectives (SOO)
is used for a procurement item that is presented as a problem
to be solved.
The statement of work may be revised and refined as it moves
through the
procurement process. For example, a prospective seller may
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 34/41
suggest a more
efficient approach or a less costly product than that originally
specified. Each
individual procurement item requires a separate statement of
work. However,
multiple products or services may be grouped as one
procurement item with a
single SOW.
The statement of work should be as clear, as complete, and as
concise as possible.
It should include a description of any collateral services
required, such as
performance reporting or post-project operational support for
the procured item.
In some application areas, there are specific content and format
requirements for a
SOW.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Let's go through the key points about the Statement of Work (SOW) in a simple and clear
manner:
5.12 The Statement of Work (SOW)
5.12 The Statement of Work (SOW)
5.12 The Statement of Work (SOW)
5.12 The Statement of Work (SOW)
5.12 The Statement of Work (SOW)
The Statement of Work (SOW) is a document that serves as the foundation for a contract
between a developer (or proposer) and a customer. It outlines all the work that the developer
is required to perform for the customer. This document is crucial because it specifies what the
customer expects to receive and what the developer must deliver.
Key Components of an SOW
Key Components of an SOW
Key Components of an SOW
Key Components of an SOW
Key Components of an SOW
Business Need:
1
The SOW starts by identifying why the project is necessary. This could be due to a
need for new software, a legal requirement, or a technological update. For
example, a company may need new software to comply with updated industry
regulations.
2
Product Scope Description:
3
This part of the SOW describes in detail the product or service to be delivered.
For example, if the project is to develop a new software application, this section
will list the key features and functions that the software must have. It also
explains how this product will meet the business need.
4
Strategic Plan:
5
Every project should align with the organization's broader strategic goals. The
SOW explains how the project supports these goals. For example, if a company’s
6
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 35/41
How the SOW is Used
How the SOW is Used
How the SOW is Used
How the SOW is Used
How the SOW is Used
Example of an SOW Outline for a Software Project
Example of an SOW Outline for a Software Project
Example of an SOW Outline for a Software Project
Example of an SOW Outline for a Software Project
Example of an SOW Outline for a Software Project
Here’s what a typical SOW might include for a software project:
strategy is to become a leader in digital innovation, the SOW might describe how
the new software will contribute to that objective.
Initial Description:
The SOW begins as a general list of what the customer wants when they send out
a Request for Proposal (RFP). For example, a company might say they need a new
customer management system without specifying every detail.
Proposal Submission:
When developers submit their proposals, they include a more detailed version of
the SOW, describing exactly what they will do and how they will do it. For
example, a software developer might propose specific features and a timeline for
delivery.
Finalization:
The final version of the SOW is agreed upon during contract negotiations. It
becomes a binding document that both parties must follow. For example, if the
SOW states that the software will be delivered in six months with specific
features, the developer must meet this requirement.
Referenced Documents:
1
List of documents like the requirements specification, existing system
descriptions, and the customer’s RFP.
2
Software Deliverables:
3
Detailed list of software features and components that the developer must
provide.
4
Equipment and Hardware Deliverables:
5
Any hardware components required for the software, such as servers or specific
devices.
6
Training:
7
Description of any training required for users, operators, or installation teams.
8
Market Research:
9
Any research required to understand the market or user needs.
10
Procurement:
11
Details about acquiring any necessary materials or services from third parties.
12
Supervision of Subcontractors:
13
Information on how the developer will manage any subcontractors involved in the
project.
14
Documentation:
15
Details on the documentation that will be provided, such as user manuals or
maintenance guides.
16
Testing:
17
The types of testing that will be conducted, like alpha and beta testing.
18
Installation:
19
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 36/41
5.12.1 SOW Template
i. Scope of work: Describe the work to be done in detail. Specify
the hardware and
software involved and the exact nature of the work.
ii. Location of Work: Describe where the work must be
performed. Specify the
location of hardware and software and where the people must
perform the work.
iii. Period of Performance: Specify when the work is expected to
start and end,
working hours, number of hours that can be billed per week,
where the work must
be performed, and related schedule information. Optional
“Compensation”
section.
Software Project Management (CS615)
221
Importance of the SOW
Importance of the SOW
Importance of the SOW
Importance of the SOW
Importance of the SOW
This overview should give you a clear understanding of what an SOW is and how it is used in
managing software projects.
How the software will be installed and set up for use.
20
Maintenance Services:
21
Description of ongoing support and maintenance that will be provided after the
software is delivered.
22
Other Services and Deliverable Items:
23
Any additional services or items that are part of the project.
24
Method of Delivery:
25
How the software, documentation, and hardware will be delivered to the
customer.
26
Clarity and Precision:
The SOW must be clear, complete, and concise. For example, if the SOW states
that the software should include a reporting feature, it should describe exactly
what kind of reports are needed and how they should work.
Prevents Misunderstandings:
By including everything agreed upon, the SOW helps avoid misunderstandings
later in the project. For example, if the SOW does not mention a feature, the
developer is not responsible for adding it unless both parties agree to a contract
change.
Flexibility and Revisions:
The SOW can be revised as the project progresses, especially if the customer or
developer suggests improvements. For example, if a new technology becomes
available, the SOW might be updated to include its use.
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 37/41
© Copyright Virtual University of Pakistan
iv. Deliverables Schedule: List specific deliverables, describe
them in detail, and
specify when they are due.
v. Applicable Standards: Specify any company or industry-
specific standards that
are relevant to performing the work. Often an Assumptions
section as well.
vi. Acceptance Criteria: Describe how the buyer organization
will determine if the
work is acceptable
vii. Special Requirements: Specify any special requirements
such as hardware or
software certifications, minimum degree or experience level of
personnel, travel
requirements, documentation, testing, support, and so on.
5.13 Software built around a Scheduling Engine
These packages were originally created to manage one project
at a time, but over
the years have been enhanced to handle multiple projects.
Well known examples include:
1. Primavera
2. TurboProject
3. OpenPlan
4. Microsoft Project
5. AutoPlan
6. Project Scheduler 8
7. CA SuperProject
8. Timeline
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
5.12.1 SOW Template
5.12.1 SOW Template
5.12.1 SOW Template
5.12.1 SOW Template
5.12.1 SOW Template
Let’s discuss each part of the Statement of Work (SOW) template and provide
straightforward examples to help you understand how these sections might be filled out in a
real project:
Scope of Work:
1
Description: This section details what work needs to be done, including the
specific tasks, hardware, and software involved.
2
Example: For a project developing a new customer management system, the
Scope of Work might include tasks like designing the user interface, developing
backend services, and integrating with the existing database. The hardware
3
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 38/41
5.13 Software Built Around a Scheduling Engine
5.13 Software Built Around a Scheduling Engine
5.13 Software Built Around a Scheduling Engine
5.13 Software Built Around a Scheduling Engine
5.13 Software Built Around a Scheduling Engine
Now, let's talk about some software tools that are designed to help manage projects. These
tools are built around a scheduling engine, which helps plan, track, and manage project
timelines and resources. Here are some well-known examples:
involved might be company servers, and the software could include programming
languages like Java and database systems like MySQL.
Location of Work:
4
Description: This section specifies where the work will be performed, including
the locations of hardware, software, and personnel.
5
Example: The work might be performed at the company’s main office, with
servers located in the data center. The software development might take place
remotely, with the team working from various locations but coordinating via an
online platform.
6
Period of Performance:
7
Description: This section outlines when the work will start and end, the expected
working hours, and any schedule details.
8
Example: The project might be scheduled to start on September 1st and end on
December 31st, with the team working 40 hours per week, Monday through
Friday, from 9:00 AM to 5:00 PM.
9
Deliverables Schedule:
10
Description: This section lists the specific deliverables, provides detailed
descriptions, and specifies the deadlines.
11
Example: Deliverables might include a completed user interface by October 15th,
a working backend system by November 15th, and a fully integrated system by
December 15th.
12
Applicable Standards:
13
Description: This section lists any standards that must be followed during the
project, including company policies or industry regulations.
14
Example: The project might need to comply with the company’s internal coding
standards, as well as industry regulations like GDPR (General Data Protection
Regulation) if it involves handling customer data.
15
Acceptance Criteria:
16
Description: This section defines how the customer will determine if the work
meets the agreed-upon requirements and is acceptable.
17
Example: The customer might require that the system passes specific tests, such
as performance benchmarks and user acceptance testing (UAT), before
considering the work complete.
18
Special Requirements:
19
Description: This section lists any additional requirements, such as specific
certifications, experience levels, or other conditions that must be met.
20
Example: The project might require that all developers have a minimum of 5 years
of experience in software development, and that the team includes a certified
security expert to ensure the system’s security features meet industry standards.
21
Primavera:
1
Description: A powerful project management tool often used for large and
complex projects, particularly in industries like construction and engineering.
2
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 39/41
These explanations should provide you with a clear understanding of the SOW template
components and the different software tools that are used for project scheduling and
management.
Example: A construction company might use Primavera to schedule and manage
the construction of a new office building, ensuring that all tasks are completed on
time and resources are allocated efficiently.
3
TurboProject:
4
Description: A project management software that helps in planning and tracking
multiple projects simultaneously.
5
Example: A software development company might use TurboProject to manage
the timelines of several ongoing projects, making sure each one meets its
deadlines.
6
OpenPlan:
7
Description: A tool used for project management with features that support the
planning and execution of multiple projects.
8
Example: A manufacturing firm might use OpenPlan to oversee the production
schedules of different products, coordinating tasks to ensure timely delivery.
9
Microsoft Project:
10
Description: One of the most widely used project management tools, suitable for
managing projects of various sizes.
11
Example: A marketing team might use Microsoft Project to organize and track the
progress of a new advertising campaign, from initial concept to final launch.
12
AutoPlan:
13
Description: A project management tool designed to automate the scheduling
and resource allocation for projects.
14
Example: An IT department might use AutoPlan to automate the scheduling of
software updates across the company’s systems.
15
Project Scheduler 8:
16
Description: A project management tool that helps in detailed planning and
scheduling of tasks.
17
Example: A research team might use Project Scheduler 8 to plan and track the
progress of a long-term scientific study, ensuring that all tasks are completed in
the correct order.
18
CA SuperProject:
19
Description: A project management software that provides robust features for
complex project scheduling.
20
Example: A telecommunications company might use CA SuperProject to manage
the rollout of new network infrastructure across multiple regions.
21
Timeline:
22
Description: A project management tool focused on creating and managing
project timelines.
23
Example: A product development team might use Timeline to plan the release
schedule of a new product, ensuring that all milestones are met on time.
24
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 40/41
From ChatGPT, designed with FancyGPT
18/08/2024, 10:15 FancyGPT - cs615 lecture 28
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 41/41
cs615 lecture 29
cs615 lecture 29
cs615 lecture 29
cs615 lecture 29
cs615 lecture 29
LECTURE # 29
6. ESTIMATION
6.1 Estimation - Concepts
Watts Humphrey in his book, Managing the Software process,
has said, “If you
don’t know where you are, a map won’t help.” This saying is very
relevant while
dealing with software project estimation. In a software project,
unless you are sure
that your estimation is accurate, you cannot make much
progress.
Estimation of factors such as cost, effort, risks, and resources is
crucial. It gives
you a fair idea of the size of the project. You can use the
information about size to
estimate the cost, effort, and duration of the project. This
further helps plan for
resources and schedule the project.
In the early days of computing, software costs constituted a
small percentage of
the overall computer-based system cost. An order of magnitude
error in estimates
of software cost had relatively little impact.
Today, software is the most expensive element of virtually all
computer-based
systems. For complex, custom systems, a large increased cost
estimation error can
make the difference between profit and loss. Cost overrun can
be disastrous for
the developer.
Software cost and effort estimation will never be an exact
science. Too many
variables - human, technical, environmental, political - can
affect the ultimate cost
of software and effort applied to develop it.
However, software project estimation can be transformed from
a black art to a
series of systematic steps that provide estimates with
acceptable risk.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/11
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
6. ESTIMATION
6. ESTIMATION
6. ESTIMATION
6. ESTIMATION
6. ESTIMATION
6.1 Estimation - Concepts
6.1 Estimation - Concepts
6.1 Estimation - Concepts
6.1 Estimation - Concepts
6.1 Estimation - Concepts
Watts Humphrey's quote, If you don’t know where you are, a map won’t help, is important
when estimating in software projects. Here's why:
In a software project, estimation means predicting the amount of time, money, and resources
needed to complete the project. If your estimation is off, you might face unexpected
problems. Therefore, accurate estimation is crucial for making progress in the project.
Example:
Example:
Example:
Example:
Example:
Imagine you're managing a small software project for a client. Before starting, you need to
estimate how much it will cost, how long it will take, and how many team members you'll
need. If you underestimate any of these factors, you could run into issues like not having
enough time or budget to complete the project, which could lead to project failure.
Estimating Factors:
Estimating Factors:
Estimating Factors:
Estimating Factors:
Estimating Factors:
By estimating these factors, you can get a rough idea of the project size and complexity. This
helps in planning the schedule, allocating resources, and setting a budget.
Example:
Example:
Example:
Example:
Example:
Suppose you're building a new mobile app. You estimate it will take 500 hours of work, cost
$50,000, and require a team of 5 developers. You also identify potential risks, such as delays
in getting approvals from the client. This estimation helps you plan when to start, how to
allocate tasks, and how to manage the budget.
Importance of Accurate Estimation:
Importance of Accurate Estimation:
Importance of Accurate Estimation:
Importance of Accurate Estimation:
Importance of Accurate Estimation:
In the early days of computing, software was a small part of the overall system cost. Even if
the software cost estimate was wrong, it didn’t affect the overall project much. However,
today, software is a major part of the cost. An incorrect estimate can lead to huge financial
losses.
Example:
Example:
Example:
Example:
Example:
If you're working on a large government contract to build a custom software system, and you
underestimate the cost by 50%, this could result in a significant financial loss for your
company. It could even mean losing the contract entirely if the client decides the project is too
expensive.
Software Estimation Challenges:
Software Estimation Challenges:
Software Estimation Challenges:
Software Estimation Challenges:
Software Estimation Challenges:
Estimation is difficult because software development is complex and involves many
unpredictable factors. Human skills, technology, environment, and even politics can influence
the actual cost and effort needed.
Example:
Example:
Example:
Example:
Example:
Cost: The amount of money required for the project.
Effort: The total work required to complete the project, often measured in person-
hours or person-days.
Risks: Potential problems that could arise and impact the project.
Resources: The people, tools, and materials needed to complete the project.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/11
To achieve reliable cost and effort estimates, a number of
options arise:
1. Delay estimation until late in the project (obviously, we can
achieve 100%
accurate estimates after the project is complete!).
2. Base estimates on similar projects that have already been
completed.
3. Use relatively simple decomposition techniques to generate
project cost and
effort estimates.
4. Use one or more empirical models for software cost and
effort estimation.
Unfortunately, the first option, however attractive, is not
practical. Cost estimates
must be provided 'up front.' However, we should recognize that
the longer we
Software Project Management (CS615)
223
© Copyright Virtual University of Pakistan
wait, the more we know, and the more we know, the less likely
we are to make
serious errors in our estimates.
The second option can work reasonably well, if the current
project is quite similar
to past efforts and other project influences (e.g., the customer,
business
conditions, the SEE, deadlines) are equivalent. Unfortunately,
past experience has
not always been a good indicator of future results.
The remaining options are viable approaches to software
project estimation.
You might estimate that a project will take 6 months, but then new regulations are introduced
that require additional features, or a key team member leaves the project. These changes can
impact your original estimate, making the project take longer and cost more than expected.
Systematic Approach to Estimation:
Systematic Approach to Estimation:
Systematic Approach to Estimation:
Systematic Approach to Estimation:
Systematic Approach to Estimation:
Although perfect estimation is impossible, you can improve your estimates by following a
systematic process. This involves breaking down the project into smaller tasks, using
historical data from similar projects, and continuously refining your estimates as you learn
more about the project.
Example:
Example:
Example:
Example:
Example:
Before starting a project, you break it down into smaller tasks, such as design, development,
testing, and deployment. You then look at previous projects to see how long each task
typically takes and use this information to create a more accurate estimate. As the project
progresses, you adjust your estimates based on any new information or challenges that arise.
By following these steps, you can make better estimations, reducing the risk of cost overruns
and project delays.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/11
Ideally, the techniques noted for each option should be applied
in tandem; each
used as a cross-check for the other.
Software project estimation is a form of problem solving, and in
most cases, the
problem to be solved (i.e., developing a cost and effort estimate
for a software
project) is too complex to be considered in one piece. For this
reason, we
decompose the problem, re-characterizing it as a set of smaller
(and hopefully,
more manageable) problems.
Following are some points related to project estimation:
• Estimation is very difficult to do, but is often needed
• It is created, used or refined during
– Strategic planning
– Feasibility study and/or SOW
– Proposals
– Vendor and sub-contractor evaluation
– Project planning (iteratively)
• Basic process involves:
– Estimate the size of the product
– Estimate the effort (man-months)
– Estimate the schedule
– NOTE: Not all of these steps are always explicitly performed
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Reliable Cost and Effort Estimation
Reliable Cost and Effort Estimation
Reliable Cost and Effort Estimation
Reliable Cost and Effort Estimation
Reliable Cost and Effort Estimation
When trying to estimate the cost and effort for a software project, there are several options
you can consider. Let's discuss each of these options and some key points about the
estimation process.
1.
1.
1.
1.
1. Delay Estimation Until Late in the Project
Delay Estimation Until Late in the Project
Delay Estimation Until Late in the Project
Delay Estimation Until Late in the Project
Delay Estimation Until Late in the Project
2.
2.
2.
2.
2. Base Estimates on Similar Projects
Base Estimates on Similar Projects
Base Estimates on Similar Projects
Base Estimates on Similar Projects
Base Estimates on Similar Projects
Explanation: Waiting until the project is almost done to make estimates would give you
the most accurate results because you would have all the necessary information.
Example: Suppose you start developing a website without estimating the cost and
effort upfront. You could easily determine the exact cost after the website is complete.
However, this isn't practical because you need an estimate to secure funding and plan
the project.
Explanation: This method involves looking at previous projects that are similar to the
current one and using them as a reference to estimate costs and effort.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/11
3.
3.
3.
3.
3. Use Decomposition Techniques
Use Decomposition Techniques
Use Decomposition Techniques
Use Decomposition Techniques
Use Decomposition Techniques
4.
4.
4.
4.
4. Use Empirical Models
Use Empirical Models
Use Empirical Models
Use Empirical Models
Use Empirical Models
Practical Considerations
Practical Considerations
Practical Considerations
Practical Considerations
Practical Considerations
Estimation as a Problem-Solving Process
Estimation as a Problem-Solving Process
Estimation as a Problem-Solving Process
Estimation as a Problem-Solving Process
Estimation as a Problem-Solving Process
Estimation is challenging because software projects are complex. To handle this, we break
down the estimation into smaller, more manageable parts.
Key Points About Project Estimation
Key Points About Project Estimation
Key Points About Project Estimation
Key Points About Project Estimation
Key Points About Project Estimation
Example: If you’ve previously developed a similar e-commerce website, you might use
the data from that project to estimate how long and how much it will cost to build
another e-commerce website. However, differences in client requirements or
technology can make these estimates less accurate.
Explanation: Decomposition involves breaking down the project into smaller tasks or
components and estimating the cost and effort for each part separately.
Example: For a mobile app project, you might break it down into tasks like UI design,
backend development, and testing. You would then estimate the effort for each of these
tasks individually and combine them to get the total estimate.
Explanation: Empirical models use historical data and mathematical formulas to
estimate the cost and effort. These models are based on real-world data from past
projects.
Example: One such model is the COCOMO (Constructive Cost Model), which uses
parameters like the size of the project and complexity to calculate the estimated effort
and cost.
Upfront Estimation is Necessary: Even though waiting until late in the project gives
more accurate estimates, it's not feasible because you need cost estimates at the
beginning to secure budgets and plan resources.
Example: Before starting a project to build a new software tool, your company’s
management will require a cost estimate to allocate the budget.
Using Past Projects for Estimation: This works well if the current project closely
matches previous projects in scope and conditions.
Example: If you previously developed a custom CRM system for one client and
now you're doing a similar project for another client with similar requirements,
you can use your past experience to estimate costs. However, differences like
stricter deadlines or new technology might affect the accuracy of your estimate.
Decomposing the Problem: Instead of estimating the entire project at once, we break it
into smaller tasks. This makes the estimation process easier and more accurate.
Example: If you're estimating a project to build an online shopping platform,
break it down into smaller tasks like user authentication, product listing, payment
processing, and shipping integration. Estimate each part separately and sum
them up.
Estimation is Difficult but Necessary: Accurate estimates are hard to achieve, but they
are crucial for planning and executing a project.
Example: You might find it challenging to estimate how long it will take to
integrate a new payment system into your app, but you still need an estimate to
plan your timeline.
Estimation is Used in Various Stages: Estimation isn't a one-time task; it is done during
different stages like strategic planning, feasibility studies, and project planning.
Example: Before starting a new software product, your team might first create a
rough estimate during strategic planning and then refine it as you develop a more
detailed project plan.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/11
6.2 Estimation – A Critical factor
In a software project, unless you are sure that your estimation
is accurate, you
cannot make much progress.
Estimation of following factors are essential:
– Cost,
– Effort,
Software Project Management (CS615)
224
© Copyright Virtual University of Pakistan
– Risks
– Resources
Estimation gives you a fair idea of the size of the project. You
can use the
information about size to estimate the cost, effort, and duration
of the project.
This further helps plan for resources and schedule the project.
Estimation of resources, cost, and schedule for a software
engineering effort
requires:
• Experience,
• Access to good historical information
• Courage to commit to quantitative predictions when
qualitative
information is all that exists
Estimation carries inherent risk and this risk leads to
By following these steps and using different estimation methods together, you can improve
the accuracy of your software project estimates.
Basic Estimation Process:
Estimate the Product Size: Determine how large the project is in terms of
functionality or lines of code.
1
Example: Estimate the number of screens or features your app will have.
2
Estimate the Effort: Calculate the amount of work needed, usually measured in
person-months.
3
Example: If a team of 3 developers can complete the project in 2 months,
the effort is 6 person-months.
4
Estimate the Schedule: Determine how long the project will take from start to
finish.
5
Example: Based on the effort estimate, you might plan for a 3-month
development timeline.
6
Not Always Done Explicitly: In some cases, not all of these steps are formally
documented, but they are still considered during the planning process.
Example: In a small project, you might estimate the size and effort informally
without detailed calculations, but you'll still need a rough idea to plan your
schedule.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/11
uncertainty.
a) Project complexity
b) Project size
c) The degree of structural uncertainty
d) The availability of historical information
e) Risk
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
6.2 Estimation – A Critical Factor
6.2 Estimation – A Critical Factor
6.2 Estimation – A Critical Factor
6.2 Estimation – A Critical Factor
6.2 Estimation – A Critical Factor
Accurate estimation is crucial in a software project because it influences the success of the
project. Without reliable estimates, making progress and managing the project becomes
difficult.
Essential Factors to Estimate
Essential Factors to Estimate
Essential Factors to Estimate
Essential Factors to Estimate
Essential Factors to Estimate
In a software project, the following factors must be estimated accurately:
Example:
Example:
Example:
Example:
Example:
When planning to develop a new software tool, you estimate that it will cost $100,000,
require 1,200 hours of work, involve 5 developers, and have risks like potential delays in
receiving feedback from the client. These estimates help you understand the overall size and
complexity of the project, enabling you to allocate resources and schedule tasks effectively.
Requirements for Accurate Estimation
Requirements for Accurate Estimation
Requirements for Accurate Estimation
Requirements for Accurate Estimation
Requirements for Accurate Estimation
To make reliable estimates for a software project, you need:
Example:
Example:
Example:
Example:
Example:
If you’ve worked on similar projects before, you can use that experience to estimate how long
it will take to develop the new software tool. If your company keeps records of past projects,
you can refer to them to improve your estimates. Even if you don’t have all the information,
you must still commit to an estimate to plan the project effectively.
Risk and Uncertainty in Estimation
Risk and Uncertainty in Estimation
Risk and Uncertainty in Estimation
Risk and Uncertainty in Estimation
Risk and Uncertainty in Estimation
Cost: The total amount of money needed for the project.
Effort: The amount of work required, typically measured in hours, days, or months.
Risks: Potential problems that could impact the project, such as technical issues or
changes in requirements.
Resources: The people, tools, and materials needed to complete the project.
Experience: Knowledge gained from previous projects helps you make better
estimates.
Historical Information: Data from past projects can guide your current estimates.
Courage to Commit: You must be willing to make concrete predictions, even when only
partial or qualitative information is available.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/11
a) Project complexity has a strong effect on the uncertainty,
inherent in planning.
Complexity, however, is a relative measure that is affected by
familiarity with
past effort. The first-time developer of a sophisticated e-
commerce application
might consider it to be exceedingly complex. However, a
software team
developing its tenth e-commerce Web site would consider such
work run of the
mill. A number of quantitative software complexity measures
can be applied as
per the need of project. Such measures are applied at the design
or code level and
are therefore difficult to use during Software planning (before a
design and code
exist). However, other, more subjective assessments of
complexity (e.g., the
Estimation is not without risk. Several factors can introduce uncertainty into your estimates,
including:
Understanding and managing these factors helps you make more accurate estimates,
reducing the risk of project overruns and ensuring better project management.
Project Complexity: The more complex a project is, the harder it is to estimate
accurately.
Example: If you're building a software system that integrates with multiple
external services, the complexity makes it challenging to predict the exact effort
and cost.
Project Size: Larger projects have more variables, making it difficult to estimate
accurately.
Example: Estimating the effort for a small mobile app is easier than for a large
enterprise system that spans multiple departments.
Structural Uncertainty: If the project’s requirements or structure are not well-defined,
this uncertainty increases the difficulty of making accurate estimates.
Example: If the client’s requirements are vague or frequently changing, it’s hard
to estimate the total effort needed.
Availability of Historical Information: Having access to detailed records of past
projects helps reduce uncertainty in estimates.
Example: If your team has data from similar projects, such as how long certain
tasks took, you can make more accurate estimates. Without this information,
your estimates are more likely to be inaccurate.
Risk: Risks such as unforeseen technical challenges or changes in project scope can
impact your estimates.
Example: If a new technology you’re using turns out to be more difficult to
implement than expected, this could cause delays and increase costs, affecting
your original estimates.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/11
function point complexity adjustment factors) can be
established early in the
planning process.
b) Project size is another important factor that can affect the
accuracy and efficacy
of estimates. As size increases, the interdependency among
various elements of
the software grows rapidly. Problem decomposition, an
important approach to
estimating, becomes more difficult because decomposed
elements may still be
alarming. To paraphrase Murphy's Law: What can go wrong
will go wrong- and
if there are more things that can fail, more things will fail.
c) The degree of structural uncertainty has an effect on
estimation risk. In this
context, structure refers to the degree to which requirements
have been solidified,
the ease with which functions can be compartmentalized and
the hierarchical
nature of the information that must be processed.
Software Project Management (CS615)
225
© Copyright Virtual University of Pakistan
d) The availability of historical information has a strong
influence on estimation
risk. By looking back, we can emulate things that worked and
improve areas
where problems arose.
e) When comprehensive software metrics are available for past
projects, estimates
can be made with greater assurance, schedules can be
established to avoid past
difficulties, and overall risk is reduced.
f) Risk is measured by the degree of uncertainty in the
quantitative estimates
established for resources, cost, and schedule. If project scope is
poorly
understood or project requirements are subject to change,
uncertainty and risk
become dangerously high.
The software planner should demand completeness of function,
performance, and
interface definitions (contained in a System Specification). The
planner, and more
important, the customer should recognize that variability in
software requirements
means instability in cost and schedule.
(my prompt is that give me simple beginner level examples of all
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/11
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Factors Affecting Estimation Accuracy
Factors Affecting Estimation Accuracy
Factors Affecting Estimation Accuracy
Factors Affecting Estimation Accuracy
Factors Affecting Estimation Accuracy
When planning a software project, several factors can influence the accuracy of your
estimates. These factors need to be carefully considered to reduce uncertainty and risk.
a) Project Complexity
a) Project Complexity
a) Project Complexity
a) Project Complexity
a) Project Complexity
b) Project Size
b) Project Size
b) Project Size
b) Project Size
b) Project Size
c) Degree of Structural Uncertainty
c) Degree of Structural Uncertainty
c) Degree of Structural Uncertainty
c) Degree of Structural Uncertainty
c) Degree of Structural Uncertainty
d) Availability of Historical Information
d) Availability of Historical Information
d) Availability of Historical Information
d) Availability of Historical Information
d) Availability of Historical Information
e) Use of Software Metrics
e) Use of Software Metrics
e) Use of Software Metrics
e) Use of Software Metrics
e) Use of Software Metrics
Explanation: Project complexity refers to how challenging the project is based on the
experience of the team. Complexity can vary depending on familiarity with similar
projects. A team that has developed multiple similar applications will find the project
less complex, while a team working on it for the first time might find it very challenging.
Example: Suppose a team is building a sophisticated e-commerce platform for the first
time. They might find it complex due to new features like real-time inventory
management. However, a team that has already built several e-commerce platforms will
find the same project easier to handle. To measure complexity, you might use specific
metrics at the design or code level, but these are often difficult to apply early in the
project.
Explanation: The size of the project affects the accuracy of your estimates. As the size
increases, the number of interconnected elements within the software grows, making it
harder to manage and predict outcomes. Decomposing the project into smaller parts to
estimate effort becomes more difficult as each part might still be complex.
Example: If you're tasked with building a large enterprise resource planning (ERP)
system, the sheer size of the project makes it hard to predict how long it will take or
how much it will cost. The more modules or components there are, the more chances
there are for things to go wrong, leading to inaccurate estimates.
Explanation: Structural uncertainty refers to how well-defined the project’s
requirements and functions are. If the requirements are vague or subject to change, it’s
harder to make accurate estimates. Well-defined requirements reduce uncertainty,
making it easier to plan.
Example: If the client provides a detailed list of features and how they should work, it’s
easier to estimate the project. However, if the requirements are unclear or likely to
change frequently, the uncertainty increases, making it difficult to predict the effort
and cost.
Explanation: Having access to data from previous projects helps in making more
accurate estimates. Historical information allows you to learn from past successes and
failures, which can improve the accuracy of your current estimates.
Example: If your team has detailed records from previous projects that were similar in
scope and complexity, you can use this data to estimate the new project. This reduces
the chances of repeating mistakes and helps you set more realistic timelines and
budgets.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/11
From ChatGPT, designed with FancyGPT
f) Risk Due to Uncertainty in Estimates
f) Risk Due to Uncertainty in Estimates
f) Risk Due to Uncertainty in Estimates
f) Risk Due to Uncertainty in Estimates
f) Risk Due to Uncertainty in Estimates
Importance of Detailed Definitions
Importance of Detailed Definitions
Importance of Detailed Definitions
Importance of Detailed Definitions
Importance of Detailed Definitions
To minimize risk and uncertainty, it’s crucial to have detailed and complete definitions of the
software’s functions, performance, and interfaces. Both the project planner and the client
should understand that unclear or changing requirements will lead to instability in cost and
schedule.
Explanation: When you have comprehensive metrics from past projects, you can make
more confident estimates. Metrics help in predicting how long tasks will take, how
much they will cost, and what resources are needed. This reduces overall project risk.
Example: If you have data showing that a specific type of feature usually takes 50 hours
to develop based on previous projects, you can use this metric to estimate similar
features in the new project, leading to more accurate predictions.
Explanation: Risk in a project is linked to the uncertainty in your estimates. If you’re
unsure about the scope of the project or if requirements are likely to change, the risk
increases. High uncertainty can lead to significant variations in cost, effort, and
schedule.
Example: If the project scope isn’t clearly defined at the start, you might estimate that
the project will take 6 months and cost $200,000. However, if the client changes
requirements mid-project or adds new features, the project could end up taking 9
months and costing $300,000. This uncertainty creates a high level of risk.
Example: Before starting the project, ensure that the client provides a comprehensive
specification document that outlines all features, performance expectations, and
interface details. This will help in creating more accurate estimates and reduce the
chances of scope changes that can disrupt the project.
18/08/2024, 10:56 FancyGPT - cs615 lecture 29
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/11
cs615 lecture 30
cs615 lecture 30
cs615 lecture 30
cs615 lecture 30
cs615 lecture 30
LECTURE # 30
6. ESTIMATION
6.3 Decomposition Techniques
Software project estimation is a form of problem solving, and in
most cases, the
problem to be solved (i.e., developing a cost and effort estimate
for a software
project) is too complex to be considered in one piece. For this
reason, we
decompose the problem, re-characterizing it as a set of smaller
(and hopefully,
more manageable) problems.
Before an estimate can be made, the project planner must
understand the scope of
the software to be built and generate an estimate of its size.
6.3.1 Software Sizing
The accuracy of a software project estimate is predicated on a
number of things:
(1) The degree to which the planner has properly estimated the
size of the product
to be built
(2) The ability to translate the size estimate into human effort,
calendar time, and
dollars (a function of the availability of reliable software
metrics from past
projects)
(3) The degree to which the project plan reflects the abilities of
the software team
(4) The stability of product requirements and the environment
that supports the
software engineering effort.
As project estimate is only as good as the estimate of the size of
the work to be
accomplished, sizing represents the project planner's first
major challenge.
In the context of project planning, size refers to a quantifiable
outcome of the
software project. If a direct approach is taken, size can be
measured in LOC. If an
indirect approach is chosen, size is represented as FP.
There are four different approaches to the sizing problem:
1. Fuzzy logic” sizing: This approach uses the approximate
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/15
reasoning
techniques that are the cornerstone of fuzzy logic. To apply this
approach, the
planner must identify the type of application, establish its
magnitude on a
qualitative scale, and then refine the magnitude within the
original range.
Although personal experience can be used, the planner should
also have
Software Project Management (CS615)
227
© Copyright Virtual University of Pakistan
access to a historical database of projects8 so that estimates
can be com- pared
to actual experience.
2. Function point sizing: The planner develops estimates of the
information
domain. Its characteristics will be discussed later in the session.
3. Standard component sizing: Software is composed of a
number of different
standard components that are generic to a particular
application area. For
example, the standard components for an information system
are subsystems,
modules, screens, reports, interactive programs, batch
programs, files, LOC,
and object-level instructions. The project planner estimates the
number of
occurrences of each standard component and then uses
historical project data
to determine the delivered size per standard component. To
illustrate, consider
an information systems application. The planner estimates that
18 reports will
be generated. Historical data indicates that 967 lines of COBOL
[PUT92) are
required per report. This enables the planner to estimate that
17,000 LOC will
be required for the reports component. Similar estimates and
computation are
made for other standard components, and a combined size
value (adjusted
statistically) results.
4. Change sizing: This approach is used when a project
encompasses the use of
existing software that must be modified in some way as part of
a project. The
planner estimates the number and type (e.g., reuse, adding
code, changing
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/15
code, and deleting code) of modifications that must be
accomplished. Using
an effort ratio [PUT92) for each type of change, the size of the
change may
be estimated.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
6. Estimation
6.3 Decomposition Techniques
Welcome to Lecture #30. Today, we will discuss software project estimation and focus
specifically on decomposition techniques. As a reminder, software project estimation
involves predicting the resources required—such as time, effort, and cost—to complete a
software project. However, due to the complexity of these projects, it is often necessary to
break the problem into smaller, more manageable pieces. This process is known as
decomposition.
6.3.1 Software Sizing
6.3.1 Software Sizing
6.3.1 Software Sizing
6.3.1 Software Sizing
6.3.1 Software Sizing
One of the key aspects of project estimation is software sizing. The size of the software
project is a critical factor that influences the accuracy of the estimates. Let's explore the key
points involved in software sizing:
Fuzzy Logic Sizing:
1
Explanation: This approach uses reasoning techniques based on approximate
values. The planner identifies the type of software application and assigns it a
rough size using a qualitative scale (like small, medium, or large). This rough size
estimate can be further refined based on more detailed information.
2
Example: Suppose you're planning a small web application for managing contacts.
Based on past experiences and a database of similar projects, you start by
estimating the size as small. After considering the specifics, you refine this
estimate to small-medium.
3
Function Point Sizing:
4
Explanation: Function points are a way to measure the amount of functionality in
a software application. The planner estimates different aspects of the software,
such as the number of inputs, outputs, user interactions, and files, to calculate the
function points.
5
Example: Imagine you’re working on a payroll system. You identify that the
system will have 20 inputs (like employee data entry forms), 10 outputs (like
salary reports), and 5 files (like employee records). These characteristics help you
estimate the size of the project in function points.
6
Standard Component Sizing:
7
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/15
6.4 Estimation – Tools
i. Work Breakdown Structure (WBS)
a) Dividing into Logical Units/Tasks
To correctly estimate the effort, size, or cost of completing a
project, it is
important to be aware of the multiple tasks that comprise a
project. You can
divide a project into logical units or tasks by using the WBS
technique.
Creating a WBS is a prerequisite for any estimation activity. It
enables you to
conceptualize an abstract entity, such as a project, into distinct,
independent units.
After dividing a project into tasks, you can categorize them as
logical, broad
tasks. For example, tasks, such as drawing up a marketing
strategy, planning a
phase-wise product release, and interacting with media
agencies and the
production department can be compiled under a common
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
Software sizing is a crucial first step in project estimation. It involves breaking down the
project into smaller parts, estimating the size of each part, and then using these estimates to
predict the resources required. The methods we discussed—Fuzzy Logic Sizing, Function
Point Sizing, Standard Component Sizing, and Change Sizing—each offer different ways to
approach this challenge, depending on the nature of the project.
In the next session, we will delve deeper into Function Point Sizing and its application in real-
world software projects.
Thank you for attending, and I look forward to seeing you in the next lecture!
Explanation: In this method, the software is broken down into standard
components specific to the application area. The planner estimates the number of
each type of component and uses historical data to determine the size of the
software.
8
Example: For an e-commerce application, you estimate that there will be 10
modules, 5 screens, and 3 reports. By using data from past projects, you
determine that a similar module has an average size of 500 lines of code. You then
estimate that 5,000 lines of code will be needed for the modules.
9
Change Sizing:
10
Explanation: This method is used when you are modifying existing software. The
planner estimates the amount of work needed based on the number of changes
required, such as adding new features, deleting outdated features, or updating
existing ones.
11
Example: You’re updating a customer relationship management (CRM) system.
You estimate that you need to add 5 new features, modify 10 existing features,
and remove 3 outdated ones. By using historical data, you estimate the effort
required for each type of change and calculate the overall project size.
12
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/15
category, Marketing.
b) Benefits of Using a WBS
Software Project Management (CS615)
228
© Copyright Virtual University of Pakistan
Using a WBS provides a number of benefits to the management
and to the
development teams.
First, it gives the management an idea about the size and
complexity of the
project.
Second, it helps in planning, scheduling, and monitoring a
project realistically.
This is possible because all the tasks in the project can be
preformed measurable
targets for each task.
To aid planning, scheduling, and monitoring a project, you can
use tools such as:
– Program Evaluation and Review Techniques (PERT)
– Critical Path Method (CPM)
– Timeline charts
– Gantt charts
These tools use WBS as the fundamental basis for assessing
resources to tasks,
computing the number of days needed, and the cost required to
complete the
tasks.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
6. Estimation
6.4 Estimation – Tools
Welcome to the continuation of Lecture #30. In this part of the lecture, we will explore the
tools that are crucial for accurate software project estimation, specifically focusing on the
Work Breakdown Structure (WBS).
6.4.1 Work Breakdown Structure (WBS)
6.4.1 Work Breakdown Structure (WBS)
6.4.1 Work Breakdown Structure (WBS)
6.4.1 Work Breakdown Structure (WBS)
6.4.1 Work Breakdown Structure (WBS)
i. Dividing into Logical Units/Tasks
When planning a software project, one of the first steps is to divide the entire project into
smaller, more manageable tasks. This is done using a technique called the Work Breakdown
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/15
Structure (WBS).
a) Dividing into Logical Units/Tasks:
After identifying these tasks, you categorize them into broad areas like Development, Testing,
Deployment, and Marketing. This helps in managing and organizing the project more
effectively.
b) Benefits of Using a WBS:
c) Tools for Planning, Scheduling, and Monitoring:
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
The Work Breakdown Structure (WBS) is an essential tool in software project estimation. It
allows you to break down a complex project into smaller, manageable tasks, making it easier
to plan, schedule, and monitor. By using WBS, project managers can better understand the
Explanation: WBS is a method where a complex project is broken down into smaller,
logical units or tasks. This helps in understanding all the different parts that make up
the project.
Example: Suppose you are managing a software development project for an online
bookstore. To create a WBS, you would break down the project into logical tasks like:
Development: Creating the website, developing the backend system, integrating
payment gateways.
Testing: Unit testing, integration testing, user acceptance testing.
Deployment: Setting up the server, deploying the application, configuring the
database.
Marketing: Creating a marketing strategy, planning product launches,
coordinating with media.
Explanation: Implementing a WBS provides several benefits to both the management
and the development teams.
Example: In the online bookstore project, using WBS helps the project manager see
that the Development phase has three major tasks. Each task can then be scheduled,
assigned resources, and monitored separately. If the website creation is behind
schedule, the manager can quickly identify and address the issue without affecting
other tasks.
Understanding Size and Complexity: WBS gives management a clearer
understanding of how big and complex the project is by breaking it down into
smaller parts.
1
Planning, Scheduling, and Monitoring: By dividing the project into measurable
tasks, WBS helps in realistic planning and scheduling. It also allows for better
monitoring of progress since each task can be tracked individually.
2
To aid in planning, scheduling, and monitoring, there are several tools available that rely
on WBS:
Example: In the online bookstore project, you could use a Gantt chart to visualize when
the website development should start, how long it will take, and how it overlaps with
other tasks like testing and deployment.
Program Evaluation and Review Techniques (PERT): This tool helps in estimating
the time needed to complete each task.
Critical Path Method (CPM): CPM identifies the sequence of tasks that
determines the minimum project duration.
Timeline Charts: These charts provide a visual timeline of when each task should
be started and completed.
Gantt Charts: A Gantt chart is a type of bar chart that represents a project
schedule. It shows the start and end dates of each task in a visual format.
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/15
ii. Measuring Effort for a Project
Measuring the effort for a project is a specialized activity. It
enables you to derive
cost estimates that are critical for project management. An
incorrect measurement
of effort at the beginning of project can result in inaccurate
project plans and
frequent slippages. It can also lead to inaccurate cost estimates,
which can cause
steep cost deviations between estimated and actual cost
values.
There are many techniques that you can use to accurately
estimate effort, such as:
a) Source lines of Code (SLOC)
b) Function Point (FP)
c) Constructive Cost Model (COCOMO)
These are quantitative estimation techniques because they rely
on the use of
formulae to calculate effort.
In addition to quantitative estimation techniques, there is a
human-based
technique known as:
d) Delphi technique
This technique is based on soft skills and relies more on human
factors, such as
collecting information during group discussions.
Software Project Management (CS615)
229
© Copyright Virtual University of Pakistan
a) SLOC- Technique
At the beginning of a software project, it is important to
determine the size of the
project. The project size helps determine the resources, effort,
and duration of the
project.
There are many techniques to calculate the size of a software
project. You can
calculate the size by using a directly measurable technique, the
project's size and complexity, leading to more accurate estimates and efficient management.
The tools we discussed—PERT, CPM, Timeline Charts, and Gantt Charts—are all effective
methods to support these activities.
In the next session, we will go deeper into how these tools can be applied to real-world
software projects and explore their use in detail.
Thank you for attending, and I look forward to our next lecture!
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/15
SLOC technique.
It is defined as the source lines of code that are delivered as
part of the product.
The effort spent on creating the source lines of code is
expressed in relation to
thousand lines of code (KLOC).
The SLOC technique is an objective method of estimating the
size because there
are no multiple ways of calculating the lines of code. Therefore,
the effort
estimate is close to being accurate.
This technique includes the calculation of lines of code,
documentation of pages,
inputs, outputs, and components of a software program.
Components are again of
multiple types, such as reports, screens, and files.
The SLOC technique is also used to directly calculate the effort
to be spent on a
project.
Following figure is a simple example of counting source lines of
code. The code
displayed here contains four lines of code.
If (emp_code=1200)
Print (“Welcome to the Inventory database.”);
Else
Print (“Access denied to the Inventory databases.”);
– Counting SLOC
You can use the SLOC tech
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
– Counting SLOC
You can use the SLOC technique to estimate the effort required
for a project
when the programming language and the technology to be used
are predefined. In
addition to the programming language and technology, the
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/15
complexity and effort
required to write a program should be easily predictable.
The use of the SLOC technique requires that the technology or
language remain
unchanged throughout the project. Generally, you can use the
SLOC technique
when you are using third-generation languages, such as
FORTRAN or COBOL.
While counting the source lines of code, there are some general
considerations
that you need to keep in mind. However, these can vary in every
organization.
Software Project Management (CS615)
230
© Copyright Virtual University of Pakistan
The general considerations include the following:
• Only the delivered lines of code are included in SLOC
calculation. For
example, test drivers and other support software are not part
of the number of
lines developed for a project.
• Only the source lines of code written only by the
development team as
counted. This excludes the code created by applications
generators.
• Only declaration statements are counted as source lines of
code. This
excludes comments inserted to improve the readability of
programs.
– Disadvantages of Using SLOC
Despite being accurate in providing figures to calculate the
effort required for a
project, the SLOC technique has a drawback.
The SLOC technique is language-dependent. The effort
required to calculate
source lines of code may not be the same for all languages.
For example, to conceive and write 8 lines of code that
accomplish a task in the
assembly language may require 15 minutes. However, you may
need only five
minutes to complete the same lines of code if it is written in
Visual Basic.
b) FP Technique
The FP technique is a direct indicator of the functionality of a
software
application from the user's perspective. This is the most
popular technique used to
estimate the size of a software project.
This fact is further supported by a quote of Capers Jones,
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/15
chairman of Software
Productivity Research, Inc. in Burlington, Massachusetts, on
page 1 of Computer
Finance brought out in November 1997. He quotes 80% of the
Fortune 500, are
using function points, at least somewhere in their application
development
organizations.
You use the FP technique to estimate the total size of a project.
The total size of a
project is estimated as a single FP value. After calculating the
total size of a
project in FP, you divide the total FP into the different phases of
the SDLC. This
way, you can determine how much effort per FP is required in
that particular
phase.
For example, the testing phase is planned for 20 FP of work.
The project
managers, based on their past project experience, determine
the amount of effort
in man/person months required in the testing phase.
Software Project Management (CS615)
231
© Copyright Virtual University of Pakistan
Function Points
Unadjusted Data Function
Points
Unadjusted Transaction
Function Points
Internal Files External Interfaces User Inputs
User Outputs
User Inquiries
Similarly, you can express the cost required to complete FP of
work for a
particular phase. At the end of a project, you can also express
the number of
defects reported in terms of per FP for a phase.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/15
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
Lecture #30: Software Project Estimation
6. Estimation
6.4 Estimation – Tools
Welcome back to Lecture #30. We will now dive deeper into the Source Lines of Code (SLOC)
technique and introduce the Function Point (FP) technique as methods for measuring effort
in software projects.
6.4.3 Counting SLOC
6.4.3 Counting SLOC
6.4.3 Counting SLOC
6.4.3 Counting SLOC
6.4.3 Counting SLOC
a) SLOC Technique
The Source Lines of Code (SLOC) technique is a method used to estimate the effort required
for a software project by counting the lines of code that will be written.
Key Considerations for Counting SLOC:
Key Considerations for Counting SLOC:
Key Considerations for Counting SLOC:
Key Considerations for Counting SLOC:
Key Considerations for Counting SLOC:
Disadvantages of SLOC:
Disadvantages of SLOC:
Disadvantages of SLOC:
Disadvantages of SLOC:
Disadvantages of SLOC:
6.4.4 Function Point (FP) Technique
6.4.4 Function Point (FP) Technique
6.4.4 Function Point (FP) Technique
6.4.4 Function Point (FP) Technique
6.4.4 Function Point (FP) Technique
The Function Point (FP) technique is another method for estimating the size and effort of a
software project. Unlike SLOC, which measures lines of code, FP focuses on the functionality
delivered to the user.
b) FP Technique
Using FP to Estimate Project Size:
Using FP to Estimate Project Size:
Using FP to Estimate Project Size:
Using FP to Estimate Project Size:
Using FP to Estimate Project Size:
Applying FP in Different Phases:
Applying FP in Different Phases:
Applying FP in Different Phases:
Applying FP in Different Phases:
Applying FP in Different Phases:
Delivered Lines of Code: Only the code that will be delivered as part of the final product
is counted. This means that any code used solely for testing or support, such as test
drivers, is not included.
1
Example: If your project includes writing 1,000 lines of code for the main
application and 200 lines for testing, only the 1,000 lines for the main application
would be counted in the SLOC estimate.
2
Code Written by the Development Team: Only the code directly written by your
development team is included. Code that is automatically generated by tools or
applications is not counted.
3
Example: If you use a code generator that produces 500 lines of code, and your
team writes 800 lines, only the 800 lines manually written by your team will be
considered.
4
Declaration Statements Only: Comments and non-executable parts of the code are not
counted. Only the actual instructions that perform operations are included.
5
Example: If a section of your code contains 50 lines, with 10 lines being
comments, only 40 lines would be counted in the SLOC calculation.
6
Language Dependency: The amount of effort required to write a certain number of
lines can vary significantly depending on the programming language.
Example: Writing 8 lines of code in assembly language might take 15 minutes due
to its complexity, whereas writing the same functionality in Visual Basic might
only take 5 minutes.
Explanation: The FP technique assesses the complexity and functionality of a software
project by evaluating its various components, such as inputs, outputs, and interfaces.
The total size of the project is expressed as a single FP value.
Example: Consider an inventory management system that involves several inputs
(forms for entering product data), outputs (inventory reports), and interfaces
(connections to external databases). The FP technique would assign values to
each of these components to calculate the overall project size.
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/15
– Features of Function Points
The total size of a software project is expressed in total
function points. It is
independent of the computer language, development
methodology, technology, or
capability of the project team developing the software project.
The specific user functionality of the application is evaluated in
terms of relation
to what is delivered by the application and, not how it is
delivered. Only userrequested and user-defined components
are counted. To calculate FP for a project,
some major components are required.
The major components and their relationships are represented
in following figure.
Figure: Function Points Components and their Relationship
You can calculate the function point estimates for a project or a
particular phase
by following four steps:
1. Identify the unadjusted function points.
2. Calculate total GSC s.
3. Calculate Value Adjustment Factor (VAF)
4. Apply a formula to calculate Adjusted FP (AFP)
Expressing Effort and Cost in FP:
Expressing Effort and Cost in FP:
Expressing Effort and Cost in FP:
Expressing Effort and Cost in FP:
Expressing Effort and Cost in FP:
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
Both SLOC and FP are valuable techniques for measuring effort in software projects, but they
approach the problem from different angles. SLOC is more focused on the quantity of code,
making it suitable for projects where the technology is consistent and predictable. On the
other hand, FP emphasizes the functionality provided to the user, making it more adaptable
to different types of projects and languages.
In the next session, we will explore other effort estimation techniques and discuss how to
choose the right method based on the specific needs of your project.
Thank you for your attention, and see you in the next lecture!
Explanation: Once the total FP value is determined, it can be broken down into
different phases of the Software Development Life Cycle (SDLC) to estimate the effort
required for each phase.
Example: If the testing phase is estimated to involve 20 FP of work, project
managers can use historical data to determine that, based on past projects, the
testing phase typically requires 2 person-months of effort per FP. Therefore, the
total effort for testing would be estimated at 40 person-months.
Explanation: FP values can also be used to estimate the cost required for each phase of
the project. Additionally, at the end of the project, the number of defects can be
reported in terms of FP to assess quality.
Example: If the testing phase of your project has a cost of $1,000 per FP, and it
requires 20 FP of work, the estimated cost for the testing phase would be
$20,000. After completion, if 10 defects are reported in the 20 FP of work, this
would be expressed as 0.5 defects per FP.
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/15
Software Project Management (CS615)
232
© Copyright Virtual University of Pakistan
– Advantages of Using Function Points
Function points are language-and technology-independent.
Therefore, you can use
them to estimate any kind of project. They can also be used to
estimate the effort,
cost, and schedules of projects that use the Prototyping and
Spiral models because
such projects have uncertain user and project requirements.
In addition, you can use function points as a project estimation
technique when
you anticipate changes in the middle of a project. These
changes may disturb the
estimates if, you had used SLOC to estimate the effort, cost, or
size of a project.
The FP estimation uses a subjective and holistic approach for
project estimation.
Consequently, the estimates calculated by using the FP are
unlikely to be
incorrect.
– Disadvantages of Using Function Points
Estimation by using FP generally uses data from past projects
for assigning
weights to GSC s and the information domain values. To be able
to do this
realistically, it is important for the organization to have
developed similar projects
in the past.
The organization should also be prepared with adequate data
and tools for FP
estimation of the new project.
In addition, FP provides a vague estimation. This characteristic
of FP does not
usually provide precise or approximate estimates of the effort,
cost and size of a
project.
Consequently, at the end of a project, deviations from the
estimated to the actual,
values of each of the factors maybe quite extreme.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/15
Let's continue with our lecture by discussing Function Points (FP) in more detail, using the
diagram you provided as a reference.
Function Points (FP) Overview
Function Points (FP) Overview
Function Points (FP) Overview
Function Points (FP) Overview
Function Points (FP) Overview
Function Points are a way to measure the functionality provided by a software system from
the user’s perspective. They help us understand the size of the software project in terms of
the functionality it will deliver, rather than the lines of code it will require.
Major Components of Function Points
Major Components of Function Points
Major Components of Function Points
Major Components of Function Points
Major Components of Function Points
In the diagram you provided, we see the components involved in calculating Function Points.
These are divided into two main categories:
Steps to Calculate Function Points
Steps to Calculate Function Points
Steps to Calculate Function Points
Steps to Calculate Function Points
Steps to Calculate Function Points
Advantages of Using Function Points
Advantages of Using Function Points
Advantages of Using Function Points
Advantages of Using Function Points
Advantages of Using Function Points
Unadjusted Data Function Points
1
Internal Files: These represent the data maintained within the system, such as
databases or data structures that the system uses.
2
External Interfaces: These are the interactions between the system and external
entities like other systems or data files that the system accesses but does not
maintain.
3
Unadjusted Transaction Function Points
4
User Inputs: These are the various forms of data or commands that the user
provides to the system.
5
User Outputs: These represent the reports or data that the system produces for
the user.
6
User Inquiries: These are the interactive inputs and outputs that involve a
dialogue between the user and the system, such as searching for data in the
system.
7
Identify the Unadjusted Function Points: Start by identifying all the components
mentioned in the diagram—Internal Files, External Interfaces, User Inputs, User
Outputs, and User Inquiries. Count how many of each exist in the system.
1
Calculate Total GSCs (General System Characteristics): These are factors that adjust
the function points based on the complexity of the system, such as performance
requirements, transaction rates, and data communications.
2
Calculate the Value Adjustment Factor (VAF): This is a multiplier derived from the
GSCs that adjusts the unadjusted function points to better reflect the complexity and
specific requirements of the project.
3
Apply a Formula to Calculate Adjusted FP (AFP): The adjusted FP is calculated using
the formula:
Adjusted FP (AFP) = Unadjusted FP × (0.65 + 0.01 × Total GSC)
Adjusted FP (AFP) = Unadjusted FP × (0.65 + 0.01 × Total GSC)
4
Language and Technology Independence: Function Points do not depend on the
programming language or technology used, making them versatile for different types of
projects.
Flexibility with Project Changes: FP can accommodate changes in project
requirements, which makes them particularly useful for projects following iterative
models like Spiral or Prototyping.
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/15
From ChatGPT, designed with FancyGPT
Disadvantages of Using Function Points
Disadvantages of Using Function Points
Disadvantages of Using Function Points
Disadvantages of Using Function Points
Disadvantages of Using Function Points
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
Function Points provide a structured way to measure software size and effort, focusing on
the user-facing functionality rather than just the lines of code. While they offer flexibility and
are independent of technology, they require solid historical data to be effective and might not
always yield precise estimates. In the next session, we will compare FP with other estimation
techniques to help you understand when and how to use them effectively.
Feel free to ask any questions or if you need further clarification on any of these concepts.
Holistic Estimation: Since FP looks at the functionality delivered, the estimation tends
to be more comprehensive and less prone to major errors compared to code-based
metrics like SLOC.
Dependence on Past Data: To estimate Function Points accurately, organizations need
historical data from similar projects. Without this, the estimation can be less reliable.
Vague Estimations: FP provides a general estimate that may not be as precise as other
methods. This can lead to deviations between estimated and actual effort, cost, or
project size.
20/08/2024, 10:42 FancyGPT - cs615 lecture 30
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/15
cs615 lecture 31
cs615 lecture 31
cs615 lecture 31
cs615 lecture 31
cs615 lecture 31
LECTURE # 31
6. ESTIMATION
6.5 Estimation – Tools
iii. Measuring effort for a project
c) Constructive Cost Model (COCOMO)
The COCOMO technique is another popular
estimation technique. Dr: Barry
Boehm propounded this technique in 1981.
COCOMO uses cost driver attributes
to calculate the effort and duration of a project. The
COCOMO technique has
three levels of implementation. With each level, the
complexity of the model
increases. The levels of the COCOMO technique are:
i. Basic
ii. Intermediate
iii. Advanced
i. Basic COCOMO
The basic COCOMO technique estimates the effort
and cost of a software project
by using only the lines of code. You, use basic
COCOMO when you need a rough
estimate of effort, such as during maintenance
projects. This is because in such
projects, a majority of the work is already completed.
Estimating the effort in the
basic COCOMO technique involves three steps.
1. Estimating the total delivered lines of code
2. Determining the effort constants based on the type
of the project
3. Substituting values for lines of code and effort
constant in a formula
You have already seen how the total delivered lines of
code are estimated. The
next step in the COCOMO model is to determine the
type of the project being
developed. The basic COCOMO technique considers
three types of projects to
calculate effort.
– Organic
– Embedded
– Semidetached
Organic projects have sufficient and defined
objectives. The organizations that
undertake organic projects have ample experience in
development and use small
development teams. These are simple business and
financial applications; such as
a banking system and inventory system.
Software Project Management (CS615)
234
© Copyright Virtual University of Pakistan
Embedded projects have stringent and specialized
hardware, software, and human
resources requirements. Organizations usually have
less experience in developing
such projects. Examples of such projects include real-
time operating systems
(RTOS), industrial automation systems, and
sophisticated space and aviation
systems.
Semidetached projects are a combination of the
preceding two types of software
projects. A new operating system and a database
management system (DBMS)
are examples of such projects.
The last step in calculating effort by using the
COCOMO technique is to
substitute the values of lines of code and effort
constants in the following
formula:
Ej = a1 * (KLOC)a2
In the formula, Ei is the effort for a project. The effort
constants, al and a2
depend on the type of project being developed.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
ii. Intermediate COCOMO
Calculation of effort by using the intermediate
COCOMO technique involves an
additional step of calculating the effort adjustment
factor (EAF). The effort
adjustment factor is calculated by assigning ratings to
15 cost driver attributes.
These cost driver attributes relate to the various
aspects of a software project, such
as project, product, personnel, and computer
attributes. Using the intermediate
COCOMO technique, you can accurately estimate
effort and cost required for a
project. Accurate estimates are very helpful to start
new development projects.
Calculating the effort by using the intermediate
COCOMO technique is a threestep process:
1. Estimate the initial development effort by using
SLOC. To do this, you use
the following formula:
Ei = a1 * (KLOC)a2
In the formula the initial development effort, KLOC
refers to 1,000 lines of code.
The constant values a1 and a2 differ with every
project.
2. The second step is to determine the relevant cost
driver attributes that affect
your project intensively. This provides you with the
value for EAF.
Software Project Management (CS615)
235
© Copyright Virtual University of Pakistan
Table 1 summarizes 15 commonly used projects,
personnel, and product-related
cost driver attributes. The values for each cost driver
under each rating are filled
in by an organization based on past experience.
Table 1: Cost Driver Attributes
Rating
Cost Drivers Negligible Low Average High Very
high
Extremely
critical
Analyst Capability (ACAP)
Programmer Capability (PCAP)
Programming Language
Experience (LEXP)
Virtual Machine
Experience(VEXP)
Required Software Reliability
(RELY)
Database Size (DATA)
Software Product Complexity
(CPLX)
Execution Time Constraint
(TIME)
Main Storage Constraint
(STOR)
Computer Turnaround Time
(TURN)
Virtual Machine Volatility
(VIRT)
Use of Software Tools (TOOL)
Modern Programming Practices
(MODP)
Required Development
Schedule (SCED)
3. Finally, you calculate the actual effort by multiplying
the weighted cost driver
attributes with the initial effort estimate. Typically, the
val1,les that rate each
cost driver attribute range from 0.9 through 1.4. For
example, if software
reliability (RELY) is of prime importance according to
the requirements
specifications, it is provided a rating of high or a value
of 1.4. Similarly, if the
time to execute a software program is of negligible
importance, you assign a
rating of low or a value of 0.9. For software attributes
that are of mediocre
importance, you can assign a value between 0.9 and
1.4.
Software Project Management (CS615)
236
© Copyright Virtual University of Pakistan
Usually, in organizations, the average rating is
assigned a static value of 1.0. To
calculate the estimated effort using the intermediate
COCOMO technique, you
use the formula:
E = EAF * Ei
Consider an example for using the intermediate
COCOMO technique to calculate
the estimated total effort of a project life cycle. In a
customized insurance project,
there are four modules. The total effort estimate of
the modules is 3.0 KLOC. The
management has identified four cost driver attributes
with the respective
multiplying factors that might affect the project most.
In this situation, the values
of al and a2 are 3.2 and 1.05, respectively, because the
insurance project is an
organic project. Therefore, you apply the following
formula to calculate the initial
effort estimate.
Ei = a1 (KLOC)a2
Ei =3.2 * 31.05
Ei = 3.2 * 3.16
Ei = 10.11
The values assigned to the cost driver attributes that
are applicable to a particular
software application are displayed in Table 2.
According to the table, the time to
execute a software program is of high importance.
Therefore, the attribute TIME
is assigned a value of 1.35. In contrast, the software
application does not require a
very high analyst involvement. Therefore, the value
assigned to ACAP is very
low or 0.95. Using the same logic, the values for other
cost driver attributes are
assigned.
Table 2: Applicable Cost Driver Attributes
Applicable cost driver attributes Rating Multiplying
factors
CPLX High 1.2
TIME Very high 1.35
ACAP Low .95
MODP Average 1.00
Referring to Table 7.9, EAP can be calculated as,
EAF = 1.2 * 1.35 * 0.95 * 1.0 EAF = 1.53
After obtaining the values for the variables Ei and EAF,
you can substitute these
values in the formula to calculate the total effort.
E = EAF * Ei
E = 1.53 * 10.11
Software Project Management (CS615)
237
© Copyright Virtual University of Pakistan
E = 15.5 person months
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
Estimation – Tools: Intermediate COCOMO
Estimation – Tools: Intermediate COCOMO
Estimation – Tools: Intermediate COCOMO
Estimation – Tools: Intermediate COCOMO
Estimation – Tools: Intermediate COCOMO
Intermediate COCOMO
Intermediate COCOMO
Intermediate COCOMO
Intermediate COCOMO
Intermediate COCOMO
The Intermediate COCOMO model provides a more accurate estimation by
incorporating an additional step to account for various factors that can influence
the project. This involves calculating the Effort Adjustment Factor (EAF), which is
derived by evaluating 15 cost driver attributes related to the project, product,
personnel, and computing environment.
Example:
Let's walk through the process of using the Intermediate COCOMO technique for
estimating the effort required for a software project, specifically a customized
insurance system with four modules.
Step 1: Estimating Initial Development Effort
Step 1: Estimating Initial Development Effort
Step 1: Estimating Initial Development Effort
Step 1: Estimating Initial Development Effort
Step 1: Estimating Initial Development Effort
The first step is to estimate the initial effort based on the lines of code. Suppose
the total size of the project is estimated to be 3,000 lines of code (3 KLOC). The
project is classified as an organic project, which is a straightforward project with
well-understood requirements.
For organic projects, typical effort constants are:
Using the formula:
𝐸𝑖 = 𝑎1 × (KLOC)
𝑎2
Ei​= a1​× (KLOC)a2​
Substitute the values:
𝐸𝑖 = 3.2 × (3)1.05
= 3.2 × 3.16 = 10.11 person-months
Ei​= 3.2 × (3)1.05 = 3.2 × 3.16 = 10.11 person-months
So, the initial estimated effort is 10.11 person-months.
Step 2: Determining the Effort Adjustment Factor (EAF)
Step 2: Determining the Effort Adjustment Factor (EAF)
Step 2: Determining the Effort Adjustment Factor (EAF)
Step 2: Determining the Effort Adjustment Factor (EAF)
Step 2: Determining the Effort Adjustment Factor (EAF)
Next, you need to adjust this estimate by calculating the Effort Adjustment Factor
(EAF). This factor is determined by evaluating the 15 cost driver attributes, which
affect the effort required. Each attribute is rated based on its impact on the
project, with ratings typically ranging from 0.9 to 1.4.
For this insurance project, let’s focus on four key cost driver attributes:
The EAF is calculated by multiplying these factors:
𝐸𝐴𝐹 = 1.2 × 1.35 × 0.95 × 1.0 = 1.53
EAF = 1.2 × 1.35 × 0.95 × 1.0 = 1.53
So, the Effort Adjustment Factor is 1.53.
Step 3: Calculating the Total Effort
Step 3: Calculating the Total Effort
Step 3: Calculating the Total Effort
Step 3: Calculating the Total Effort
Step 3: Calculating the Total Effort
Finally, you calculate the total effort by multiplying the initial effort estimate by
the EAF:
𝐸 = 𝐸𝐴𝐹 × 𝐸𝑖
E = EAF × Ei​
Substitute the values:
𝐸 = 1.53 × 10.11 = 15.5 person-months
𝑎1 = 3.2a1​= 3.2
𝑎2 = 1.05a2​= 1.05
CPLX (Software Product Complexity) is rated High with a multiplying factor
of 1.2.
TIME (Execution Time Constraint) is rated Very High with a multiplying
factor of 1.35.
ACAP (Analyst Capability) is rated Low with a multiplying factor of 0.95.
MODP (Modern Programming Practices) is rated Average with a
multiplying factor of 1.0.
iii. Advanced COCOMO
The advanced COCOll10 technique uses the steps of
the intermediate COCOMO
technique. In addition, it uses costs driver attributes
assigned to each phase of the
SDLC such as analysis and design.
• Applicability of COCOMO
COCOMO is flexible and capable of using SLOC, FP,
and even object points.
Object points are measurable code sections in an
object-oriented programming
language, such as C++, Ada, and Java.
You can use COCOMO when the size of a project is
extensive and the
requirements of the project are vague. In contrast,
SLOC and FP can be used for
projects where either the requirements are more or
less known or developers
possess the relevant experience in developing
projects.
COCOMO is suitable for complex and sophisticated
projects that are expected to
operate within intensive hardware, software, and
E = 1.53 × 10.11 = 15.5 person-months
Thus, the estimated effort required for the insurance project is 15.5 person-
months.
This example shows how the Intermediate COCOMO technique refines the
estimation process by considering multiple factors that can influence a project. By
adjusting the initial effort with the EAF, the estimate becomes more accurate,
which is crucial for planning and managing new development projects.
personnel constraints.
Generally, you can use COCOMO when the software
development environment
is new to an organization. In addition, you can use
COCOMO when you do not
have baseline data about past projects. However, you
need complete data about
your current project to assign weight age to each cost
driver attribute. You can use
FP or SLOC techniques when you have enough past
project data to assign
accurate weight age to the 14 GSC s and the various
information domain value
elements.
d) Delphi Technique
The Delphi technique is a Human-based estimation
technique. Human-based
estimation techniques use human experience and
analytical skills to estimate the
size, productivity, and effort required for a project.
This is a trusted technique and
is widely used in many established organizations to
facilitate practical and
reasonable estimation.
The rationale of using the Delphi technique is that
when many experts
independently arrive at the same estimate on the basis
of similar assumptions, the
estimate is likely to be correct.
The Delphi technique has eight basic steps:
1. Identify the terms that need to perform the
estimation activity. In an estimation
activity meeting, three distinct groups of people need
to be present.
Software Project Management (CS615)
238
© Copyright Virtual University of Pakistan
• Estimation experts: They usually consist of groups of
five or six experienced
project managers. The estimation values provided by
the project managers are
based on past project history and their knowledge.
However, only those
project managers should b~ invited for estimation
whose experience of a past
project matches that of the current project.
Otherwise, estimation values may
turn out to be far from realistic.
• Estimation coordinator: An estimation coordinator
is very similar to a
moderator in a usual meeting. The coordinator
facilitates the meeting and
ensures that the goals of the meeting are fully
achieved.
• Author: An author is similar to a recorder of minutes
in a meeting.
2. The author presents the project details including
clients’ needs and system
requirements to the group of experts. The author also
describes the expectations
from the group. The author and experts jointly identify
the tasks that need to be
estimated. They also identify the valid assumptions
that they need to consider
while estimating. For example, while estimating the
effort needed to create a
high-level design, they can assume that the SRS
document is approved by the
client.
3. The author and experts arrive at a consensus that
any estimation with a specific
variance value will not be accepted. For example, they
may decide that any
variance above 25 percent will not be accepted as an
estimation value for
computing the project effort or the productivity
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
4. The coordinator prepares a list of tasks jointly
decided by the team and
distributes the list to all experts. These tasks comprise
a project plan.
5. The experts independently make their estimates for
each task. After recording
their estimates, they hand over their estimates to the
coordinator. This is a critical
step. While making estimates, no discussions or
consultations are permitted
because a mutual discussion may influence the
estimation logic of the fellow
experts. The coordinator and the author jointly ensure
this.
6. The coordinator prepares a summary of estimates
for each task in a table as
represented in Table 7.10. After calculating the
percentage of variance, the
coordinator marks each task as accepted or not
accepted based on the agreed
accepted value.
7. The coordinator hands over the summary to the
group of experts and the author.
The group of experts and the author discuss tasks and
assumptions where the
percentage of variance is more than the acceptable
level. The maximum and
minimum estimates of tasks are not disclosed or
discussed. For example, in Table
7.10, the group and the coordinator do not accept the
high-level design task
because it exceeds the agreed variance value of 25%.
Therefore, the team would
discuss this task to estimate its maximum and
minimum effort afresh. To resolve
Software Project Management (CS615)
Figure 1: Steps of the Delphi Technique © Copyright
Virtual University of Pakistan
the high percentage of the variance value, some tasks
may be broken down
further or combined. This activity of breaking down
tasks into smaller levels
involves fresh estimates for those tasks at the smaller
levels.
8. Revert to step 5 and repeat the steps. You do this
until all tasks are assigned
estimates that have an acceptable percentage of
variance value. Figure 7.4.
summarizes the steps of the Delphi technique in the
form of a flowchart.
Identify the teams that will
estimate.
Present project details to the expert
group.
Finalize the acceptable variance
value.
Prepare a list of tasks.
Estimate done by the expert group
Prepare a summary of estimates
for each task.
Discuss tasks and assumptions for
not acceptable estimates.
Repeat steps until all estimates are
finalized.
Software Project Management (CS615)
240
© Copyright Virtual University of Pakistan
The Delphi technique is a simple and subjective
method of estimation. However,
it is a very effective method because most of the
estimates are tried and tested.
You can use this method if the project is small or if you
have the data and
expertise that can enable unambiguous estimates.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
(my prompt is that give me simple beginner level
examples of all the topics or text above given by me in
this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are
part of a lecture given by one lecturer so keep in mind
in that and give coherent examples.
important note3: this prompt is in coninuation to
previous prompt or answer.
Here is a continuation of the lecture with simple, beginner-level examples for the
Delphi Technique, based on the content you provided:
Delphi Technique - Detailed Example
Delphi Technique - Detailed Example
Delphi Technique - Detailed Example
Delphi Technique - Detailed Example
Delphi Technique - Detailed Example
The Delphi Technique is a structured, human-based method for estimating the
effort required to complete tasks in a project. Below is a step-by-step example,
aligned with the flowchart and descriptions you provided:
Identify the Teams that Will Estimate:
1
Example: The project manager forms an estimation team that includes
six experienced software engineers who have previously worked on
similar projects. These engineers will independently estimate the
effort needed for each task in the project.
2
Present Project Details to the Expert Group:
3
Example: The project manager and the author present the project
details to the expert group. For instance, if the project is about
developing an online shopping platform, they explain the
requirements, such as user registration, product catalog, and payment
processing. The experts are also informed about the client's
expectations and project goals.
4
Finalize the Acceptable Variance Value:
5
Example: The team agrees that any estimate with more than a 25%
difference between the highest and lowest values will need further
discussion. For example, if one expert estimates a task will take 100
hours and another estimates it will take 140 hours, the variance
exceeds 25%, so the task would not be accepted as-is.
6
Prepare a List of Tasks:
7
Example: The team, led by the coordinator, prepares a detailed list of
tasks required to complete the project. For the online shopping
platform, tasks could include Designing the User Interface,
Developing the Product Catalog Module, Implementing Payment
Gateway Integration, etc.
8
Estimate Done by the Expert Group:
9
Example: Each expert independently estimates the time and effort
required for each task. For instance, one expert might estimate that
designing the user interface will take 50 hours, while another might
estimate 60 hours. These estimates are submitted to the coordinator
without any discussion among the experts.
10
Prepare a Summary of Estimates for Each Task:
11
Example: The coordinator compiles all the estimates for each task into
a summary table. For example, if estimates for the user interface
design task range from 50 to 60 hours, the variance is calculated. If it
falls within the 25% acceptable range, the estimate is marked as
accepted.
12
Discuss Tasks and Assumptions for Not Acceptable Estimates:
13
Example: If the estimates for a task, such as integrating the payment
gateway, vary too much (e.g., 100 hours vs. 150 hours), the team
discusses why this is the case. They might break down the task into
smaller components, such as Payment Gateway API Integration and
Payment Security Testing, and then re-estimate each component.
14
From ChatGPT, designed with FancyGPT
This step-by-step example helps illustrate how the Delphi Technique is applied in a
software project to estimate tasks, ensuring accuracy and consensus among
experts.
Repeat Steps Until All Estimates Are Finalized:
15
Example: The process of independent estimation, summarizing, and
discussing continues until all tasks have estimates that fall within the
acceptable variance range. The final list of estimates is then used to
plan and schedule the project.
16
cs615 lecture 32
cs615 lecture 32
cs615 lecture 32
cs615 lecture 32
cs615 lecture 32
LECTURE # 32
7. Work Breakdown Structure
7.1 WBS Preview
i. Salient features
Large, complex projects are organized and comprehended by
breaking them into
progressively smaller pieces until they are a collection of
defined work
packages that may include a number of tasks.
A $1,000,000,000 project is simply a lot of $50,000 projects
joined together.
Work breakdown structure (WBS) is a technique to decompose
the project for the
purpose of management and control. It provides the framework
for organizing and
managing the work.
A project may be divided into subprojects. Subprojects are
subdivided into
smaller, more manageable work components (work packages)
at the lowest level.
The work packages may be further decomposed to project
activities. It provides
the framework for organizing and managing the work.
A project may be divided into subprojects. Subprojects are
subdivided into
smaller, more manageable work components (work packages)
at the lowest level.
The work packages may be further decomposed to project
activities.
The WBS is commonly used at the beginning of a project for
defining project
scope, organizing Gantt schedules and estimating costs.
It lives on, throughout the project, in the project schedule and
often is the main
path for reporting project costs.
WBS includes activities like management, procurement,
installation, software
development etc.
Many of the WBS development tasks are derived from the
development method
that will be used, and from the design and architecture of the
20/08/2024, 10:15 FancyGPT - cs615 lecture 32
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/9
system.
WBS is related to planning and scheduling a project
It is a functional decomposition of the tasks of the project.
Software Project Management (CS615)
242
© Copyright Virtual University of Pakistan
It starts with the end objective required and successively
subdividing it into
manageable components in terms of size and complexity of:
– Program,
– Project,
– System,
– Subsystem,
– Components,
– tasks, subtasks, and
– work elements
The WBS is first and foremost a technical data gathering
structure, developed so
that the achievement in technical progress can be measured
and analyzed against a
formal baseline plan.
The WBS aids the customer in understanding the status of the
project as time
elapses. The WBS aids the customer's customer in
understanding the status of the
project.
All managers, internal and external need to use the planning
and status
information within the WBS structure to:
– Aid in the adjustment to the current program paths and
– For maximizing the attainment of short term and long term
goals
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Certainly! Let's break down the key points from the lecture on the Work Breakdown
Structure (WBS) using simple, beginner-friendly examples.
7. Work Breakdown Structure (WBS)
7. Work Breakdown Structure (WBS)
7. Work Breakdown Structure (WBS)
7. Work Breakdown Structure (WBS)
7. Work Breakdown Structure (WBS)
7.1 WBS Preview
7.1 WBS Preview
7.1 WBS Preview
7.1 WBS Preview
7.1 WBS Preview
i. Salient Features
20/08/2024, 10:15 FancyGPT - cs615 lecture 32
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/9
Large, Complex Projects:
Imagine you have a project worth $1,000,000,000. Managing this entire amount at
once would be overwhelming. So, you break it down into smaller, more manageable
parts, like handling $50,000 at a time. Each of these smaller parts is treated as a
separate work package.
Definition of WBS:
The WBS is a method to break down a project into smaller, more manageable parts,
allowing better control and management. This helps in understanding how to approach
the project step by step.
Subprojects and Work Packages:
A big project can be split into smaller subprojects. Each subproject can then be broken
down further into work packages. A work package is the smallest part of the project
that can be managed individually. These work packages can be further broken down
into specific tasks or activities.
Purpose of WBS:
The WBS is usually created at the beginning of a project. It helps in defining the scope
of the project, organizing schedules (like using Gantt charts), and estimating costs. It
continues to be useful throughout the project for tracking progress and costs.
Example Activities in WBS:
WBS can include different types of activities, such as:
Management: Overseeing the entire project.
Procurement: Acquiring necessary resources or materials.
Installation: Setting up equipment or systems.
Software Development: Writing and testing software.
Development Method Influence:
The way you develop your WBS often depends on the method you're using for the
project and the design of the system you're working on.
WBS in Planning and Scheduling:
WBS is directly related to how you plan and schedule a project. It's about breaking
down the project into smaller tasks to make it easier to manage.
Functional Decomposition:
WBS is a functional decomposition, meaning it's a way to break down the project by
its functions or tasks. For example, you start with the main goal and then break it down
into:
Program: The overall objective.
Project: A specific part of the program.
System: A collection of components working together.
Subsystem: A smaller part of the system.
Components: Individual parts of the subsystem.
Tasks: Specific actions required to complete the components.
Subtasks: Smaller actions within a task.
Work Elements: The smallest units of work.
Technical Data Gathering:
The WBS is used to gather technical data so that you can measure and analyze how the
project is progressing against the original plan.
Customer Understanding:
The WBS helps customers (and their customers) understand the progress of the project
over time.
20/08/2024, 10:15 FancyGPT - cs615 lecture 32
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/9
ii. WBS-What is it?
WBS is a definition of a project in terms of its work or a
deliverable-oriented
grouping of project elements that organizes and defines the
total scope of the
project.
Each descending level represents an increasingly detailed
definition of the
project’s work.
It’s an outline of the work of the project, not the work itself,
created by those
doing the work – that may include all functional stakeholders.
iii. WBS- What it contains?
– Maps all contractual obligations (SOW) regarding
deliverables
– Details project objectives
– Detailed enough to meet performance (measurable)
objectives
– Contains built-in WBS and Project Plan review and update
Software Project Management (CS615)
243
© Copyright Virtual University of Pakistan
iv. WBS- When is it produced?
The WBS is produced following the development of the scope
statement, before
the schedule. It is a “bridging” document between the Scope
and Schedule. (what
and when)
v. Uses of WBS
– Defines 100% of the scope and can communicate the scope of
the project
without the presence of the scope statement or document.
– Communicates effectively to all stakeholders
– Defines and clarifies
– Boundaries (Life cycle of the project – not the product)
– Deliverables
– Refines Scope
Defines scope in project management language (perhaps down
to work package
level which may lead to development of project schedule)
These examples aim to simplify the concepts so that even someone new to project
management can understand how a WBS functions and why it's essential in managing
complex projects.
Manager Use:
Managers use the WBS to adjust the project as needed and to ensure that both short-
term and long-term goals are met.
20/08/2024, 10:15 FancyGPT - cs615 lecture 32
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/9
It’s not a single document that can be mistaken for the project
plan, schedule or
scope statement
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Sure! Let's go through the concepts of the Work Breakdown Structure (WBS) from the
lecture, using simple, beginner-friendly examples.
7.1 WBS Preview (continued)
7.1 WBS Preview (continued)
7.1 WBS Preview (continued)
7.1 WBS Preview (continued)
7.1 WBS Preview (continued)
ii. WBS - What is it?
iii. WBS - What it Contains
iv. WBS - When is it Produced?
Definition:
The WBS defines a project in terms of the work that needs to be done. It's like a list that
groups all the project elements based on what needs to be delivered at the end. This list
organizes and defines everything that the project involves, covering the entire scope.
Detailed Levels:
The WBS is organized into different levels. The higher levels give a broad overview of
the project, while the lower levels go into more detail about specific tasks or
components. As you move down the levels, the tasks are described in more detail.
Outline of Work:
The WBS outlines what work needs to be done for the project, but it’s not the actual
work itself. The outline is usually created by the people who will be doing the work. This
can include everyone involved in the project, such as engineers, designers, or managers.
Contractual Obligations (SOW):
The WBS includes everything that the project has promised to deliver, based on the
Statement of Work (SOW). The SOW is a document that lists all the deliverables or
outputs the project is expected to provide.
Project Objectives:
It also details the goals and objectives of the project, ensuring everyone knows what
the project aims to achieve.
Performance Objectives:
The WBS is detailed enough to allow the project’s performance to be measured. This
means it breaks down tasks so specifically that you can track if each part is meeting its
goals.
Review and Update:
The WBS includes plans for reviewing and updating the structure as the project
progresses. This ensures that the WBS remains accurate and relevant throughout the
project.
Timing:
The WBS is created after the project's scope has been defined but before the project
20/08/2024, 10:15 FancyGPT - cs615 lecture 32
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/9
7.2 WBS- A Mandatory Management Tool
i. WBS as a Project Management Tool
A WBS is a valuable management tool that is used throughout
all life-cycle
phases to:
a. Manage Risk
It helps in managing risk by providing insight into technical
aspects of program
management.
b. Manage Costs
A WBS can be used to help make program management
decisions.
For example, if the costs of an element in the WBS are too high,
the WBS can be
used to identify possible tradeoffs. Identifying and analyzing
tradeoffs can help
the manager decide how best to stay within budget.
c. Assign Work
The WBS is also useful for determining an acquisition strategy
and/or assigning
v. Uses of WBS
These examples simplify the concepts to help beginners understand the purpose, contents,
and uses of the WBS in project management.
schedule is made. It acts as a bridge between understanding what the project is
(scope) and planning when everything will be done (schedule).
Defines 100% of the Scope:
The WBS can define the entire scope of the project. Even if you don’t have a scope
statement or document, the WBS alone can communicate what the project involves.
Effective Communication:
The WBS helps in communicating with all stakeholders, ensuring everyone understands
what the project includes.
Clarifies Boundaries:
It clarifies the boundaries of the project, which includes the project’s lifecycle but not
the final product itself. For example, it covers everything that needs to happen to
complete the project, but it doesn’t detail how the product will be used after the project
ends.
Details Deliverables:
The WBS defines all the deliverables that the project needs to produce.
Refines Scope:
It helps refine the project’s scope by breaking it down into more manageable parts,
possibly down to the level of individual work packages. This breakdown helps in
developing the project schedule later on.
Not a Single Document:
The WBS is not just one document like a project plan, schedule, or scope statement. It’s
a structure that helps in organizing and managing the entire project, covering all
aspects of the work that needs to be done.
20/08/2024, 10:15 FancyGPT - cs615 lecture 32
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/9
work. The information contained in the WBS can help a
Program Manager
Software Project Management (CS615)
244
© Copyright Virtual University of Pakistan
develop a statement of work that describes what products or
services are to be
delivered.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
7.2 WBS- A Mandatory Management Tool
d. Schedule and Track activities
A schedule of key events can be developed for each element in
the WBS.
Completion of these key events is then tracked.
– Schedule and Track activities
– The work breakdown structure defines all tasks to be
performed during the
development of the project. This will include tasks from such
project
categories as:
ƒ Software development
ƒ Installation
ƒ Maintenance
ƒ Management
ƒ Training
ƒ Procurement
ƒ Documentation
e. Align with Terms of Reference and scope of project
– At all times, any, work being performed by a member of the
software project
team must be part of a WBS task: No member of the team
should ever
perform any task that does not appear in the WBS list of tasks.
– The WBS is essentially a management tool that provides the
ability to assign
20/08/2024, 10:15 FancyGPT - cs615 lecture 32
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/9
well-define tasks to members of the development team.
– It is through the WBS that progress is monitored as tasks are
completed and
potential problems are discovered.
– New tasks that were overlooked are identified, and estimates
are revised based
on the actual resources used for completed tasks.
f. Report Expense
– The WBS is also a budgetary tool that provides a means of
charging each
development activity to the appropriate section in the project
budget.
– This is one of the basic methods for planning and monitoring
project
expenditure.
– There are mainly computerized utilities available to support
the maintenance
of the WBS.
– These utilities run both on small PC type computers and large
mainframes.
Software Project Management (CS615)
245
© Copyright Virtual University of Pakistan
– WBS utilities are often available as part of a manager's
general planning
utility, and provide other scheduling and monitoring features,
such as PERT
analysis and report generation.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Continuing with the lecture on the Work Breakdown Structure (WBS) as a mandatory
management tool, here are simple, beginner-level examples for each point.
7.2 WBS - A Mandatory Management Tool (continued)
7.2 WBS - A Mandatory Management Tool (continued)
7.2 WBS - A Mandatory Management Tool (continued)
7.2 WBS - A Mandatory Management Tool (continued)
7.2 WBS - A Mandatory Management Tool (continued)
d. Schedule and Track Activities
Example:
When managing a project, you can create a schedule for each task or component in the
WBS. For instance, if your project includes software development, installation, and
training, each of these tasks would have a timeline. You would then track the progress
to ensure each task is completed on time. For example, you might track when the
software coding should start and finish, when the installation should happen, and when
training sessions are scheduled. The WBS helps in keeping everything on track by
20/08/2024, 10:15 FancyGPT - cs615 lecture 32
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/9
From ChatGPT, designed with FancyGPT
e. Align with Terms of Reference and Scope of Project
f. Report Expense
These examples show how the WBS is crucial for scheduling and tracking activities, ensuring
all work aligns with the project’s scope, and managing the project’s budget effectively.
defining all tasks, including software development, installation, maintenance,
management, training, procurement, and documentation.
Example:
In a project, every task that team members work on should be listed in the WBS. For
example, if someone on the software team is writing code for a new feature, this task
must be in the WBS. If a task is not in the WBS, it should not be done, as it might not
align with the project’s scope or objectives. The WBS allows the project manager to
monitor progress, see which tasks are completed, and identify any potential problems
early. If new tasks are needed that were initially overlooked, they are added to the
WBS, and resource estimates are updated accordingly.
Example:
The WBS is also used to manage the project’s budget. Each task or activity is linked to a
specific part of the budget. For example, if you’re spending money on software
development, the costs are charged to the part of the budget allocated for development
activities. This helps in planning and monitoring how much money is being spent on
different parts of the project. Many project management tools, like specialized
software, can help maintain the WBS, track expenses, and generate reports. These tools
often include features like PERT (Program Evaluation Review Technique) analysis and
scheduling, which further help in managing the project efficiently.
20/08/2024, 10:15 FancyGPT - cs615 lecture 32
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/9
cs615 lecture 33
cs615 lecture 33
cs615 lecture 33
cs615 lecture 33
cs615 lecture 33
LECTURE # 33
7. Work Breakdown Structure
7.3 WBS- A Mandatory Management Tool
i. The WBS as a project management tool
g) Mapping WBS for Cost Management
In a product-oriented WBS, functional categories of work may
form cost
accounts within a WBS element. Cost account managers are
responsible for a
functional area’s contribution to a WBS element. Cost accounts
from several
departments or functions may combine into one WBS element.
Internal department planning for a cost account will be made
up of individual
work packages. A work package will typically have its own
budget and schedule.
Work packages should be small enough to be executed by
individuals or small
groups in a single department, and they should be of relatively
short schedule
duration. A small project might define a maximum work
package size as two
weeks of effort. Larger projects will assemble larger work
packages that can be
appropriately managed and controlled.
The project manager will have to decide to what degree
employment of various
details of WBS implementation will benefit the efficient
management of the
project. On a very small project, a formal WBS may serve no
useful purpose, but
it can become valuable if project size or complexity start to
increase.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
20/08/2024, 10:16 FancyGPT - cs615 lecture 33
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/5
As an organization’s project management environment
matures, or as larger size
Let's break down the concepts mentioned in your lecture with simple, beginner-level
examples.
WBS as a Project Management Tool
WBS as a Project Management Tool
WBS as a Project Management Tool
WBS as a Project Management Tool
WBS as a Project Management Tool
Mapping WBS for Cost Management
Mapping WBS for Cost Management
Mapping WBS for Cost Management
Mapping WBS for Cost Management
Mapping WBS for Cost Management
These examples should help you understand how a Work Breakdown Structure (WBS)
functions as a project management tool, especially in the context of cost management.
Cost Accounts in a WBS:
1
Example: Imagine you're managing a project to build a new website. The project
has several WBS elements, such as Design, Development, and Testing. Each
of these WBS elements could have cost accounts tied to them. For example, the
Design WBS element might have cost accounts for Graphic Design and UI/UX
Design, with different managers responsible for each.
2
Cost Account Managers:
3
Example: If the Development WBS element has cost accounts for Frontend
Development and Backend Development, the managers for these areas are
responsible for ensuring their respective parts stay within budget and meet the
project's needs.
4
Combining Cost Accounts into a WBS Element:
5
Example: If you have a WBS element called Testing, cost accounts from different
departments—like Manual Testing and Automated Testing—might combine
under this single WBS element. This helps manage and track costs more
efficiently.
6
Internal Department Planning for a Cost Account:
7
Example: For the Frontend Development cost account, the department might
plan out work packages such as Develop Homepage and Create Navigation
Bar. Each of these work packages would have its own budget and schedule.
8
Work Packages:
9
Example: A work package like Develop Homepage could be assigned to a small
team of developers and given a budget of $5,000 and a two-week deadline. This
makes it easy to manage and track progress.
10
Small Work Packages:
11
Example: In a small project, a work package could be as simple as Design Logo,
which might take one designer five days to complete. In a larger project, a work
package might be Develop User Authentication System, which could involve
multiple developers and take four weeks.
12
Deciding the Level of Detail in WBS:
13
Example: For a small project like designing a single webpage, a detailed WBS
might not be necessary. But for a larger project, like developing a full e-commerce
site, a detailed WBS becomes crucial for tracking progress, managing costs, and
ensuring that the project stays on schedule.
14
20/08/2024, 10:16 FancyGPT - cs615 lecture 33
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/5
and complexity are encountered, application of the WBS
concept can evolve from
an ad hoc list of tasks, to time-phased activity lists, task lists
clustered by project
deliverables and services, or an end-product focused WBS fed
by cost accounts
and work packages.
If you are using MS-Project or a similar project management
software application,
you may encounter the WBS as a vertical list with indents to
show structure. This
will be compatible with the Gantt View data entry screens.
While some software
packages provide a separate WBS view, you could prepare your
WBS in the
vertical format using a word processor, and then cut and paste
your WBS into
your project management software package.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Let's break down the concepts and text provided with simple, beginner-level examples.
WBS Evolution as Project Management Matures
WBS Evolution as Project Management Matures
WBS Evolution as Project Management Matures
WBS Evolution as Project Management Matures
WBS Evolution as Project Management Matures
Ad Hoc List of Tasks:
1
Example: In the early stages of a small project, you might simply write down a list
of tasks that need to be completed, like Design Homepage, Develop Backend,
and Test Application. This list isn't organized in any particular way—just a
collection of tasks.
2
Time-Phased Activity Lists:
3
Example: As your project grows or becomes more complex, you might start
organizing tasks by when they need to be done. For example, you could have a list
for Week 1 that includes Design Homepage and Week 2 for Develop
Backend. This helps in tracking the progress over time.
4
Task Lists Clustered by Project Deliverables:
5
Example: Instead of just listing tasks by time, you might start grouping them by
what they produce. For instance, all tasks related to creating the User Interface
could be grouped together, like Design Homepage and Design User
Dashboard. This helps in managing tasks related to specific parts of the project.
6
End-Product Focused WBS Fed by Cost Accounts and Work Packages:
7
20/08/2024, 10:16 FancyGPT - cs615 lecture 33
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/5
WORD OF CAUTION
• The WBS is a useful tool provided it is constantly updated.
• It should be updated periodically together with the project
development plan and
the project schedule.
• It is reasonable to expect the WBS list to have tasks added,
modified or even
Using WBS in Project Management Software
Using WBS in Project Management Software
Using WBS in Project Management Software
Using WBS in Project Management Software
Using WBS in Project Management Software
Interpreting the Image
Interpreting the Image
Interpreting the Image
Interpreting the Image
Interpreting the Image
The image you provided shows a matrix that likely represents the relationship between
different departments (e.g., Info. Systems, Purchasing, Testing, etc.) and project elements (e.g.,
Hardware, Software, Systems Engineering, Training).
This type of matrix is helpful when assigning work packages to different departments while
tracking their contribution to the overall project.
These examples and explanations should give you a clearer understanding of how the WBS
concept evolves and how it is used in project management software.
Example: In a more mature project management environment, your WBS might
focus on the final product, such as Complete Website. Under this, you'd have
different WBS elements like Frontend Development, Backend Development,
and Testing. Each of these elements would be linked to cost accounts (budgets)
and work packages (smaller tasks like Develop Login Page).
8
WBS as a Vertical List with Indents:
1
Example: In MS-Project, you might see a WBS as a list that looks like this:
markdown
1. Complete Website
1.1 Frontend Development
1.1.1 Design Homepage
1.1.2 Develop Homepage
1.2 Backend Development
1.2.1 Develop API
1.2.2 Integrate Database
Here, the indentations show the structure of the WBS, with tasks nested under
larger elements. This format aligns with how Gantt charts display tasks.
2
WBS View in Software:
3
Example: Some project management software offers a dedicated WBS view
where you can see the breakdown of work visually. However, even if your
software doesn’t have this feature, you can create a WBS in a word processor or
spreadsheet, then transfer it to your project management software.
4
Departments (left column) like Info. Systems, Purchasing, and Testing are
responsible for various tasks in the project.
Project Elements (top row) like Hardware, Software, Systems Engineering, and
Training are the main areas of focus.
The matrix structure helps in mapping out which department is responsible for which
project element. This structure can be used to organize and manage the project's
resources effectively.
20/08/2024, 10:16 FancyGPT - cs615 lecture 33
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/5
From ChatGPT, designed with FancyGPT
removed as project development progresses.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Let's go through the points you provided with simple, beginner-level examples:
Word of Caution Regarding WBS
Word of Caution Regarding WBS
Word of Caution Regarding WBS
Word of Caution Regarding WBS
Word of Caution Regarding WBS
These examples illustrate why it's important to keep the WBS updated throughout the
project lifecycle. By doing so, you ensure that the project plan remains accurate and relevant
as work progresses.
WBS Needs to be Constantly Updated:
1
Example: Imagine you’re managing a project to develop a new mobile app. Initially,
your WBS includes tasks like Design UI and Develop Backend. As the project
moves forward, you realize you also need a User Testing phase. You would
update your WBS to include this new task. If you don’t update the WBS, your
project plan could become outdated, leading to confusion or missed tasks.
2
Periodic Updates with Project Development Plan and Schedule:
3
Example: Suppose your project was initially planned to be completed in six
months. However, during development, you face some delays, and the project
timeline extends to eight months. You should update the WBS along with the
project schedule to reflect these changes. This ensures that everyone involved has
the most current information and can plan their work accordingly.
4
Tasks Might be Added, Modified, or Removed:
5
Example: Let’s say you originally planned a task called Develop Login System.
Later, you decide to use a third-party authentication service instead of building it
from scratch. In this case, you would remove Develop Login System from your
WBS and add a new task like Integrate Third-Party Authentication. As the
project progresses, you may also find some tasks need to be split into smaller
ones, or combined, based on the evolving needs of the project.
6
20/08/2024, 10:16 FancyGPT - cs615 lecture 33
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/5
cs615 lecuture 34
cs615 lecuture 34
cs615 lecuture 34
cs615 lecuture 34
cs615 lecuture 34
LECTURE # 34
7. Work Breakdown Structure
7.4 WBS- A Mandatory Management Tool
h) Characteristics of a High-Quality WBS
a) Review and signoff from top to bottom
b) Includes logical flow and is hierarchical in nature
c) Clear and concise
d) Provides ability to roll-up information to higher levels
e) Receives 100% team buy-in
f) Should have at least 2 levels: Level 1 defines 100% of the
service/product/result;
Level 2 defines the deliverables in terms of work (groupings)
g) Project Management (and sub-contract management) at
Level 2.
h) The deliverables in the WBS must match the scope or
contract (WBS should not
contain work that is not defined in the scope – Scope should not
describe work
not contained in the WBS)
i) All deliverables should be accounted for regardless of
responsibility
j) Every WBS element should be clearly defined – or should be
clarified in the WBS
Dictionary
k) Features
– The WBS should contains 100% of the work defined by the
scope or contract
– Development of WBS should involve the entire project team
– Should be deliverable-oriented
– Should captures all deliverables (Internal, External, Interim) in
terms of work to
be completed
l) Usefulness
Software Project Management (CS615)
249
© Copyright Virtual University of Pakistan
– Should define the context of the project and clarifies the work
– Should communicates project scope to all stakeholders in
terms of the
work to be completed
– Is “in sync” with the scope statement and project schedule
– Implies and allows for continual improvement/update of the
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/10
WBS to
maintain current-ness and “vitality” within the project
m) WBS Is Not
– A single document that substitutes for the project schedule or
project plan
– The project schedule
– A listing of tasks or activities
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Let's break down the characteristics of a high-quality Work Breakdown Structure (WBS) with
simple, beginner-level examples.
a) Review and Signoff from Top to Bottom
a) Review and Signoff from Top to Bottom
a) Review and Signoff from Top to Bottom
a) Review and Signoff from Top to Bottom
a) Review and Signoff from Top to Bottom
Example:
Imagine you're creating a WBS for a software project. Once you've completed it, you need to
have it reviewed by everyone involved in the project, from team members to project
managers. Only after everyone agrees that it’s accurate and complete, should you consider it
final.
b) Includes Logical Flow and is Hierarchical in Nature
b) Includes Logical Flow and is Hierarchical in Nature
b) Includes Logical Flow and is Hierarchical in Nature
b) Includes Logical Flow and is Hierarchical in Nature
b) Includes Logical Flow and is Hierarchical in Nature
Example:
Your WBS might start with a broad category, like Develop Software Application at the top
(Level 1). Under that, you could have categories like User Interface Design, Backend
Development, and Testing (Level 2). This structure helps to break down the work into more
manageable pieces.
c) Clear and Concise
c) Clear and Concise
c) Clear and Concise
c) Clear and Concise
c) Clear and Concise
Example:
If you have a task in your WBS called Write Code, it's too vague. Instead, you should break it
down into smaller tasks like Develop Login Module or Create User Profile Page, which are
more specific and easier to understand.
d) Provides Ability to Roll-up Information to Higher Levels
d) Provides Ability to Roll-up Information to Higher Levels
d) Provides Ability to Roll-up Information to Higher Levels
d) Provides Ability to Roll-up Information to Higher Levels
d) Provides Ability to Roll-up Information to Higher Levels
Example:
If you have tasks like Design Login Screen, Develop Login Functionality, and Test Login
Module, all of these can be rolled up under a higher-level category called Login Module in
your WBS. This allows you to see the overall progress of the Login Module without getting
lost in the details.
e) Receives 100% Team Buy-in
e) Receives 100% Team Buy-in
e) Receives 100% Team Buy-in
e) Receives 100% Team Buy-in
e) Receives 100% Team Buy-in
Example:
Before finalizing the WBS, you should have a meeting where everyone involved in the project
agrees on the tasks and structure. This ensures that everyone is on the same page and
committed to the plan.
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/10
f) Should Have at Least 2 Levels: Level 1 Defines 100% of
f) Should Have at Least 2 Levels: Level 1 Defines 100% of
f) Should Have at Least 2 Levels: Level 1 Defines 100% of
f) Should Have at Least 2 Levels: Level 1 Defines 100% of
f) Should Have at Least 2 Levels: Level 1 Defines 100% of
the Service/Product/Result; Level 2 Defines the
the Service/Product/Result; Level 2 Defines the
the Service/Product/Result; Level 2 Defines the
the Service/Product/Result; Level 2 Defines the
the Service/Product/Result; Level 2 Defines the
Deliverables in Terms of Work (Groupings)
Deliverables in Terms of Work (Groupings)
Deliverables in Terms of Work (Groupings)
Deliverables in Terms of Work (Groupings)
Deliverables in Terms of Work (Groupings)
Example:
In a WBS for developing a website, Level 1 might be Website Development. Level 2 could
include Frontend Development, Backend Development, and Content Creation. This
structure ensures that all work needed to develop the website is covered.
g) Project Management (and Sub-contract Management) at
g) Project Management (and Sub-contract Management) at
g) Project Management (and Sub-contract Management) at
g) Project Management (and Sub-contract Management) at
g) Project Management (and Sub-contract Management) at
Level 2
Level 2
Level 2
Level 2
Level 2
Example:
If your project involves hiring a subcontractor to handle a specific task, like graphic design,
this would appear at Level 2 of your WBS under a category like Sub-contract Management.
This allows you to manage these activities just like other project tasks.
h) The Deliverables in the WBS Must Match the Scope or
h) The Deliverables in the WBS Must Match the Scope or
h) The Deliverables in the WBS Must Match the Scope or
h) The Deliverables in the WBS Must Match the Scope or
h) The Deliverables in the WBS Must Match the Scope or
Contract
Contract
Contract
Contract
Contract
Example:
If your project scope includes creating a mobile app, then your WBS should have tasks related
to mobile app development. It shouldn't include unrelated tasks like Develop Desktop
Software, unless those are also part of the agreed scope.
i) All Deliverables Should Be Accounted for Regardless of
i) All Deliverables Should Be Accounted for Regardless of
i) All Deliverables Should Be Accounted for Regardless of
i) All Deliverables Should Be Accounted for Regardless of
i) All Deliverables Should Be Accounted for Regardless of
Responsibility
Responsibility
Responsibility
Responsibility
Responsibility
Example:
Even if a part of the project is being handled by a third party, like a different team or an
external contractor, their tasks should still appear in the WBS. For instance, if a vendor is
responsible for creating a database, that task should be in the WBS.
j) Every WBS Element Should Be Clearly Defined – or
j) Every WBS Element Should Be Clearly Defined – or
j) Every WBS Element Should Be Clearly Defined – or
j) Every WBS Element Should Be Clearly Defined – or
j) Every WBS Element Should Be Clearly Defined – or
Should Be Clarified in the WBS Dictionary
Should Be Clarified in the WBS Dictionary
Should Be Clarified in the WBS Dictionary
Should Be Clarified in the WBS Dictionary
Should Be Clarified in the WBS Dictionary
Example:
If you have a task in your WBS called Setup Server, you need to define what exactly this
entails. Does it include installing software? Configuring security settings? If any part of a task
is unclear, you should provide a definition in the WBS Dictionary.
k) Features of a High-Quality WBS
k) Features of a High-Quality WBS
k) Features of a High-Quality WBS
k) Features of a High-Quality WBS
k) Features of a High-Quality WBS
l) Usefulness of a WBS
l) Usefulness of a WBS
l) Usefulness of a WBS
l) Usefulness of a WBS
l) Usefulness of a WBS
Contains 100% of the Work Defined by the Scope or Contract
Example: If your contract says you need to deliver a functioning website, your WBS
should include all tasks necessary to build that website, such as design, coding, and
testing.
Involves the Entire Project Team
Example: When creating the WBS, get input from everyone on the project team to
make sure all tasks are included.
Deliverable-Oriented
Example: Focus on what needs to be delivered, like Completed Homepage or User
Login Feature, rather than on activities like Work on Homepage.
Captures All Deliverables (Internal, External, Interim)
Example: If you have milestones like Initial Design Draft (interim) or Final Website
(external), these should all be listed in your WBS.
Defines the Context of the Project and Clarifies the Work
Example: Your WBS should make it clear what the project is about and what needs to
be done, like Develop E-commerce Website with Payment Gateway.
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/10
i) Types of WBS
The two types of Work Breakdown Structures are:
a) Program Work Breakdown Structures
b) Contract Work Breakdown Structures
a) Contract WBS
A Contract WBS extends the Program WBS to a lower level in
order to provide
management and cost information to the Government. It
includes all the elements
for products (e.g., hardware, software, data, or services) that
are the responsibility
of the contractor. It must be consistent with the Program WBS.
Software Project Management (CS615)
250
© Copyright Virtual University of Pakistan
– Contract WBS: Contractor's Responsibility
Contractors may extend the work breakdown structure to
whatever level they feel
is necessary to manage the program. Contractors also use the
Contract WBS to
define work packages. Work packages are:
Discrete portions of the project that can be charged to a single
m) WBS Is Not
m) WBS Is Not
m) WBS Is Not
m) WBS Is Not
m) WBS Is Not
These examples aim to make each point clear and understandable, focusing on what each
characteristic means and how it applies in a practical sense.
Communicates Project Scope to All Stakeholders
Example: The WBS can be shared with clients and team members to show exactly what
will be done, like Create Product Catalog Page.
In Sync with the Scope Statement and Project Schedule
Example: If your project scope says you need to build a website in 3 months, your WBS
should include tasks that fit within this timeline.
Allows for Continual Improvement/Update
Example: If new requirements are added, your WBS should be updated to reflect these
changes, like adding Mobile Optimization as a new task.
A Single Document that Substitutes for the Project Schedule or Project Plan
Example: Your WBS is not a timeline; it's a breakdown of work. You’ll need a separate
schedule to show when each task should be done.
The Project Schedule
Example: While your WBS shows what needs to be done, the project schedule will
show when these tasks should be completed, like Complete User Interface Design by
Week 3.
A Listing of Tasks or Activities
Example: Your WBS should focus on deliverables, like Deliver Completed User
Interface Design, not just on listing activities like Design UI.
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/10
organization.
Building blocks for program management and cost reporting.
Remember that a Contract WBS:
• Is prepared and maintained by each contractor working on
different portions
of the program.
• Includes the number of levels thought sufficient by the
contractor to manage
the program.
• Must be updated if changes are made to the Program WBS.
b) Program WBS
A Program WBS is defined as the work breakdown that covers
the acquisition of
a specific defense materiel item and is related to contractual
effort.
A Program WBS is:
• Tailored to each specific program.
• Prepared and maintained by the Government.
• Provides a basis for developing the Contract WBS.
– Program WBS Levels
Software Project Management (CS615)
251
© Copyright Virtual University of Pakistan
Typically, a Program WBS consists of the upper three levels.
WBS Level 1: The entire defense materiel item.
WBS Level 2: Major elements of the defense materiel item,
which are subordinate
to Level 1.
WBS Level 3: Elements subordinate to Level 2 elements.
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Let's break down the types of Work Breakdown Structures (WBS) and their characteristics
with simple, beginner-level examples based on the content you've provided.
i) Types of WBS
i) Types of WBS
i) Types of WBS
i) Types of WBS
i) Types of WBS
There are two main types of Work Breakdown Structures:
a) Contract WBS
a) Contract WBS
a) Contract WBS
a) Contract WBS
a) Contract WBS
Program Work Breakdown Structures (Program WBS)
1
Contract Work Breakdown Structures (Contract WBS)
2
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/10
A Contract WBS is used by contractors to manage specific parts of a project. It extends the
Program WBS to include more detailed information, especially for management and cost
reporting. Here's how it works:
Example:
Imagine you're working as a contractor to build a radar system as part of a larger defense
project. The Program WBS might include a high-level task like Develop Radar System. As a
contractor, you would break this down further into more detailed tasks like Design Radar
Receiver, Build Transmitter, and Assemble Antenna. This detailed breakdown is your
Contract WBS.
Key Points:
Key Points:
Key Points:
Key Points:
Key Points:
b) Program WBS
b) Program WBS
b) Program WBS
b) Program WBS
b) Program WBS
A Program WBS is created by the government or the main project owner. It outlines the
overall project and includes the major components needed to complete it.
Example:
Continuing with the defense project example, the Program WBS might list Develop Fire
Control System as a major task (Level 1). This task could be further divided into Radar
System, Platform Integration, and Spare Parts (Level 2). The Radar System might then
be broken down further into components like Receiver, Transmitter, and Antenna (Level
3).
Key Points:
Key Points:
Key Points:
Key Points:
Key Points:
Program WBS Levels:
Program WBS Levels:
Program WBS Levels:
Program WBS Levels:
Program WBS Levels:
These examples should provide a clear understanding of the differences between Program
and Contract WBS, and how they are used in project management.
Contractor's Responsibility: The contractor (you) is responsible for extending the WBS
to manage your specific tasks within the project.
Work Packages: In your Contract WBS, you might create work packages like Build
Radar Receiver, which is a task that can be assigned to a specific team or organization.
Prepared and Maintained by Contractors: You would be responsible for maintaining
and updating this WBS as needed.
Consistency with Program WBS: Your detailed Contract WBS must align with the
broader Program WBS, ensuring that all work is coordinated.
Prepared and Maintained by the Government: The government (or the main project
owner) creates and maintains this WBS.
Tailored to Each Specific Program: The WBS is customized for each specific project,
depending on what needs to be delivered.
Provides Basis for Contract WBS: The Program WBS provides the foundation that
contractors will use to create their detailed Contract WBS.
WBS Level 1: Represents the entire defense materiel item, like Complete Fire Control
System.
WBS Level 2: Includes major elements under Level 1, such as Radar System or
Platform Integration.
WBS Level 3: Further breaks down Level 2 elements, like Receiver, Transmitter, and
Antenna under Radar System.
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/10
j) Sample WBS
Design

Engineering
Project
Management
Documentation Training 
BPR
Software
System
Software
Project
Web based
Classroom
Hands-on
What About?
– Requirements
– Prototyping
– Testing
– User Acceptance
– Life-cycle Management
– Warranty
Sample 1: A Product WBS
Software Project Management (CS615)
252
© Copyright Virtual University of Pakistan
WBS Sample 2: System Development Projects
Project
Hardware
1.1
Software
1.2
System
Engr
1.3
Project
Mgt
1.4
System
Test
1.5
Data
Mgt
1.6
1.1.2 1.2.2
1.1.2.1
1.1.2.1.1 Level 5
Level 1
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/10
Level 2
Level 3
Level 4
Software Project Management (CS615)
253
© Copyright Virtual University of Pakistan
WBS Sample 3: Software/Hardware System Development
READING REFERENCE:
For detailed reading refer to:
(i) Chapter No. 6 entitled “How to handle large projects: Divide
and
Conquer” of “Software Project management – A Practitioner
Approach by E. M. BENNATAN.
(ii) Chapter 5 entitled Software Project Planning” of: SE–A
Practitioner Approach by Roger S. Pressman.
(iii) Chapter 7 entitled “Software Project Estimation: Tools and
Techniques by NIIT
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Let's break down the concepts shown in the images and text with simple, beginner-level
examples.
j) Sample WBS
j) Sample WBS
j) Sample WBS
j) Sample WBS
j) Sample WBS
1. Sample 1: A Product WBS
1. Sample 1: A Product WBS
1. Sample 1: A Product WBS
1. Sample 1: A Product WBS
1. Sample 1: A Product WBS
This sample shows a Work Breakdown Structure (WBS) for a software project. The WBS is
organized into different categories that break down the overall project into more manageable
parts.
Example Breakdown:
Software Project: This is the overall project you’re working on.
Design  Engineering: This part includes all the tasks related to designing the
software, like creating blueprints and defining system architecture.
Software System: This includes tasks related to developing the actual software,
such as coding and testing.
Documentation: This part covers all the necessary documentation, like user
manuals and technical guides.
Training  Business Process Reengineering (BPR): This includes tasks related to
training users on the software and possibly restructuring business processes to
accommodate the new software.
Web-based: Training provided online.
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/10
What About?
These are additional aspects to consider that may need to be included in the WBS:
2. Sample 2: System Development Projects
2. Sample 2: System Development Projects
2. Sample 2: System Development Projects
2. Sample 2: System Development Projects
2. Sample 2: System Development Projects
This WBS example is focused on developing a system, which may include both hardware and
software components.
Example Breakdown:
Level Breakdown:
3. Sample 3: Software/Hardware System Development
3. Sample 3: Software/Hardware System Development
3. Sample 3: Software/Hardware System Development
3. Sample 3: Software/Hardware System Development
3. Sample 3: Software/Hardware System Development
This sample WBS represents a system that includes both software and hardware
components. The levels of the WBS are shown to indicate how detailed the breakdown can
become.
These examples aim to clarify how a WBS organizes the tasks in a project, breaking them
down from the overall project (Level 1) to the smallest tasks (Level 5). The samples provided
are specific to different types of projects, like software development and system
development, and show how to structure work to ensure all tasks are covered.
Classroom: In-person training sessions.
Hands-on: Practical, hands-on training sessions where users interact
directly with the software.
Project Management: This involves overseeing the entire project, making sure
everything stays on track.
Requirements: Defining what the software needs to do.
Prototyping: Creating an early model of the software to test ideas.
Testing: Ensuring the software works as expected.
User Acceptance: Getting approval from the users that the software meets their needs.
Life-cycle Management: Managing the software throughout its entire life, including
updates and maintenance.
Warranty: Providing support or fixing issues after the software is delivered.
Project: This is the entire system development project.
Hardware (1.1): Tasks related to developing the physical components of the
system.
Software (1.2): Tasks related to developing the software that will run on the
hardware.
System Engineering (1.3): This involves the integration of hardware and software
to ensure they work together properly.
Project Management (1.4): Overseeing the entire system development process.
System Testing (1.5): Testing the system as a whole to ensure it meets all
requirements.
Data Management (1.6): Handling data storage, retrieval, and security within the
system.
Level 1: The overall project.
Level 2: Major components of the project like hardware and software.
Level 3: Subcomponents under each major component.
Level 4: Further breakdown of subcomponents.
Level 5: The most detailed level, where individual tasks or work packages are defined.
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/10
From ChatGPT, designed with FancyGPT
20/08/2024, 10:22 FancyGPT - cs615 lecuture 34
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/10
cs615 lecture 35
cs615 lecture 35
cs615 lecture 35
cs615 lecture 35
cs615 lecture 35
LECTURE # 35
7. Work Breakdown Structure
7.5 WBS- A Mandatory Management Tool
iv. Sample WBS
Sample 1: These two graphics illustrate approaching the WBS
as a parts list or as a
process list
Software Project Management (CS615)
255
© Copyright Virtual University of Pakistan
Sample 2: WBS of Manufacturing of a Mountain Bike
Software Project Management (CS615)
Sample:3 Work Breakdown Structure of Aircraft System
256
© Copyright Virtual University of Pakistan
Software Project Management (CS615)
257
© Copyright Virtual University of Pakistan
The list of activities is often called a Work Breakdown Structure
(WBS). The goal is to
integrate the WBS, the schedule, and the budget into a written
plan.
The WBS reflects activities associated with overall project
management, requirements,
design, implementation, transition management, testing,
training, installation, and
maintenance. The project manager is responsible for defining
all top level tasks
associated with a project and then further decomposing them
as planning continues.
An activities list is typically shown in one of two ways. It can be
shown as an outline or
it can be graphically presented. Two samples of an activities list
(WBS) are shown
below.
1.0 MANAGEMENT
1.1 Plan Project
1.1.1 Develop Project Plan
1.1.2 Update Project Plan
1.2 Track Project
1.2.1 Prepare status reports
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/33
1.2.2 Collect/analyze project metrics
1.3 Perform Quality Activities
1.3.1 Prepare QA Plan
1.3.2 Conduct Reviews
1.3.3 Conduct Audits
1.4 Perform Configuration Management
1.4.1 Prepare CM Plan
1.4.2 Develop Project Library
1.4.3 Manage Change Board
1.4.4 Maintain Configuration Items
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Lecture #35: Work Breakdown Structure (WBS) - A
Lecture #35: Work Breakdown Structure (WBS) - A
Lecture #35: Work Breakdown Structure (WBS) - A
Lecture #35: Work Breakdown Structure (WBS) - A
Lecture #35: Work Breakdown Structure (WBS) - A
Mandatory Management Tool
Mandatory Management Tool
Mandatory Management Tool
Mandatory Management Tool
Mandatory Management Tool
7. Work Breakdown Structure (WBS)
7. Work Breakdown Structure (WBS)
7. Work Breakdown Structure (WBS)
7. Work Breakdown Structure (WBS)
7. Work Breakdown Structure (WBS)
The Work Breakdown Structure (WBS) is an essential project management tool used to break
down a project into smaller, more manageable components. It helps in organizing the work
needed to complete a project by defining and grouping the project's discrete work elements
in a way that helps project managers and teams understand the structure of their work.
7.5 WBS - A Mandatory Management Tool
7.5 WBS - A Mandatory Management Tool
7.5 WBS - A Mandatory Management Tool
7.5 WBS - A Mandatory Management Tool
7.5 WBS - A Mandatory Management Tool
The WBS is mandatory because it provides a clear framework that helps project managers
plan, execute, and control the project. It allows for a detailed understanding of all tasks
involved, ensuring that nothing is overlooked. This structure is also crucial for estimating
costs, scheduling resources, and monitoring progress.
iv. Sample WBS
iv. Sample WBS
iv. Sample WBS
iv. Sample WBS
iv. Sample WBS
Let's go through some beginner-level examples of WBS to understand how it can be applied in
different scenarios.
Sample 1: Approaching the WBS as a Parts List or a Process List
Sample 1: Approaching the WBS as a Parts List or a Process List
Sample 1: Approaching the WBS as a Parts List or a Process List
Sample 1: Approaching the WBS as a Parts List or a Process List
Sample 1: Approaching the WBS as a Parts List or a Process List
When creating a WBS, you can approach it in two ways: as a parts list or as a process list.
These two approaches allow project managers to decide how best to represent the project's
structure based on what makes more sense for their specific needs.
Sample 2: WBS of Manufacturing a Mountain Bike
Sample 2: WBS of Manufacturing a Mountain Bike
Sample 2: WBS of Manufacturing a Mountain Bike
Sample 2: WBS of Manufacturing a Mountain Bike
Sample 2: WBS of Manufacturing a Mountain Bike
In this example, let's break down the manufacturing process of a mountain bike:
Parts List Approach: This method focuses on breaking down the project into its physical
components. For example, if you're managing a software development project, the parts
might include the software application itself, the user interface, the database, and the
testing environment.
1
Process List Approach: This method focuses on breaking down the project into its
processes or activities. In the same software development project, the processes might
include requirement gathering, system design, coding, testing, and deployment.
2
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/33
This WBS helps in organizing the work needed to manufacture a mountain bike, ensuring that
every component and process is accounted for.
Sample 3: WBS of Aircraft System
Sample 3: WBS of Aircraft System
Sample 3: WBS of Aircraft System
Sample 3: WBS of Aircraft System
Sample 3: WBS of Aircraft System
Now, let's break down the development of an aircraft system:
This WBS ensures that all aspects of aircraft system development are methodically planned
and executed.
Frame Production
1
1.1 Design Frame
2
1.2 Cut Frame Materials
3
1.3 Weld Frame Parts
4
Wheel Assembly
5
2.1 Design Wheels
6
2.2 Select Wheel Materials
7
2.3 Assemble Wheels
8
Component Assembly
9
3.1 Install Brakes
10
3.2 Install Gears
11
3.3 Install Chain
12
Final Assembly
13
4.1 Attach Wheels to Frame
14
4.2 Install Handlebar and Seat
15
4.3 Test Assembled Bike
16
System Design
1
1.1 Define System Requirements
2
1.2 Develop System Architecture
3
1.3 Create System Prototypes
4
Engine Development
5
2.1 Design Engine Components
6
2.2 Manufacture Engine Parts
7
2.3 Test Engine Performance
8
Avionics Development
9
3.1 Design Avionics Systems
10
3.2 Develop Avionics Software
11
3.3 Integrate Avionics with Aircraft
12
Testing and Validation
13
4.1 Conduct Ground Tests
14
4.2 Conduct Flight Tests
15
4.3 Validate System Performance
16
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/33
2.0 DESIGN
2.1 Prepare Preliminary Design
2.1.1 Develop Enterprise Architecture
2.1.2 Prepare Data Flow Diagrams
2.1.3 Prepare Logical Data Model
2.2 Prepare Detailed Design
Integrating WBS with Schedule and Budget
Integrating WBS with Schedule and Budget
Integrating WBS with Schedule and Budget
Integrating WBS with Schedule and Budget
Integrating WBS with Schedule and Budget
The list of activities within a WBS is not just a collection of tasks; it is a tool that integrates
with the project’s schedule and budget. The project manager uses the WBS to:
Example of an Activities List in a WBS
Example of an Activities List in a WBS
Example of an Activities List in a WBS
Example of an Activities List in a WBS
Example of an Activities List in a WBS
Here’s a simplified example of an activities list for managing a software project:
This list outlines the major management activities that must be performed in the software
project. The project manager would further break down these tasks into more detailed steps
as planning progresses.
Summary
Summary
Summary
Summary
Summary
The WBS is a vital tool in project management that helps break down a project into
manageable parts or processes. It is used to organize the work, estimate costs, schedule tasks,
and monitor progress. By integrating the WBS with the project’s schedule and budget, project
managers can ensure that all aspects of the project are planned, executed, and controlled
effectively.
Schedule Tasks: Each task in the WBS is assigned a timeline, helping to create a project
schedule.
Budget Estimation: By understanding the tasks and resources needed, the project
manager can estimate costs and allocate the budget accordingly.
Monitoring Progress: As tasks are completed, the WBS helps track progress and
ensure the project stays on schedule and within budget.
Management
1
1.1 Plan Project
2
1.1.1 Develop Project Plan
3
1.1.2 Update Project Plan
4
1.2 Track Project
5
1.2.1 Prepare Status Reports
6
1.2.2 Collect/Analyze Project Metrics
7
1.3 Perform Quality Activities
8
1.3.1 Prepare QA Plan
9
1.3.2 Conduct Reviews
10
1.3.3 Conduct Audits
11
1.4 Perform Configuration Management
12
1.4.1 Prepare CM Plan
13
1.4.2 Develop Project Library
14
1.4.3 Manage Change Board
15
1.4.4 Maintain Configuration Items
16
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/33
2.2.1 Prepare Physical Data Model
2.2.2 Prepare Data Dictionary
2.3 Document Design
2.3.1 Develop Design Specification
2.4 Review Design
Software Project Management (CS615)
258
© Copyright Virtual University of Pakistan
3.0 DEVELOPMENT/INTEGRATION
3.1 Develop Software
3.1.1 Develop Server Application
3.1.2 Develop User Interface
3.1.3 Develop XYZ Interface
3.2 Procure Hardware
3.2.1 Procure Server
3.2.2 Procure Workstations
3.3 Procure Software Packages
3.3.1 Procure Database
3.3.2 Procure User Interface Building Tool
3.3.3 Procure Operating System
3.4 Perform Integration Testing
3.5 Convert Data
3.5.1 Develop Conversion Plan
3.6 Develop User Manual
3.7 Transition Management
4.0 ACCEPTANCE TESTING
4.1 Plan Acceptance Test
4.2 Conduct Acceptance Test
4.3 Develop Test Report
5.0 INSTALLATION
5.1 Develop Installation Plan
5.2 Site Preparation
5.3 Install at Locations
5.3.1 Headquarters
5.3.2 Site 1
6.0 MAINTENANCE
6.1 Hardware Maintenance
6.2 Software Maintenance
Software Project Management (CS615)
259
© Copyright Virtual University of Pakistan
Sample 4: Sometimes, instead of depicting the WBS as an
outline, it is shown
graphically, as below:
WBS
Work Breakdown
Schedule (WBS)
Management
Plan Project
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/33
Track Project
Develop Project Plan
Update Project Plan
Prepare status report
Collect/analyze
project metrics
Perform Quality
Activities
Prepare QA Plan
Conduct Reviews
Perform CM
Prepare CM Plan
Develop Project Library
Conduct Audits
Manage Change Board
Maintain Configuration
Items
Design
Prepare
Preliminary
Design
Prepare Detailed
Design
Develop Enterprise
Architecture
Prepare Data
Flow Diagrams
Prepare Physical
Data Model
Prepare Data
Dictionary
Document
Design
Develop Design
Specification
Review Design
Prepare Logical
Data Model
Development/
Integration
Develop
Software
Procure
Hardware
Develop Server
Application
Develop User
Interface
Procure Server
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/33
Procure Workstations
Procure Software
Packages
Procure Databases
Perform
Integration
Testing
Develop XYZ
Interface
Procure User Interface
Building Tool
Procure Operating
System
Convert Data
Develop Conversation
Plan
Develop User
Manual
Acceptance
Testing
Plan Acceptance
Test
Conduct
Acceptance Test
Develop Test
Report
Installation
Develop
Installation Plan
Site Preparation
Maintenance
Hardware
Maintenance
Software
Maintenance
Install at
Locations
Headquarters
Site One
Transition
Management
Software Project Management (CS615)
260
© Copyright Virtual University of Pakistan
Sample 4: Chart WBS
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/33
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Sample 4: Chart WBS
Sample WBS - Outline Example-1
0.0 Retail Web Site
1.0 Project Management
2.0 Requirements Gathering
3.0 Analysis  Design
4.0 Site Software Development
4.1 HTML Design and Creation
4.2 Backend Software
4.2.1 Database Implementation
4.2.2 Middleware Development
4.2.3 Security Subsystems
4.2.4 Catalog Engine
4.2.5 Transaction Processing
4.3 Graphics and Interface
4.4 Content Creation
5.0 Testing and Production
Retail Web
Site
Project
Managemen
Requiremen
ts
Design and
Analysis
Site Software
Development
HTML
Design
Backend
Software
Graphics and
Interface
Content
Creation
Database
Implementat
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/33
Security
Subsystems
Catalog
Engine
3.
0
1.0 2.
0
Transaction
Processing
4.
0
5.0
4.
1
4.
2
4.2.1 4.2.2 4.2.3 4.2.4
4.3 4.4
0 0
Software Project Management (CS615)
261
© Copyright Virtual University of Pakistan
Sample WBS - Outline Example-2
1.10 MANAGEMENT
1.1 Plan Project
1.1.1 Develop Project Plan
1.1.2 Update Project Plan
1.2 Track Project
1.2.1 Prepare status reports
1.2.2 Collect/analyze project metrics
1.3 Perform Quality Activities
1.3.1 Prepare QA Plan
1.3.2 Conduct Reviews
1.3.3 Conduct Audits
1.4 Perform Configuration Management
1.4.1 Prepare CM Plan
1.4.2 Develop Project Library
1.4.3 Manage Change Board
1.4.4 Maintain Configuration Items
2.0 DESIGN
2.1 Prepare Preliminary Design
2.1.1 Develop Enterprise Architecture
2.1.2 Prepare Data Flow Diagrams
2.1.3 Prepare Logical Data Model
2.2 Prepare Detailed Design
2.2.1 Prepare Physical Data Model
2.2.2 Prepare Data Dictionary
2.3 Document Design
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/33
2.3.1 Develop Design Specification
2.4 Review Design
3.0 DEVELOPMENT/INTEGRATION
3.1 Develop Software
3.1.1 Develop Server Application
3.1.2 Develop User Interface
3.1.3 Develop XYZ Interface
3.2 Procure Hardware
3.2.1 Procure Server
3.2.2 Procure Workstations
3.3 Procure Software Packages
3.3.1 Procure Database
3.3.2 Procure User Interface Building Tool
3.3.3 Procure Operating System
3.4 Perform Integration Testing
3.5 Convert Data
Software Project Management (CS615)
262
© Copyright Virtual University of Pakistan
3.5.1 Develop Conversion Plan
3.6 Develop User Manual
3.7 Transition Management
4.0 ACCEPTANCE TESTING
4.1 Plan Acceptance Test
4.2 Conduct Acceptance Test
4.3 Develop Test Report
5.0 INSTALLATION
5.1 Develop Installation Plan
5.2 Site Preparation
5.3 Install at Locations
5.3.1 Headquarters
5.3.2 Site 1
6.0 MAINTENANCE
6.1 Hardware Maintenance
6.2 Software Maintenance
(my prompt is that give me simple beginner level examples of all
the topics or text above given by me in this prompt)
Important Note1: do not use analogies.
Important Note2: in this new chat all the topics are part of a
lecture given by one lecturer so keep in mind in that and give
coherent examples.
Lecture #37: Additional Work Breakdown Structure (WBS)
Lecture #37: Additional Work Breakdown Structure (WBS)
Lecture #37: Additional Work Breakdown Structure (WBS)
Lecture #37: Additional Work Breakdown Structure (WBS)
Lecture #37: Additional Work Breakdown Structure (WBS)
Examples
Examples
Examples
Examples
Examples
In today's lecture, we will explore more examples of Work Breakdown Structure (WBS),
specifically focusing on two sample outlines. These examples will demonstrate how to break
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/33
down a project into manageable tasks, ensuring that all aspects are thoroughly planned and
organized.
Sample WBS - Outline Example 1:
Sample WBS - Outline Example 1:
Sample WBS - Outline Example 1:
Sample WBS - Outline Example 1:
Sample WBS - Outline Example 1: Retail Website Development
Retail Website Development
Retail Website Development
Retail Website Development
Retail Website Development
This example breaks down the development of a retail website into its core components.
0.0 Retail Website
0.0 Retail Website
0.0 Retail Website
0.0 Retail Website
0.0 Retail Website
This is the top-level summary representing the entire project.
1.0 Project Management
1.0 Project Management
1.0 Project Management
1.0 Project Management
1.0 Project Management
This section includes all the activities related to managing the project.
2.0 Requirements Gathering
2.0 Requirements Gathering
2.0 Requirements Gathering
2.0 Requirements Gathering
2.0 Requirements Gathering
This involves collecting and documenting all the requirements needed for the website, such
as functionality, user interface design, and security needs.
3.0 Analysis  Design
3.0 Analysis  Design
3.0 Analysis  Design
3.0 Analysis  Design
3.0 Analysis  Design
Here, the project team analyzes the requirements and creates detailed design plans, including
wireframes and system architecture.
4.0 Site Software Development
4.0 Site Software Development
4.0 Site Software Development
4.0 Site Software Development
4.0 Site Software Development
This phase covers the actual creation of the website.
5.0 Testing and Production
5.0 Testing and Production
5.0 Testing and Production
5.0 Testing and Production
5.0 Testing and Production
This phase involves testing the website to ensure it functions correctly and then launching it
for public use.
Sample WBS - Outline Example 2:
Sample WBS - Outline Example 2:
Sample WBS - Outline Example 2:
Sample WBS - Outline Example 2:
Sample WBS - Outline Example 2: Software Development Project
Software Development Project
Software Development Project
Software Development Project
Software Development Project
This example breaks down a general software development project into detailed tasks.
1.0 Management
1.0 Management
1.0 Management
1.0 Management
1.0 Management
This phase includes all activities related to planning, tracking, and maintaining the quality of
the project.
4.1 HTML Design and Creation: This involves designing and coding the website's front-
end using HTML.
4.2 Backend Software: This includes everything related to the server-side of the
website.
4.2.1 Database Implementation: Set up and configure the database where all the
site’s data will be stored.
4.2.2 Middleware Development: Create the software that connects the front-
end with the backend, enabling them to communicate.
4.2.3 Security Subsystems: Develop and implement security features to protect
the website and its data.
4.2.4 Catalog Engine: Build the system that manages the product catalog,
including product listings and categories.
4.2.5 Transaction Processing: Develop the systems that handle customer
transactions, including payment processing.
4.3 Graphics and Interface: Design and integrate the visual elements and user interface
components of the website.
4.4 Content Creation: Develop the text, images, videos, and other content that will be
featured on the website.
1.1 Plan Project: This includes the initial planning activities.
1.1.1 Develop Project Plan: Create a detailed plan that outlines the project’s
goals, tasks, resources, and timeline.
20/08/2024, 16:28 FancyGPT - cs615 lecture 35
chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/33
2.0 Design
2.0 Design
2.0 Design
2.0 Design
2.0 Design
This phase involves creating the system design.
1.1.2 Update Project Plan: Regularly update the plan to reflect changes in the
project scope or timeline.
1.2 Track Pr
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,
CS615	Software Project Management virtual university of Pakistan chatgpt notes ,

More Related Content

PPTX
Software Project Management (SPM)
PPT
project management
PPT
software management, project management,
PDF
Introduction to Project Management Terminologies Orangescrum Tutorial
PPTX
04. Project planning and management.pptx
PDF
Project Planning in Software Engineering
PPTX
Software Project Management
PDF
Advice & Tips To Improve Your Skills
Software Project Management (SPM)
project management
software management, project management,
Introduction to Project Management Terminologies Orangescrum Tutorial
04. Project planning and management.pptx
Project Planning in Software Engineering
Software Project Management
Advice & Tips To Improve Your Skills

Similar to CS615 Software Project Management virtual university of Pakistan chatgpt notes , (20)

DOCX
Pmbok
PDF
Project Management System in Gurgaon India
PDF
Project Management Diploma
PDF
Must Have Features in a Project Management Software
PDF
Software Project Management SPM chapter II
PPT
Project_management_Amit_dubey
PPTX
Project management slide show
PPTX
SPM ppt slide share RMS Parvathi.pptx
PDF
project-management-office-critical-to-successful-project-completion- cuneiform
DOCX
Running Head PROJECT MANAGEMENT METHODOLOGIES & TOOLS1PROJE.docx
PDF
Quality software project managementi need deep explanation for thi.pdf
DOCX
Software project planning and monitoring
PDF
Top 10 project management tips
PPTX
2.6 use of ict in time management
PDF
I012335763
DOCX
Project management IT Project Management
PDF
SPM NOTES cc.pdf unit-2.......................
DOCX
Project management assignment help
PPTX
SOFTWARE DEVELOPMENT BUSINESS PLAN
Pmbok
Project Management System in Gurgaon India
Project Management Diploma
Must Have Features in a Project Management Software
Software Project Management SPM chapter II
Project_management_Amit_dubey
Project management slide show
SPM ppt slide share RMS Parvathi.pptx
project-management-office-critical-to-successful-project-completion- cuneiform
Running Head PROJECT MANAGEMENT METHODOLOGIES & TOOLS1PROJE.docx
Quality software project managementi need deep explanation for thi.pdf
Software project planning and monitoring
Top 10 project management tips
2.6 use of ict in time management
I012335763
Project management IT Project Management
SPM NOTES cc.pdf unit-2.......................
Project management assignment help
SOFTWARE DEVELOPMENT BUSINESS PLAN
Ad

Recently uploaded (20)

PDF
Business Ethics Teaching Materials for college
PPTX
Pharma ospi slides which help in ospi learning
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PPTX
Institutional Correction lecture only . . .
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
RMMM.pdf make it easy to upload and study
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Classroom Observation Tools for Teachers
PDF
Pre independence Education in Inndia.pdf
PDF
Basic Mud Logging Guide for educational purpose
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Business Ethics Teaching Materials for college
Pharma ospi slides which help in ospi learning
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
Institutional Correction lecture only . . .
Week 4 Term 3 Study Techniques revisited.pptx
2.FourierTransform-ShortQuestionswithAnswers.pdf
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
human mycosis Human fungal infections are called human mycosis..pptx
RMMM.pdf make it easy to upload and study
Anesthesia in Laparoscopic Surgery in India
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
102 student loan defaulters named and shamed – Is someone you know on the list?
STATICS OF THE RIGID BODIES Hibbelers.pdf
Classroom Observation Tools for Teachers
Pre independence Education in Inndia.pdf
Basic Mud Logging Guide for educational purpose
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Ad

CS615 Software Project Management virtual university of Pakistan chatgpt notes ,

  • 1. cs615 lecture 1 cs615 lecture 1 cs615 lecture 1 cs615 lecture 1 cs615 lecture 1 1.1 What is Management? Basically, the management involves the following activities:  Planning- deciding what is to be done  Organizing- making arrangements  Staffing- selecting the right people for the job  Directing- giving instructions  Monitoring- checking on progress  Controlling- taking action to remedy hold-ups  Innovating- coming up with new solutions  Representing- liaising with users, etc. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. 1.2 What is Project Management? Project Management is the art of maximizing the probability that a project delivers its goals on Time, to Budget and at the required Quality.
  • 2. The art of planning for the future has always been a human trait. In essence a project can be captured on paper with a few simple elements: a start date, an end date, the tasks that have to be carried out and when they should be finished, and some idea of the resources (people, machines etc) that will be needed during the course of the project. Project management is the application of knowledge, skills, tools, and techniques to project activities to meet project requirements. Project management is accomplished through the use of the processes such as: initiating, planning, executing, controlling, and closing. It is important to note that many of the processes within project management are iterative in nature. This is in part due to the existence of and the necessity for progressive elaboration in a project throughout the project life cycle; i.e., the more you know about your project, the better you are able to manage it. Project management is also defined as a strategic competency that has successfully been applied in such high profile projects as the construction of silk root, organizing and managing the Olympics Games, and the construction of Islamabad- Lahore motorway, just to name a few. If project management can play a major role in these success stories, just imagine what it might be able to do for your own organization. The term project management is sometimes used to
  • 3. describe an organizational approach to the management of ongoing operations. This approach, more properly called management by projects, treats many aspects of ongoing operations as projects to apply project management techniques to them. Software Project Management (CS615) 2 © Copyright Virtual University of Pakistan Almost any human activity that involves carrying out a non- repetitive task can be a project. So we are all project managers! We all practice project management (PM). But there is a big difference between carrying out a very simple project involving one or two people and one involving a complex mix of people, organizations and tasks. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. Here are simple, beginner-level examples for the concepts related to project management that you described: Project Management (Maximizing Probability of Success): 1 A company wants to launch a new mobile app. The project manager ensures that the development team meets their deadlines, stays 2
  • 4. within budget, and delivers a high-quality app that meets user expectations. Planning for the Future (Start Date, End Date, Tasks, Resources): 3 The project manager sets a start date of January 1st for the app development and an end date of June 30th. They outline the tasks (like designing the UI, coding, and testing) and determine the resources needed, such as 3 developers, 1 designer, and specific software tools. 4 Application of Knowledge, Skills, Tools, and Techniques: 5 The project manager uses their experience, along with tools like project management software, to create a detailed project plan. They apply techniques like risk management to identify potential issues and plan how to address them. 6 Processes (Initiating, Planning, Executing, Controlling, Closing): 7 Initiating: The project manager defines the project’s objectives and scope, and gets approval to start. 8 Planning: They develop a detailed plan outlining tasks, timelines, and resources. 9 Executing: The team carries out the plan by developing the app. 10 Controlling: The project manager monitors progress, makes adjustments, and ensures the project stays on track. 11 Closing: Once the app is complete, the project manager closes the project by ensuring all tasks are finished and lessons are documented. 12 Iterative Processes: 13 As the app development progresses, new requirements emerge, and the project manager updates the plan to reflect these changes. This iterative process ensures the project adapts to new information and needs. 14 Project Management as a Strategic Competency: 15 Just like managing large-scale projects like the Olympics, the project manager applies project management practices to successfully deliver the mobile app. These practices help the company achieve its strategic goals. 16
  • 5. 1.3 What is Software Project Management? When the plan starts to involve different things happening at different times, some of which are dependent on each other, plus resources required at different times and in different quantities and perhaps working at different rates, the paper plan could start to cover a vast area and be unreadable. Nevertheless, the idea that complex plans could be analyzed by a computer to allow someone to control a project is the basis of much of the development in technology that now allows projects of any size and complexity, not only to be planned, but also modeled to answer 'what if?' questions. The original programs and computers tended to produce answers long after an event had taken place. Now, there are many project These examples provide a basic understanding of project management and how it is applied in various scenarios. Management by Projects: 17 The company uses project management techniques not just for the app development but also for ongoing operations, such as updating the app after its launch. This approach helps manage all activities as projects with clear goals and timelines. 18 Any Non-Repetitive Task as a Project: 19 Developing the mobile app is a project because it’s a unique, non- repetitive task with a specific goal. Even a small task, like organizing a team meeting to discuss the app, can be managed as a mini-project. 20
  • 6. planning and scheduling programs that can provide real time information, as well as linking to risk analysis, time recording, and costing, estimating and other aspects of project control. But computer programs are not project management: they are tools for project managers to use. Project management is all that mix of components of control, leadership, teamwork, resource management etc that goes into a successful project. Project managers can be found in all industries. Their numbers have grown rapidly as industry and commerce has realized that much of what it does is project work. And as project-based organizations have started to emerge, project management is becoming established as both a professional career path and a way of controlling business. So opportunities in project management now exist not only in being a project manager, but also as part of the support team in a project or program office or as a team leader for part of a project. There are also qualifications that can be attained through the professional associations. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies.
  • 7. Here are simple, beginner-level examples for the concepts related to software project management that you described: Complex Plans Involving Dependencies: 1 Imagine developing a software application where the design must be completed before coding can start, and coding must be done before testing. The project manager creates a detailed plan showing these dependencies, ensuring that tasks are done in the correct order. 2 Computer Analysis for Project Control: 3 The project manager uses project management software to input all tasks, deadlines, and resources. The software helps them analyze the plan, make adjustments, and predict the impact of any changes on the project's timeline and budget. 4 Real-Time Information from Project Planning Tools: 5 As the team works on the project, the project manager uses software that updates in real-time, showing the progress of tasks, tracking the hours worked, and calculating costs. This allows the manager to make informed decisions quickly. 6 Project Management Tools vs. Project Management: 7 While the project manager uses tools like scheduling software, the real work of project management involves coordinating the team, making decisions, solving problems, and ensuring that the project stays on track. 8 Project Managers Across Industries: 9 A project manager in the software industry might be overseeing the development of a new app, while a project manager in construction could be managing the building of a new office. Both use similar principles of project management to achieve their goals. 10 Project-Based Organizations: 11
  • 8. 1.4 What is a Project? A project is an activity with specific goals which takes place over a finite period of time. “A temporary organization that is needed to produce a unique and pre-defined outcome or result at a pre-specified time using pre- determined resources” Projects are often implemented as a means of achieving an organization’s strategic plan. Operations and projects differ primarily in that operations are ongoing and repetitive while projects are temporary and unique. A project can thus be defined in terms of its distinctive characteristics—a project is a temporary endeavor undertaken to create a unique product or service. Temporary means These examples illustrate the core aspects of software project management and how it applies to managing complex software development projects. A software development company might organize its work around projects, with each team working on a different software product. The project manager ensures that each product is developed on time, within budget, and meets quality standards. 12 Opportunities in Project Management: 13 In the software industry, you could be a project manager leading the entire development project, or you could work as a part of the support team, helping to manage specific aspects like scheduling or quality control. There are also professional certifications that can help you advance in this field. 14
  • 9. that every project has a definite beginning and a definite end. Unique means that the product or service is different in some distinguishing way from all other products or services. For many organizations, projects are a means to respond to those requests that cannot be addressed within the organization’s normal operational limits. Projects are undertaken at all levels of the organization. They may involve a single person or many thousands. Their duration ranges from a few weeks to more than five years. Projects may involve a single unit of one organization or may cross organizational boundaries, as in joint ventures and partnering. Examples of projects include: • Developing a new product or service. • Effecting a change in structure, staffing, or style of an organization. • Designing a new transportation vehicle. • Developing or acquiring a new or modified information system. • Constructing a building or facility. • Building a water system for a community in a developing country. • Running a campaign for political office. • Implementing a new business procedure or process. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies.
  • 10. Here are simple, beginner-level examples for the concepts related to projects that you described: Specific Goals and Finite Time Period: 1 A team is tasked with developing a new mobile app within six months. The goal is to create a functional app ready for launch by the deadline. 2 Temporary Organization for a Unique Outcome: 3 A company forms a project team specifically to develop a new software tool. This team works together until the tool is complete, then the project ends. 4 Projects as Part of Strategic Planning: 5 A company wants to enter a new market. To achieve this, they initiate a project to develop a product tailored to that market, helping the company achieve its strategic goals. 6 Difference Between Operations and Projects: 7 The company’s daily operations involve routine tasks like processing customer orders. However, developing a new product is a project because it’s a one-time effort with a unique outcome. 8 Temporary and Unique Characteristics: 9 A software development project starts on January 1st and ends on June 30th. The software created during this project is unique because it has features that are different from any other product the company has released. 10 Projects Across Organizational Levels: 11 At a small company, a project might involve just one person creating a marketing plan over a few weeks. At a large corporation, a project might involve thousands of employees working on a new product line over several years. 12 Cross-Organizational Projects: 13
  • 11. 1. Temporary Temporary means that every project has a definite beginning and a definite end. The end is reached when the project’s objectives have been achieved, or it becomes clear that the project objectives will not or These examples clarify what a project is and how it is distinct from regular operations, emphasizing its temporary nature and unique goals. Two companies collaborate on a joint venture to develop a new technology. This project crosses organizational boundaries and involves teams from both companies working together. 14 Examples of Projects: 15 Developing a New Product: A team creates a new software application. 16 Effecting a Change in Organization: A company restructures its departments to improve efficiency. 17 Designing a New Vehicle: Engineers work on creating a new electric car. 18 Developing a New Information System: A company implements a new software system to manage customer data. 19 Constructing a Building: A construction company builds a new office tower. 20 Building a Water System: A non-profit organization constructs a clean water system for a rural village. 21 Running a Political Campaign: A team organizes and runs a campaign for a political candidate. 22 Implementing a New Business Process: A company introduces a new procedure for handling customer service requests. 23
  • 12. cannot be met, or the need for the project no longer exists and the project is terminated. Temporary does not necessarily mean short in duration; many projects last for several years. In every case, however, the duration of a project is finite; projects are not ongoing efforts. 2. Unique, Product Service or Result Projects involve creating something that has not been done in exactly the same way before and which is, therefore, unique and distinct. Projects create: Software Project Management (CS615) 4 © Copyright Virtual University of Pakistan • A product or artifact that is produced, is quantifiable and can be either an end item in itself or a component item • A capability to perform a service, such as business functions supporting production or distribution • A result, such as new knowledge. For example, a research and development project develops knowledge that can be used to determine whether or not a trend is present or a new process will benefit society. The presence of repetitive elements does not change the fundamental uniqueness of the project work. For example: • A project to develop a new commercial airliner may require multiple proto-types. • A project to bring a new drug to market may require
  • 13. thousands of doses of the drug to support clinical trials. • A real estate development project may include hundreds of individual units. • A development project (e.g., water and sanitation) may be implemented in five geographic areas. 3. Aims/Tasks/Purpose The projects are designed to achieve specific targets defined in terms of aims, tasks or a purpose. The nature and size of the project depends upon complexity of the task, realization of the aims and scope of the purpose any organization wants to achieve. In short project has to be aimed for achieving certain tasks in a given time frame. 4. Limited Time Scale The projects are always designed considering time constraints. Extension to the project completion dead lines are always discouraged as time overrun, costs extra and in some cases opportunity cost for not completing a project is too high. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies.
  • 14. Here are simple, beginner-level examples for the concepts related to projects that you described: Temporary (Definite Beginning and End): 1 A company initiates a project to launch a new website. The project begins on January 1st, and the website goes live on June 30th. Once the website is live, the project ends because the objective has been achieved. 2 Unique Product, Service, or Result: Even if some elements are repetitive, like creating multiple prototypes for a new car model, the overall project is still unique because it aims to create something new that hasn’t been done in exactly the same way before. 3 Product: A team develops a new mobile app that has never been created before. The app is the final product and is unique to this project. 4 Service: A company sets up a new customer support system to handle inquiries more efficiently. This new capability is unique because it’s tailored to the company’s specific needs. 5 Result: A research team conducts a study to find out if a new material is more effective for building. The study produces new knowledge that hadn’t existed before. 6 Aims/Tasks/Purpose: 7 A project is launched to develop a new software feature within three months. The aim is to enhance user experience, and the tasks involve designing, coding, testing, and deploying the feature. The project’s purpose is to achieve this enhancement within the specified time frame. 8 Limited Time Scale: 9 A company plans to roll out a new marketing campaign over a three- month period. The project is designed with a strict deadline to align with a product launch. Any delays would incur additional costs and could result in lost revenue, so meeting the deadline is crucial. 10
  • 15. Progressive, Elaboration Progressive elaboration is a characteristic of projects that accompanies the concepts of temporary and unique. “Progressively” means developing thoroughly in steps, and continuing steadily by increments while elaborated means “worked out with care and detail; developed thoroughly” For example, the project scope will be broadly described early in the project, and made more explicit and detailed as the project team develops a better and more complete understanding of the objectives and deliverables. Progressive elaboration of project specifications must be carefully coordinated with proper project scope definition, particularly if the project is performed under contract. When properly defined, the scope of the project—the work to be done— Software Project Management (CS615) 5 © Copyright Virtual University of Pakistan should be controlled as the project and product specifications are progressively elaborated. The following examples illustrate progressive elaboration in two different These examples illustrate the key aspects of projects, highlighting their temporary nature, uniqueness, specific goals, and the importance of time management.
  • 16. application areas. 9 Example 1. Development of a chemical processing plant begins with process engineering to define the characteristics of the process. These characteristics are used to design the major processing units. This information becomes the basis for engineering design, which defines both the detail plant layout and the mechanical characteristics of the process units and ancillary facilities. All of this results in design drawings that are elaborated to produce fabrication and construction drawings. During construction, interpretations and adaptations are made as needed and subject to proper approval. This further elaboration of the deliverables is captured in as-built drawings, and final operating adjustments are made during testing and turnover. 9 Example 2. The product of an economic development project may initially be defined as: “Improve the quality of life of the lowest income residents of community X.” As the project proceeds, the products may be described more specifically as, for example: “Provide access to food and water to 500 low income residents in community X.” The next round of progressive elaboration might focus exclusively on increasing agriculture production and marketing, with provision of water deemed to be a secondary priority to be initiated once the
  • 17. From ChatGPT, designed with FancyGPT agricultural component is well under way (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies.
  • 18. cs611 lecture 2 cs611 lecture 2 cs611 lecture 2 cs611 lecture 2 cs611 lecture 2 LECTURE # 2 1. Introduction & Fundamentals 1.5 Goals of Project management Project management is the discipline of defining and achieving a set of goals while optimizing the use of allocated resources (time, money, people, space, etc). This includes planning, scheduling and maintaining progress of the activities that comprise the project. Project management is normally reserved for focused, non-repetitive, time-limited activities with some degree of risk and that are beyond the usual scope of program (operational) activities for which the organization is responsible. Project management software describes the tools to efficiently coordinate and automate the various project management component processes. Project management software generally offers extensive reporting features, such as dayto-day status updates of project progress, scheduling and dependency trees, and system-generated alerts when schedules slip beyond pre-set tolerances. Most project management tools include web-accessible interfaces so that employees can access features of the software relevant to their needs, and functionality to allow managers to share resource pools without overbooking. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. Certainly! Here are some straightforward examples for the various concepts mentioned in the text: 1. Introduction & Fundamentals of Project Management 1. Introduction & Fundamentals of Project Management 1. Introduction & Fundamentals of Project Management 1. Introduction & Fundamentals of Project Management 1. Introduction & Fundamentals of Project Management 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/13
  • 19. 1.6 Project Characteristics 1. Temporary Temporary means that every project has a definite beginning and a definite end. The end is reached when the project’s objectives have been achieved, or it becomes clear that the project objectives will not or cannot be met, or the need for the project no longer exists and the project is terminated. Temporary does not necessarily mean short in duration; many projects last for several years. In every case, however, the duration of a project is finite; projects are Example: Imagine you're organizing a birthday party. You need to plan out all the activities, decide on a theme, choose the food, send out invitations, and arrange for decorations. Each of these tasks needs to be managed effectively to ensure the party is successful. 1.5 Goals of Project Management 1.5 Goals of Project Management 1.5 Goals of Project Management 1.5 Goals of Project Management 1.5 Goals of Project Management Example: The main goal of organizing the birthday party is to ensure everyone has a good time. You have a budget for food, decorations, and entertainment. By planning carefully and sticking to the budget, you can throw a great party without overspending. Project Management Software Project Management Software Project Management Software Project Management Software Project Management Software Example: To organize the birthday party, you might use a digital tool that allows you to create a checklist of tasks, assign deadlines, and send reminders. The software could help you keep track of who’s doing what and alert you if something isn’t on schedule. Extensive Reporting Features Extensive Reporting Features Extensive Reporting Features Extensive Reporting Features Extensive Reporting Features Example: The party planning software can provide updates on what’s been done and what’s still pending. If you notice that the decorations aren’t going to be ready on time, the software can notify you so that you can make adjustments. Scheduling and Dependency Trees Scheduling and Dependency Trees Scheduling and Dependency Trees Scheduling and Dependency Trees Scheduling and Dependency Trees Example: You might need to schedule tasks in a specific order, like buying ingredients for a cake before baking it. The software helps you visualize the order of tasks and ensures that each step is completed before moving on to the next. System-Generated Alerts System-Generated Alerts System-Generated Alerts System-Generated Alerts System-Generated Alerts Example: If the catering is delayed, the software can automatically send you an alert so you can find another solution quickly. Web-Accessible Interfaces Web-Accessible Interfaces Web-Accessible Interfaces Web-Accessible Interfaces Web-Accessible Interfaces Example: If you’re organizing the party with a team, everyone can log into the planning software from their own devices to see the latest updates and check their tasks. Sharing Resource Pools Without Overbooking Sharing Resource Pools Without Overbooking Sharing Resource Pools Without Overbooking Sharing Resource Pools Without Overbooking Sharing Resource Pools Without Overbooking Example: If the party venue has a limited number of tables, the software helps you allocate them to different activities (like dining and games) without assigning the same table to multiple tasks at the same time. These examples illustrate the basic concepts of project management in a simple, practical way, showing how effective planning and the right tools can help achieve project goals. 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/13
  • 20. not ongoing efforts. 2. Unique, Product Service or Result Projects involve creating something that has not been done in exactly the same way before and which is, therefore, unique and distinct. Projects create: • A product or artifact that is produced, is quantifiable and can be either an end item in itself or a component item • A capability to perform a service, such as business functions supporting production or distribution Software Project Management (CS615) 7 © Copyright Virtual University of Pakistan • A result, such as new knowledge. For example, a research and development project develops knowledge that can be used to determine whether or not a trend is present or a new process will benefit society. The presence of repetitive elements does not change the fundamental uniqueness of the project work. For example: • A project to develop a new commercial airliner may require multiple proto-types. • A project to bring a new drug to market may require thousands of doses of the drug to support clinical trials. • A real estate development project may include hundreds of individual units. • A development project (e.g., water and sanitation) may be implemented in five geographic areas. 5. Aims/Tasks/Purpose The projects are designed to achieve specific targets defined in terms of aims, tasks or a purpose. The nature and size of the project depends upon complexity of the task, realization of the aims and scope of the purpose any organization wants to achieve. In short project has to be aimed for achieving certain tasks in a given time frame. 6. Limited Time Scale The projects are always designed considering time constraints. Extension to the project completion dead lines are always discouraged as 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/13
  • 21. time overrun, costs extra and in some cases opportunity cost for not completing a project is too high. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. 1.7 Four Project Dimensions Software project management is an umbrella activity within software engineering. Here are simple, beginner-level examples for the concepts of project characteristics: 1. Temporary 1. Temporary 1. Temporary 1. Temporary 1. Temporary Example: Constructing a new house is a project with a specific start and end date. It starts when the land is purchased and the construction begins, and it ends when the house is completed and ready for occupancy. 2. Unique Product, Service, or Result 2. Unique Product, Service, or Result 2. Unique Product, Service, or Result 2. Unique Product, Service, or Result 2. Unique Product, Service, or Result Example 1: Product: Designing and manufacturing a custom piece of furniture, like a one-of- a-kind dining table, is unique because it’s created to specific customer requirements. Example 2: Service: Developing a new delivery service app for a company is unique because it’s tailored to the company's specific logistics needs. Example 3: Result: Conducting scientific research to discover a new medical treatment is unique because it generates new knowledge and potential health benefits. Presence of Repetitive Elements in Unique Projects Presence of Repetitive Elements in Unique Projects Presence of Repetitive Elements in Unique Projects Presence of Repetitive Elements in Unique Projects Presence of Repetitive Elements in Unique Projects Example 1: Building multiple prototypes of a new electric car model. Even though each prototype might use similar components, the overall car model is unique. Example 2: Developing a new medication that requires producing thousands of pills for different stages of clinical trials. Example 3: Constructing a new residential community where each house is similar but customized for different families. Example 4: Implementing a clean water project in several different villages. Each village might have different needs and conditions, making each part of the project unique. 5. Aims/Tasks/Purpose 5. Aims/Tasks/Purpose 5. Aims/Tasks/Purpose 5. Aims/Tasks/Purpose 5. Aims/Tasks/Purpose Example: A city planning project aims to reduce traffic congestion by introducing new traffic management strategies. The tasks involve analyzing traffic patterns, designing the strategy, and implementing traffic lights and signs. 6. Limited Time Scale 6. Limited Time Scale 6. Limited Time Scale 6. Limited Time Scale 6. Limited Time Scale Example: A school renovation project is scheduled to be completed during the summer break. If the work extends into the school year, it could disrupt classes, making it essential to finish within the planned time frame. 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/13
  • 22. It begins before any technical activity is initiated and continues throughout the definition, development, and support of computer software. Four P's have a substantial influence on software project management- people, product, process, and project. • People must be organized into effective teams, motivated to do high-quality software work, and coordinated to achieve effective communication. • The product requirements must be communicated from customer to developer, partitioned (decomposed) into their constituent parts, and positioned for work by the software team. • The process must be adapted to the people and the problem. A common process framework is selected, an appropriate software engineering paradigm is applied, and a set of work tasks is chosen to get the job done. Software Project Management (CS615) 8 © Copyright Virtual University of Pakistan • The project must be organized in a manner that enables the software team to succeed. Effective software project management focuses on the four P’s: people, product, process, and project. The order is not arbitrary. The manager who forgets that software engineering work is an intensely human endeavor will never have Success in project management. A manager who fails to encourage comprehensive customer communication early in the evolution of a project risks building an elegant solution for the wrong problem. The manager who pays little attention to the process runs the risk of inserting competent technical methods and tools into a vacuum. The manager who embarks without a solid project plan jeopardizes the success of the product. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/13
  • 23. ⇒People In a study published by the IEEE, the engineering vice presidents of three major technology companies were asked the most important contributor to a successful software project. They answered in the following way: VP 1: I guess if you had to pick one thing out that is most important in our environment. I’d say it’s not the tools that we use, it’s the people. VP 2: The most important ingredient that was successful on this project was having smart people…very little else matters in my opinion....The most important thing you do for a project is selecting the staff...The success of the software development organization is very, very much associated with the Here are straightforward examples for the four project dimensions in software project management: People People People People People Example: A software development team consists of developers, testers, and a project manager. The project manager ensures everyone knows their roles, facilitates communication, and motivates the team to work together to build a high-quality software application. Product Product Product Product Product Example: A company wants to develop a new mobile app for online shopping. The customer’s requirements are gathered, organized, and then broken down into specific features such as a product catalog, shopping cart, and payment system. Each feature is then assigned to different developers in the team. Process Process Process Process Process Example: The software development team chooses the Agile methodology for their project. They decide on a set of sprints, conduct daily stand-up meetings, and use a task board to track progress. The process is tailored to fit the team's style and the specifics of the online shopping app they are building. Project Project Project Project Project Example: The project manager creates a detailed project plan that outlines the timeline, milestones, and resource allocation. The plan includes a schedule for each phase of the app development, from initial design to testing and deployment. This ensures the team has a clear roadmap to follow, increasing the likelihood of the project’s success. These examples illustrate how people, product, process, and project are integral to effective software project management, with each dimension playing a critical role in the overall success of the endeavor. 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/13
  • 24. ability to recruit good people. VP 3: The only rule I have in management is to ensure I have good people – real good people-and that I grow good people – and that I provide an environment in which good people can produce. Indeed, this is a compelling testimonial on the importance of people in the software engineering process. And yet, all of us, from senior engineering vice presidents to the lowliest practitioner, often take people for granted. Managers argue (as the preceding group had) that people are primary, but their actions sometimes belie their words. In this section we examine the players who participate in the software process and the manner in which they are organized to perform effective software engineering. 1. The Players The software process (and every software project) is populated by players who can be categorized into one of five constituencies: 1. Senior managers who define the business issues that often have significant influence on the project. Software Project Management (CS615) 9 © Copyright Virtual University of Pakistan 2. Project (technical) managers who must plan, motivate, organize, and control the practitioners who do software work. 3. Practitioners who deliver the technical skills that are necessary to engineer a product or application. 4. Customers who specify the requirements for the software to be engineered and other stakeholders who have a peripheral interest in the outcome. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. Here are straightforward examples related to the importance of people and the different players in software engineering: 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/13
  • 25. 2. End-users Who interact with the software once it is released for production use. Every software project is populated by people who fall within this taxonomy. To be effective, the project team must be organized in a way that maximizes each person’s skills and abilities. And that’s the job of the team leader. 3. Team Leaders Project management is a people-intensive activity, and for this reason, competent practitioners often make poor team leaders. They simply don’t have the right mix of people skills. And yet, as Edgemon states: “unfortunately and all too frequently it seems, individuals just fall into a project manager role and become accidental project managers.” Importance of People Importance of People Importance of People Importance of People Importance of People Example: A software development project was successful because the team was composed of skilled developers, designers, and testers. Their collective expertise, communication, and problem-solving abilities contributed to the timely delivery of a high-quality software product. The Players in the Software Process The Players in the Software Process The Players in the Software Process The Players in the Software Process The Players in the Software Process These examples highlight the roles and significance of different players in the software engineering process, emphasizing that a successful software project relies on the right people with the right skills and responsibilities. Senior Managers Example: A senior manager at a software company decides the overall direction for a new project by identifying business opportunities, setting goals, and allocating budget and resources. Their decisions significantly impact the project's scope and focus. 1 Project (Technical) Managers Example: The project manager in a software development team creates the project plan, organizes the team’s work schedule, motivates the team to meet deadlines, and ensures that the project stays on track. They act as a bridge between senior management and the practitioners. 2 Practitioners Example: Practitioners, such as software developers and testers, are responsible for writing code, designing the system architecture, and ensuring that the software meets quality standards. Their technical skills are crucial for turning project requirements into a functional product. 3 Customers and Other Stakeholders Example: Customers provide the list of features and functionalities they want in the software, which guides the development process. Other stakeholders, such as company executives or end-users, may provide feedback that influences the design and functionality of the software. 4 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/13
  • 26. [EDG95]. The cultivation of motivated, highly skilled software people has been discussed since the 1960s (e.g., [COUBO] [WIT94} [DEM9B]). In fact, the “people factor’ is so important that the Software Engineering Institute has developed a people management capability maturity model (PMCMM), “to enhance the readiness of software organizations to undertake increasingly complex applications by helping to attract, grow, motivate, deploy, and retain the talent needed to improve their software development capability” [CUR94]. The people management maturity model defines the following key practice areas for software people: recruiting, selection, performance management, training, compensation, career development, organization and work design, and team/culture development. Organizations that achieve high levels of maturity in the people management area have a higher likelihood of implementing effective software engineering practices. The PM-CMM is a companion to the software capability maturity model that guides organizations in the creation of a mature software process. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. Here are simple examples for the concepts related to end-users, team leaders, and the People Management Capability Maturity Model (PM-CMM) in software engineering: 2. End-users 2. End-users 2. End-users 2. End-users 2. End-users Example: After developing a new mobile banking app, the end-users are the bank's customers who download and use the app to check their account balances, transfer funds, and pay bills. The feedback and usage patterns of these end-users are critical for the ongoing improvement of the app. 3. Team Leaders 3. Team Leaders 3. Team Leaders 3. Team Leaders 3. Team Leaders Example: In a software development project, the team leader is responsible for coordinating the efforts of the team, ensuring that tasks are completed on time, and resolving any issues that arise. The team leader facilitates communication within the team and with stakeholders, making sure everyone is aligned with the project goals. 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/13
  • 27. ⇒The Process Software Project Management (CS615) 10 © Copyright Virtual University of Pakistan In a fascinating book that provides an economist’s view of software and software engineering, Howard Baetjer. Jr, comments on the software process: Software development is a social learning process. The process is a dialogue in which the knowledge that must become the software is brought together and embodied in the software. The process provides interaction between users and People Management Capability Maturity Model (PM- People Management Capability Maturity Model (PM- People Management Capability Maturity Model (PM- People Management Capability Maturity Model (PM- People Management Capability Maturity Model (PM- CMM) CMM) CMM) CMM) CMM) These examples illustrate how end-users, team leaders, and various aspects of people management contribute to the effectiveness of software engineering projects. Recruiting and Selection Example: A software company actively seeks talented software engineers by posting job openings, attending career fairs, and conducting interviews to select candidates with the right skills and cultural fit for the team. 1 Performance Management Example: The project manager regularly meets with team members to discuss their progress, provides constructive feedback, and sets goals to help improve their performance and contribute to the project’s success. 2 Training Example: The company provides training sessions and workshops to help software developers learn new programming languages and tools, ensuring they stay updated with the latest industry practices. 3 Compensation Example: To retain talented employees, the company offers competitive salaries, bonuses, and other benefits based on the employees' performance and contributions to the project. 4 Career Development Example: The organization has a career development program that helps employees identify their career goals, offers mentorship opportunities, and provides a clear path for advancement within the company. 5 Organization and Work Design Example: The project team is structured to have clear roles and responsibilities, with each member working on tasks that match their expertise, ensuring an efficient workflow and effective collaboration. 6 Team/Culture Development Example: The team leader fosters a positive work environment by encouraging open communication, recognizing achievements, and organizing team-building activities to enhance teamwork and morale. 7 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/13
  • 28. designers: between users and evolving tools, and between designers and evolving tools [technology] It is an iterative process in which the evolving tool itself serves as the medium for communication, with each new round of the dialogue eliciting more useful knowledge from the people involved. When you build a product or system, it’s important to go through a series of predictable steps – a road map that helps you create a timely, high-quality result, The road map that you follow is called a ‘software process’ . Software engineers and their managers adapt the process to their needs and then follow it. In addition, the people who have ties defined by the process requested the software play a role in the software process. At a detailed level, the process that you adopt depends on the software you’re building. One process might be appropriate for creating software for an aircraft avionics system, while an entirely different process would be indicated for the creation of a web site. From the point of view of a software engineer, the work products are the programs, documents and data produces as a consequence of the software engineering activities defined by the process. A software process provides the framework from which a comprehensive plan for software development can be established. A small number of framework activities are applicable to all software projects, regardless of their size or complexity. A number of different task sets-tasks, milestones, work products and; quality assurance points-enable the framework activities to be adapted to the characteristics of the software project and the requirements of the project team. Finally, umbrella activities – such as software quality assurance, software configuration management, and measurement – overlay the process model. Umbrella activities are independent of anyone framework 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/13
  • 29. activity and occur throughout the process. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. Here are straightforward examples for the concepts of the software process in software project management: Software Development as a Social Learning Process Software Development as a Social Learning Process Software Development as a Social Learning Process Software Development as a Social Learning Process Software Development as a Social Learning Process Example: During the development of a new software application, developers frequently meet with users to discuss their needs. As the software evolves, users test new features and provide feedback, which the developers then use to improve the application. Software Process as a Road Map Software Process as a Road Map Software Process as a Road Map Software Process as a Road Map Software Process as a Road Map Example: A software development team follows a predetermined sequence of steps to create a new mobile application. These steps include requirements gathering, design, coding, testing, and deployment. This organized approach helps ensure the app is completed on time and meets quality standards. Adapting the Process to Different Needs Adapting the Process to Different Needs Adapting the Process to Different Needs Adapting the Process to Different Needs Adapting the Process to Different Needs Example 1: Developing software for an aircraft avionics system requires a rigorous, detailed process that includes extensive testing and documentation to ensure safety and compliance with regulations. Example 2: Creating a website might involve a more flexible process that emphasizes rapid prototyping and frequent updates based on user feedback. Work Products Work Products Work Products Work Products Work Products Example: The work products for a software project might include the source code, design documents, user manuals, and test reports. These are all generated as part of the software development activities. Framework Activities Framework Activities Framework Activities Framework Activities Framework Activities Example: Framework activities in software development typically include planning, analysis, design, implementation, and maintenance. These activities form the basis of any software development process. Task Sets Task Sets Task Sets Task Sets Task Sets Example: For a given software project, the task set might include defining project milestones, developing a project schedule, producing design documents, writing code, conducting code reviews, and performing testing. Umbrella Activities Umbrella Activities Umbrella Activities Umbrella Activities Umbrella Activities Example: Throughout the software development process, the team performs software quality assurance activities to ensure the product meets the required standards. They also manage software configurations to keep track of different versions of the code and collect measurements to track progress and performance. These examples illustrate how the software process is structured and adapted to suit different projects, ensuring the delivery of high-quality software products. 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/13
  • 30. From ChatGPT, designed with FancyGPT 13/08/2024, 21:52 FancyGPT - cs611 lecture 2 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/13
  • 31. cs615 lecture 3 cs615 lecture 3 cs615 lecture 3 cs615 lecture 3 cs615 lecture 3 LECTURE # 3 1. Introduction & Fundamentals 1.8 Project Dimensions ⇒Product and Technology – The 80:20, rule was originated by Vilfredo Pareto, an Italian economist who studies the distribution of wealth in a variety of countries around 1900. He discovered a common phenomenon: about 80% of the wealth in most countries was controlled by a consistent minority -- about 20% of the people. Pareto called this a "predictable imbalance." His observation eventually became known as either the "80:20 rule" or "Pareto's Principle." The credit for adapting Pareto's economic observations to business goes to the "Father of Total Quality Management," service quality consultant Joseph M. Juran. In 1950, he published "The Quality Control Handbook," which first recognized the applicability of the Pareto principle in the context of inventory management, e.g.: • 20% of the repair parts normally account for 80 percent of the total inventory
  • 32. • 80% of production volume usually comes from 20% of the producers He subsequently recognized that this rule of thumb was universally applicable across fields of endeavor. As a credit to Pareto's work, Juran named his finding the Pareto Principle. This universal management theory became generalized as "the 80-20 Rule": The "80:20 rule" has become one of the best known "leadership shorthand terms" reflecting the notion that most of the results (of a life, of a program, of a financial campaign) come from a minority of effort (or people, or input). The Rule, states that a small number of causes (20%) is responsible for a large percentage (80%) of the effect. It means that in anything a few (20 percent) are vital and many (80 percent) are trivial. There is an inherent imbalance between cause and effect, effort and reward, inputs and outputs, etc; and that imbalance tends to the ratio of 80:20. So, if we know which 20% of our work produces 80% of our income, we can do more of it and our income will increase proportionately! Software Project Management (CS615) 12 © Copyright Virtual University of Pakistan You know 20 percent of you stock takes up 80 percent of your warehouse space and that 80 percent of your stock comes from 20 percent of your suppliers. Also
  • 33. 80 percent of your sales will come from 20 percent of your sales staff. 20 percent of your staff will cause 80 percent of your problems, but another 20 percent of your staff will provide 80 percent of your production. It works both ways. Some Sample 80/20 Rule Applications 80% of process defects arise from 20% of the process issues. 20% of your sales force produces 80% of your company revenues. 80% of delays in schedule arise from 20% of the possible causes of the delays. 80% of customer complaints arise from 20% of your products or services. How It Can Help You – The value of the Pareto Principle for a manager is that it reminds you to focus on the 20 percent that matters. Of the things you do during your day, only 20 percent really matter. Those 20 percent produce 80 percent of your results. Identify and Characteristic focus on those things. When the fire drills of the day begin to sap your time, remind yourself of the 20 percent you need to focus on. If something in the schedule has to slip, if something isn't going to get done, make sure it's not part of that 20 percent. Pareto's Principle, the 80/20 Rule, should serve as a daily reminder to focus 80 percent of your time and energy on the 20 percent of you work that is really
  • 34. important. Don't just "work smart", work smart on the right things. – Size The larger product, there will be more requirements and features to deliver, eventually it will take more time in its production. So if you cut the size of the produce to half it will save you 60% of the effort. – Characteristic – Development Tools Software Project Management (CS615) 13 © Copyright Virtual University of Pakistan Customer delivered value (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in
  • 35. this prompt in image given by me) Important Note: do not use analogies. Here are simple, beginner-level examples of the concepts illustrated in the image related to "Customer Delivered Value": Total Value Total Value Total Value Total Value Total Value Total Costs Total Costs Total Costs Total Costs Total Costs Value of Products: 1 This is the worth of the physical products provided to the customer. For example, if you sell a smartphone, the value is what the customer perceives in terms of its features, durability, and performance. 2 Value of Services: 3 This refers to the worth of any services provided alongside the product. For instance, if you offer free customer support or extended warranties with the smartphone, this adds to the total value. 4 Personal Value: 5 This is the individual benefit the customer gains from the product or service. For example, a person might value a smartphone because it helps them stay connected with loved ones. 6 Image Value: 7 This is the value that comes from the product or service's ability to enhance the customer’s social image or status. For instance, owning a high-end smartphone might make the customer feel more prestigious or up-to-date with technology. 8 Financial Cost: 1 This is the actual amount of money the customer pays for the product or service. For example, the price of the smartphone itself. 2 Time Cost: 3
  • 36. 1.9 Project Phases Organizations performing projects will usually divide each project into several Project phases to improve management control and provide for links to the ongoing operations of the performing organization. Collectively, the project phases are known as the project life cycle. Software development, just like most other activities, has a Real Value to the Customer Real Value to the Customer Real Value to the Customer Real Value to the Customer Real Value to the Customer These examples help to understand the components that contribute to the overall satisfaction a customer feels after making a purchase. This refers to the time the customer spends in acquiring the product or service. For instance, the time spent researching different smartphones or the time taken to travel to the store and purchase it. 4 Energy Cost: 5 This is the physical or mental effort the customer has to invest in obtaining the product or service. For example, the effort needed to compare different models and make a decision. 6 Psychical Cost: 7 This refers to the psychological stress or discomfort the customer may experience in the process of buying or using the product. For example, the anxiety a customer might feel about whether they are making the right choice in purchasing a specific smartphone. 8 The real value is calculated by subtracting the total costs from the total value. Example: If the perceived value of the smartphone (including its features, services, and image value) is high, and the costs (money, time, energy, and stress) are low, the real value to the customer is positive, making them satisfied with their purchase.
  • 37. beginning, middle and an end. The end of one development activity is sometimes perceived as being linked to the beginning of a new development activity thus producing a cycle of beginningmiddle-end, link, beginning-middle-end, link, and so forth. This view of software development is referred to as the software development life cycle. A project has five phases. Here's a brief summary of each: ⇒Initiation Articulate your vision for the project, establish goals, assemble your team, and define expectations and the scope of your project. ⇒Planning Refine the scope, identify specific tasks and activities to be completed, and develop a schedule and budget. ⇒Executing Accomplish your goals by leading your team, solving problems, and building your project. Value of products Value of services Financial cost Personal value Psychical cost Image value Time cost Real value to the customer Total value Total costs
  • 38. Energy cost + - Software Project Management (CS615) 14 © Copyright Virtual University of Pakistan ⇒Controlling Monitor changes to the project make corrections, adjust your schedule to respond to problems, or adjust your expectations and goals. ⇒Closing Deliver your project to your audience, acknowledge results, and assess its success. Take the time to compose a written evaluation of the project and the development effort. The middle three phases are not sequential. You will find that you are constantly planning, executing, and controlling your project as necessary. Aren't these phases really just common sense? In many ways, yes, but keep in mind that software development, whether a few Web pages or a complex CDROM, is a complex, unpredictable process. Most software projects (something like 80 percent) are delivered late, substantially over budget, and incomplete. The more effort you put into managing your project, the more you increase your chances of success. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in
  • 39. this prompt) Important Note: do not use analogies. – Characteristics of Project Phases Each project phase is marked by completion of one or more deliverables. A deliverable is a tangible, verifiable work product such as a feasibility study, a detail design, or a working prototype. The deliverables, and hence the phases, are part of a generally sequential logic designed to ensure proper definition of the product of the project. The conclusion of a project phase is generally marked by a review of both key deliverables and project performance to date, to a) determine if the project should continue into its next phase and b) detect and correct errors cost effectively. These phase-end reviews are often called phase exits, stage gates, or kill points. Each project phase normally includes a set of defined deliverables designed to establish the desired level of management control. The majority of these items are
  • 40. related to the primary phase deliverable, and the phases typically take their names from these items: requirements, design, build, test, startup, turnover, and others, as appropriate. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. – Characteristics of the Project Life Cycle The project life cycle serves to define the beginning and the end of a project. For example, when an organization identifies an opportunity to which it would like to respond, it will often authorize a needs assessment and/or a feasibility study to decide if it should undertake a project. The project life- cycle definition will determine whether the feasibility study is treated as the first project phase or as a separate, standalone project. Software Project Management (CS615) 15 © Copyright Virtual University of Pakistan The project life-cycle definition will also determine
  • 41. which transitional actions at the beginning and the end of the project are included and which are not. In this manner, the project life-cycle definition can be used to link the project to the ongoing operations of the performing organization. The phase sequence defined by most project life cycles generally involves some form of technology transfer or handoff such as requirements to design, construction to operations, or design to manufacturing. Deliverables from the preceding phase are usually approved before work starts on the next phase. However, a subsequent phase is sometimes begun prior to approval of the previous phase deliverables when the risks involved are deemed acceptable. This practice of overlapping phases is often called fast tracking. Project life cycles generally define: ƒ What technical work should be done in each phase (e.g., is the work of the architect part of the definition phase or part of the execution phase?). ƒ Who should be involved in each phase (e.g., implementers who need to be involved with requirements and design). ƒ Project life-cycle descriptions may be very general or very detailed. Highly detailed descriptions may have numerous forms, charts, and checklists to provide structure and consistency. Such detailed approaches are often called
  • 42. project management methodologies. ƒ Most project life-cycle descriptions share a number of common characteristics: ƒ Cost and staffing levels are low at the start, higher toward the end, and drop rapidly as the project draws to a conclusion. ƒ The probability of successfully completing the project is lowest, and hence risk and uncertainty are highest, at the start of the project. The probability of successful completion generally gets progressively higher as the project continues. ƒ The ability of the stakeholders to influence the final characteristics of the project’s product and the final cost of the project is highest at the start and gets progressively lower as the project continues. A major contributor to this phenomenon is that the cost of changes and error correction generally increases as the project continues. Care should be taken to distinguish the project life cycle from the product life cycle. For example, a project undertaken to bring a new desktop computer to market is but one phase or stage of the product life cycle. Although many project life cycles have similar phase names with similar deliverables required, few are identical. Most have four or five phases, but some Software Project Management (CS615)
  • 43. 16 © Copyright Virtual University of Pakistan have nine or more. Even within a single application area, there can be significant variations. One organization’s software development life cycle may have a single design phase while another’s has separate phases for functional and detail design. Subprojects within projects may also have distinct project life cycles. For example, an architectural firm hired to design a new office building is first involved in the owner’s definition phase when doing the design, and in the owner’s implementation phase when supporting the construction effort. The architect’s design project, however, will have its own series of phases from conceptual development through definition and implementation to closure. The architect may even treat designing the facility and supporting the construction as separate projects with their own distinct phases. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer.
  • 44. – Project Life Cycle includes the following Phases and activities: A. Concept Phase 1. User Need 2. Initial Investigation 3. User Review 4. System Performance Design 5. Candidate Review 6. Study Phase Report B. Requirements Phase 1. The software requirements specification document 2. The project development plan 3. The software test plan C. Design Phase 1. General System Review 2. Processing Requirements Identification 3. Data Base Design 4. Control Requirements 5. Output Design 6. Input Design 7. Software Selection 8. Equipment Selection/Acquisition 9. People 10. Reference Manual Identification 11. Plans 12. Design Specifications Preparation 13. Design Phase Report Preparation D. Development Phase
  • 45. Software Project Management (CS615) 17 © Copyright Virtual University of Pakistan 1. Implementation Planning 2. Computer Program Design 3. User Review 4. Equipment Acquisition and Installation 5. Coding and Debugging 6. Computer Program Testing 7. System Testing 8. Reference Manual Preparation 9. Personnel Training 10. Changeover Plan Preparation 11. Development Phase Report Preparation 12. User Acceptance Review E. Operation Phase 1. System Changeover 2. Routine Operation 3. System Performance Evaluation 4. System Changes/Enhancements (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Here are simple, beginner-level examples of each phase and activity in the project life cycle, presented in a coherent manner:
  • 46. A. Concept Phase A. Concept Phase A. Concept Phase A. Concept Phase A. Concept Phase B. Requirements Phase B. Requirements Phase B. Requirements Phase B. Requirements Phase B. Requirements Phase C. Design Phase C. Design Phase C. Design Phase C. Design Phase C. Design Phase User Need 1 Example: A company identifies the need for a new inventory management system because their current system is outdated and lacks essential features. 2 Initial Investigation 3 Example: The company conducts an investigation to explore if creating a new system is feasible. They consider costs, time, and resources required for the project. 4 User Review 5 Example: The company gathers feedback from potential users, such as warehouse managers, to ensure the system will meet their needs. 6 System Performance Design 7 Example: Initial designs are created that specify how fast the system should work, how much data it should handle, and other performance requirements. 8 Candidate Review 9 Example: The company evaluates different options or solutions, such as building a custom system or purchasing a pre-built one. 10 Study Phase Report 11 Example: A report is compiled summarizing the findings of the investigation, user feedback, and performance design, with recommendations on how to proceed. 12 The Software Requirements Specification Document 1 Example: A detailed document is created outlining all the features and functions the new inventory management system must have, such as barcode scanning and inventory tracking. 2 The Project Development Plan 3 Example: A plan is made to outline how the project will be executed, including timelines, milestones, and resource allocation. 4 The Software Test Plan 5 Example: A plan is created detailing how the new system will be tested, such as defining test cases for functionality and performance. 6
  • 47. General System Review 1 Example: The project team reviews the overall system design to ensure it meets the requirements and is technically feasible. 2 Processing Requirements Identification 3 Example: The team defines what data processing will be needed, such as how the system will handle large volumes of inventory data. 4 Database Design 5 Example: A database is designed to store all inventory information, ensuring it is secure, scalable, and accessible. 6 Control Requirements 7 Example: The team specifies how the system will control access to the data, such as implementing user permissions and roles. 8 Output Design 9 Example: The team designs how reports and data will be presented, such as generating inventory reports for management. 10 Input Design 11 Example: The team designs how data will be entered into the system, such as using barcode scanners or manual entry forms. 12 Software Selection 13 Example: The team chooses the specific software tools and platforms needed to build the system, such as a programming language or database software. 14 Equipment Selection/Acquisition 15 Example: The team selects the hardware required for the system, such as servers and barcode scanners, and begins the acquisition process. 16 People 17 Example: The project team identifies and assigns roles to the necessary personnel, such as developers, testers, and system administrators. 18 Reference Manual Identification 19 Example: The team decides which user manuals and technical documentation will be needed for system users and support staff. Plans 1
  • 48. D. Development Phase D. Development Phase D. Development Phase D. Development Phase D. Development Phase Example: The team finalizes various plans, such as the implementation plan, training plan, and support plan for the system. Design Specifications Preparation 1 Example: Detailed design documents are created that specify how each part of the system will be built and how the components will work together. Design Phase Report Preparation 1 Example: A report summarizing the design phase activities and deliverables is prepared, ensuring that all design work is complete and reviewed. Implementation Planning 1 Example: The team prepares a plan for how the system will be developed and implemented, including timelines, resources, and strategies. 2 Computer Program Design 3 Example: Detailed designs for the software code are created, outlining how the various functions and features will be implemented. 4 User Review 5 Example: The team reviews the designs and development plans with end users to ensure their needs are still being met. 6 Equipment Acquisition and Installation 7 Example: The necessary hardware for the system, such as servers and workstations, is purchased and installed. 8 Coding and Debugging 9 Example: Developers begin writing the code for the system and fixing any bugs that arise during the process. 10 Computer Program Testing 11 Example: The team tests individual parts of the software to ensure they work correctly, such as testing the inventory tracking feature. 12 System Testing 13 Example: The entire system is tested as a whole to ensure all components work together smoothly, including performance and security testing. 14 Reference Manual Preparation 15
  • 49. E. Operation Phase E. Operation Phase E. Operation Phase E. Operation Phase E. Operation Phase This coherent breakdown outlines each phase and activity in the project life cycle with simple, direct examples for better understanding. Example: User manuals and technical documentation are written to guide users and support staff in using and maintaining the system. 16 Personnel Training 17 Example: Training sessions are conducted for the staff who will use and manage the system, such as warehouse employees and IT support. 18 Changeover Plan Preparation 19 Example: A plan is created to transition from the old inventory system to the new one, ensuring minimal disruption to operations. Development Phase Report Preparation 1 Example: A report summarizing the development phase is prepared, detailing progress, testing results, and next steps. User Acceptance Review 1 Example: The system is presented to the users for final approval, ensuring it meets all requirements and is ready for deployment. System Changeover 1 Example: The new inventory management system is rolled out to replace the old one, with all data and operations transferred. 2 Routine Operation 3 Example: The system is now in daily use by the company, handling inventory tracking, ordering, and reporting as part of regular operations. 4 System Performance Evaluation 5 Example: The team monitors the system’s performance to ensure it is working efficiently and meets the company's needs. 6 System Changes/Enhancements 7 Example: Based on performance evaluation and user feedback, the team makes necessary updates or adds new features to improve the system further. 8
  • 50. 1.10 Software Development Lifecycle ⇒Water Fall Theme Software development, just like most other activities, has a beginning, middle and an end. The end of one development activity is sometimes perceived as being linked to the beginning of a new development activity thus producing a cycle of beginning-middle-end, link, beginning-middle-end, link, and so forth. This view of software development is referred to as the software development life cycle. There are many variations of the software development life cycle. Figure 1 presents a simple life cycle that was common during the first few decades of software development. In those early days of software development, the programmer would create programs by iterating from code to fix then back to code, and then to fix again, until something acceptable was (hopefully) produced. At the start of the cycle, there was usually no clear concept of what was required, and the basic development procedure was a form of 'let's see what we can do' approach. The software development method represented by the development cycle in Fig.1 is often referred to as the code and fix method (for obvious reasons). Software development methodologies have come a long way
  • 51. since the days of code and fix, though it is surprising how much software is still being developed this way. Successful management of any project, especially software projects, requires planning, and planning is impossible with code and fix, which is totally unpredictable. Management of software development within an engineering Software Project Management (CS615) 18 © Copyright Virtual University of Pakistan discipline is based on a much more orderly set of development phases. These phases are not implemented solely by programmers; they require software engineers. In fact, programming has become a relatively small part of the modern software development cycle, as is evident from Table 1. The numbers in Table 1 are derived from the general shift in emphasis to software planning (requirements and design) and testing. Commercial data processing systems, with some exceptions, still spend a significant amount of development time in the programming and unit testing phase. Real- time systems are often more complex, and may include extensive hardware software integration. This usually requires more planning and more integration and testing. Figure 1: the code and fix method Table 1 Estimated percentage of time spent in each
  • 52. major software development phase Planning Code and unit test Integration and test Commercial data processing 25% 40% 35% Real-time systems 35% 25% 40% Military systems 40% 20% 40% Military systems require high reliability and are usually closely supervised by the customer, leading to a significant increase in the time spent in planning. The data in Table 1, of course, represents a generalization; commercial data processing systems can be just as complex as a real- time system. Figure 2 presents the basic phased model of a software development cycle. This model, called the Waterfall model, gets its name from the way in which each phase cascades into the next (due to overlapping), as demonstrated in Fig. 3. Some interpretations of the Waterfall model, like the one that follows, combine the top level design and the detailed design phases into a single design phase, and the integration and test phases into a single phase. In fact, there are many variations of the classic Waterfall model, but they are all based upon a systematic transition from one development phase to the next, until the project is complete. Concept Code Fix Test Maintain Software Project Management (CS615) 19 © Copyright Virtual University of Pakistan
  • 53. Conception Maintenance Software Requirements Test Top level Design Integration Detailed Design Implementation Figure 2: The phased model of the software development life cycle Conception Software requirements Top level" design Detailed design Implementation Integration Test Maintenance T Figure 3: The Waterfall model of the software development life cycle ⇒Rapid prototyping There are other development methodologies that do not move from one phase to the next like the Waterfall model. Rapid prototyping, for Software Project Management (CS615) 20 © Copyright Virtual University of Pakistan instance, iterates in a mini-development phase until a
  • 54. system prototype is developed (see Fig. 4). After the prototype is complete, the Waterfall approach can then be implemented to complete the full system. Rapid prototyping is particularly helpful in projects where the requirements are difficult to specify. The prototype can be used as a tool for analyzing and determining what the requirements should be. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. The images provided reflect key models of the software development lifecycle, particularly the Waterfall model and a circular representation of the software lifecycle. Below is a beginner-level explanation of the concepts discussed in the lecture with relevant examples: 1. 1. 1. 1. 1. Software Development Lifecycle Software Development Lifecycle Software Development Lifecycle Software Development Lifecycle Software Development Lifecycle 2. 2. 2. 2. 2. Waterfall Model Waterfall Model Waterfall Model Waterfall Model Waterfall Model Software development, like many other activities, follows a lifecycle with a beginning, middle, and end. The Waterfall model is a common representation of this lifecycle, where each phase follows sequentially. However, there are other methods like rapid prototyping, which iterates in smaller cycles. The Waterfall model is a sequential design process, where each phase of development cascades into the next. This means that one phase must be completed before moving on to the next phase. An example of a project following the Waterfall model could be the development of a traditional
  • 55. Example Phases: 3. 3. 3. 3. 3. Rapid Prototyping Rapid Prototyping Rapid Prototyping Rapid Prototyping Rapid Prototyping Example: Developing a new mobile app where user requirements are vague. A prototype of the app can be created to show the basic functionality and then iterated based on user feedback before the final development begins. 4. 4. 4. 4. 4. Time Spent in Phases Time Spent in Phases Time Spent in Phases Time Spent in Phases Time Spent in Phases Example Breakdown (from Table 1 in the text): desktop application, where requirements are well understood upfront, and each phase is completed in order. Conception: Identify the idea for the software (e.g., an application to manage customer data). Software Requirements: Define specific functionalities needed (e.g., ability to store, update, and retrieve customer information). Top-Level Design: Outline the architecture (e.g., decide that the application will have a database and a user interface). Detailed Design: Create detailed plans for each component (e.g., database schema, user interface layout). Implementation: Write the code based on the design (e.g., develop the front-end and back-end components). Integration: Combine all components and ensure they work together (e.g., ensure the front-end communicates with the database correctly). Test: Verify that the application functions as expected (e.g., test all features and fix bugs). Maintenance: Continue to fix issues and update the application as needed (e.g., release patches and updates). Rapid prototyping involves building a simplified version of the software early in the development process to gather feedback and refine requirements. This is especially useful when the requirements are not clear at the start. Different types of projects spend varying amounts of time in different phases. For example, commercial data processing projects might spend more time in coding and testing, whereas military systems might focus more on planning due to higher reliability needs.
  • 56. ⇒The Spiral model, described by Boehm (1988), is another development method that iterates between the requirements, design and implementation phases. However, the Spiral model continues iterating until the final system is complete. Within each, iteration, the Spiral model follows a phased approach similar to the Waterfall model. Different models maybe suitable for different software projects or for different software development organizations However, a good model must include certain fundamental features. Some of these basic 5. 5. 5. 5. 5. Mini-Development Phases in Rapid Prototyping Mini-Development Phases in Rapid Prototyping Mini-Development Phases in Rapid Prototyping Mini-Development Phases in Rapid Prototyping Mini-Development Phases in Rapid Prototyping Example: If you're building a new e-commerce website and are unsure about the design and user experience, you create a prototype of the homepage and a few core pages. After testing it with users and gathering feedback, you refine the design before moving to the full development phase. This explanation provides a coherent and structured overview of the software development lifecycle models discussed, keeping in mind that the content is part of a lecture series and avoiding analogies as requested. Commercial data processing systems: 25% planning, 40% coding and unit testing, 35% integration and testing. Military systems: 40% planning, 20% coding, 40% integration and testing. In rapid prototyping, each mini-cycle involves gathering requirements, designing, implementing, and testing. After creating the prototype, a more structured approach, such as the Waterfall model, can be used to complete the project.
  • 57. requirements are discussed in IEEE Standard (IEEE 1993) Standard for Software Life Cycle Processes. This standard describes the processes that are mandatory for the development of software and specifies the activities that must be included in the life cycle model. Most modern software development models, and certainly those following IEEE Standard 1074, include some form of the basic phased model. It is therefore important to understand the different phases and how they relate to one another. Concept Prototype Requirements Design Implementation Test The rapid prototyping cycle Figure 4: Rapid prototyping followed by the phase method. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. 1. Spiral Model (by Boehm, 1988) 1. Spiral Model (by Boehm, 1988) 1. Spiral Model (by Boehm, 1988) 1. Spiral Model (by Boehm, 1988) 1. Spiral Model (by Boehm, 1988) The Spiral Model is a software development method that emphasizes iterative development. This model cycles through several phases like
  • 58. Example: Imagine developing a complex healthcare management system. Instead of trying to define all requirements and design upfront, the development team starts with a basic version, iterates through requirements gathering, designing, and implementing, improving the system through several iterations. 2. Different Models for Different Projects 2. Different Models for Different Projects 2. Different Models for Different Projects 2. Different Models for Different Projects 2. Different Models for Different Projects Example: For a small web app with flexible requirements, Agile might be the preferred choice, allowing for quick changes. On the other hand, for a large-scale enterprise system with clear, fixed requirements, the Waterfall model may be more efficient. 3. IEEE Standard for Software Life Cycle Processes 3. IEEE Standard for Software Life Cycle Processes 3. IEEE Standard for Software Life Cycle Processes 3. IEEE Standard for Software Life Cycle Processes 3. IEEE Standard for Software Life Cycle Processes (IEEE 1074) (IEEE 1074) (IEEE 1074) (IEEE 1074) (IEEE 1074) Example: Any software development team adhering to this standard will make sure to perform proper planning before coding, and will conduct rigorous testing before releasing the software to ensure compliance with the standard. 4. Rapid Prototyping Cycle 4. Rapid Prototyping Cycle 4. Rapid Prototyping Cycle 4. Rapid Prototyping Cycle 4. Rapid Prototyping Cycle Example: If a team is developing a new mobile app with an unclear user interface, they might build a rough prototype first, test it with users, refine it, and then proceed to develop the final version based on the refined prototype. requirements, design, and implementation repeatedly until the final system is built. Each iteration in the Spiral Model includes planning, risk analysis, engineering, and evaluation. The aim is to refine the system step by step, addressing risks early in the development process. Software development models can vary based on the project’s nature or the organization's requirements. For instance, an Agile model might be more suitable for projects where requirements change frequently, while the Waterfall model may be more appropriate for well-defined projects. IEEE Standard 1074 outlines the mandatory processes for software development. It specifies that any software development life cycle model should include a phased approach, covering key activities such as planning, requirements, design, implementation, testing, and maintenance. Rapid Prototyping is an approach where a basic prototype of the software is quickly built, tested, and refined through multiple iterations. After the prototype has been finalized and requirements are better understood, a more structured phase approach is followed, similar to the Waterfall model.
  • 59. From ChatGPT, designed with FancyGPT This explanation highlights key concepts related to the Spiral model, rapid prototyping, and software development standards, in a coherent manner, as would be presented in a lecture.
  • 60. cs615 lecture 4 cs615 lecture 4 cs615 lecture 4 cs615 lecture 4 cs615 lecture 4 LECTURE # 4 1. Introduction & Fundamentals 1.11 Costs and Cost Management Project Cost Management includes the processes required to ensure that the project is completed within the approved budget. ⇒Resource Planning—determining what resources (people, equipment, materials and what quantities of each should be used to perform project activities. ⇒Cost Estimating—developing an approximation (estimate) of the costs of the resources needed to complete project activities. ⇒Cost Budgeting—allocating the overall cost estimate to individual work activities. ⇒Cost Control—controlling changes to the project budget. These processes interact with each other and with the processes in the other knowledge areas as well. Each process may involve effort from one or more individuals or groups of individuals, based on the needs of the project. Each process generally occurs at least once in every project phase. Although the processes are presented here as discrete elements with well-defined interfaces, in practice they may overlap and interact in ways not detailed here. Project cost management is primarily concerned with the cost of the resources needed to complete project activities. However, project cost management should also consider the effect of project decisions on the cost of using the project’s product. For example, limiting the number of design reviews may reduce the cost of the project at the expense of an increase in the customer’s operating costs. This broader view of project cost management is often called life- cycle costing. Lifecycle costing together with Value Engineering 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/25
  • 61. techniques are used to reduce cost and time, improve quality and performance, and optimize the decision-making. In many application areas, predicting and analyzing the prospective financial performance of the project’s product is done outside the project. Software Project Management (CS615) 22 © Copyright Virtual University of Pakistan In others (e.g., capital facilities projects), project cost management also includes this work. When such predictions and analyses are included, project cost management will include additional processes and numerous general management techniques such as return on investment, discounted cash flow, payback analysis, and others. Project cost management should consider the information needs of the project stakeholders—different stakeholders may measure project costs in different ways and at different times. For example, the cost of a procurement item may be measured when committed, ordered, delivered, incurred, or recorded for accounting purposes. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. Certainly! Here are straightforward examples for each aspect of Project Cost Management described in the text. Resource Planning Resource Planning Resource Planning Resource Planning Resource Planning Example: A construction project requires 10 workers, two excavators, and a specific quantity of steel beams and concrete. In resource planning, the project manager identifies these needs and determines the appropriate amount of each to complete the project effectively. Cost Estimating Cost Estimating Cost Estimating Cost Estimating Cost Estimating Example: For the construction project, the project manager estimates the total cost. They calculate the cost of hiring workers, renting excavators, and purchasing steel beams and concrete by getting quotes from suppliers and labor costs from contractors. Cost Budgeting Cost Budgeting Cost Budgeting Cost Budgeting Cost Budgeting Example: Once the total estimated cost is determined, the project manager allocates specific amounts of the budget to each activity in the construction project. For instance, $50,000 for excavation, $100,000 for purchasing steel beams, and $30,000 for labor. 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/25
  • 62. 1.12 Project vs. Program Management ⇒What is a Program? “A coordinated portfolio of projects that change organizations to achieve benefits of strategic importance” Program management is the process of managing multiple on going projects. An example would be that of designing, manufacturing and providing support infrastructure for an automobile make. It can be argued that Program Management has evolved from the complexities of the more intricate aspects of Project Management. As projects became larger; more interrelated; complex and multidimensional, the need arose to have an approach that controlled Project Management whilst remaining focused on the strategic objectives of the business. Whilst Project Management focused on technical delivery, Program Management engaged on relating design concepts to the business strategic vision of the future. Cost Control Cost Control Cost Control Cost Control Cost Control Example: During the construction project, if the price of steel increases, it could potentially exceed the allocated budget. The project manager implements measures to control costs by negotiating with suppliers for better prices or adjusting the use of steel in the project without compromising quality. Life-Cycle Costing Life-Cycle Costing Life-Cycle Costing Life-Cycle Costing Life-Cycle Costing Example: In designing a new car, the manufacturer might choose a more expensive, energy- efficient engine. While this increases the upfront cost of the car, it decreases fuel expenses for customers, leading to lower operating costs over the car’s lifetime. Value Engineering Value Engineering Value Engineering Value Engineering Value Engineering Example: A software company reviews its development process to find ways to reduce costs and improve quality. They decide to adopt a new programming framework that speeds up development and reduces the time spent on maintenance. Financial Performance Prediction Financial Performance Prediction Financial Performance Prediction Financial Performance Prediction Financial Performance Prediction Example: A company is building a new shopping mall and wants to understand its financial viability. They conduct an analysis to predict how much revenue the mall will generate compared to the construction and operational costs to determine if it’s a worthwhile investment. Stakeholder Information Needs Stakeholder Information Needs Stakeholder Information Needs Stakeholder Information Needs Stakeholder Information Needs Example: In a software development project, the finance department wants a report on costs incurred each month. In contrast, the project manager needs weekly updates on costs to manage the budget effectively. Therefore, the project provides tailored cost reports to each stakeholder based on their requirements. 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/25
  • 63. It is very important that you understand the concept of Program Management as a method. Approaches may vary but definitions are relatively common. It is appropriate to understand the ‘mission, goals and objectives’ of Program Management and then relate these to the Program you propose to develop. Definitions will fall within each of these headings and it is possible to develop your own template which fits your organizational program. For example: – Mission: To co-ordinate a portfolio of projects to harmonize communications in order to achieve a set of stated business objectives: Provision of strategy alignment, with design objectives, in order to maintain control over a Software Project Management (CS615) 23 © Copyright Virtual University of Pakistan multiple project environment; ensuring quality end deliverables which meet business operational needs. The above is a fairly complex mission statement but provides a framework to develop an intricate set of goals in order to utilize Program Management. It is possible to develop an extensive list of goals, depending upon the level of detail you wish to acquire. The following are offered as suggestions: – Goals: 1. Clearly defined roles and responsibilities 2. Established baselines and Terms of Reference statement 3. Type of program defined 4. Future business blueprint 5. Recognition of business transformation procedures 6. Defined structure of the Program 7. Route Map 8. Visible end deliverables — vision of the future 9. Identification of future benefits 10. Risk 11. Contingency planning Software Project Management (CS615) 24 © Copyright Virtual University of Pakistan Each of the goals would then be analyzed for providing 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/25
  • 64. objectives. For example: • Managing a program embraces functions, risks and strategies outside of what a project manager does. • A program has goals beyond those of a project or group of projects. Program outcomes are usually service delivery focused whereas a project is more likely to be focused on the delivery of a 'product'. • A program is more than a grouping of projects (that's just a program of works). • The coordinated management of a portfolio of projects to achieve a set of business objectives • There are many more meanings of the term program management. Here are the more common meanings: (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. Here are simple, beginner-level examples related to program management and the concepts discussed. Program Program Program Program Program Example: A car company is developing a new line of electric vehicles. The program includes several projects such as designing the cars, building a manufacturing plant, developing a charging network, and creating a marketing campaign. All these projects are coordinated to achieve the strategic goal of becoming a leader in electric vehicle production. Program Management Program Management Program Management Program Management Program Management Example: The car company appoints a program manager to oversee the electric vehicle program. This manager ensures that all projects, like design and manufacturing, work together to meet the company’s strategic goals. The program manager also manages resources and resolves conflicts between projects to keep the overall program on track. Mission Statement Mission Statement Mission Statement Mission Statement Mission Statement Example: The mission of the electric vehicle program is to design and manufacture a line of eco-friendly vehicles that meet the future transportation needs of customers while achieving the company’s strategic goal of reducing its carbon footprint. Goals Goals Goals Goals Goals Clearly Defined Roles and Responsibilities: Each team member, such as designers, engineers, and marketers, understands their specific tasks and contributions to the program. 1 Established Baselines and Terms of Reference: Setting clear expectations for quality, cost, and time for each project within the program. 2 Type of Program Defined: Identifying that the program focuses on developing electric vehicles and related infrastructure. 3 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/25
  • 65. – The Mega Project The management of a portfolio of projects towards one specific objective; Program management can also mean one very large project. The USA’s Man on the Moon Project was such a program. In this sense the term program indicates one very large project which is made up from a number of components. Within the Apollo program there were many projects: the Lunar Lander, the Orbiter, the Launcher and the Control Systems were all projects which were large, complex and interesting. Polaris and the Manhattan project (which resulted in the nuclear bomb) are other famous projects large enough to be called programs. Therefore, particularly in USA, the word program refers to a series of projects which make up one large project. The program is usually reflected in the management structure as there will be a program manager to whom the project managers will report. Said program manager or sometimes program director will concern himself with recruiting and maintaining his project management teams and on integrating the Future Business Blueprint: Outlining the company’s vision for the electric vehicle market over the next decade. 4 Recognition of Business Transformation Procedures: Understanding how the shift to electric vehicles will change the company’s operations and market approach. 5 Defined Structure of the Program: Organizing the program into manageable projects with clear links and dependencies. 6 Route Map: A detailed plan showing the timeline and milestones for each project within the program. 7 Visible End Deliverables — Vision of the Future: A clear picture of the completed program, such as the release of the new electric vehicles and their impact on the market. 8 Identification of Future Benefits: Listing the expected outcomes, such as increased market share, reduced emissions, and improved brand reputation. 9 Risk: Identifying potential issues, such as supply chain disruptions or technology failures, and planning how to mitigate them. 10 Contingency Planning: Developing backup plans to handle unexpected challenges that could affect the program’s success. 11 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/25
  • 66. deliverables of each project into one overall program. In this meaning of program management there is likely to be one physical deliverable. These sorts of programs end. There will be a time when the overall objective has been achieved and the program and all of its constituent projects are over. The projects within this type of program are often linked. Delays with one project often cause knock on effects with others due to logical links between tasks in both projects. For example if the moon rocket launch pad project was delayed, it would delay the testing of the moon rocket itself. The Beirut Shopping Mall will be of little use without the water treatment plant and the new sewer scheme. Such Software Project Management (CS615) 26 © Copyright Virtual University of Pakistan projects may not share the same resources but there are almost certain to be linked through their logic. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. Here are simple beginner-level examples related to the concept of a "Mega Project" as described in the text. Mega Project Mega Project Mega Project Mega Project Mega Project Example: The construction of a new international airport is considered a mega project. This project includes building the terminal, constructing runways, setting up a control tower, and establishing transportation links to the city. Each of these components is a project on its own, but together, they form the mega project of the airport. Program Manager Program Manager Program Manager Program Manager Program Manager Example: For the international airport project, a program manager is appointed. This manager oversees all the individual projects, such as the terminal and runway construction. The program manager coordinates between different project managers to ensure that each component aligns with the overall objective of completing the airport on time and within budget. Physical Deliverable Physical Deliverable Physical Deliverable Physical Deliverable Physical Deliverable Example: The physical deliverable of the international airport project is the fully functional airport, complete with terminals, runways, a control tower, and transportation facilities. Linked Projects Linked Projects Linked Projects Linked Projects Linked Projects 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/25
  • 67. 1.13 Project Success Project success is correlated with thorough analyses of the need for project deliverables. Our research has shown that when a project results in deliverables that are designed to meet a thoroughly documented need, then there is a greater likelihood of project success. So managers should insist that there is a documented business need for the project before they agree to consume organizational resources in completing it. We conduct planned and controlled software projects for one primary reason - it is the only known way to manage complexity. And yet, we still struggle. In 1998, industry data indicated that 26 percent of software projects failed outright and 46 percent experienced cost and schedule overruns [REE99]. Although the success rate for software projects has improved somewhat, our project failure rate remains higher than it should be. In order to avoid project failure, a software project manager and the software engineers who build the product must avoid a set of common warning signs, understand the critical success factors that lead to good project management, and develop a common sense approach for planning, monitoring and controlling the project. In order to manage a successful software project, we must understand what can go wrong (so that problems can be avoided) and how to do it right. In an excellent Example: In the international airport project, if the construction of the runway is delayed, it will affect the testing and operation schedules for the airport. Similarly, the terminal's construction must be completed before the airport can begin accepting flights. All these projects are linked by their timelines and dependencies. End of the Program End of the Program End of the Program End of the Program End of the Program Example: Once the international airport is completed and operational, the mega project ends. The program manager and project teams wrap up their work, and the airport starts functioning as intended, serving flights and passengers. These examples illustrate how large and complex initiatives can be broken down into interrelated projects, all managed under the umbrella of a single, overarching program. 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/25
  • 68. paper on software projects, John Reel [REE99] defines ten signs that indicate that an information systems project is in jeopardy: 1. Software people don't understand their customer's needs. 2. The product scope is poorly defined. 3. Changes are managed poorly. 4. The chosen technology changes. 5. Business needs change (or are ill-defined) 6. Deadlines are unrealistic. 7. Users are resistant. 8. Sponsorship is lost [or was never properly obtained). 9. The project team lacks people with appropriate skills. 10. Managers [and practitioners) avoid best practices and lessons learned. Jaded industry professionals often refer to the 90-90 rule when discussing particularly difficult software projects: The first 90 percent of a system absorbs 90 percent of the allotted effort and time. The last 10 percent takes the other 90 Software Project Management (CS615) 27 © Copyright Virtual University of Pakistan percent of the allotted effort and time [ZAH94]. The seeds that lead to the 90-90 rule are contained in the signs noted in the preceding list. But enough negativity! How does a manager act to avoid the problems just noted? Reel [REE99] suggests a five-part commonsense approach to software projects: 1. Start on the right foot. This is accomplished by working hard (very hard) to understand the problem that is to be solved and then setting realistic objects and expectations for everyone who will be involved in the project. It is reinforced by building the right team (Section 3.2.3) and giving the team the autonomy, authority, and technology needed to do the job. 2. Maintain momentum. Many projects get off to a good start and then slowly disintegrate. To maintain momentum, the project manager must provide incentives to keep turnover of personnel to an absolute minimum, the team should emphasize quality in every task it performs, and senior management should do everything possible to stay out of (the 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/25
  • 69. team's way. 3. Track progress. For a software project, progress is tracked as work products (e.g., specifications, source code, sets of test cases) are produced and approved (using formal technical reviews) as part of a quality assurance activation, software process and project measures can be collected and used to assess progress against averages developed for the software development organization. 4. Make smart decisions. In essence, the decisions of the project manager and the software team should be to "keep it simple.” Whenever possible, decide to use commercial off-the-shelf software or existing software components, decide to avoid custom interfaces when standard approaches are available, decide to identify and then avoid obvious risks, and decide to allocate more time than you think is needed to complex or risky tasks (you'll need every minute). 5. Conduct a postmortem analysis. Establish a consistent mechanism for extracting lessons learned for each project. Evaluate the planned and actual schedules, collect and analyze software project metrics, get feedback from team members and customers, and record findings in written form. – Projects and Strategy Projects are a means of organizing activities that cannot be addressed within the organization’s normal operational limits. Projects are therefore often utilized as a means of achieving an organization’s strategic plan, whether the project team is employed by the organization or is a contracted service provider. Projects are typically authorized as a result of one or more of the following strategic considerations: Software Project Management (CS615) 28 © Copyright Virtual University of Pakistan ƒ A market demand (e.g., an oil company authorizes a project to 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/25
  • 70. build a new refinery in response to chronic gasoline shortages) ƒ A business need (e.g., a training company authorizes a project to create a new course in order to increase its revenues) ƒ A customer request (e.g., an electric utility authorizes a project to build a new substation to serve a new industrial park) ƒ A technological advance (e.g., an electronics firm authorizes a new project to develop a new generation of video game player after the introduction of the corresponding new game format) ƒ A legal requirement (e.g., a paint manufacturer authorizes a project to establish guidelines for the handling of a new toxic material). No project ever goes 100% as planned, so project managers must learn to adapt to change. There are many things that can go wrong with project management. These are commonly called barriers. Here are some possible barriers: 1. Poor Communication – Many times a project may fail because the project team does not know exactly what to get done or what's already been done. 2. Disagreement – Project must meet all elements in a contract. – Customer and project manager must agree on numerous elements. – Failure to comply with standards and regulations. – Inclement weather. – Union strikes. – Personality conflicts. – Poor management 3. Poorly defined project goals (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies. Here are straightforward, beginner-level examples that illustrate the concepts of project success, critical success factors, barriers, and strategic considerations: Project Success Project Success Project Success Project Success Project Success Example: A software development company documents a clear need for a new mobile application to improve customer engagement. The company defines specific features and requirements based on customer feedback and market research. This thorough analysis helps ensure the application meets user needs and contributes to the project’s success. 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/25
  • 71. Signs of Project Jeopardy Signs of Project Jeopardy Signs of Project Jeopardy Signs of Project Jeopardy Signs of Project Jeopardy Common-Sense Approach to Software Projects Common-Sense Approach to Software Projects Common-Sense Approach to Software Projects Common-Sense Approach to Software Projects Common-Sense Approach to Software Projects Strategic Considerations for Authorizing Projects Strategic Considerations for Authorizing Projects Strategic Considerations for Authorizing Projects Strategic Considerations for Authorizing Projects Strategic Considerations for Authorizing Projects Software people don’t understand their customer’s needs: A software team develops a product based on their assumptions without consulting the end-users, leading to features that don’t align with user expectations. 1 Product scope is poorly defined: A software project starts without a clear understanding of what features the final product should include, leading to confusion and incomplete deliverables. 2 Changes are managed poorly: A project experiences numerous changes in requirements, but these changes are not documented or communicated effectively, causing delays and budget overruns. 3 Chosen technology changes: A project initially selects a specific programming language, but midway through, decides to switch to another language without proper planning, causing rework and delays. 4 Business needs change (or are ill-defined): A company starts a project to develop a new product, but halfway through, the business strategy shifts, and the project’s initial goals no longer align with the new direction. 5 Deadlines are unrealistic: A project is given a deadline that does not consider the complexity of the tasks, leading to rushed work and poor quality. 6 Users are resistant: A new software system is introduced to employees, but they find it hard to use and prefer the old system, affecting the system's adoption. 7 Sponsorship is lost (or was never properly obtained): A project starts without a committed sponsor, and when challenges arise, there is no one to advocate for additional resources or support. 8 The project team lacks people with appropriate skills: A project team is assembled, but they lack expertise in key areas, such as database management or user interface design, impacting the project’s success. 9 Managers (and practitioners) avoid best practices and lessons learned: Project managers ignore previous experiences and industry best practices, leading to repeated mistakes and inefficiencies. 10 Start on the right foot: Before starting a new software project, a manager ensures the problem is well understood, sets realistic goals, and forms a skilled and empowered team. 1 Maintain momentum: A project manager keeps the team motivated by recognizing achievements, providing necessary resources, and minimizing disruptions from upper management. 2 Track progress: The manager regularly reviews project milestones, such as completed features or test cases, to ensure the project is on schedule and meeting quality standards. 3 Make smart decisions: The project team opts for proven technology components instead of developing new ones from scratch, reducing risk and saving time. 4 Conduct a postmortem analysis: After the project concludes, the team reviews what went well and what didn’t, documenting these insights to improve future projects. 5 Market demand: An oil company faces gasoline shortages and initiates a project to build a new refinery to increase supply and meet customer needs. 1 Business need: A training company observes a gap in their offerings and starts a project to develop a new course to attract more customers and boost revenue. 2 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/25
  • 72. 1.14 Trade-Off Triangle Good project management deals with three factors: time, cost and performance. Projects are successful if they are completed on time, within budget, and to performance requirements. In order to bring the many components of a large project into control there is a large toolkit of techniques, methodologies, and tools. Software Project Management (CS615) 29 © Copyright Virtual University of Pakistan These techniques provide the tools for managing different components involved in a project: planning and scheduling, developing a product; managing financial and capital resources, and monitoring progress. However the success of a project will always rest on the abilities of a project manager and the team members. In managing competing project requirements Project managers often talk of a triple constraint: – Project scope – Time and – Cost Project quality is affected by balancing these three factors. High quality projects deliver the required product or service within scope, on Barriers to Project Success Barriers to Project Success Barriers to Project Success Barriers to Project Success Barriers to Project Success Customer request: A power company authorizes a project to build a new substation after a new industrial park requests increased power capacity. 3 Technological advance: An electronics firm begins a project to create a new gaming console that matches advancements in game technology. 4 Legal requirement: A paint manufacturer undertakes a project to comply with new regulations on toxic materials, ensuring safe handling and storage. 5 Poor Communication: A project fails because team members are unclear about their tasks, leading to duplicated efforts and incomplete work. 1 Disagreement: A customer and project manager fail to agree on key project deliverables, causing conflicts and delays in project approval. 2 Poorly defined project goals: A project starts without specific, measurable goals, leading to confusion about the project’s direction and priorities. 3 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/25
  • 73. time and within budget. The relationship among these factors is such that if any one of the three factors changes, at least one other factor must change. Simply put: project success means completing all project deliverables on time, within budget, and to a level of quality that is acceptable to sponsors and stakeholders. The project manager must keep the team's attention focused on achieving these broad goals. Most people still want their projects to be on time, meet quality objectives, and not cost more than the budget. These form the classic time, quality, cost triangle. In fact if you have an unlimited budget and unlimited time, project management becomes rather easy. For most people, however, time and money are critical and that is what makes project management so important today. Project management is often summarized in a triangle. The three most important factors are time, cost and scope. These form the vertices with quality as a central theme. Software Project Management (CS615) 30 © Copyright Virtual University of Pakistan 1. Projects must be delivered on time. 2. Projects must be within cost 3. Projects must be within scope 4. Projects must meet customer quality requirements More recently, this has given way to a project management diamond, with time, cost, scope and quality the four vertices and customer expectations as a central theme. No two customers' expectations are the same so you must ask what their expectations are. A project goes through four phases during its life: 1. Project Definition: Defining the goals, objectives and critical success factors for the project 2. Project Initiation: Everything that is needed to set-up the project before work can start 3. Project Control: Ensuring that a project stays on track and 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/25
  • 74. taking appropriate action to ensure it does 4. Project Closure: Disbanding of all the elements that were required to run the project (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note: do not use analogies.Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Here are some beginner-level examples for the concepts outlined in your lecture: Trade-Off Triangle: Project Life Cycle Phases: Time: 1 Example: An app development project is scheduled to take six months. To meet this timeline, the project team must carefully plan tasks, manage dependencies, and avoid delays. If the app takes longer than six months to develop, it may delay the product launch and increase costs. 2 Cost: 3 Example: A construction project has a budget of $500,000. The project manager must allocate this budget to various activities like purchasing materials, hiring labor, and obtaining permits. Exceeding this budget could lead to financial losses for the company or necessitate seeking additional funding. 4 Scope: 5 Example: A website redesign project has a clear scope defined by the client, which includes updating the homepage, about page, and contact page. Adding more pages or features without adjusting time and budget can lead to scope creep, affecting project quality and completion time. 6 Quality: 7 Example: A smartphone manufacturing project aims to produce devices that meet specific quality standards. Ensuring each phone is free of defects, has a long battery life, and runs smoothly under high usage are some of the quality measures that need to be met to satisfy customer expectations. 8 Customer Expectations: 9 Example: A software project team is building a new feature based on customer feedback. The project team regularly communicates with customers to understand their expectations and ensure the feature aligns with their needs, enhancing customer satisfaction. 10 Project Definition: 1 Example: A company wants to reduce energy consumption by 20% in two years. The project definition phase involves setting this goal, identifying the key steps to achieve it, and determining the resources needed. 2 Project Initiation: 3 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/25
  • 75. 1.15 Project Management Skills The role of the Leader in project management is one of great responsibility. It's the project manager's job to direct and supervise the project from beginning to end. Here are some other roles: (a) Leadership (b) Communications (c) Problem Solving (d) Negotiating (e) Influencing the Organization (f) Mentoring (g) Process and technical expertise (a) Leadership Leadership is a complex phenomenon involving the leader, the followers, and the situation. Perhaps the best way for you to begin to understand the complexities of leadership is to see some of the ways leadership has been defined. Leadership researchers have defined leadership in the following different ways: ƒ The creative and directive force of morale. (Munson, 1921) ƒ The process by which an agent induces a subordinate to behave in a desired manner. (Bennis, 1959) ƒ The presence of a particular influence relationship between two or These examples provide a basic understanding of the essential elements involved in project management and the factors that influence project success. Example: Before starting a new marketing campaign, a company gathers a project team, assigns roles, and secures the necessary budget. This preparation ensures everyone knows their responsibilities and the campaign can start smoothly. 4 Project Control: 5 Example: During the development of a new software feature, the project manager holds weekly meetings to track progress. If any issues arise, such as falling behind schedule, the manager takes corrective actions, like reallocating resources or adjusting timelines, to keep the project on track. 6 Project Closure: 7 Example: Once a building project is complete, the project manager ensures that all paperwork is finalized, stakeholders are informed of the completion, and any remaining resources are reallocated or released. The project team is then officially disbanded. 8 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/25
  • 76. more persons. (Hollander & Julian, 1969) ƒ Directing and coordinating the work of group members. (Fiedler, 1967) An interpersonal relation in which others comply because they want to, not because they have to. (Merton, 1969; Hogan, Curphy, & Hogan, 1994) ƒ Transforming followers, creating visions of the goals that may be attained, and articulating for the followers the ways to attain those goals. (Bass, 1985; Fichy & Devanna, 1986) ƒ The process of influencing an organized group toward accomplishing its goals. (Roach & Behling, 1984) ƒ Actions that focus resources to create desirable opportunities. (Campbell, 1991) Software Project Management (CS615) 32 © Copyright Virtual University of Pakistan ƒ The leader's job is to create conditions for the team to be effective. (Ginnett, 1996) Leading and managing are both essential management skills: one without the other is likely to produce poor results. Managing is primarily concerned with “consistently producing key results expected by stakeholders,” while leading involves: ƒ Establishing direction—developing both a vision of the future and strategies for producing the changes needed to achieve that vision. ƒ Aligning people—communicating the vision by words and deeds to all those, whose cooperation may be needed to achieve the vision. ƒ Motivating and inspiring—helping people energize themselves to overcome political, bureaucratic, and resource barriers to change. On a project, particularly a larger project, the project manager is generally expected to be the project’s leader as well. Leadership is not, however, limited to the project manager: it may be demonstrated by many different individuals at many different 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 17/25
  • 77. times during the project. Leadership must be demonstrated at all levels of the project (project leadership, technical leadership, and team leadership). (b) Communicating Communicating involves the exchange of information and the ability to transmit and receive information with a high probability that the intended message is passed from sender to receiver. The sender is responsible for making the information clear, unambiguous, and complete so that the receiver can receive it correctly. The receiver is responsible for making sure that the information is received in its entirety and understood correctly. Few skills are more vital to leadership. Studies show that good leaders communicate feelings and ideas, actively solicit new ideas from others, and effectively articulate arguments, advocate positions, and persuade others. The quality of a Leader’s communication is positively correlated with subordinate satisfaction as well as with productivity and quality of services rendered. Software Project Management (CS615) 33 © Copyright Virtual University of Pakistan Effective communication skills are also important because they provide leaders and followers with greater access to information relevant to important organizational decisions. Communicating has many dimensions: – Written and oral, listening and speaking – Internal (within the project) and external (to the customer, the media, the public, etc.). – Formal (reports, briefings, etc.) and informal (memos, ad hoc conversations, etc.) – Vertical (up and down the organization) and horizontal (with peers and partner organization) The general management skill of communicating is related to, but not the 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 18/25
  • 78. same as, Project Communications Management. Communicating is the broader subject and involves a substantial body of knowledge that is not unique to the project context, for example: – Sender-receiver models—feedback loops, barriers to communications, etc. – Choice of media—when to communicate in writing, when to communicate orally, when to write an informal memo, when to write a formal report, etc. – Writing style—active versus passive voice, sentence structure, word choice, etc. – Presentation techniques—body language, design of visual aids, etc. – Meeting management techniques—preparing an agenda, dealing with conflict, etc. Project Communications Management is the application of these broad concepts to the specific needs of a project—for example, deciding how; when; in what form; and to whom to report project performance. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Here are some simple beginner-level examples of the project management skills described in the lecture: (a) Leadership Creating a Vision: 1 A project manager sets a clear goal for a new software product, ensuring the entire team understands the target and works towards it. 2 Aligning People: 3 The project manager holds a meeting to explain the project objectives and the roles of each team member, ensuring everyone knows their responsibilities and how they contribute to the project. 4 Motivating and Inspiring: 5 The project manager recognizes team members' hard work and achievements, keeping morale high and encouraging the team to overcome obstacles. 6 Providing Direction: 7 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 19/25
  • 79. (c) Negotiating Negotiating involves conferring with others to come to terms with them or reach an agreement. Agreements may be negotiated directly or with assistance; mediation and arbitration are two types of assisted negotiation. Negotiation is an approach that may help resolve some conflicts. Some important tips on negotiation include; preparing for a negotiation session; Software Project Management (CS615) 34 © Copyright Virtual University of Pakistan keeping people and problems separate; focusing on issues, not positions and seeking win-win outcomes. Negotiations occur around many issues, at many times, and at many levels of the project. During the course of a typical project, project staff is likely to negotiate for any or all of the following: (b) Communicating These examples highlight key aspects of leadership and communication skills that are crucial for effective project management. They illustrate how a project manager can apply these skills in different scenarios to ensure project success. During a critical phase, the project manager steps in to guide the team on how to meet a challenging deadline, providing clear instructions and support. 8 Clear Information Exchange: 1 The project manager writes detailed project updates to ensure all stakeholders, including team members and executives, are informed about progress and challenges. 2 Listening and Understanding: 3 A team member raises a concern about a potential delay. The project manager listens attentively, asks clarifying questions, and addresses the issue promptly. 4 Formal and Informal Communication: 5 The project manager sends out a formal report on project status while also having informal check-ins with team members to gather feedback and address any issues. 6 Vertical and Horizontal Communication: 7 The project manager communicates with upper management about the project's progress (vertical) and collaborates with other department heads to align efforts and resources (horizontal). 8 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 20/25
  • 80. • Scope, cost, and schedule objectives. • Changes to scope, cost, or schedule. • Contract terms and conditions. • Assignments. • Resources. (d) Problem Solving There are three steps involved in this important leadership role; identifying problem; analyzing its cause; and solving the problem. Problem solving involves a combination of problem definition and decision-making. Problem definition requires distinguishing between causes and symptoms. Problems may be: – Internal (a key employee is reassigned to another project) – External (a permit required to begin work is delayed). – Technical (differences of opinion about the best way to design a product) – Managerial (a functional group is not producing according to plan) or – Interpersonal (personality or style clashes). (e) Decision-making Decision-making includes analyzing the problem to identify viable solutions, and then making a choice from among them. Decisions can be made or obtained (from the customer, from the team, or from a functional manager). Once made, decisions must be implemented. Decisions also have a time element to them—the “right” decision may not be the “best” decision if it is made too early or too late. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Here are simple beginner-level examples of the project management skills described in the lecture: (c) Negotiating Preparing for Negotiation: 1 Before discussing the project scope with a client, the project manager gathers data on the client's needs, the team's capabilities, and potential constraints to 2 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 21/25
  • 81. (d) Problem Solving (e) Decision-Making These examples provide a clear illustration of how negotiation, problem-solving, and decision-making skills are applied in a project management context. effectively advocate for a realistic timeline. Keeping People and Problems Separate: 3 When a disagreement arises over the allocation of resources, the project manager focuses on the project's requirements rather than personal preferences, facilitating a more objective discussion. 4 Focusing on Issues, Not Positions: 5 During a meeting about a schedule delay, the project manager emphasizes the need to find a solution that benefits the project rather than arguing over who is at fault. 6 Seeking Win-Win Outcomes: 7 While negotiating with a supplier for materials, the project manager aims to find a pricing arrangement that satisfies both the project budget and the supplier's profit margins. 8 Identifying the Problem: 1 The project manager notices that the team's productivity has decreased and seeks to understand whether the issue is due to a lack of resources, unclear instructions, or another factor. 2 Analyzing Its Cause: 3 Upon discovering that a key software component is not working as expected, the project manager investigates whether the issue is with the code, the hardware, or external dependencies. 4 Solving the Problem: 5 After identifying that a delay is due to a lack of communication between departments, the project manager sets up regular inter-departmental meetings to ensure information is shared efficiently. 6 Analyzing the Problem to Identify Viable Solutions: 1 The project manager faces a budget cut and evaluates options such as reducing scope, extending the timeline, or finding cost-effective resources to keep the project on track. 2 Making a Choice: 3 After considering the potential solutions, the project manager decides to extend the timeline slightly and use more cost-effective resources to minimize the impact on project deliverables. 4 Implementing the Decision: 5 The project manager communicates the new plan to the team, adjusts the project schedule, and reallocates resources as needed to align with the updated timeline and budget. 6 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 22/25
  • 82. (f) Influencing the Organization Influencing the organization involves the ability to “get things done.” It requires an understanding of both the formal and informal structures of all the organizations involved—the performing organization, customer, partners, contractors, and numerous others, as appropriate. Influencing the organization also requires an understanding of the mechanics of power and politics. Both power and politics are used here in their positive senses. Power is “the potential ability to influence behavior, to change the course of events, to overcome resistance, and to get people to do things that they would not otherwise do.” In similar fashion, “politics is about getting collective action from a group of people who may have quite different interests. It is about being willing to use conflict and disorder creatively. The negative sense, of course, derives from the fact that attempts to reconcile these interests result in power struggles and organizational games that can sometimes take on a thoroughly unproductive life of their own.” Influence can be exercised in a: variety of ways. It may be the 'bridge to engine room' approach, where the leader commands and controls. Or the influence can be exercised by guiding and facilitating the group's behavior so that the goal is accomplished. Finally, leadership implies that a leader motivates the group to spend energy in attaining the goals of the group. Influence without change or movement isn’t influence. Leaders make change happen, a difficult but vitally important task. (g) Mentoring Mentoring or being a Transformational leadership is more concerned with engagement between leaders and followers. Leaders attempt to engage the full person of the subordinate and enthuse them. They arouse in their subordinates a heightened 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 23/25
  • 83. awareness of the key issues for the group or the organization. They seek to concern subordinates with achievement, growth and development. Software Project Management (CS615) 36 © Copyright Virtual University of Pakistan Creating a new vision is something that almost all writers on transformational leadership emphasize. The vision points the way to a new state of affairs. It is an appealing picture of a more desirable future. It inspires people to believe that the future is worth the upheaval of undoing the present. A vision needs to be a source of self-esteem and a common purpose for members of the organization. (h) Technical Skills: A project manager must have technical skills. This relates to financial planning, contract management, and managing creative thinking and problem solving techniques are promoted. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Here are beginner-level examples of influencing the organization, mentoring, and technical skills in a project management context: (f) Influencing the Organization Understanding Formal and Informal Structures: 1 A project manager needs to understand the organizational hierarchy and who holds influence beyond official titles. For example, knowing which senior staff members are key decision-makers and which team members others tend to listen to can help navigate project dynamics effectively. 2 Using Power Positively: 3 A project manager uses their authority to facilitate collaboration between different departments to ensure the project meets its goals, such as coordinating efforts between the marketing and development teams to ensure a product launch stays on schedule. 4 Exercising Influence Through Guidance: 5 Instead of issuing direct orders, the project manager facilitates a workshop where team members brainstorm solutions to a project challenge, guiding the conversation to keep it productive and aligned with project objectives. 6 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 24/25
  • 84. From ChatGPT, designed with FancyGPT (g) Mentoring (h) Technical Skills These examples illustrate how a project manager applies various skills to manage projects effectively and support team development within an organization. Motivating for Goal Attainment: 7 The project manager communicates the project’s impact on the company's success, motivating team members by showing how their work contributes to a larger vision and recognizing their contributions to maintain high engagement levels. 8 Engaging and Enthusing Subordinates: 1 A project manager spends time understanding team members' career goals and provides opportunities for them to work on tasks that align with their interests, helping them see the project as a path to personal growth. 2 Creating a Vision for the Future: 3 The project manager develops and shares a clear vision of how the project will improve the company's standing in the market, encouraging the team to work toward this common goal and inspiring them to push through challenges. 4 Arousing Awareness of Key Issues: 5 During team meetings, the project manager highlights critical areas of focus for the project, such as meeting quality standards and deadlines, and encourages team members to prioritize these areas in their work. 6 Building a Common Purpose: 7 The project manager organizes team-building activities that reinforce the project's goals and foster a sense of unity among team members, helping them feel connected to the project's success. 8 Financial Planning: 1 The project manager creates a detailed budget for the project, outlining all expected expenses and monitoring actual costs against this budget to ensure the project remains financially viable. 2 Contract Management: 3 When working with external vendors, the project manager reviews and negotiates contract terms to ensure they align with the project’s scope and budget, managing these relationships to secure necessary resources. 4 Managing Creative Thinking and Problem Solving: 5 The project manager facilitates brainstorming sessions where team members are encouraged to propose innovative solutions to project challenges, promoting an environment where creative ideas are valued and explored. 6 14/08/2024, 14:48 FancyGPT - cs615 lecture 4 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 25/25
  • 85. cs615 lecture 5 cs615 lecture 5 cs615 lecture 5 cs615 lecture 5 cs615 lecture 5 LECTURE # 5 1. Introduction & Fundamentals 1.16 PM’s nine Knowledge Areas 1. Project Integration Management Project Integration Management includes the processes required to ensure that the various elements of the project are properly coordinated. It involves making tradeoffs among competing objectives and alternatives to meet or exceed stakeholder needs. These processes interact with each other and with the processes in the other knowledge areas as well. Each process may involve effort from one or more individuals or groups of individuals, based on the needs of the project. Each process generally occurs at least once in every project phase. Project integration management comes into play when a cost estimate is needed for a contingency plan, or when risks associated with various staffing alternatives must be identified. However, for a project to be completed successfully, integration must also occur in a number of other areas as well. For example: ƒ The work of the project must be integrated with the
  • 86. ongoing operations of the performing organization. ƒ Product scope and project scope must be integrated. One of the techniques used to both integrate the various processes and to measure the performance of the project as it moves from initiation through to completion is Earned Value Management (EVM). • Earned value is the amount of work completed, measured according to the budgeted effort that the work was supposed to consume. • It is also called the budgeted cost of work performed. • As each task is completed, the number of person- months originally planned for that task is added to the earned value of the project. – Earned value charts: An earned value chart has three curves: • The budgeted cost of the work scheduled. • The earned value. • The actual cost of the work performed so far. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer.
  • 87. 2. Project Scope Management Software Project Management (CS615) 38 © Copyright Virtual University of Pakistan Project Scope Management includes the processes required to ensure that the project includes all the work required, and only the work required, to complete the project successfully. It is primarily concerned with defining and controlling what is or is not included in the project. The processes, tools, and techniques used to manage product scope vary by application area and are usually defined as part of the project life cycle A project generally results in a single product, but that product may include subsidiary components, each with its own separate but interdependent product scopes. For example, a new telephone system would generally include four subsidiary components—hardware, software, training, and implementation. Completion of the project scope is measured against the project plan, but completion of the product scope is measured against the product requirements. Both types of scope management must be well
  • 88. integrated to ensure that the work of the project will result in delivery of the specified product. 3. Project Time Management Project Time Management includes the processes required to ensure timely completion of the project. The followings are major processes in developing the project time schedule: (a) Activity Definition—identifying the specific activities that must be performed to produce the various project deliverables. (b) Activity Sequencing—identifying and documenting interactivity dependencies. (c) Activity Duration Estimating—estimating the number of work periods that will be needed to complete individual activities. (d) Schedule Development—analyzing activity sequences, activity durations, and resource requirements to create the project schedule. (e) Schedule Control—controlling changes to the project schedule. These processes interact with each other and with the processes in the other knowledge areas as well. Each process may involve effort from one or more individuals or groups of individuals, based on the needs of the project. Each process generally occurs at least once in every project phase.
  • 89. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Let's break down the concepts in your lecture into simple, beginner-level explanations: 2. Project Scope Management 2. Project Scope Management 2. Project Scope Management 2. Project Scope Management 2. Project Scope Management Project Scope Management is about making sure that everything that needs to be done for a project is clearly defined and controlled. It ensures that the project includes all the necessary work and only the necessary work to complete the project successfully. 3. Project Time Management 3. Project Time Management 3. Project Time Management 3. Project Time Management 3. Project Time Management Defining Scope: This involves clearly outlining what the project will deliver. For example, if you are managing a project to create a new software application, the scope would include all the features, functionalities, and services that the software should provide. Controlling Scope: This is about ensuring that the project stays within its defined boundaries. If someone wants to add a new feature to the software that wasn't originally planned, you would need to decide whether this change is necessary or if it will affect the project's timeline or budget. Product vs. Project Scope: A project usually results in a single product, but this product might have multiple components. For example, if you're developing a new telephone system, it might include hardware, software, training, and implementation. Each of these components has its own scope. The success of the project is measured by how well it adheres to the project plan, while the success of the product is measured by whether it meets the specified requirements.
  • 90. 4. Project Cost Management Software Project Management (CS615) 39 © Copyright Virtual University of Pakistan Project Cost Management includes the processes required to ensure that the Project Time Management is about ensuring that the project is completed on time. It involves several key processes: These processes interact with each other and other areas of project management. For example, changes in the scope of the project might affect the schedule, and managing these interactions is crucial to the project's success. This explanation simplifies the concepts while maintaining a coherent flow, just as a lecturer would do in a class. (a) Activity Definition: This process involves identifying all the specific tasks that need to be done to deliver the project. For instance, if you're managing a construction project, you need to list out tasks like laying the foundation, building the walls, installing plumbing, etc. (b) Activity Sequencing: After identifying the tasks, you need to determine the order in which they should be completed. Some tasks can only start after others are finished. For example, you can't start painting a room until the walls are built. (c) Activity Duration Estimating: This involves estimating how long each task will take to complete. For example, you might estimate that building the walls will take 10 days. (d) Schedule Development: Once you have the tasks, their order, and their durations, you can develop the project schedule. This schedule shows when each task will start and finish, and it helps ensure that everything is completed on time. (e) Schedule Control: This is about monitoring the project to make sure it stays on schedule. If any changes or delays occur, you need to adjust the schedule accordingly to keep the project on track.
  • 91. project is completed within the approved budget. Resource Planning—determining what resources (people, equipment, materials) and what quantities of each should be used to perform project activities. Cost Estimating—developing an approximation (estimate) of the costs of the resources needed to complete project activities. Cost Budgeting—allocating the overall cost estimate to individual work activities. Cost Control—controlling changes to the project budget. These processes interact with each other and with the processes in the other knowledge areas as well. Each process may involve effort from one or more individuals or groups of individuals, based on the needs of the project. Each process generally occurs at least once in every project phase. 5. Project Quality Management Project Quality Management includes the processes required to ensure that the project will satisfy the needs for which it was undertaken. It includes “all activities of the overall management function that determine the quality policy, objectives, and responsibilities and implements them by means such as quality planning, quality assurance, quality control, and quality improvement, within the quality system. These processes interact with each other and with the
  • 92. processes in the other knowledge areas as well. Each process may involve effort from one or more individuals or groups of individuals, based on the needs of the project. Each process generally occurs at least once in every project phase. Project quality management must address both the management of the project and the product of the project. The generic term product is occasionally used, in literature regarding quality, to refer to both goods and services. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Here's a simple explanation of the concepts in your lecture: 4. Project Cost Management 4. Project Cost Management 4. Project Cost Management 4. Project Cost Management 4. Project Cost Management Project Cost Management ensures that the project stays within its approved budget. It involves several key processes: Resource Planning: This is about figuring out what resources (people, equipment, materials) are needed for the project and in what quantities. For example, if you are managing a software development project, you'll need to plan for the number of developers, the software tools they'll use, and the hardware required for testing.
  • 93. These processes interact with each other and other project management areas to ensure that the project is completed within the budget. 5. Project Quality Management 5. Project Quality Management 5. Project Quality Management 5. Project Quality Management 5. Project Quality Management Project Quality Management is about making sure that the project meets the requirements and satisfies the needs for which it was started. It includes the following processes: Project Quality Management applies to both the project itself (how the project is managed) and the product it delivers (the final outcome). The goal is to ensure that Cost Estimating: Once you know what resources you need, the next step is to estimate the costs associated with them. For example, you might estimate the cost of hiring developers, purchasing software licenses, and renting office space. Cost Budgeting: After estimating the total costs, you need to allocate this budget to specific tasks or activities in the project. This helps in monitoring spending and ensuring that each part of the project has the funds it needs to be completed. Cost Control: This involves keeping track of the project’s spending to ensure that it stays within the budget. If unexpected expenses arise, adjustments may be needed to keep the project on track financially. Quality Planning: This involves setting the standards and guidelines that the project must follow to ensure quality. For example, if you're managing a project to develop a mobile app, quality planning might involve setting standards for user interface design, performance, and security. Quality Assurance: This is about making sure that the project processes are being followed correctly to meet the quality standards. For example, regular reviews and audits might be conducted to ensure that the development process is on track. Quality Control: This process involves monitoring the project’s outcomes to ensure they meet the required quality standards. For example, testing the mobile app to ensure it functions correctly and meets the performance criteria is part of quality control. Quality Improvement: This focuses on finding ways to improve the quality of the project’s processes and outcomes continuously. For instance, learning from past mistakes and making adjustments to avoid them in the future is part of quality improvement.
  • 94. 6. Project Human Resource Management Project Human Resource Management includes the processes required to make the most effective use of the people involved with the project. It includes all the project stakeholders—sponsors, customers, partners, and individual contributors Following are some major processes: Software Project Management (CS615) 40 © Copyright Virtual University of Pakistan ƒ Organizational Planning—identifying, documenting, and assigning project roles, responsibilities, and reporting relationships. ƒ Staff Acquisition—getting the human resources needed assigned to and working on the project. ƒ Team Development—developing individual and group competencies to enhance project performance. These processes interact with each other and with the processes in the other knowledge areas as well. Each process may involve effort from one or more individuals or groups of individuals, based on the needs of the project. both the project processes and the final product meet the desired quality standards. This explanation presents the topics in a straightforward and coherent manner, maintaining the flow of a lecture.
  • 95. There is a substantial body of literature about dealing with people in an operational, ongoing context. Some of the many topics include: ƒ Leading, communicating, negotiating, etc. Key General Management Skills: ƒ Delegating, motivating, coaching, mentoring, and other subjects related to dealing with individuals. ƒ Team building, dealing with conflict, and other subjects related to dealing with groups. ƒ Performance appraisal, recruitment, retention, labor relations, health and safety regulations, and other subjects related to administering the human resource function. Most of this material is directly applicable to leading and managing people on projects, and the project manager and project management team should be familiar with it. However, they must also be sensitive as to how this knowledge is applied on the project. For example: Project Human Resource Management includes the processes required to make the most effective use of the people involved with the project. It includes all the project stakeholders—sponsors, customers, partners, and individual contributors. Major processes include: ƒ Organizational Planning—identifying, documenting, and assigning project roles, responsibilities, and reporting relationships.
  • 96. ƒ Staff Acquisition—getting the human resources needed assigned to and working on the project. ƒ Team Development—developing individual and group competencies to enhance project performance. Software Project Management (CS615) 41 © Copyright Virtual University of Pakistan These processes interact with each other and with the processes in the other knowledge areas as well. Each process may involve effort from one or more individuals or groups of individuals, based on the needs of the project. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Here's a clear and straightforward explanation of the concepts in your lecture: 6. Project Human Resource Management 6. Project Human Resource Management 6. Project Human Resource Management 6. Project Human Resource Management 6. Project Human Resource Management Project Human Resource Management is about effectively managing the people involved in a project. This includes everyone from project sponsors and customers to team members and partners. The goal is to ensure that everyone is working effectively and contributing to the project's success. The key processes involved are:
  • 97. Key General Management Skills Key General Management Skills Key General Management Skills Key General Management Skills Key General Management Skills In addition to the specific processes mentioned, managing human resources on a project also involves a set of general management skills that are essential for dealing with people: All these processes and skills interact with other areas of project management to ensure that the human resources are managed effectively, contributing to the Organizational Planning: This involves identifying the roles and responsibilities of everyone involved in the project. It includes documenting who does what, who reports to whom, and how the different roles interact. For example, in a software development project, you would define the roles of developers, testers, project managers, and so on, and clarify their responsibilities. Staff Acquisition: This process is about ensuring that you have the right people working on the project. It involves hiring or assigning team members with the necessary skills and getting them onboard. For instance, if your project requires a database specialist, you need to make sure you acquire that talent and assign them to the relevant tasks. Team Development: Once the team is in place, this process focuses on developing their skills and abilities to improve project performance. This could involve training, team-building exercises, or mentoring to help team members work more effectively together and contribute to the project’s success. Delegating, Motivating, and Coaching: These skills are crucial for managing individuals within the project team. Delegating involves assigning tasks to the right people, motivating keeps the team members engaged and focused, and coaching helps them improve their skills. Team Building and Conflict Resolution: These skills are important for managing groups within the project. Team building ensures that the team works well together, while conflict resolution is about addressing any disagreements or issues that arise to maintain a positive working environment. Performance Appraisal and Recruitment: These are administrative aspects of managing human resources. Performance appraisal involves assessing how well team members are doing their jobs, while recruitment is about bringing new talent into the project. Retention, labor relations, and health and safety regulations are also important aspects of human resource management.
  • 98. 7. Project Communications Management Project Communications Management includes the processes required to ensure timely and appropriate generation, collection, dissemination, storage, and ultimate disposition of project information. It provides the critical links among people, ideas, and information that are necessary for success. Everyone involved in the project must be prepared to send and receive communications, and must understand how the communications in which they are involved as individuals affect the project as a whole. Major processes include: ƒ Communications Planning—determining the information and communications needs of the stakeholders: who needs what information, when they will need it, and how it will be given to them. ƒ Information Distribution—making needed information available to project stakeholders in a timely manner. ƒ Performance Reporting—collecting and disseminating performance information. This includes status reporting, progress overall success of the project. This explanation is designed to be clear and coherent, matching the flow of a lecture.
  • 99. measurement, and forecasting. ƒ Administrative Closure—generating, gathering, and disseminating information to formalize a phase or project completion. These processes interact with each other and with the processes in the other knowledge areas as well. Each process may involve effort from one or more individuals or groups of individuals, based on the needs of the project. Each process generally occurs at least once in every project phase. Communicating is a broader subject and involves a substantial body of knowledge that is not unique to the project context. For example: ƒ Sender-receiver models—feedback loops, barriers to communications, etc. ƒ Choice of media—when to communicate in writing versus when to communicate orally, when to write an informal memo versus when to write a formal report, etc. ƒ Writing style—active versus passive voice, sentence structure, word choice, etc. ƒ Presentation techniques—body language, design of visual aids, etc. ƒ Meeting management techniques—preparing an agenda, dealing with conflict, etc. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in
  • 100. this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Here's a simple explanation of the concepts related to Project Communications Management from your lecture: 7. Project Communications Management 7. Project Communications Management 7. Project Communications Management 7. Project Communications Management 7. Project Communications Management Project Communications Management ensures that the right information is shared with the right people at the right time throughout the project. Effective communication is crucial for the success of any project as it connects people, ideas, and information. Major Processes: Major Processes: Major Processes: Major Processes: Major Processes: Communications Planning: This process involves figuring out what information needs to be shared, who needs it, when they need it, and how it will be delivered. For example, if you are managing a project, you might need to plan how to update stakeholders on the project’s progress, which could involve weekly reports or meetings. Information Distribution: Once you have the communication plan in place, this process ensures that the necessary information is provided to the project stakeholders on time. For example, if your project has reached a critical milestone, you need to ensure that this information is promptly shared with all stakeholders. Performance Reporting: This involves collecting and sharing information about how the project is performing. It includes reporting on the current status of the project, measuring progress, and forecasting future performance. For example, you might create a report that shows how much work has been completed, how much remains, and whether the project is on track to meet its deadlines. Administrative Closure: This process involves gathering and distributing the final information needed to formally close a project phase or the entire
  • 101. 8. Project Risk management Project Risk management is the systematic process of identifying, analyzing, and responding to project risk. It includes maximizing the probability and consequences of positive events and minimizing the Broader Communication Aspects: Broader Communication Aspects: Broader Communication Aspects: Broader Communication Aspects: Broader Communication Aspects: Effective communication in a project involves several broader aspects: This explanation simplifies the concepts while maintaining coherence, as would be expected in a lecture. project. For instance, when a project is completed, you would generate a final report, collect all related documents, and distribute this information to stakeholders to officially close the project. Sender-Receiver Models: This involves understanding how information is sent and received, recognizing potential barriers, and ensuring that feedback is considered to confirm that the message was understood correctly. Choice of Media: Deciding how to communicate is important. For example, knowing when to send a written report versus when to have a face-to-face meeting can significantly impact the effectiveness of communication. Writing Style: The way information is written matters too. Using clear and direct language, choosing the right words, and structuring sentences properly helps ensure that the message is understood. Presentation Techniques: When presenting information, how you present it is crucial. This includes using appropriate body language, designing effective visual aids, and delivering your message in a way that engages the audience. Meeting Management Techniques: Managing meetings effectively involves preparing an agenda, keeping the discussion on track, and handling conflicts if they arise, ensuring that meetings are productive and contribute to the project's success.
  • 102. probability and consequences of adverse events to project objectives. ƒ Risk Management Planning—deciding how to approach and plan the risk management activities for a project. ƒ Risk Identification—determining which risks might affect the project and documenting their characteristics. ƒ Qualitative Risk Analysis—performing a qualitative analysis of risks and conditions to prioritize their effects on project objectives. ƒ Quantitative Risk Analysis—measuring the probability and consequences of risks and estimating their implications for project objectives. ƒ Risk Response Planning—developing procedures and techniques to enhance opportunities and reduce threats to the project’s objectives. ƒ Risk Monitoring and Control—monitoring residual risks, identifying new risks, executing risk reduction plans, and evaluating their effectiveness throughout the project life cycle. These processes interact with each other and with the processes in the other knowledge areas. Each process generally occurs at least once in every project. 9. Project Procurement Management Project Procurement Management includes the processes required to acquire goods and services, to attain project scope, from outside the performing
  • 103. organization. For simplicity, goods and services, whether one or many, will generally be referred to as a product. An overview of the major processes includes: ƒ Procurement Planning—determining what to procure and when. ƒ Solicitation Planning—documenting product requirements and identifying potential sources. ƒ Solicitation—obtaining quotations, bids, offers, or proposals, as appropriate. ƒ Source Selection—choosing from among potential sellers. ƒ Contract Administration—managing the relationship with the seller. ƒ Contract Closeout—completion and settlement of the contract, including resolution of any open items. These processes interact with each other and with the processes in the other knowledge areas as well. Each process may involve effort from one or more individuals or groups of individuals, based on the needs of the project Software Project Management (CS615) 43 © Copyright Virtual University of Pakistan Project Procurement Management is discussed from the perspective of the buyer in the buyer-seller relationship. The buyer-seller relationship can exist at many levels on one project. Depending on the application area, the seller may be called a subcontractor, a vendor, or a supplier.
  • 104. From ChatGPT, designed with FancyGPT The seller will typically manage its work as a project. In such cases: ƒ The buyer becomes the customer, and is thus a key stakeholder for the seller. ƒ The seller’s project management team must be concerned with all the processes of project management, not just with those of this knowledge area. ƒ The terms and conditions of the contract become a key input to many of the seller’s processes. The contract may actually contain the input (e.g., major deliverables, key milestones, cost objectives), or it may limit the project team’s options (e.g., buyer approval of staffing decisions is often required on design projects). (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that give a coherent answer.
  • 105. cs611 LECTURE 6 cs611 LECTURE 6 cs611 LECTURE 6 cs611 LECTURE 6 cs611 LECTURE 6 LECTURE # 6 1. Introduction & Fundamentals 1.17 Team leader Most definitions of leadership involve three components: influence group and goal. First, leaders are individuals who influence the behavior of others. These others are usually referred to as sub ordinates or followers. Second, leadership is usually examined in the context of a group, especially work groups such as managers and their teams or foremen and their subordinates. Third, research on leadership stresses a group goal that has to be accomplished. So a definition is: Leadership is the process in which an individual influences the group members towards the attainment of group or organization goals. Note that the influence can be exercised in a: variety of ways. It may be the 'bridge to engine room' approach, where the leader commands and controls. Or the influence can be exercised by guiding and facilitating the group's behavior so that the goal is accomplished. The notion of reciprocity is also part of man
  • 106. definitions. Influencing is often two ways. Leaders may influence followers, but followers influence leaders to lead in one way rather than another. An influencing style appropriate for checkout assistant in a supermarket may be different from that appropriate for rock scientists. The choice is open to the leader of how to influence is one of the key aspects investigated by leadership researchers. Another aspect of leadership is that the right to lead is often voluntarily conferred on the leader by some or all members of the group. A group of friends may recognize one, of their group as the leader, in the sense that she influences the group more than any of the other members. There also may be informal leader. While the nominal head of a department may have the formal leadership position, the real leadership may be exercised by someone lower down the hierarchy who influences the group towards goals that may not be those that the organization whishes to be pursue. Finally, leadership implies that a leader motivates the group to spend energy in attaining the goals of the group. Influence without change or movement isn’t influence. Leaders make change happen, a difficult but vitally important task. 1.18 Leaders and Managers Although it is common to use the terms 'leader' and
  • 107. 'manager' interchangeably, nowadays many writers point to a difference between the two. Software Project Management (CS615) 45 © Copyright Virtual University of Pakistan The difference is that to function as a leader, a person must exercise influence over another person in the attainment of organizational goals, as described in the definition above. Managerial ' functions of organizing, planning, scheduling, processing information, communicating, and so on, do not necessarily involve leadership. Some managers perform both types of function and can be described as leaders, but others do not. There is no automatic link between the two concepts. Note, too, that leaders are not necessarily just at the top of organizations. Influence can be exerted in most job functions and at levels of seniority or hierarchy. The distinction between managers and leaders was, developed by Bennis and Nanus (1985) in their influential book Leaders. In it they put forward the view that: Leadership is path finding Management is path following Management is about doing things right Leadership is about doing the right things What they meant by this is that leadership is about having a vision. It involves having a strategy or thinking strategically; it means
  • 108. having a view of where the organization should go or be or do; it means deciding what is important for the success of the organization; it involves envisaging the future, A leader's responsibility is to think what are the key criteria for success of his or her part of the business and not just now but for the future. Managers, on the other hand, are more concerned with implementing others strategies and plans, They are concerned with running their part of the organization, making sure that the accounts get prepared, that invoices are sent out, that the service is sold, that the traffic is directed, that the research paper is written, or whatever the task that needs to be done. A very similar view is put forward by Kotter (1990). He argues that management is concerned with activities which are designed to produce 'consistency and order', whereas leadership is concerned with, 'constructive or adaptive change'. Kotter says there are four major ways that management and leadership differ: 1. Planning and budgeting versus establishing direction. Management involves making detailed steps and timetables for achieving results, then marshalling resources to make it happen. Leadership means developing a vision of the future and strategies for achieving that vision. 2. Organizing and staffing versus aligning people.
  • 109. Management comprises the allocation of tasks in line with plans, staffing them appropriately, delegating responsibility and monitoring implementation. Leadership involves communicating the vision so that others understand and agree with it. 3. Controlling and problem-solving versus motivating and inspiring. Management involves monitoring results of a plan, identifying problems with the plan and then solving them. Leadership involves 'energizing people' Software Project Management (CS615) 46 © Copyright Virtual University of Pakistan towards the vision. It means appealing to their needs and values so that they overcome barriers to change. 4. Outcomes: predictability and order, or change. Management produces predictability and order so that others, such as customers or shareholders can rely on consistent results. Leadership produces change that is often a quantum leap, such as new products or new approaches to managing people, that makes the organization more competitive. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one
  • 110. lecturer so keep in mind in that give a coherent answer. Kirkpatrick and Locke (1991) suggest that the following traits distinguish leaders from non-leaders: • Drive (achievement. ambition, energy, tenacity, initiative); • Leadership motivation (personalized or socialized); .honesty and integrity; • Self-confidence (including emotional stability); • Cognitive ability (the ability to marshal and interpret a wide variety of information); • Knowledge of the business They point out, though, that there is much more to being an effective leader than merely possessing a list of traits. While the traits may provide people with the potential for leadership, it is the capacity to create a vision and implement it that turns the potential into reality. Strong leadership motivation may sound an obvious trait for a leader. After all,
  • 111. only those who want the weighty responsibilities and grueling pressures of leadership are likely to strive for it. McClelland (1985) distinguishes between two types of power motivation. On the one hand, leaders may be interested in personalized power, which describes the motivation of leaders who "seek power for its own sake, who wish to dominate others and are often concerned with the status and trappings of power. The late Robert Maxwell, former owner of the Mirror Group allegedly displayed such traits. On the other hand, leaders who show socialized power motivation are more interested in cooperating with others to achieve desired goals. They work with others rather than attempting to dominate or control them. From the point of view of subordinates and the organization as a whole, the leader motivated by socialized power is obviously preferable. On the question of cognitive ability; leaders must be able to gather, integrate and interpret large amounts of information. Many Many researchers have pointed out that it is not necessary to be brilliant, though; leadership effectiveness is helped by above average intelligence, not genius. Of Kirkpatrick and Locke’s six characteristics, some would argue that drive and persistence are much more important than intelligence.
  • 112. In conclusion, the trait approach has undergone a revival. Recent research suggests that traits do matter. Yet the research shows that there are only a handful Software Project Management (CS615) 47 © Copyright Virtual University of Pakistan of traits which distinguish leaders from others, and a clear distinction between effective and ineffective leaders has not yet emerged. In an excellent book of technical leadership, Jerry Weinberg suggests a MOI model of leadership: Motivation: The ability to encourage (by "push or pull") technical people to produce to their best ability. Organization: The ability to mold existing processes (or invent new ones) that will enable the initial concept to be translated into a final product. Ideas or innovation: The ability to encourage people to create and feel creative even when they must work within bounds established for a particular soft- ware product or application. Weinberg suggests that successful project leaders apply a problem solving management style. That is, a software project manager should concentrate on understanding the problem to be solved, managing the flow of ideas, and at the same time, letting everyone on the team know (by words and, far more important,
  • 113. by actions) that quality counts and that it will not be compromised. Another view [EDG95] of the characteristics that define an effective project manager emphasizes four key traits: Problem solving An effective software project manager can diagnose the technical and organizational issues that are most relevant, systematically structure a solution or properly motivate other practitioners to develop the solution, apply lessons learned from past projects to new situations, and remain flexible enough to change direction if initial attempts at problem solution are fruitless. Managerial identity A good project manager must take charge of the project. She must have the confidence to assume control when necessary and the assurance to allow good technical people to follow their instincts. Achievement To optimize the productivity of a project team, a manager must reward initiative and accomplishment and demonstrate through his own actions that controlled risk taking will not be punished. Influence and team building An effective project manager must be able to "read" people; she must be able to understand verbal and nonverbal signals and react to the needs of the people sending these signals. The manager must remain under control in high-stress
  • 114. situations. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Leadership Traits (Kirkpatrick and Locke, 1991) Leadership Traits (Kirkpatrick and Locke, 1991) Leadership Traits (Kirkpatrick and Locke, 1991) Leadership Traits (Kirkpatrick and Locke, 1991) Leadership Traits (Kirkpatrick and Locke, 1991) Kirkpatrick and Locke identified six key traits that distinguish leaders from non- leaders. Here’s a simplified explanation of these traits with examples: Drive (Achievement, Ambition, Energy, Tenacity, Initiative): 1 Example: A team leader consistently sets challenging goals, works long hours when necessary, and takes the initiative to resolve issues without being asked. They demonstrate ambition by aiming for a leadership role and energy by maintaining a high level of activity and enthusiasm throughout the project. 2 Leadership Motivation (Personalized or Socialized): 3 Personalized Power: A leader who seeks personal power may focus on gaining authority and status, like a team lead who makes all decisions without consulting the team and enjoys being in control. 4 Socialized Power: In contrast, a leader with socialized power motivation works cooperatively with the team, involving them in decisions and focusing on shared success, such as a project manager who facilitates brainstorming sessions and values everyone’s input. 5 Honesty and Integrity: 6 Example: A leader demonstrates honesty by being transparent about project challenges and integrity by following through on promises, such as committing to a project deadline and ensuring the team meets it ethically. 7
  • 115. Additional Leadership Concepts Additional Leadership Concepts Additional Leadership Concepts Additional Leadership Concepts Additional Leadership Concepts While traits are important, Kirkpatrick and Locke emphasize that effective leadership also involves the ability to create and implement a vision. Leadership Motivation Types (McClelland, 1985) Leadership Motivation Types (McClelland, 1985) Leadership Motivation Types (McClelland, 1985) Leadership Motivation Types (McClelland, 1985) Leadership Motivation Types (McClelland, 1985) Self-Confidence (Including Emotional Stability): 8 Example: A confident leader in a software project may make difficult decisions, such as choosing to delay a release for quality improvements, without second-guessing themselves. Emotional stability means staying calm and collected under stress, like handling a major bug in the software without panicking. 9 Cognitive Ability (Ability to Interpret Information): 10 Example: A project manager with cognitive ability gathers and analyzes data from different team members, such as performance metrics or user feedback, and uses that information to adjust the project plan effectively. 11 Knowledge of the Business: 12 Example: A software project leader understands the specific needs of the business, such as the importance of meeting a client’s requirements or delivering features that enhance user experience, and guides the team accordingly. 13 Creating a Vision: A software project leader envisions the product not just as a piece of code but as a solution that solves a customer problem or enhances user experience. They set this vision as the guiding goal for the team. Implementing the Vision: The leader ensures that the team's efforts align with this vision, such as by guiding developers to focus on features that directly contribute to the user experience. Personalized Power Motivation: A leader who seeks personal gain and control might prioritize their authority over collaboration, potentially stifling innovation. Example: A team lead who constantly overrules team suggestions to maintain control. Socialized Power Motivation: A leader focused on shared success collaborates with the team to achieve common goals. Example: A project manager who actively involves the team in decision-making to foster a collaborative environment.
  • 116. Jerry Weinberg’s MOI Model of Leadership Jerry Weinberg’s MOI Model of Leadership Jerry Weinberg’s MOI Model of Leadership Jerry Weinberg’s MOI Model of Leadership Jerry Weinberg’s MOI Model of Leadership Effective Project Manager Traits (EDG95) Effective Project Manager Traits (EDG95) Effective Project Manager Traits (EDG95) Effective Project Manager Traits (EDG95) Effective Project Manager Traits (EDG95) Motivation: 1 Example: A software project leader encourages team members to produce their best work by recognizing their achievements, such as acknowledging a developer who implemented an innovative solution during a sprint review. 2 Organization: 3 Example: A project manager organizes processes by creating a structured development workflow, like using Agile methodologies to ensure that tasks are well-organized and milestones are met. 4 Ideas or Innovation: 5 Example: A project leader encourages creativity by providing room for experimentation within project guidelines, such as allowing developers to explore new technologies that could enhance the final product. 6 Problem-Solving: 1 Example: A project manager identifies that the team is facing delays due to technical difficulties and organizes a problem-solving session, encouraging team members to propose and implement solutions. 2 Managerial Identity: 3 Example: A project manager takes charge when the project falls behind schedule, making necessary adjustments to the timeline while confidently leading the team through the crisis. 4 Achievement: 5 Example: A project manager recognizes and rewards a developer who completed a difficult task ahead of time, reinforcing a culture of achievement and encouraging others to take initiative. 6 Influence and Team Building: 7 Example: A project manager reads the mood of the team and provides support when necessary, such as offering additional resources or time off after an intense period of work, thereby maintaining team morale. 8
  • 117. 1.19 Project Organization People are managed through an organizational structure. This hierarchical structure is based on the four cornerstones of management: delegation, authority, responsibility and supervision (see Fig.1). Delegation bestows authority, and authority produces (and requires) responsibility. Both authority and responsibility require supervision, and effective supervision requires a suitable organizational structure: Most projects are organized as teams, with each team assigned specific functions within the project, Different types of project require different types of team structure, as for example a team of junior programmers requires a technical team leader while a team of experts may require only an administrative team leader. It is the project manager's responsibility to select the structure best suited for the project. Basically an organization is a group of people intentionally organized to accomplish an overall, common goal or set of goals. Business This completes the discussion on leadership traits, motivation, and project management characteristics in the context of software project leadership.
  • 118. organizations can range in size from two people to tens of thousands. Figure 1: The four cornerstones of management There are many ways to organize a software project. The larger the project the more critical the organizational structure becomes. Badly organized projects breed confusion, and confusion leads to project failure. Figure 2 describes the basic structure of a project in which below the project manager are just two general functions: development and support. This very basic software project structure was not uncommon in the 1950s and 1960s. It is still a valid project structure for very small projects (up to five developers), though occasionally it can still be found today in larger projects. Delegation 1 Supervision 2 Authority 3 Responsibility 4 Software Project Management (CS615) 49 © Copyright Virtual University of Pakistan Figure 2: Basic structure of a development project Figure 3: Software project organizational chart
  • 119. Project Project development Project support Project manager Deputy project manager System engineer Independent test group Secretary Quality assurance Configuration control Development team 1 Development team 2 Development team 3 Software Project Management (CS615) 50 © Copyright Virtual University of Pakistan Project manager Deputy project manager Integration Group
  • 120. Independent Group Secretary Quality assurance Configuration control SW sub-project Manager 1 SW sub-project Manager 2 SW sub-project Manager 3 Team 1 Team 2 Team 3 Team 1 Team 2 Team 1 Team 2 Team 3 Figure 4: Large hardware/software project organizational chart Project managers are just two general functions: development and support. This very basic software project structure was not uncommon in the 1950s and 1960s. It is a project structure for very small projects (up to five developers). Though occasionally, it can still be found today in larger projects. Figure 3 describes a detailed organizational chart including all major support functions. This organizational structure is suitable for large projects (with a staff exceeding 20).
  • 121. Smaller projects may not require a deputy project manager or separate configuration control and quality assurance groups. Very large projects (exceeding a staff of 40) can often be managed more easily by dividing the project into sub-projects. Figure 4 presents the organizational chart for a large project. This chart includes both software and hardware development teams, and an integration group that is responsible for hardware/software integration as well as integration within each group. As an example, consider the organization of a large satellite project. The project manager is in fact responsible for a number of projects: the ground control station, the rocket and the satellite itself. The software for all of these sub- projects is managed within a single project office. Each sub-project is then managed by a sub-project manager. An organizational chart similar to the one described in Fig. 4 can be applied to the satellite project; the resulting chart is described in Fig. 5. Software Project Management (CS615) 51 © Copyright Virtual University of Pakistan Satellite PM Sub-project Coordinator Scientific Engineer Integration Team
  • 122. Secretary Quality assurance Ground control Station sub-project Rocket Development Sub-project Satellite Sub-project Team 1 Team 2 Team 3 Team 1 Team 2 Team 1 Team 2 Team 3 Quality Assurance Independent Group Configuration Control Figure 5: Satellite project organizational chart Clearly the project's organizational structure is dependent on the type of project being developed. Some of the issues that must be considered are: – Project size: the larger the project, the more important the organization. Large
  • 123. projects have significant human communications and coordination overhead, and therefore require more support functions. – Hardware/software development projects. The simultaneous development of hardware and software is not easy. Planning, integration and testing are much more complicated, and require dedicated support groups. – High reliability systems. Any system that is sensitive to issues of reliability (such as military or life-saving systems) requires a major effort in quality assurance. Quality is also an important consideration in many marketable software products (e.g. communications packages). These types of project require a separate quality assurance organization. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Project Organization in Software Development Project Organization in Software Development Project Organization in Software Development Project Organization in Software Development Project Organization in Software Development When managing a project, people are organized through a structure known as the organizational structure. This structure is based on four key principles: Delegation: Assigning tasks to others. 1
  • 124. Team Structure Team Structure Team Structure Team Structure Team Structure The way a project team is organized can vary depending on the type and size of the project. Here are some examples of how teams might be structured: Example: A project manager assigns a task to a developer to implement a new feature in the software. 2 Authority: The power to make decisions and enforce rules. 3 Example: A team leader has the authority to approve the developer's code changes before they are included in the final product. 4 Responsibility: Being accountable for completing tasks. 5 Example: The developer is responsible for ensuring that the new feature works correctly and is delivered on time. 6 Supervision: Overseeing tasks to ensure they are completed properly. 7 Example: The project manager supervises the team to ensure that everyone is progressing as planned and that any issues are addressed. 8 Small Project Team: 1 For small projects (up to five developers), the structure might be very simple. There could be a project manager and a development team. The project manager oversees both development and support functions. This structure works well when the project is small enough that direct supervision of all tasks is feasible. 2 Medium-Sized Project Team: 3 In a larger project (around 20 people), the team structure becomes more complex. There may be a project manager, a deputy project manager, and various specialized roles like quality assurance (QA) and configuration control. The development work is divided among several teams, and the project manager coordinates between them. 4 Large Project Team: 5 In very large projects (over 40 people), the structure is even more detailed. The project is often divided into sub-projects, each managed by a sub-project manager. For example, in a large satellite project, there might be separate teams working on the ground control system, the rocket, and the satellite. Each of these teams would have its own 6
  • 125. Key Factors in Project Organization Key Factors in Project Organization Key Factors in Project Organization Key Factors in Project Organization Key Factors in Project Organization Example Organizational Structures Example Organizational Structures Example Organizational Structures Example Organizational Structures Example Organizational Structures sub-project manager, and all sub-projects would be coordinated by the main project manager. Project Size: 1 Example: A small mobile app development project might only need a simple structure with a project manager and a few developers. However, a large enterprise software project with many developers, testers, and support staff would require a more complex organizational structure, with clearly defined roles and responsibilities. 2 Hardware/Software Development Projects: 3 Example: A project that involves both hardware (e.g., building a device) and software (e.g., creating the software to run on the device) requires careful coordination between the teams working on each aspect. This might involve having an integration group to ensure that the hardware and software work together seamlessly. 4 High Reliability Systems: 5 Example: In projects where reliability is critical, such as in medical software or military systems, a strong focus on quality assurance is essential. This could mean having a dedicated quality assurance team to ensure that the software meets all reliability and safety requirements. 6 Basic Software Project Structure: 1 For small projects, the structure might be simple, with the project manager overseeing both development and support. The project manager directly coordinates with a small development team to complete the tasks. 2 Organizational Chart for a Medium Project: 3 In medium-sized projects, an organizational chart might include the project manager at the top, with a deputy project manager, system engineers, development teams, and support functions like QA and configuration control. 4 Organizational Chart for a Large Project: 5
  • 126. The Organizational structure The organization's structure, or design, is the overall arrangement of the organization's various roles, processes and their relationships in the organization. The design of an organization is a means to accomplishing the organization's overall goal -- the structure is not an end in itself. In systems theory terms, the design ensures that the appropriate inputs go through the necessary processes to produce the required outputs to produce the intended outcomes. The structure of the performing organization often constrains the availability of or terms under which resources become available to the project. Organizational Conclusion Conclusion Conclusion Conclusion Conclusion The organization of a project is critical to its success, particularly as the project size increases. Smaller projects can function with a simple structure, while larger projects require more complex organizational charts to manage the increased communication and coordination needs. By understanding these different structures, project managers can choose the best approach to suit their project’s needs, ensuring that tasks are completed efficiently and effectively. Large projects require a more complex structure. For example, in a satellite project, the organizational chart might include a project manager overseeing sub-project managers for different parts of the project (e.g., ground control, rocket development, and satellite development). There would also be support groups for quality assurance and configuration control to ensure everything works together as planned. 6
  • 127. structures can be characterized as spanning a spectrum from functional to projectized, with a variety of matrix structures in between. ⇒Corporate structure: The project's organization is largely dependent on the overall structure of the company within which the project is being developed. Many of the project support functions can be provided by centralized groups within the company. In fact, basic services, such as financial, secretarial and legal services, are commonly provided by the parent or corporate organization. Corporate structure usually dictates one of two basic types of project organization: matrix or pyramid. Figure 5 describes the structure of a matrix organization (compare this to the pyramid structure in Fig. 4). Within a corporate matrix organization, the project manager manages the technical activities of the project staff, while his or her involvement in non-technical personnel issues (e.g. salary reviews, promotion, and training) is minimal. ⇒Matrix Structure Think of the functional structure. Imagine if you took someone from each of the major functions in the functional structure (the boxes along the bottom of the organization chart), e.g., people from sales, engineering, etc., and organized them into a separate group intended to produce and sell one certain kind of product or service. Members of this group stay together until that
  • 128. product is produced or they continue to sell and service it. This overall structure (made up of a functional structure that also has groups assigned to products) is a matrix structure. This structure is useful because it focuses highly skilled people from across the organization to work on a complex product or service. It can be difficult though, because each person essentially reports to two supervisors: the supervisor of the functional area (e.g., engineering) and the product manager, as well. When the organization needs constant coordination of its functional activities, then lateral relations do not provide sufficient integration. Consider the matrix structure. To adopt the matrix structure effectively, the organization should modify many traditional management practices. Matrix organizations are a blend of functional and projectized characteristics. Weak matrices maintain many of the characteristics of a functional organization, and the Software Project Management (CS615) 53 © Copyright Virtual University of Pakistan project manager role is more that of a coordinator or expediter than that of a manager. In similar fashion, strong matrices have many of the characteristics of the projectized organization—full-time project managers with considerable authority and full-time project administrative staff. Most modern organizations involve all these
  • 129. structures at various levels. For example, even a fundamentally functional organization may create a special project team to handle a critical project. Such a team may have many of the characteristics of a project in a projectized organization. The team may include full-time staff from different functional departments, it may develop its own set of operating procedures, and it may operate outside the standard, formalized reporting structure. Matrix Organizations are a blend of functional and projectized characteristics. Weak matrices maintain many of the characteristics of a functional organization, and the project manager role is more that of a coordinator or expediter than that of a manager. In similar fashion, strong matrices have many of the characteristics of the projectized organization—full-time project managers with considerable authority and full-time project administrative staff. Most modern organizations involve all these structures at various levels. For example, even a fundamentally functional organization may create a special project team to handle a critical project. Such a team may have many of the characteristics of a project in a projectized organization. The team may include full-time staff from different functional departments, it may develop its own set of operating procedures, and it may operate outside the standard, formalized reporting structure.
  • 130. • The advantages of a matrix organization are: – More expertise: a matrix organization can maintain experts in specific fields (communications, data bases, graphics etc.) who are then assigned to different projects. A single project cannot always afford the luxury of maintaining experts in all fields. – Flexibility: it is easier to move people around from one project to another. This results in better utilization of the available expertise. – Emphasis on managing the project: the project manager is freed of many of the staff management tasks, leaving more time to concentrate on the technical aspects of the project. However, matrix organizations also have significant disadvantages: – Fewer management measures. One of the primary tools for generating motivation, promotion, is taken out of the hands of the project manager. The manager has little influence on the developer's salary and professional role in the organization. Software Project Management (CS615) 54 © Copyright Virtual University of Pakistan – Lower staff loyalty. All employees like to know exactly who their superior is. In a matrix organization, an employee has more than one superior. This causes
  • 131. a division of loyalty, and a weaker bond between employee and manager. These disadvantages often outweigh the advantages of the corporate matrix organization. Motivation is a major factor in the success of a project, and anything that undermines motivation is usually contrary to the best interests of the project. Unfortunately, the best interests of the project do not always completely coincide with the best interests of the company. Pyramid organizations provide a clear, well-defined hierarchy in which all individuals know their own position and the positions of those above and below them. When promotion and status play a major role in generating motivation (and they often do), then the pyramid organization is most effective. Many other factors generate motivation; Sense of achievement, praise and peer esteem, are just a few. Though promotion and status are not always the most effective motivators, a project manager should rarely relinquish any effective management tool. Therefore, from the perspective of a single project, the pyramid organization is often the best. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies.
  • 132. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Organizational Structure in Software Projects Organizational Structure in Software Projects Organizational Structure in Software Projects Organizational Structure in Software Projects Organizational Structure in Software Projects The organizational structure is the framework that defines how roles, processes, and responsibilities are arranged within a project or organization. This structure helps the organization achieve its goals by ensuring that the right resources are available when needed. In software projects, the structure of the organization can influence how effectively the project is executed. Corporate Structure Corporate Structure Corporate Structure Corporate Structure Corporate Structure The structure of the parent or corporate organization often dictates the structure of the project. Large companies typically provide essential services, such as financial, legal, and secretarial support, through centralized corporate departments. Depending on the company's corporate structure, project teams can be organized in different ways. There are two primary types of corporate structures that influence project organization: Matrix Structure: 1 In a matrix structure, team members from different departments (e.g., development, sales, engineering) are grouped together to work on a project. They continue to report to their department heads but also work under a project manager for the duration of the project. 2 Example: A developer in a software company may work on a new mobile app while still reporting to the engineering manager but also working closely with a project manager who coordinates the app development. 3 Pyramid Structure: 4 The pyramid structure is a traditional hierarchy where each level of the organization reports to the one above it. The project manager has clear authority over the team, and all decisions and tasks flow through this hierarchy. 5
  • 133. Matrix Structure Matrix Structure Matrix Structure Matrix Structure Matrix Structure In more detail, the matrix structure combines aspects of both functional and projectized organizations. It allows specialists from different functional areas (such as engineering, sales, and marketing) to come together to work on a specific project. The matrix structure can be categorized as either weak or strong: Advantages and Disadvantages of Matrix Advantages and Disadvantages of Matrix Advantages and Disadvantages of Matrix Advantages and Disadvantages of Matrix Advantages and Disadvantages of Matrix Organizations Organizations Organizations Organizations Organizations Advantages: Example: In a small software development project, the project manager oversees a group of developers, and those developers only report to the project manager. The hierarchy is well-defined, with each person's role and responsibilities clearly established. 6 Weak Matrix: The project manager acts more as a coordinator or facilitator, and functional managers retain most of the authority. Example: A weak matrix organization may have a project coordinator who ensures that everyone stays on schedule, but the functional managers (e.g., the engineering manager) make most of the technical decisions. Strong Matrix: The project manager has more authority and responsibility, similar to that of a projectized organization. The project manager manages the project and has a full-time administrative staff. Example: In a strong matrix organization, the project manager might have control over project-related decisions and resources, ensuring that the project meets its goals without needing approval from functional managers. More Expertise: 1 Matrix organizations allow for the use of specialized experts. For example, a company may have database experts who are assigned to different projects as needed. This allows the company to utilize expertise without having to maintain a full-time expert on each project. 2
  • 134. Disadvantages: Example: A database expert can work on multiple projects, providing specialized knowledge to ensure each project’s success. 3 Flexibility: 4 It is easier to move people between projects in a matrix organization. When one project finishes, team members can be reassigned to other projects, leading to better utilization of staff. 5 Example: Once a software development project is completed, the same developers can be reassigned to a new project without needing to hire or lay off staff. 6 Emphasis on Project Management: 7 The project manager in a matrix organization can focus more on the technical aspects of the project without being burdened with staff management tasks, which are typically handled by the functional managers. 8 Example: A project manager can focus on ensuring the software is delivered on time and meets quality standards, while the functional manager handles staff training and development. 9 Less Control Over Personnel Decisions: 1 Project managers in matrix organizations have limited control over their team members' salaries, promotions, and career development, which can affect motivation. 2 Example: A project manager may want to reward a developer for excellent work, but the decision on salary increases or promotions is made by the functional manager. 3 Lower Staff Loyalty: 4 In a matrix organization, employees report to multiple supervisors, which can create confusion and divided loyalty. Employees may not feel as connected to the project manager, reducing their sense of commitment to the project. 5 Example: A developer might be unsure whether to prioritize the requests of their functional manager or the project manager, leading to potential conflicts and lower job satisfaction. 6
  • 135. ⇒Functional Structure Most business organizations start out with a functional structure, or a small variation of this structure. This is the basic building block for other structures. In this structure, there is a central office which oversees various departments or major functions, e.g., human resources, finances, sales, marketing, engineering, etc. Think of a picture that has a box at the top labeled Central Office. Think of a row of boxes underneath the top box. Each box is labeled, e.g., sales, Pyramid Organization Pyramid Organization Pyramid Organization Pyramid Organization Pyramid Organization The pyramid structure is more traditional, with a clear hierarchy. In this structure, individuals know their roles and the roles of those above and below them. This structure provides stability and a clear path for promotion, which can be an important motivator for employees. Conclusion Conclusion Conclusion Conclusion Conclusion The choice of organizational structure depends on the project’s needs and the company’s corporate culture. A matrix organization offers flexibility and access to expertise but can suffer from divided loyalty and less control over personnel decisions. On the other hand, a pyramid organization provides a clear hierarchy and strong motivation through promotion but may lack the flexibility to adapt to changing project requirements. A project manager must carefully consider these factors when organizing a project to ensure the best outcome for both the project and the organization. Example: In a software company with a pyramid structure, a junior developer knows that by working hard and achieving success, they can be promoted to senior developer, and eventually to a team lead or project manager role.
  • 136. engineering, human resources, etc. Connect the boxes with lines coming down from the top box to each of the boxes below. Use functional structures when the organization is small, geographically centralized, and provides few goods and services. When the organization experiences bottlenecks in decision making and difficulties in coordination, it has outgrown its functional structure. The classic functional organization is a hierarchy where each employee has one clear superior. Staff members are grouped by specialty, such as production, marketing, engineering, and accounting at the top level, with engineering further subdivided into functional organizations that support the business of the larger organization (e.g., mechanical and electrical). Functional organizations still have projects, but the perceived scope of the project is limited to the boundaries of the function: the engineering department in a functional organization will do its work Software Project Management (CS615) 55 © Copyright Virtual University of Pakistan independent of the manufacturing or marketing departments. For example, when a new product development is undertaken in a purely functional organization, the design phase is often called a design project and includes only engineering department staff. If questions about manufacturing
  • 137. arise, they are passed up the hierarchy to the department head, who consults with the head of the manufacturing department. The engineering department head then passes the answer back down the hierarchy to the engineering project manager. ⇒Project Structure In this structure, there is a centralized corporate office and under it, are various divisions each of which is dedicated to producing and / or selling a certain type of business or product, e.g., product 1, product 2, etc. Each division that is dedicated to a certain business or product is, in turn, is organized as its own functional structure. So, for example, the division dedicated to making product 1 has its own sales department, human resources, etc. Basically, project structure is a bunch of functional structures each of which reports to one central office. Use a divisional structure when the organization is relatively large, geographically dispersed, and/or produces wide range of goods/services. In a projectized organization, team members are often collocated. Most of the organization’s resources are involved in project work, and project managers have a great deal of independence and authority. Projectized organizations often have organizational units called departments, but these groups either report directly to the project manager or provide support services to the
  • 138. various projects. Structural dimensions: ƒ Centralization -the extent to which functions are dispersed in the organization, either in terms of integration with other functions or geographically ƒ Formalization - regarding the extent of policies and procedures in the organization ƒ Hierarchy - regarding the extent and configuration of levels in the structure ƒ Routinization - regarding the extent that organizational processes are standardized ƒ Specialization - regarding the extent to which activities are refined ƒ Training - regarding the extent of activities to equip organization members with knowledge and skills to carry out their roles (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that give coherent examples.
  • 139. Contextual Dimensions: ƒ Culture - the values and beliefs shared by all (note that culture is often discerned by examining norms or observable behaviors in the workplace) Software Project Management (CS615) 56 © Copyright Virtual University of Pakistan ƒ Environment - the nature of external influences and activities in the political, technical, social and economic arenas ƒ Goals - unique overall priorities and desired end- states of the organization ƒ Size - number of people and resources and their span in the organization ƒ Technology - the often unique activities needed to reach organizational goals, including nature of activities, specialization, type of equipment/facilities needed, etc. Role and responsibility assignments Project roles (who do what) and responsibilities (who decide what) must be assigned to the appropriate project stakeholders. Roles and responsibilities may vary over time. Most roles and responsibilities will be assigned to stakeholders who are actively involved in the work of the project, such as the project manager, other members of the project management team, and the individual contributors. The roles and responsibilities of the project manager are
  • 140. generally critical on most projects, but vary significantly by application area. Project roles and responsibilities should be closely linked to the project scope definition. A Responsibility Assignment Matrix (RAM) is often used for this purpose. On larger projects, RAMs may be developed at various levels. For example, a high-level RAM may define which group or unit is responsible for each component of the work breakdown structure, while lower-level RAMs are used within the group to assign roles and responsibilities for specific activities to particular individuals. Organization chart An organization chart is any graphic display of project reporting relationships. It may be formal or informal, highly detailed or broadly framed, based on the needs of the project. For example, the organization chart for a three- to four-person internal service project is unlikely to have the rigor and detail of the organization chart for a 3,000-person disaster response team. An Organizational Breakdown Structure (OBS) is a specific type of organization chart that shows; which organizational units are responsible for which work packages. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are
  • 141. part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Contextual Dimensions: Beginner-Level Examples Contextual Dimensions: Beginner-Level Examples Contextual Dimensions: Beginner-Level Examples Contextual Dimensions: Beginner-Level Examples Contextual Dimensions: Beginner-Level Examples 1. Culture Culture represents the shared values and beliefs in an organization. For example, in a software development company, a strong collaborative culture might encourage team members to openly share ideas, give feedback, and work together to solve problems. This culture can be seen through daily behaviors, like regular team meetings, open communication, and mutual respect. 2. Environment Environment refers to the external factors that affect an organization, including political, social, technical, and economic influences. For instance, a tech startup operating in a region with favorable government policies and high access to advanced technology might thrive. However, it could also face challenges from economic downturns or changing regulations in its industry. 3. Goals Goals are the unique priorities and desired outcomes of an organization. For example, a non-profit organization might have a goal to provide free education to underprivileged children, while a software company might focus on achieving a certain market share for its product. Each organization's goals define its strategic direction and influence decision-making. 4. Size Size refers to the number of employees, resources, and their distribution within the organization. For example, a small company with 50 employees might have a close-knit team where everyone knows each other, while a large multinational corporation with thousands of employees may have complex reporting structures and departments. 5. Technology Technology encompasses the activities, tools, and facilities required to achieve organizational goals. For example, a software company specializing in artificial intelligence might need high-performance servers, advanced programming tools,
  • 142. and specialized skills in machine learning to develop its products. Technology shapes how the organization operates and innovates. Role and Responsibility Assignments: Beginner-Level Role and Responsibility Assignments: Beginner-Level Role and Responsibility Assignments: Beginner-Level Role and Responsibility Assignments: Beginner-Level Role and Responsibility Assignments: Beginner-Level Examples Examples Examples Examples Examples 1. Project Roles and Responsibilities Roles define who does what in a project, while responsibilities determine who makes decisions. For example, in a software development project: Roles and responsibilities can change throughout the project. At the beginning, the project manager might focus on planning, while later, they ensure the project meets its deadlines. 2. Responsibility Assignment Matrix (RAM) A Responsibility Assignment Matrix (RAM) visually maps who is responsible for what in a project. For example, in a project to develop an app, a high-level RAM might show that: Lower-level RAMs can go further into detail, assigning individual tasks to specific team members. Organization Chart: Beginner-Level Examples Organization Chart: Beginner-Level Examples Organization Chart: Beginner-Level Examples Organization Chart: Beginner-Level Examples Organization Chart: Beginner-Level Examples 1. Organization Chart An organization chart visually represents the reporting relationships in a project. For example, in a small project with a few team members, the organization chart might simply show that the Project Manager oversees the Development Team The Project Manager ensures the project stays on track, coordinating resources and managing timelines. Developers write the code for the software. Testers ensure the software works as expected by finding and reporting bugs. Stakeholders provide input on project requirements and review the progress. The Development Team is responsible for coding the app. The QA Team is responsible for testing. The Marketing Team is responsible for promoting the app.
  • 143. Project Personnel The staffing management plan describes when and how human resources will be brought onto and taken off of the project team. The staffing plan may be formal or informal, highly detailed or broadly framed, based on the needs of the project. It is a subsidiary element of the overall project plan. The staffing management plan often includes resource histograms. Particular attention should be paid to how project team members (individuals or groups) will be released when they are no longer needed on the project. Appropriate reassignment procedures may: Software Project Management (CS615) 57 and the Testing Team. In a larger project, the chart could be more detailed, showing multiple levels of reporting. 2. Organizational Breakdown Structure (OBS) An Organizational Breakdown Structure (OBS) is a type of organization chart that shows which organizational units are responsible for specific work packages. For example, in a software development project: This chart helps clarify responsibilities and ensures that everyone knows their role in the project. The Development Department could be responsible for the coding and implementation work package. The Testing Department might handle the testing work package. The Support Department might manage post-release customer support.
  • 144. © Copyright Virtual University of Pakistan – Reduce costs by reducing or eliminating the tendency to “make work” to fill the time between this assignment and the next. – Improve morale by reducing or eliminating uncertainty about future employment opportunities. ƒ Supporting detail Supporting detail for organizational planning varies by application area and project size. Information frequently supplied as supporting detail includes, but is not limited to: – Job descriptions (position descriptions) —written outlines by job title of the competencies; responsibilities, authority; physical environment, and other characteristics involved in performing a given job. – Training needs—if the staff to be assigned is not expected to have the competencies Needed by the project, those competencies will need to be developed as part of the project. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 145. Key Concepts in Design of Good Organization Effective Organizational System provides assessment and training in communication effectiveness through focus groups, retreats, workshops, and experiential activities. Coaching addresses such skills as active listening, constructive differing, conflict resolution, negotiation, mediation, persuasiveness, and clarity in delivering a message. At the core of the training is the fundamental premise that the role of communication is to create understanding. When communication is effective, it promotes understanding and plays a fundamental role in building interpersonal skills, leadership and strong teams. An efficient organization is characterized by timely and productive systems and procedures. At its extreme it has no spare capacity to plan ahead or to respond easily to market changes. An effective organization is characterized by the ability to pre-empt competitors, respond swiftly and efficiently to changing situations, and display agility in its structure and conduct of operations. It has efficient systems and procedures but has
  • 146. the capacity to anticipate and plan ahead. Organizational System provides assessment and training in communication effectiveness through focus groups, retreats, workshops, and experiential activities. Coaching addresses such skills as active listening, constructive differing, conflict resolution, negotiation, mediation, persuasiveness, and clarity in delivering a Software Project Management (CS615) 58 © Copyright Virtual University of Pakistan message. At the core of the training is the fundamental premise that the role of communication is to create understanding. When communication is effective, it promotes understanding and plays a fundamental role in building interpersonal skills, leadership and strong teams. Organizations that achieve high levels of maturity in the people management area have a higher likelihood of implementing effective software engineering practices. – Span of control - the range of employees who to report to a managerial position – Authority - the formally-granted influence of a position to make decisions, pursue goals and get resources to pursue the goals; authority in a managerial role may exist only to the extent that subordinates agree to grant this authority or follow the orders from that position – Responsibility - the duty to carry out an assignment
  • 147. or conduct a certain activity – Delegation - process of assigning a task to a subordinate along with the commensurate responsibility and authority to carry out the task – Chain of command - the lines of authority in an organization, who reports to whom – Accountability - responsibility for the outcome of the process – Line authority - the type of authority where managers have formal authority over their subordinates' activities (the subordinates are depicted under the manager on a solid line in the organization chart); departments directly involved in producing services or products are sometimes called line departments – Staff departments - the type of authority where managers influence line managers through staff's specialized advice; departments that support or advise line departments are called staff departments and include, e.g., human resources, legal, finance, etc. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind
  • 148. in that and give coherent examples. In this lecture, we will explore key concepts in designing an effective organization. Let's break down each concept with simple examples to enhance understanding. Communication Effectiveness Communication Effectiveness Communication Effectiveness Communication Effectiveness Communication Effectiveness Effective communication is critical for any organization. When communication works well, it fosters understanding, teamwork, and leadership. Example: A company conducts a workshop for its employees on active listening and conflict resolution. During this workshop, employees learn how to listen to each other carefully, resolve differences without conflict, and deliver clear messages. As a result, the team becomes more cohesive, and collaboration improves. Efficient vs. Effective Organization Efficient vs. Effective Organization Efficient vs. Effective Organization Efficient vs. Effective Organization Efficient vs. Effective Organization An efficient organization focuses on getting tasks done in a timely and productive manner but might lack flexibility to adapt to changes. An effective organization, on the other hand, combines efficiency with the ability to respond swiftly to changes and anticipate future challenges. Example: An efficient organization may meet all its deadlines but struggle to handle unexpected market shifts. An effective organization meets deadlines and also has systems in place to predict market trends, allowing it to adjust operations quickly when needed. Span of Control Span of Control Span of Control Span of Control Span of Control The span of control refers to the number of employees who report to one manager. Example: If a manager supervises five team members, their span of control is five. If they supervise ten team members, their span of control is ten. Authority Authority Authority Authority Authority Authority is the power given to a manager to make decisions and guide others.
  • 149. Example: A project manager has the authority to assign tasks to team members and allocate resources like budget and tools to ensure the project's success. Responsibility Responsibility Responsibility Responsibility Responsibility Responsibility is the duty to carry out a task or activity. Example: If an employee is assigned the task of creating a project report, it is their responsibility to complete it accurately and on time. Delegation Delegation Delegation Delegation Delegation Delegation involves assigning tasks to subordinates along with the authority and responsibility to complete those tasks. Example: A manager delegates the task of preparing a presentation to a team member and gives them the authority to collect the necessary data and make decisions related to the presentation. Chain of Command Chain of Command Chain of Command Chain of Command Chain of Command The chain of command is the line of authority within an organization that shows who reports to whom. Example: In a software development company, a junior developer reports to a team lead, who reports to the project manager, who reports to the department head. This is the chain of command. Accountability Accountability Accountability Accountability Accountability Accountability refers to being responsible for the outcome of a task or process. Example: If a team member is responsible for testing a software module, they are accountable for ensuring the module functions as expected and any issues are reported promptly. Line Authority Line Authority Line Authority Line Authority Line Authority Line authority is where managers have direct authority over the employees beneath them in the organizational hierarchy. Example: In a production company, a production manager has line authority over the workers in the production department and can direct their day-to-day tasks. Staff Departments Staff Departments Staff Departments Staff Departments Staff Departments Staff departments provide support and advice to line departments.
  • 150. From ChatGPT, designed with FancyGPT Example: The Human Resources department is a staff department. It doesn't directly produce products but supports line departments by handling recruitment, employee relations, and training. By understanding these concepts, we can design organizations that not only function efficiently but are also adaptable and capable of achieving their goals.
  • 151. cs611 lecture 7 cs611 lecture 7 cs611 lecture 7 cs611 lecture 7 cs611 lecture 7 LECTURE # 7 2. Software Development Fundamentals Management Fundamentals 2.1 Evolution of Software The understanding about software and software development has come a long way from the days of punch cards and Ada. In the first stage of computing, hardware mattered the most. Computers themselves were the domains of the government, and most software was developed in defense- funded labs, dedicated to the advancement of science and technology in the national interest. By the 1950s, large corporations realized the benefits of using computers. They increasingly started using computers to process and analyze financial and production data. These computers were huge in size. There was inadequate software available for them. Even the software that existed was designed essentially to function on a specific hardware product. The software was developed and maintained by the company that manufactured the hardware. Software design and documentation existed only in the developer's head. If the developer left the company, you would find maintenance to be a nightmare. In the second phase of software evolution, the corporate and academic sectors increasingly started using computers, and the perspective about both software and software development began to change. By the late 1960s and early 1970s, concepts such as multi-sessions, multi-user systems, multiprogramming gained a foothold. Soon computers were developed to collect, process, transform, and analyze data in seconds. The focus of software development shifted from custom 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/20
  • 152. software to product software. Now, multiple users on multiple computers could use the same software. This phase of software evolution also saw the emergence of software maintenance activities. These activities comprised fixing bugs, and modifying the software based on changes in user requirements. The third phase in software evolution was driven by the widespread use of silicon-based microprocessors, which further led to the development of highspeed computers, networked computers, and digital communication. Although, all the advancement in software and hardware was still largely restricted to enterprise applications manufacturers had begun to see the application of the microprocessor in something as mundane as ovens to the robots used in car plants. The fourth, and current, phase of software evolution began in the early 1990s. This phase saw the growth of client-server environment, parallel computing, distributed computing, network computing, and object- oriented programming. Software Project Management (CS615) 60 © Copyright Virtual University of Pakistan This phase also witnessed the growing popularity of personal computer (PC). During this phase, the Internet facilitated easy accessibility of information. In addition to complex software to support the advanced hardware, the scope of software development widened to include software products for the common man. Figure 1.1 sketches the path of software from the 1950s onwards. • (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Certainly! Let's explore simple, beginner-level examples for each phase of software evolution described in the lecture. 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/20
  • 153. • The Software Crisis The rapid evolution of software design concepts and software development methodology resulted in an ad hoc approach to software development. In the early days of computing, stress was laid more on computer hardware than on software. This happened mainly because hardware consumed the largest portion of the project budget. Project managers closely followed the process of hardware funding, budgeting, analysis and design, production, and implementation. Software development, on the other hand, was left to the developers. There was no training conducted, documentation maintained, or methodology followed for software development. You will find that this attitude persisted until the 1970s, First Phase (1950s - Mid 1960s) First Phase (1950s - Mid 1960s) First Phase (1950s - Mid 1960s) First Phase (1950s - Mid 1960s) First Phase (1950s - Mid 1960s) Custom Software and In-House Development: Second Phase (Mid 1960s - Early 1980s) Second Phase (Mid 1960s - Early 1980s) Second Phase (Mid 1960s - Early 1980s) Second Phase (Mid 1960s - Early 1980s) Second Phase (Mid 1960s - Early 1980s) Multisessions, Multitasking, Multiuser, Real-time Processing, Database Connectivity, Product Software: Third Phase (1980s - Mid 1990s) Third Phase (1980s - Mid 1990s) Third Phase (1980s - Mid 1990s) Third Phase (1980s - Mid 1990s) Third Phase (1980s - Mid 1990s) Networked Computing, Microprocessors: Fourth Phase (1990s - Present) Fourth Phase (1990s - Present) Fourth Phase (1990s - Present) Fourth Phase (1990s - Present) Fourth Phase (1990s - Present) Penetration of the PC, The Internet, Object-Oriented Programming, Client-server Environment: These examples illustrate the progression from specific, custom-built software for large machines to flexible, interconnected, and user-friendly software in widespread use today. Example: A company using a large mainframe computer developed custom software for payroll processing. The software was created specifically for that company’s hardware and couldn't be used elsewhere. Example: A university implemented a multi-user system where multiple students could access a computer system simultaneously for programming assignments, using different accounts. Example: A small office set up a local area network (LAN) allowing all their desktop computers to connect and share resources like printers and files through networked computing. Example: A small business used client-server architecture for its sales system, where a central server manages the sales data, and various client computers (PCs) access and update the information through the network. 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/20
  • 154. when finally processes and methodologies for software design and development began to be created. However, the ad hoc approach to software development that Software Project Management (CS615) 61 © Copyright Virtual University of Pakistan was prevalent in the early stages of software evolution hampered the application of systematic processes. This conflict referred to as the software crisis. Some of the reasons to which you can attribute the software crisis include: – Software developers used-multiple programming languages. – Software developers used multiple variations of standard programming languages. – Most of the requirements were complex with regard to the existing capabilities, – Users, who had little or no experience of developing or even using software, formulated requirements. – Software developers poorly mapped requirements to the actual product. – Software developed had low interoperability. – Software maintenance was costly. – Hardware developed at a faster rate than software (better hardware requires better software to operate it). During the period of software crisis, you will find that software that was produced was generally over budgeted, under scheduled, and of poor quality. The immediate knee-jerk response to these problems was software maintenance, which began to consume huge resources. During this period, maintaining software was adopted as a short-term solution due to the costs involved in fixing software regularly. This often resulted in the original software design approach getting lost due to the lack of documentation. In contrast, the situation in the present times has changed to a large extent. Software costs have risen, although hardware is purchased easily off the shelf. Now, the primary concerns regarding software projects are project delays, high 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/20
  • 155. costs, and a large number of errors in the finished product. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Let's explore simple, beginner-level examples for the aspects of the software crisis described in the lecture. Software Crisis Factors Software Crisis Factors Software Crisis Factors Software Crisis Factors Software Crisis Factors Multiple Programming Languages: 1 Example: A development team is working on a project where different parts of the software are written in different programming languages, such as Java for the server, JavaScript for the frontend, and Python for the data processing. This makes it difficult for developers to understand and maintain the entire system. 2 Variations of Standard Programming Languages: 3 Example: A developer uses a custom version of a popular programming language that introduces unique features. When another developer tries to work on the code, they struggle because the standard language documentation doesn’t cover these unique features. 4 Complex Requirements: 5 Example: A company wants to build a software application that integrates with several existing systems, each with its own protocols and data formats. This complexity makes it difficult to design and develop the software effectively. 6 Inexperienced Users Formulating Requirements: 7 Example: A non-technical manager provides a list of features they want in a new software application, but they are not familiar with what is technically feasible, leading to unrealistic expectations. 8 Poor Requirement Mapping: 9 Example: A software developer misunderstands the user requirements for a new feature and implements it incorrectly, resulting in software that does not meet the user’s needs. 10 Low Interoperability: 11 Example: A software system is designed in such a way that it cannot easily exchange data with other systems used by the company, leading to data silos and inefficiencies. 12 Costly Software Maintenance: 13 Example: A company has to hire a team of developers to regularly update and fix their software, which has frequent bugs and performance issues, leading to high maintenance costs. 14 Faster Hardware Development: 15 Example: New, faster processors are released, but the existing software is not optimized to take advantage of the new hardware capabilities, resulting in underutilized resources. 16 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/20
  • 156. 2.2 Project Execution Fundamentals Tracking For the project manager, it is essential to be constantly informed of the true status of the project. This is achieved by assuring the regular flow of accurate information from the development teams. Many of the methods of acquiring information are not objective and rely on the accuracy of the reports provided by the project developers themselves. They include: – Periodic written status reports – Verbal reports – Status meetings – Product demonstrations (demos) Product demonstrations are particularly subjective, because they demonstrate only what the developer wishes to be seen. The project manager needs objective Software Project Management (CS615) 62 © Copyright Virtual University of Pakistan information. Such information can often be acquired from reports produced by support groups, such as: – Quality assurance reports – Independent test reports Although reports and meetings are indeed useful sources of information, nothing Effects of the Software Crisis Effects of the Software Crisis Effects of the Software Crisis Effects of the Software Crisis Effects of the Software Crisis These examples highlight the challenges faced during the software crisis period and the shift in focus to address these issues in contemporary software development practices. Over-Budgeted Projects: 1 Example: A software project initially estimated to cost $100,000 ends up costing $200,000 due to unexpected complications and the need for additional resources. 2 Under-Scheduled Projects: 3 Example: A software project planned to be completed in six months takes a year to finish because of unforeseen challenges and the need for rework. 4 Poor Quality Software: 5 Example: A software application is released with numerous bugs and performance issues, resulting in frequent crashes and user dissatisfaction. 6 Costly Maintenance: 7 Example: A company spends a significant portion of its IT budget on maintaining existing software, as opposed to developing new features or products. 8 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/20
  • 157. can replace direct contact between the project manager and the development staff. Frequent informal talks with the developers are excellent sources of information, especially when held in an informal atmosphere (and not in the project manager's office). The project manager must keep on constant guard against an error commonly referred to as the '90/50 syndrome’, which states that, 'it takes 50 percent of the time to complete 90 percent of the work, and an additional 50 percent of the time to complete the remaining 10 percent of the work'. This means that project developers will begin to boast quite early that they have 'almost finished' their tasks. Unfortunately, there is a great difference between 'almost finished' and ‘finished'. Finishing a task -writing documentation, and polishing off the last few problems, often takes longer than developers anticipate. This is because these activities produce very few visible results, and developers tend (wrongly) to associate work with results. Therefore, managers can obtain more information from developers by asking them how long they estimate it will take to finish, and not how much of their work has been completed. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: this is a lecture given by one lecturer so keep in mind in that give a coherent answer. Let’s break down the key points in the lecture on project execution fundamentals and provide simple beginner-level examples for each. Project Execution Fundamentals Project Execution Fundamentals Project Execution Fundamentals Project Execution Fundamentals Project Execution Fundamentals Periodic Written Status Reports: 1 Example: Every Friday, a developer emails a summary of their weekly progress to the project manager, detailing the tasks completed, any issues faced, and the plan for the next week. 2 Verbal Reports: 3 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/20
  • 158. • Status reports Status reports should be required from every member of the development team, without exception. The reports should be submitted periodically, usually weekly or bi-weekly, and should contain at least the following three sections (see Fig. 5.8): 1. Activities during the report period Each subsection within this section describes a major activity during the report period. The description of each activity should span two to three lines. Activities should be linked to the project task list or work breakdown structure (WBS) (see Objective Information Sources Objective Information Sources Objective Information Sources Objective Information Sources Objective Information Sources Direct Contact and Informal Talks Direct Contact and Informal Talks Direct Contact and Informal Talks Direct Contact and Informal Talks Direct Contact and Informal Talks The '90/50 Syndrome' The '90/50 Syndrome' The '90/50 Syndrome' The '90/50 Syndrome' The '90/50 Syndrome' By focusing on these aspects, project managers can better track and manage their projects, ensuring that issues like the '90/50 syndrome' are identified early, and accurate information is gathered to facilitate successful project completion. Example: During a daily team meeting, each developer gives a quick update on their current tasks, any roadblocks, and what they plan to work on next. 4 Status Meetings: 5 Example: The project manager organizes a bi-weekly meeting where all team members discuss the project’s overall progress, upcoming milestones, and any concerns that need to be addressed. 6 Product Demonstrations (Demos): 7 Example: A developer showcases a new feature of the software to the project manager and stakeholders, highlighting its functionality and benefits. 8 Quality Assurance Reports: 1 Example: The quality assurance team provides a report on the latest software build, listing the number of bugs found, their severity, and whether the build meets the quality standards. 2 Independent Test Reports: 3 Example: An external testing company evaluates the software and sends a report with their findings on performance, usability, and compatibility issues. 4 Informal Talks with Developers: 1 Example: The project manager frequently visits the developers' workspace to chat informally about their progress, challenges, and any help they might need. 2 Understanding 'Almost Finished': 1 Example: A developer tells the project manager they have completed 90% of a feature, but when asked how much longer it will take to finish, they estimate another week, indicating there is still significant work to be done. 2 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/20
  • 159. Chapter 10 for a description of the WBS). 2. Planned activities for the next report period Each subsection within this section describes a major activity planned for the next report period. The description of each activity should span one to two lines. 3. Problems Software Project Management (CS615) 63 © Copyright Virtual University of Pakistan Each subsection within this section describes a major problem that either occurred during the report period, or that was reported previously and has not yet been resolved. This means that problems will be repeatedly reported until they are resolved. In particular, this section must explain why this report's Section 1 does not correspond to the previous report's Section 2. All reports should also contain: 1. Date of report 2. Report period (e.g. 3 July to 10 July 1992) 3. Name of report (e.g. Communications team status report) 4. Name of person submitting the report The preparation of a periodic status report should take about 20 minutes, but not longer than 30 minutes. Developers should submit their status reports to their team leader. The team leader then combines the reports of the team into a single status report, while maintaining the same report structure. This activity should take the team leader about 30 minutes, but not longer than 45 minutes (this is easily done when the reports are prepared and submitted by electronic mail). Each team leader submits the team status report to the project manager. The individual status reports need not be submitted; these should be filed and submitted to the project manager only on request. Software Project Management (CS615) 64 © Copyright Virtual University of Pakistan From: John Doe, Team leader To: Frank Smith, Project Manager Date: 15 June 1993 User interface team: Weekly status report for the period 5-12 June 1993 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/20
  • 160. 1. Activities during the report period: 1.1 The design of the user help screens (activity 3.12.6) was completed on schedule. The design specs were submitted to configuration control. 1.2 Coding of the command pass through modules (activity group 5.12) continues, and is currently behind schedule by about 1 week. 2. Activities planned for next week: 2.1 Coding of the command pass through modules (activity group 5.12) will be completed, and unit tests will be started. 2.2 Two members of the team (Ed and Joan) will attend a two day course on the Programmer’s interface to the new user interface package. This is an unscheduled activity that was approved at the last project meeting. This will not delay the schedule, due to the early completion of the command pass through modules (see Section 1.2 above). 3. Problems: 3.1 The user interface package we originally planned to use was found to be inadequate for the project. Two team members will study the new proposed package (sec Section 2.2 above). If the new package is also found to be unsuitable, then this will severely impact our development schedule. 3.2 One of our team members (Jack Brown) has been using an old VTI00 terminal instead of a workstation for the past two weeks, due to the acute shortage of workstations. This is the reason why Jack's task 5.12 was not completed this week, as scheduled. Figure 5.8: Example of a weekly status report The project manager also receives status reports from other project support personnel such as the project systems engineer or the deputy project manager. The project manager then prepares the project status report by combining the individual reports received into a single three-part report. The project status report is then submitted to top management. Software Project Management (CS615) 65 © Copyright Virtual University of Pakistan Project status reports are not necessarily submitted at the 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/20
  • 161. same frequency as internal project status reports. Project reports may be submitted bi-weekly or monthly. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that give a coherent answer. Here are beginner-level examples illustrating the points from the lecture on status reports in project execution: Status Report Components Status Report Components Status Report Components Status Report Components Status Report Components Additional Report Information Additional Report Information Additional Report Information Additional Report Information Additional Report Information Process of Report Submission Process of Report Submission Process of Report Submission Process of Report Submission Process of Report Submission Activities During the Report Period: 1 Example: In this section, a developer lists that they have completed designing the login interface and have started coding the user authentication module. 2 Planned Activities for the Next Report Period: 3 Example: A developer plans to finish coding the user authentication module and begin integrating it with the database by the next reporting period. 4 Problems: 5 Example: A developer mentions that they encountered a problem with the authentication module not connecting to the database, which needs further investigation. 6 Date of Report: 1 Example: The report is dated “15 August 2024.” 2 Report Period: 3 Example: The report covers the period from “1 August 2024 to 15 August 2024.” 4 Name of Report: 5 Example: The report is titled “Database Team Status Report.” 6 Name of Person Submitting the Report: 7 Example: The report is submitted by “Alex Johnson, Team Leader.” 8 Preparation Time: 1 Example: Developers take about 20 minutes to prepare their status reports, detailing their activities and plans. 2 Submission to Team Leader: 3 Example: After preparing their reports, developers send them to their team leader via email. 4 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/20
  • 162. y. • Project status meetings Project status meetings should be held periodically, usually once a week. A good time for status meetings is either at the end of the last day of the week, or at the beginning of the first day of the week. Status meetings also contribute to the atmosphere of order and control within the project, and should be held regularly, at a fixed time. Participants who cannot participate in the project status meeting may, with the project manager's approval, delegate participation to another member of their team. The project manager prepares for the status meeting by reviewing the status reports submitted by the key project members (particularly scrutinizing the problem section). Therefore the status reports should be submitted at least two to three hours before the status meeting. Project status meetings are attended by the key project members. The meeting begins with a report of project activities and general issues by the project manager. Then each participant should be given Project Manager’s Role Project Manager’s Role Project Manager’s Role Project Manager’s Role Project Manager’s Role These examples illustrate the structure and process of creating and submitting status reports, ensuring the project manager and top management have accurate and up-to-date information about the project's progress. Compilation by Team Leader: 5 Example: The team leader spends about 30 minutes combining individual reports into a single report, maintaining the report’s structure. 6 Submission to Project Manager: 7 Example: The team leader sends the compiled team status report to the project manager. 8 Compilation of Project Status Report: 1 Example: The project manager receives reports from various teams and support personnel, combines them into a comprehensive project status report. 2 Frequency of Submission: 3 Example: The project status report is submitted to top management on a monthly basis. 4 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/20
  • 163. about five to ten minutes to report on the activity of his or her team or area of responsibility. The discussion of problems should not be restricted to the person reporting the problem and the project manager. All problems may be addressed by all participants, with possible assistance offered between team leaders, thus making their experience available throughout the project. It is not the project manager's role to provide solutions to the problems, but rather to guide the team members toward solutions. Solutions should be worked out whenever possible during the status meeting. Any problem not resolved within five minutes should be postponed for discussion by the relevant parties after the status meeting. The proceedings of all project status meetings must be recorded. Verbatim minutes are not required, though the following items should appear in the record: 1. Date of meeting 2. Name of meeting 3. Present (list of participants) 4. Absent (list of absent invited participants) 5. Action items (name, action, and date for completion) 6. Major decisions and items discussed The record of the project status meeting should be typed and distributed as soon as possible, but no later than by the end of the day. This is particularly important when there are action items to be completed on the same day. When the project is sufficiently large to justify a secretary, then the record will be taken and typed by Software Project Management (CS615) 66 © Copyright Virtual University of Pakistan the secretary. In smaller projects, the project manager can rotate this task each week between the participants. 2.3 Software Project Management Framework You all know that a project is much more than a collection of methodologies, tasks, resources, and reviews. A project is a synchronized event where there is perfect harmony and understanding between the participants. The participants are 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/20
  • 164. equipped with the essential skills of planning, cooperating, helping, and communicating. However, the most important activity here is to orchestrate the movement of the participants. The onus lies with the project manager to synchronize the activities of the project to result in a perfect presentation. Although each project manager has a unique style of functioning, there are some fundamental approaches that guide a project manager. These approaches are traditional project management concepts and software engineering concepts. To understand software projects and their dynamics, you must be aware of the environment in which a software project is executed. This further requires an understanding of the larger framework of software project management. In this chapter, you will learn to, build a connection between traditional project management concepts and software engineering concepts. Both traditional and software projects share the same methodologies, techniques, and processes. However, managing software projects requires a distinct approach. In this, chapter, you will learn to apply traditional project management principles to software projects. Further, you will learn about the responsibilities of a software project manager. You will also learn about the phases in a software project and the activities within each phase. Finally, the chapter will provide you an overview of the problems that affect a software project and the myths prevalent about software project management. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that give coherent examples. 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/20
  • 165. Here are simple beginner-level examples for the topics on project status meetings and software project management framework: Project Status Meetings Project Status Meetings Project Status Meetings Project Status Meetings Project Status Meetings Software Project Management Framework Software Project Management Framework Software Project Management Framework Software Project Management Framework Software Project Management Framework These examples aim to clarify the elements of effective project management meetings and the overarching framework of managing software projects. Scheduling of Meetings: 1 Example: A project manager schedules a status meeting for every Monday morning at 9 AM to review the previous week’s progress and plan for the upcoming week. 2 Preparation for Meetings: 3 Example: The project manager reviews the submitted status reports two hours before the meeting to identify key issues and prepare a summary. 4 Conducting the Meeting: 5 Example: The project manager begins the meeting by summarizing the overall project status, then invites each team leader to speak about their team's progress for about five minutes each. 6 Problem Discussion: 7 Example: A team leader mentions a problem with integrating a new feature. The project manager encourages other team leaders to offer solutions based on their experience. 8 Recording the Meeting: 9 Example: A secretary or a rotating participant takes notes during the meeting, including the date, list of attendees, action items, and major decisions. These notes are typed and distributed by the end of the day. 10 Traditional and Software Engineering Concepts: 1 Example: Understanding that like traditional projects, software projects require planning, scheduling, and resource management but with added emphasis on software development phases like coding and testing. 2 Responsibilities of a Software Project Manager: 3 Example: The project manager ensures that all team members understand their tasks, timelines, and deliverables, and coordinates their activities to achieve the project goals. 4 Phases in a Software Project: 5 Example: The project begins with the planning phase, moves into the development phase where the software is coded, then the testing phase to find and fix bugs, and finally, the deployment phase where the software is released. 6 Problems and Myths in Software Project Management: 7 Example: A common problem is scope creep, where project requirements increase over time, potentially leading to delays and budget overruns. A prevalent myth is that adding more developers to a delayed project will speed up completion, which is not always true due to the added complexity of coordination. 8 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/20
  • 166. 2.4 Software Development Life Cycle (SDLC) The development of a software project consists of many activities spread across multiple phases. Dividing a software project into phases helps you in managing the complexities and uncertainties involved in the software project. 2.5 Phases of a Software project Each phase represents the development of either a part of the software product or something associated with the software project, such as user manual or testing. Each phase is composed of various activities. You can consider a phase complete when all activities are complete. Software Project Management (CS615) 67 © Copyright Virtual University of Pakistan A phase is named according to the primary deliverable set that is achieved at the end of that phase. For example, if the requirements document is required as the output, the phase is called the requirements phase. Similarly, most software projects have phases for analysis, design, construction, implementation, and testing. A typical software project includes the following phases: – Software requirement analysis phase – Software Design Phase – Software Planning Phase – Software construction phase – Software testing phase – Software acceptance and maintenance phase (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple beginner-level examples for the Software Development Life Cycle (SDLC) and its phases: Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/20
  • 167. 2.6 SDLC Models Different organizations have different ways of assessing and arranging the phases in a project. These are called process models. Process models define how a software life cycle actually works. They provide you with a framework to plan and execute the various phases in the project. Typically, project life cycles display the following characteristics: • The level of cost and effort required in a software project life cycle is small to begin with but grows larger towards the end of the project. This Phases of a Software Project Phases of a Software Project Phases of a Software Project Phases of a Software Project Phases of a Software Project These examples illustrate how each phase of the SDLC contributes to the development and delivery of a software project. Overview: 1 Example: A software company follows a structured approach to develop their new mobile application, breaking down the process into manageable phases to ensure all aspects are properly addressed and delivered on time. 2 Software Requirement Analysis Phase: 1 Example: The development team meets with the client to gather detailed requirements for the new software application. They document what features the client wants and how the application should perform. 2 Software Design Phase: 3 Example: The design team creates the architecture of the software, including the layout of the user interface and the structure of the database, ensuring that the design meets the requirements gathered in the previous phase. 4 Software Planning Phase: 5 Example: The project manager outlines the timeline, allocates resources, and schedules the tasks needed to complete the project based on the design document. 6 Software Construction Phase: 7 Example: The development team begins coding the application based on the design specifications. They write the code that will make up the functionality of the software. 8 Software Testing Phase: 9 Example: The testing team performs various tests on the application to identify and fix bugs or issues, ensuring the software works correctly and meets the specified requirements. 10 Software Acceptance and Maintenance Phase: 11 Example: After successful testing, the software is presented to the client for acceptance. Once accepted, the software is deployed, and the team provides ongoing maintenance and support to address any future issues or updates. 12 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 17/20
  • 168. happens because the phases such as software construction and implementation, which come at later stages in a software project, require more resources than the initial phases of the project. • At the start of the SDLC, external entities, such as the customer and the organization, play an important role with regard to their effect on the requirements. However, towards the end of the software project as the cost and effort required to implement changes rise, the requests for change in requirements decreases. • The uncertainty faced by the software project is highest at the beginning of the SDLC. Their level decreases as the project progresses. There are a few standard software process models that you can use, with some customization. Some standard process models are given below: • The Waterfall model: This is the traditional life cycle model. It assumes that all phases in a software project are carried out sequentially and that each phase is completed before the next is taken up. • The Prototyping Model: A model that works on an iterative cycle of gathering customer requirements, producing a prototype based on the requirement specifications, and getting the prototype validated by the customer. Each Software Project Management (CS615) 68 © Copyright Virtual University of Pakistan iteration of the life cycle builds on the prototype produced in the previous iteration. • The Incremental Model: The Incremental model is an example of an evolutionary life cycle model. It combines the linear nature of the Waterfall model and the iterative nature of the Prototyping model. The Incremental model divided the development life cycle into multiple linear sequences, each of which produces an increment of the final software product. In this model, the software product is developed in builds. A build is defined 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 18/20
  • 169. as a selfcontained unit of the development activity. The entire development cycle is planned for a specific number of logical builds, each having a specific set of features. • The Spiral model: Another evolutionary life cycle model that combines the linear nature of the Waterfall model and the iterative nature of the Prototyping model. The project life cycle is divided into phases, and each phase is executed in all of the iteration of the Spiral Model. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are beginner-level examples of different SDLC models and the general characteristics of project life cycles: General Characteristics of Project Life Cycles General Characteristics of Project Life Cycles General Characteristics of Project Life Cycles General Characteristics of Project Life Cycles General Characteristics of Project Life Cycles SDLC Models SDLC Models SDLC Models SDLC Models SDLC Models Cost and Effort: 1 Example: A software project begins with low costs during the planning and design phases. As the project enters the construction and implementation phases, the costs increase because more resources, like developers and testers, are needed to build and deploy the software. 2 External Entities: 3 Example: At the start of a project, the customer and stakeholders are heavily involved in defining the project requirements. As the project progresses and the software is built, their involvement decreases because changes become more difficult and costly to implement. 4 Uncertainty: 5 Example: When a project begins, the team may have a lot of unknowns about how to meet the requirements or potential technical challenges. As they make progress and solve these issues, the level of uncertainty decreases. 6 The Waterfall Model: 1 Example: A software company decides to use the Waterfall model for a project. They first complete the requirements phase, then move on to design, followed by construction, and so on. Each phase must be completed and reviewed before the next phase begins. 2 The Prototyping Model: 3 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 19/20
  • 170. From ChatGPT, designed with FancyGPT These examples illustrate how different SDLC models can be applied to manage and execute software development projects effectively. Example: A team gathers initial requirements from the customer and creates a basic prototype of the software. The customer reviews this prototype and provides feedback. The team then refines the prototype, adding more features and improvements, and presents it again to the customer. This cycle continues until the final product meets the customer's needs. 4 The Incremental Model: 5 Example: A project is divided into several small builds. In the first build, the team develops the core features of the software. Once these are completed and tested, they move on to the second build, adding more features. This process continues until all features are implemented, and the final product is ready. 6 The Spiral Model: 7 Example: A development team starts by planning the project and assessing risks. They then design and build a small part of the software, which is tested and evaluated. Based on the results, they plan the next iteration, incorporating any new requirements or changes. This process is repeated through several iterations, gradually expanding the scope of the software with each cycle. 8 15/08/2024, 20:13 FancyGPT - cs611 lecture 7 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 20/20
  • 171. cs611 lecture 8 cs611 lecture 8 cs611 lecture 8 cs611 lecture 8 cs611 lecture 8 LECTURE # 8 2. Software Development Fundamentals Management Fundamentals 2.7 Organizational Issues and Project Management Organizational issues have a deep influence on a software project, its progress, and the role of the project manager. The policies of an organization can affect the way the organization handles the customer, different types of technologies, and different software projects. The organizational issues that can influence a software project include: • Reaction to external influences • Interest in adherence to standards • Definition of core competency area • Existence of knowledge management system • Interest in human resources One organizational issue that can influence a software project is the reaction of the organization to external influences.- As a project manager, it is important for you to assess how the organization reacts to changes in the external environment, For example, in the current technology environment that changes rapidly, an organization should be proactive in strengthening its
  • 172. capability baseline by adopting new technology and retraining its employees as per market requirements. Interest in adherence to standards is another organizational issue that can influence a software project. The current technology environment is highly dynamic. Various nonprofit and independent organizations have developed protocols and standards for the standardization of software development and measurement: For example; the Software Engineering Institute at the Carnegie Mellon University has developed the Capability Maturity Model (SEI-CMM). The CMM rates the processes of a software development organization and classifies it into five maturity levels. Software development organizations can also get the quality-related certifications issued by the International Standards Organization smoothen your project management tasks by standardizing the internal processes and optimizing performance. Definition of core competency area also influences a software project. An organization that creates software must understand how they are created and establish processes accordingly For example, if the core competency of the organization lies in manufacturing chemicals, it should preferably not attempt Software Project Management (CS615)
  • 173. 70 © Copyright Virtual University of Pakistan software development for such an organization, it is better to purchase an off-theshelf software product. An organizational issue that positively influences the tasks of software project managers is the presence of a good knowledge management system within the organization. Knowledge management is the collection of processes that control the creation and utilization of knowledge within the organization. A good knowledge management system allows you to access relevant information and make informed decisions. Another organizational issue that can influence a software project is the interest of management in human resources. The human resources of an organization are its primary resource. You need to ensure that the people in the development team enjoy a comfortable work environment, which is conducive for smooth and trouble-free work. This includes providing suitable compensations, a friendly work environment, and smooth processes. The absence of these factors negatively affects employee morale, and therefore, productivity. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are
  • 174. part of a lecture given by one lecturer so keep in mind in that give coherent examples. 2.8 Managing Processes As a software project manager, you become the key player in a software project. You not only manager the day-to-day activities of the project but also ensure that the software product is delivered on time. What makes your role challenging is the performance of project-related activities within a specified budget and time constraint. At the same time, you need to keep the requirements and specifications of the customer in mind. To deliver expected results, you carry out three successive processes: studying the feasibility of the project, planning to meet the requirement, and executing the plan. These processes can be further broken down into activities, such as planning, staffing, and monitoring. You plan and organize the software development team to complete development within the stipulated time and budget. To do this, you form a team of people who
  • 175. have the required technical skills. Then, you ensure that all activities are carried out as planned by the relevant people. Your responsibilities include analyzing customer requirements, determining the scope of the software project, allocating resources top the project, scheduling the project, and executing the project. These responsibilities can be considered in terms of the areas where management skills are required. The primary software project management areas that you need to concentrate on include: • Managing Resources • Managing Cost Software Project Management (CS615) 71 © Copyright Virtual University of Pakistan • Managing Risk • Managing Schedule • Managing the project plan • Managing quality (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that give coherent examples. Here are simple, beginner-level examples related to managing processes in a software project:
  • 176. Managing Resources: 1 As a project manager, you need to allocate the right people and tools to different parts of the project. For example, if you're working on developing a mobile app, you might assign a team of developers to work on coding, a designer to create the user interface, and a tester to check for bugs. You also ensure that they have the necessary software and hardware to complete their tasks. 2 Managing Cost: 3 You are given a specific budget to complete the project. Let's say the budget is $50,000. You need to plan how to spend this money wisely— paying your team, buying necessary software licenses, and covering any other project-related expenses. If you overspend, the project could run out of funds before it's completed. 4 Managing Risk: 5 During the project, there might be potential risks that could delay the project or increase costs. For example, a key developer might fall ill, or there could be a delay in receiving necessary software updates. As a project manager, you identify these risks early and have backup plans ready, such as having an additional developer on standby or finding alternative solutions. 6 Managing Schedule: 7 You create a timeline for the project, setting deadlines for each phase of the development. For instance, you might set a deadline of two weeks for the design phase, four weeks for development, and two weeks for testing. You monitor the progress to ensure that the team is meeting these deadlines. If there’s a delay, you may need to adjust the schedule to keep the project on track. 8 Managing the Project Plan: 9 You create a detailed plan that outlines all the tasks, resources, costs, and schedules for the project. This plan serves as a roadmap for the entire project. Throughout the project, you regularly review and update this plan to ensure that everything is going according to schedule, within budget, and meeting the customer's requirements. 10 Managing Quality: 11
  • 177. ⇒Managing Resources The primary input required to create software are resources. Resources for a software project may be of three kinds: human, hardware, and software. Human resource management is about effectively identifying the people with the appropriate skills, assigning roles and responsibilities to these people, and establishing reporting relationships. On the other hand, hardware and software resource management relates to identifying and ensuring resources such as workstations, disk space on servers, software tools, and software licenses. You need to ensure that human resource identification and allocation is carried out; simultaneously with hardware and software resource management. To manage resources effectively, there are two areas that you require your attention. These include: These examples help clarify the responsibilities and challenges a software project manager faces in managing different aspects of the project, ensuring that it is completed successfully and meets the customer's expectations. Throughout the project, you need to ensure that the software being developed meets the quality standards agreed upon with the customer. This might involve setting up regular testing sessions, reviewing the code, and ensuring that the software performs well under different conditions. If the quality is not up to standard, you may need to make adjustments before delivering the final product. 12
  • 178. • Management of human resource • Identification of the critical hardware and software resources Management of human resources calls for a number of actions. First, you define reporting relationship for the software project. Reporting relationship can exist within and across organizational units, technical areas, and hierarchical levels. Next, determine the skills required for the software project, and identify the appropriate people who possess the required skills. You can review the resource pool and identify resources on the basis of their experience and availability. In case the resources are unavailable, you request for their release from another project or outsource the required resources. Depending upon the organizational practices arid experiences from past projects, you can assign roles and responsibilities to the development team. Finally, create a staff management plan and an organizational chart to show the hierarchical structure of the development team. Management of human resources also requires efficient team development. This is a complex activity because it combines managing people and organizing the reporting structure within the team. You can build cohesion and commitment within the team through team building activities. These activities include
  • 179. conducting team meetings to involve people from areas other than management into decision-making. To manage human resources, you also need to implement a reward and recognition system. This helps in promoting and reinforcing positive performance. It is important that you make the link between the performance and Software Project Management (CS615) 72 © Copyright Virtual University of Pakistan reward explicit and achievable. You should also ensure that the training needs of the development team are met. A second resource management area that requires attention is identification of the hardware and software resources that are critical for the project. As a software project manager, you must identify all the critical hardware and software resources and document them in the project plan. After the required resources are identified, you define control limits for each resource. Control limits for a resource are the upper and lower limit beyond which the resource is above or below the required level. For example, if a software project requires disk space on the central server, the control limits for the disk space are the required maximum and minimum disk space. Note that not all hardware and software resources are critical to the success of a software project. In some
  • 180. software projects, you may not find any critical resource at the beginning. However, as the project progresses, some resources might become critical. For efficient resource management, you should periodically assess hardware and software resource requirements for the software project. Just as a resource may become critical as a project progresses, a resource might also become less critical over a period of time. Therefore; plan, assess, and take corrective action for all the resources through the duration of the software project. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that give coherent examples. Here are simple, beginner-level examples for managing resources in a software project, based on the text you provided: Management of Human Resources: 1 Defining Reporting Relationships: Suppose your project involves developing an e-commerce website. You decide that the project manager will report to the IT Director, the development team will report to the project manager, and the testing team will report to the quality assurance (QA) lead. These relationships ensure that everyone knows who they report to and who they can turn to for guidance. 2
  • 181. Determining Skills and Identifying People: For the e-commerce website project, you need developers with experience in web technologies like HTML, CSS, JavaScript, and databases. You review the available personnel and find developers with these skills. If one developer is busy with another project, you might request their release or hire an external developer with the required skills. 3 Assigning Roles and Responsibilities: You assign a senior developer to lead the coding efforts, a designer to work on the user interface, and a tester to ensure the website is bug-free. These roles and responsibilities are based on each team member's expertise and experience. 4 Creating a Staff Management Plan and Organizational Chart: You create a plan that outlines who is responsible for what, and you draft an organizational chart that shows the hierarchy within the team. This helps everyone understand their role and how they fit into the overall project structure. 5 Team Development: To ensure the team works well together, you hold regular meetings where everyone can share their ideas and discuss any issues. This helps build a sense of teamwork and ensures that everyone is committed to the project's success. 6 Reward and Recognition System: To motivate the team, you set up a system where high-performing team members are recognized in team meetings and receive bonuses or other incentives. This encourages everyone to work hard and contribute to the project’s success. 7 Training Needs: If a team member needs to learn a new tool or technology, you arrange for training sessions. For example, if the project requires knowledge of a specific database technology that a team member is not familiar with, you provide training to help them gain the necessary skills. 8 Identification of Critical Hardware and Software Resources: 9 Identifying Critical Resources: For the e-commerce website project, you identify that you need servers to host the website, enough disk space to store data, and software licenses for development tools like an Integrated Development Environment (IDE) and version control system. You document these needs in the project plan. 10 Defining Control Limits: You determine that the website will require at least 500 GB of disk space on the server but no more than 1 TB. 11
  • 182. ⇒Managing Cost The cost factor has a considerable influence on the execution of a software project. The budget of a software project is affected by factors, such as the current orientation of the organization toward software development, number of skilled personnel available, infrastructure, and computer hardware and software. The budget can also be influenced by timely availability of resources. If a particular resource is allocated to the project later than required, the costs involved could go up drastically. Quite often, when a software project starts to become too expensive, many project managers also tend to start cutting costs. This can have a direct impact on employee morale. When employee morale drops, so These examples help clarify how you would manage human resources, hardware, and software resources in a software project, ensuring that everything is aligned with the project's goals and that potential issues are addressed promptly. These are the control limits for disk space. If the space used goes beyond this range, you will need to take action to ensure the website runs smoothly. Periodic Assessment of Resources: As the project progresses, you periodically check the disk space, server load, and software licenses to ensure everything is within the required limits. If you find that disk space is running low, you might upgrade the server to avoid issues. If a resource like a particular software tool becomes less critical, you might reduce its use or allocate it to another project. 12
  • 183. does the quality of work, and the productivity. Therefore, as a project manager you must prepare for all circumstances through proper estimation and allocation. To manage costs for software projects, you need an accurate estimation of costs. To do that, there is a sequence of steps that you need to perform. • Identify the resources required for the project • Estimate the cost of each activity • Set cost baselines for each activity • Implement a control system for cost changes To estimate costs, you first identify and describe all the resources required in the software project. You also estimate the duration for which the resources are used. Software Project Management (CS615) 73 © Copyright Virtual University of Pakistan Next, estimate the cost of each resource. To estimate the cost, you can use mathematical tools. However, in the case where limited information is available about resources, you can also use expert judgment to estimate costs. After the costs of the required resources are estimated, you set cost baselines for each activity. Cost baselines measure the performance of an activity with regard to the cost and duration defined for the completion of the activity. Finally, as the project manager you implement a control system for cost changes. The cost control system defines cost baselines,
  • 184. identifies cost changes, and modifies cost baselines to adjust cost changes (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that give coherent examples. Here are simple, beginner-level examples for managing cost in a software project, based on the text you provided: Identify the Resources Required for the Project: 1 For a software project to build a mobile app, you identify that you need developers, designers, testers, project management tools, computers, and software licenses. You also need server space for testing the app before it goes live. 2 Estimate the Cost of Each Activity: 3 You estimate how much each of these resources will cost. For example, you calculate the salaries for the developers and designers, the cost of software licenses, the rental cost for the server, and any other expenses. If a developer is paid $5,000 per month and will work on the project for six months, you estimate the total cost for that developer as $30,000. 4 Set Cost Baselines for Each Activity: 5 After estimating the costs, you set a budget for each activity. For instance, you might allocate $10,000 for the design phase, $50,000 for development, and $15,000 for testing. These baselines help you track if you’re spending more or less than planned during each phase of the project. 6 Implement a Control System for Cost Changes: 7
  • 185. ⇒Management Risk Risk management is an integral part of project management. In software projects, where uncertainties are very high, risk management and mitigation is even more critical. Taking risks for high payoffs might bring in high profits but not without the danger of losses. Risk on a small scale is acceptable to most project managers as the element of loss is minimal. However, large risks pose a danger to the progress of a software project and you need to manage them. Risk management activities involve identifying potential risks, assessing them, and planning for contingent actions if a risk materializes. As a project manager, you perform two primary activities to manage risks for software project: • Risk Analysis o Risk identification These examples illustrate the steps involved in managing costs for a software project, ensuring that the project stays within budget while still meeting all requirements and quality standards. You set up a system to monitor costs throughout the project. If you notice that the design phase is costing more than expected, you might need to adjust the budget or find ways to reduce costs in other areas. For example, if you allocated $10,000 for design but it looks like it will cost $12,000, you might reallocate funds from another activity or find ways to reduce design costs without compromising quality. 8
  • 186. o Risk quantification • Risk management The first activity in risk analysis is risk identification. Risk identification helps you point out the, potential risks for a software project across all phases of the project. Risks might evolve through the duration of a software project, and therefore, risk identification is an ongoing activity. To identify potential risks for a software project, you can analyze the activities in the software project, the software product description, and risks faced by the development team in similar past projects. This exercise allows you to identify the potential sources of risks to the current software project, Assessing the factor influencing the different inputs also allows you to identify the phases in the SDLC when risk might materialize. After potential risks have been identified, you can quantify them. This is done to ascertain their priority. If multiple risks materialize at the same time, then you must assign a priority to each risk based on the degree of impact on the project and handle the highest-risk events first. For example, the risk of change in client Software Project Management (CS615) 74 © Copyright Virtual University of Pakistan requirements during the software construction phase is a higher risk than a deadline for a deliverable being missed. Therefore, you
  • 187. first manage the risk that has a higher priority. To quantify project risks, you can use various mathematical and statistical tools. You can also use expert judgment to assess and quantify risks. After you have identified and quantified the potential risks for a software project, you create a risk mitigation plan. The purpose of the risk mitigation plan is to help you identify procedures to choose the path of least damage and highest returns in a case a risk materializes. To mitigate risks for a software project, you first need to be aware of the opportunities and threats that can be pursued or ignored. This enables you to focus on the risks that might have a negative impact on the software project and develop contingent plans to deal with these risks. You can also mitigate risks by evolving alternative strategies to altogether prevent potential risks from materializing. In case an unplanned risk materializes, you must be aware of the dependencies of the project activities so that ad hoc solutions can be evolved. However, as the project manager you can avoid unplanned risks from materializing by engaging in an intensive risk identification and mitigation exercise before the software project commences. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in
  • 188. this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for managing risks in a software project, based on the text you provided: Risk Analysis: 1 Risk Identification: Imagine you are managing a project to develop a new mobile app. During the planning phase, you identify several potential risks, such as delays in getting client feedback, changes in user requirements, or technical challenges with integrating a new payment system. Identifying these risks early allows you to plan how to address them if they occur. 2 Risk Quantification: After identifying the risks, you prioritize them based on their potential impact. For example, the risk of changes in user requirements is considered more critical than a minor delay in feedback, as changing requirements could affect the entire project. You decide that changes in user requirements will be your top priority, and you’ll focus on managing that risk first. 3 Risk Management: 4 Creating a Risk Mitigation Plan: After prioritizing the risks, you develop a plan to deal with each one. For example, to manage the risk of changing user requirements, you might decide to hold regular meetings with the client to clarify requirements and confirm them before moving to the next development phase. You might also set up a change control process to handle any changes that do arise. 5 Monitoring and Adjusting: As the project progresses, you regularly review the risks and your mitigation plans. If a new risk arises, such as the client deciding to add a new feature late in the project, you adjust your plan accordingly. You might allocate additional resources or 6
  • 189. ⇒Managing Schedule Time is a major constraint for a software project. With most software projects, the delivery dates for the software product are already committed to the customer at the time the project commences. As a software project manager you must perform various tasks to balance time and deadlines. These are: – Identify the different deliverables that constitutes the software product – Define the activities that are required to produce the deliverables – Identify the interdependencies between activities – Define the duration of each activity – Assess the project network diagram – Create a schedule management and control plan The first task is to identify the different deliverables that constitute the software product. These deliverables also mark the completion These examples show how risk management involves identifying, prioritizing, and planning for potential risks in a software project. By being proactive in managing risks, you can minimize their impact and keep the project on course. adjust the project timeline to accommodate the new feature while minimizing the impact on the overall project. Unplanned Risks: Despite your best efforts, unplanned risks might still occur. For instance, if a key developer unexpectedly leaves the project, you quickly assess the situation and bring in another developer or redistribute tasks among the existing team to keep the project on track. 7
  • 190. of the different phases within a software project. Next, define the activities that are required to produce the deliverables. To do this, you can break down the SDLC into phases, identify the deliverables at the end of each phase, and the activities required for creating the deliverables. Software Project Management (CS615) 75 © Copyright Virtual University of Pakistan After the activities are defined, you identify the interdependencies between them. The purpose of this exercise is to organize the activities and sequence them in the form of a project schedule. Next, you define the duration of each activity. The inputs that you need for scheduling are the resources required to complete each activity. Then, assesses the availability of these resources and the duration of each similar activity in similar past projects. After estimating the time required for each activity to complete, you assess the project network diagram. This includes an assessment of the duration estimates, resource requirements, resource pool description, and assumptions and constraints for the software. You can use Mathematical tools to determine a schedule for the project. The project schedule defines the activities within each phase, the team members assigned to complete each activity, the
  • 191. duration of each activity, and the start and end dates for all of the activities. Finally, create a schedule management and control plan. The purpose of this plan is to identify when changes occur, Implement the changes to the project schedule, and ensure that the changes are beneficial to the software project. After the changes are implemented, you might need to modify the sections of the project plan to ensure that the project is completed on time. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples related to managing the schedule in a software project: Identifying Deliverables: 1 Imagine you’re managing a project to create a website for a client. The deliverables might include the homepage design, the contact form, the user login system, and the final tested website. Each of these deliverables marks the completion of a different phase in the project. 2 Defining Activities: 3 To produce the homepage design (a deliverable), the activities might include gathering client requirements, creating wireframes, designing 4
  • 192. From ChatGPT, designed with FancyGPT These examples illustrate the key steps in managing a project schedule, ensuring that all activities are planned, organized, and monitored to meet the project’s deadlines. the layout, and getting client approval. Each activity is a step needed to create the homepage. Identifying Interdependencies: 5 Some activities depend on the completion of others. For example, you can’t start designing the layout until the client requirements are gathered and wireframes are created. Identifying these dependencies helps you plan the order in which activities should be carried out. 6 Defining Activity Duration: 7 You estimate how long each activity will take based on past experience. For example, gathering client requirements might take 3 days, creating wireframes might take 2 days, and designing the layout might take 5 days. You use this information to plan the overall schedule. 8 Assessing the Project Network Diagram: 9 You create a visual diagram that shows all the activities, their durations, and how they are connected. This helps you see the overall flow of the project and ensure that everything is planned out logically. 10 Creating a Schedule Management and Control Plan: 11 After setting up the schedule, you create a plan for managing any changes. For example, if the client requests a change in the homepage design, you would update the schedule, adjust the deadlines if needed, and make sure the team is aware of the new plan to ensure the project stays on track. 12
  • 193. cs611 lecture 9 cs611 lecture 9 cs611 lecture 9 cs611 lecture 9 cs611 lecture 9 LECTURE # 9 2. Software Development Fundamentals Management Fundamentals 2.8 Managing Processes ⇒Managing the Project Plan Preparing it project plan for a software project helps you ensure that the specified requirements and objectives are met successfully. It is a collation of all planning activities that have happened for a software project. This includes activities such as design and analysis, activity definition, risk planning, and cost estimation. To create the plan, you assess all planning activities, organizational policies regarding the creation of the project plan and assumption and constraints for the project. To implement the software project plan, you require management skills, such as leadership, communication, and problem solving, along with the basic knowledge about the software. You also need to ensure that the senior management bf the company has authorized work on the software project. Knowledge management techniques help you to make informed decision
  • 194. regarding the project plan. After the project plan is executed, you manage the changes to it in such a way that the performance measurement baselines are not impacted, To manage the project plan effectively you monitor the project plan, periodic performance status reports, and requests for change. The primary tool that you can use to control the changes in the project plan is the change control mechanism: This is a set of formal procedures for changing the project plan (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. ⇒Managing Quality The quality of software development depends largely on the understanding of ‘quality’ and quality management within the software
  • 195. development team. In software projects where each member has a different understanding of quality and his or her role in implementing it, the software product is usually not of the required quality. Implementing software quality is often associated with the software developer. However, the role of the project manager is crucial in implementing quality awareness and a quality-producing work environment. When a software project starts missing deadlines and is in danger of exceeding the budget, project managers often lose the focus on quality and lay stress on meeting deadlines. However, the focus should be the other way round. A focus on delivering a Software Project Management (CS615) 77 © Copyright Virtual University of Pakistan quality product, even at the cost of missing a deadline or two ensures that your customer comes back for repeat orders. On the other hand, the price of nonconformance (PONC) on quality standards simply translates into the loss of goodwill and loss of business. Modern quality management techniques compliment project management and the role of the project manager. Quality management techniques ensure that a software product conforms to the customer requirements. Quality management further ensures that errors are prevented in the first
  • 196. round itself. Checks for errors and effort for removing the errors consume much more time, effort, and cost than it takes to prevent the errors in the first place. Therefore, maintaining quality in a software project is the domain of all team members. However, as the project manager you have a critical role in maintaining quality. You provide the resources required to complete the activities of the software project and ensure that quality levels are constantly monitored. You first identify the areas that must be monitored for ensuring quality and the quality measures to implement. Then, consider the quality policy of the organization, the scope of the project, the applicable standards, and the software product description. Next, use tools, such as a cost- benefit analysis and a flowchart, to identify the areas where you need to monitor quality and the subsequent actions for control. The output of this exercise is the quality plan for the software project. In addition, this exercise allows you to create checklists to help monitor quality. As a software project manager, you also need to use a quality control mechanism so that the quality of the software product does not suffer. The aim of the quality control mechanism is to ensure compliance with quality standards (my prompt is that give me simple beginner level
  • 197. examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. ds. 2.9 Project Execution You already learned in the beginning of the chapter that a software project is divided into different phases. This division is done on the basis of the activities performed in each phase. Similarly, project management activities are also arranged in phases. As a project manager, you perform the activities that map to each of these phases. The project management phases can be broadly categorized as follows; – Project initiation – Project closedown – Project planning, control, and tracking – Product implementation • Project Initiation Software Project Management (CS615)
  • 198. 78 © Copyright Virtual University of Pakistan The tasks performed for project initiation are mentioned below: Requirement gathering: The first task is to gather the customer requirements. Customer requirements may be spoken or unspoken. Therefore, the challenge for the project manager is to elicit the requirements in such a way that both the spoken and unspoken customer needs and wants are gathered. After collecting the required information, you need to translate the customer requirements into technical specifications for the software project. Scope determination: The scope of a software project can be defined as the combination of the software product arid services to be delivered to the customer. You carry out the scope determination exercise to define the scope of the software project. The scope determination exercise enables you to refine and understand the customer requirements. You can refine the scope definition further by breaking down each deliverable into smaller and more manageable activities. The scope determination exercise also helps you identify the technology for creating the software product. Resource allocation: During project initiation, you identify the resources required and allocate them to the software project. The resources identified may be people,
  • 199. reusable software components, and hardware or software tools. You allocate the resource to the software project on the basis of the activities defined in the scope determination exercise. While allocating appropriate resources for a software project, you also need to calculate the cost of each resource. The cost of a resource is calculated according to the duration of the resource in the software project. Estimating the cost of resources also helps you prepare a budget for the software project. Note: Scope determination and resource allocation are discussed in more detail in later chapters. Initial project plan: Another exercise that you carry out during project initiation is the creation of a rough project plan. This plan is a draft version and carries only the primitive project plan features. This project plan carries the initial risk analysis of the software project, the initial start and end dates, the duration of the activities in the project, and the sequencing of these activities. • Project Planning, Controlling, and Tracking This activity of the project manager involves detailed tasks. These tasks are mentioned below: Detailed project plan: After the scope for the software project is determined and the product design is ready, you prepare a detailed
  • 200. project plan. To create a detailed project plan, you define a detailed list of all the elements that make up the Software Project Management (CS615) 79 © Copyright Virtual University of Pakistan project deliverables. Next, the deliverables are further broken up to help In the calculation of durations, start dates and end dates for each activity mentioned in the plan. Roles and responsibilities are assigned to people with the appropriate skills to complete each activity within specified time. Control mechanism: These are set up to control the impact of changes on the software project. The control mechanism includes a detailed risk management and mitigation plan, a detailed quality plan, and quality assurance activities. You also implement a review and audit system for periodic assessment and measurement of the software project activities. The review and audit system enables you to evaluate the progress of the software project. It ensures that all necessary data is collected, deviation from the planned baselines is checked, and corrective action is taken at all checkpoints. In this way, the review and audit system ensures compliance with the organizational processes for software development. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt)
  • 201. From ChatGPT, designed with FancyGPT Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 202. cs611 lecture 10 cs611 lecture 10 cs611 lecture 10 cs611 lecture 10 cs611 lecture 10 LECTURE # 10 2. Software Development Fundamentals Management Fundamentals 2.9 Project Execution ⇒Product Implementation Product implementation activities involve defining processes related to the implementation of the software product at the customer site. Some of the tasks that you perform for product implementation are mentioned below: • Implementation plan creation: An implementation plan defines the duration of implementation and the hard and software perquisites for implementing the software product. • Support plan creation: the project manager also needs to create a support plan for the customer. The support plan includes consideration such as the postimplementation support activities provided to the customer. Post-implementation considerations include the number of support staff available to the customer, their names, contact numbers, and the duration of their availability. • Training plan creation: During product implementation, you create a training
  • 203. plan to train the customer on the software product. The training plan includes considerations such as the duration of training, the prerequisites for training people, and the number of people that can be trained simultaneously. • User acceptance plan: You also need to prepare a user acceptance plan. The user acceptance plan provides a detailed outline on how and when the user acceptance tests are performed. The primary focus of user acceptance test is to ensure that the final software product offers all the functionality and performance that the customer wanted. Therefore, the customer tests the software product for issues such as aesthetics, user friendless, and scalability. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 204. ⇒Project Closedown The final activity for a project manager is project closedown. For most software projects, the project closedown activities take place in the post-implementation phase. However, in some software projects, the customer requests support activities for a longer duration. In such cases, the software project is considered Software Project Management (CS615) 81 © Copyright Virtual University of Pakistan closed immediately after implementation. The tasks that you perform in project closedown are mentioned below: • Prepare closedown report: The project closedown report contains the results of the causal analysis that you do for the project. This contains an analysis of what went wrong, what went right, and what you could have done better in the software project. • Identify learning: You also need to assess the entire software project and the results of the causal analysis to identify the key learning points from the software project. This helps you identify areas of improvement for future projects. The learning points can also be used by the organization as considerations while planning and executing the next software project. • Identify reusable software components: Reusing software components enables you to lower the cost, time, and effort required to
  • 205. complete the software project successfully. After project closedown, you identify the software components that can be reused in future projects of similar nature. The software components prepared for a software project may be complete, partially complete, or in the design stage. These components or their designs can be assessed for usability in future projects. • Create reference material: After the project is complete, you can create white papers and reference documents. This can be a significant contribution to the organization and the application area of the software by creating an authoritative knowledge base. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 206. 2.10 Project Management Myths In most cases, you learn the skills required to manage a software project while on the job. As a result, most software project managers practice a lot of management techniques that are of doubtful authenticity. Many software project managers learn about the so-called management skills and concepts that are actually myths. ⇒Clarifying the Project Management Myths The following list aims to clarify some of the more prevalent myths in software project management. 1. Combining the best resources with the worst resources available for a software project helps to complete the project successfully. 2. A general statement of objectives is sufficient to begin work on the software project. Software Project Management (CS615) 82 © Copyright Virtual University of Pakistan 3. Allocating extra resources to a late project allows it to catch up with the project schedule. 4. As software by itself is flexible, you can change the requirements at any point in the software project life cycle. 5. The management and the customer always impose an unrealistic deadline for the software project. 6. A software project that meets all the stated objectives is a success.
  • 207. 7. Software maintenance is an easy task and requires less effort than actual software development. 8. Identifying and reporting errors during the reviews makes the software developer unhappy and spoils the work environment. 9. Web-enabling an application or adopting client/server; architecture helps to run software projects smoothly. Myth: Combining the best resources with the worst resources available for a project helps to complete the project successfully. In software projects, combining the best resources with the worst resources drags down the efficiency and productivity of good resources. This invariably decreases the speed of the software project, and the project ends much after the specified deadline. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 208. Myth: A general statement of objective is sufficient to begin work on the software project. Many software project managers and customers believe that a general statement of objectives gives a reasonable idea of the requirements. However, a formal and detailed description of the customer requirements is needed before the project commences. The software project manager must ensure that all information regarding the software project, such as the functions, performance, interfaces, constraints, assumptions and validation criteria is gathered. Myth: Allocating extra resources to a late project allows it to catch up with the project schedule. A software project is not a mechanical process such as, say; digging an artificial lake. In case of creating an artificial lake, adding more people to the job can help dig a larger area in the same time. However, in a software project, adding, more people actually increases the time required to finish the project. This happens because a new person joining the project requires time to understand the Software Project Management (CS615) 83 © Copyright Virtual University of Pakistan
  • 209. requirements of the client, software design, and standards. Moreover, the existing people in the project need to devote time and effort to train the new people on the software project. Therefore, allocating additional resources to a risky situation increases the risk to the software project. Myth: As software by itself is flexible, changes in the requirements can be made at any point in the software project life cycle. Requests for changes are common with all projects. However, the timing of the change for requests is critical. This is because an untimely change adversely, impacts the cost of the software project. For example, a change request during the requirements gathering stage has a relatively low impact on costs. On the other hand, a change request during, the software construction stage can be extremely expensive to incorporate. The software project manager must decide with the customer upon a set of objectives that must be achieved at the end of the project. In addition, the project manager and the customer must decide on a specific phase, beyond which only critical change requests are accepted. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are
  • 210. part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for the myths discussed: Myth: A General Statement of Objectives Is Sufficient to Begin Work on the Software Project: 1 If a project starts with just a broad goal like create a management system, it can lead to confusion because the team won’t have specific details on what the system should do. For example, without knowing exactly what features are required, the team might build something that doesn’t meet the client’s needs. A detailed description of the requirements, including the system's functions, performance expectations, user interface design, constraints, and testing criteria, is necessary to avoid these issues. 2 Myth: Allocating Extra Resources to a Late Project Allows It to Catch Up with the Project Schedule: 3 Imagine a project is behind schedule. Adding more developers to speed things up seems logical, but in software projects, this often backfires. For example, new developers need time to understand the project, which slows down the existing team because they have to train and explain things to the newcomers. This extra time can make the project fall even further behind schedule instead of catching up. 4 Myth: As Software by Itself Is Flexible, Changes in the Requirements Can Be Made at Any Point in the Software Project Life Cycle: 5 While software can be adjusted, changing requirements late in the project can cause significant problems. For example, if the client decides to change a feature during the testing phase, it could require going back to the design and development stages, which increases costs and delays the project. It’s important to agree on the main objectives early on and limit changes to critical ones after a certain point to avoid these issues. 6
  • 211. Myth: The management and customer always impose an unrealistic deadline for the software project. The management and customer usually believe that project managers prepare cost effort, and time estimates inclusive of buffers. The management and customers rationalize that if they can cut the buffers by imposing a tight deadline or a low budget on a project, the project manager would still complete the project on time. Myth: A software project that meets all the stated objectives is a success. Customer requirements for a software project are always in two forms, spoken and unspoken. Usually, the objectives formed from the customer requirements are based on the spoken requirements. The software project manager must to be aware of the unspoken requirements and ensure that these are met. Myth: Software maintenance is an easy task and requires less effort than actual software development. If change requests are made toward the end of the project, then maintenance activities can contribute to large costs and effort overruns. Moreover, contrary to the popular view, implementing changes in the software product in the maintenance stage is a painstaking task. Myth: Identifying and reporting errors during the
  • 212. reviews makes the software developer unhappy and spoil the work environment. Software Project Management (CS615) 84 © Copyright Virtual University of Pakistan If a developer makes an error, it is important to point it out so that the error is fixed in time. A project manager must communicate assertively so that the team does not lose focus on quality. In addition, letting an error pass may have ripple effects on the quality of the software product, frustrating the entire team. Myth: Web-enabling an application or adopting client / server architecture helps to run software projects smoothly. No single technology platform, language, or architecture is a one-point solution for all software projects. All approaches to software development have unique merits and demerits. For example, if a marketing firm needs to make information accessible to people at remote locations, then a, Web- based application is a good option. However, mainframes are still preferred for applications created for the banking industry. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 213. Here are simple, beginner-level examples for the additional project management myths discussed: Myth: The Management and Customer Always Impose an Unrealistic Deadline for the Software Project: 1 Some project managers believe that management and clients deliberately set tight deadlines, assuming that project estimates include extra time. However, if the project is given an overly tight deadline, it can lead to stress and mistakes, causing the project to miss the deadline entirely. For example, a project estimated to take six months should not be forced into a four-month schedule, as this could lead to rushed work and poor quality. 2 Myth: A Software Project That Meets All the Stated Objectives Is a Success: 3 Even if a project meets all the stated objectives, it may still fail if it doesn't consider the unspoken needs of the customer. For example, a project might deliver all the requested features, but if the software is difficult for the client’s team to use or doesn’t integrate well with their existing systems, the client may not view the project as a success. 4 Myth: Software Maintenance Is an Easy Task and Requires Less Effort Than Actual Software Development: 5 Maintaining software, especially when changes are requested late in the project, can be very challenging. For instance, fixing a bug or adding a new feature after the software has been deployed can require significant effort. It may involve revisiting old code, which can be complex and time-consuming, often leading to more work than the original development. 6 Myth: Identifying and Reporting Errors During the Reviews Makes the Software Developer Unhappy and Spoils the Work Environment: 7 Some believe that pointing out mistakes during code reviews will upset developers, but in reality, addressing errors early helps the project overall. For example, if a bug is found during a review and fixed 8
  • 214. From ChatGPT, designed with FancyGPT immediately, it prevents bigger issues later. Developers generally appreciate feedback that helps improve the quality of the software. Myth: Web-Enabling an Application or Adopting Client/Server Architecture Helps to Run Software Projects Smoothly: 9 No single technology is a perfect solution for all projects. For example, a web-based application might be ideal for a marketing firm needing to reach remote clients, but a banking system might still rely on mainframes due to their reliability and security. The choice of technology should be based on the specific needs of the project, not on the assumption that one approach is superior in all cases. 10
  • 215. cs611 lecture 11 cs611 lecture 11 cs611 lecture 11 cs611 lecture 11 cs611 lecture 11 LECTURE # 11 2. Software Development Fundamentals Management Fundamentals 2.11 Problems in Software Projects Software projects are similar to traditional projects in the sense that the same types of problems affect them both. However, the difference in managing these problems lies in the approach that you take to the specific issue. For example, a technology-related problem for a software project might be the low degree of reuse of the software components created. However, for a car-manufacturing firm, there is no chance of reusing a component such as a front axle. You can classify the problems that affect software projects into the following four categories: • People-related problems • Process-related problems • Product-related problems • Technology-related problems ⇒People-related problems People-related problems in a software project are: • Low motivation: As the project manager it is your responsibility to ensure an
  • 216. optimal level of motivation within the team. Lengthy projects, complex activities1 and scarce resources often decrease the motivation level in a software development team. However, you need to lead in such a way that the team is constantly motivated to do a good job. • Problem employees: Some members of any team always create a problem. For example, an employee may carry a 'holier-than thou' attitude. Problem employees raise the chances of conflicts and differences of opinions within the development team. They lower the efficiency and productivity of other team members and make it difficult to meet the objectives of the software project within the specified time. You need to ensure that employees are not allowed to create a pr9blem for the rest of the team. Even if the employee is very competent, you need to assess the indispensability of such emp1oyees for the project. Moreover, you refrain from playing favorite with certain employees and treat everyone with the same measure. Software Project Management (CS615) 86 © Copyright Virtual University of Pakistan • Unproductive work environment: The work environment is a major factor that affects the productivity of the development team. For example, a noisy or cramped workspace decreases the motivation levels
  • 217. of the employees. Similarly, unfriendly organizational policies also lower the motivation of the team members. As the project manager, you need to ensure that the team is protected from harmful external make the workspace friendly to work in. • Inefficient project management style: the project manager needs to lead by example. The team members absorb the work culture, work ethic, and attitude of the project manager and implement it in their work style. If you display a lack of leadership qualities and weak ideals, the motivation levels decrease across software team. • Lack of stakeholder interest: For a software project to be a success, each stakeholder needs to take an active interest in the progress of the project. Al1 stakeholders, including the customer, the management, and the software development team, need to commit to the success of the project. For example, if the software development team is not committed to the project, then their contribution may not be to the optimum level. • Ineffective project sponsorship by management: Lack of commitment of the senior management to a software project lowers the motivation level of the team members. If the management commits to the progress of a software project, and takes a keen interest in the progress, the
  • 218. confidence of the software development team will increase. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. ⇒Process- related Problems The process-related problems in a software project are: • Unrealistic schedule: Assigning unrealistic deadlines for a software project is a primary reason why software projects are delayed. Often, the marketing or the management team commit a delivery date to the customer in the hope of getting the project contract. However, these dates are not decided in consultation with the development team. The rationale for assigning the deadlines is unfounded. You need to ensure that the deadlines match the
  • 219. ability of the software team to deliver the software product. As it is not always possible to shift deadlines committed to the customer, you also need to plan the resource allocation and project execution such that the deadlines are met. • Insufficient identification: Unidentified, partially identified, and unplanned risks pose a threat to the success of a software project. You need to intensively identify risks and evolve a risk management plan such that the project is completed successfully, on time. Software Project Management (CS615) 87 © Copyright Virtual University of Pakistan • Unsuitable life cycle model selection: Different software projects require different SDLC models. For example, a project to create banking .software is different from software for a satellite where the concept needs to be researched. For the former example, the Waterfall model is more applicable. For the latter example, the Spiral model is more suitable. Selecting the correct life cycle model is critical to the success of a software project. • Abandoning quality under pressure of deadlines: Where a software project faces a shortage of resources, time, and funds, project managers often push away quality concerns and focus on meeting deadlines and staying within the
  • 220. budget. Abandoning quality has a ripple effect that actually adds even more time, effort, and costs to the software projects. The cost of doing things right the first time is lower than the cost of inspection during product delivery. Also, the cost of inspection is lower than the cost of debugging software after the customer spots errors. • Unstructured and hurried software development: When software project progresses with more focus on meeting deadlines and staying within a budget, the approach to the software development is unstructured and hurried. You should plan the software project such that all the activities are identified, sequenced properly, and roles and responsibilities assigned to the various people on the project. You should also maintain the focus of the development team toward a structured approach to software development. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 221. ⇒Product-related Problems There are many product-related problems that you can face in a software project. These are: • Product scope changed toward the end of the project life cycle: The project time, effort, and cost estimates for a software project can go up dramatically when the customer changes the scope 9f the product toward the end of the project. In such situations, you should verify the criticality of the scope change. However, if the change request is not critical, you should retain the original scope with a proper explanation to the customer. If the change request is critical, you should explain the situation to the customer. Usually, a customer gives more time and funds to a software project if proper justification is provided. In some cases, the scope change may also be because of a change in government policy. It may become mandatory for you to include such change requests. • Research-oriented software development: Many software projects digress from the original scope because of the nature of the
  • 222. From ChatGPT, designed with FancyGPT software product or technology used. When a totally new kind of software is developed or a new Software Project Management (CS615) 88 © Copyright Virtual University of Pakistan technology is used, the software development team can lose focus of the objectives by getting into a research-oriented approach. It becomes your responsibility as the project manager to maintain the focus on the objective. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 223. cs611 lecture 12 cs611 lecture 12 cs611 lecture 12 cs611 lecture 12 cs611 lecture 12 LECTURE # 12 2. Software Development Fundamentals Management Fundamentals 2.10 Problems in Software Projects ⇒Product-related Problems • III-defined scope: You need to define the scope of the software product in the initial stages of a software project. The scope of a software product is defined in terms of the functionality requirements, the performance requirements, the assumptions, and the constraints on the product. If the product scope is ill defined, the software project does not have a proper focus on the features required in the product. • Fuzzy users: You also need to clarify the background characteristics of the users of the final software product at the beginning of the software project. If the description of the users is fuzzy, then the software analysis, design, and development stages may reflect the ambiguity with regard to the functions and performance of the final software product. ⇒Technology-related problems You may also encounter technology-related problems in a software project. These include: • Overestimated savings from reusable components and new tools and methods: You can reuse software components in a software project to save time, effort, and cost of creating the component again. It is important that you assess the savings that the use of such a software component provides to a software project. This expectation of both the customer and the management might not be met, if you overestimate the savings from reusing software components. 15/08/2024, 20:28 FancyGPT - cs611 lecture 12 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/6
  • 224. • Switching tools in mid way: The current technology environment offers new tools and technologies for software development at a fast rate. All these tools and technologies offer the benefits of a shorter development cycle, lower costs, and under better functionality than earlier tools. You should identify and commit to the tool and technology for the software project before the project commences. Switching the tool or technology used during the software development stage causes the developers to relearn a new tool. In addition, Software Project Management (CS615) 90 © Copyright Virtual University of Pakistan there is a chance that it might not be possible to integrate the software already developed with the new tool. • Integrating different software products in cross-platform implementation: The modem software environment requires that all software should integrate with each other. However, many software projects do not plan for integration with existing software in the same or different domain. This limits the applicationofsu9h software and reduces the shelf life drastically. They key to the success of a software product is interoperability. The software project manager needs to determine the scope for the software product such that is can be integrated easily with existing software. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Certainly! Here are straightforward examples for each of the topics mentioned: Product-related Problems Ill-defined scope: Imagine a team is tasked with creating a new messaging app. If they don’t clearly define what features the app should have, like text messaging, voice calls, 1 15/08/2024, 20:28 FancyGPT - cs611 lecture 12 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/6
  • 225. ⇒Summary The phases in a software project can be organized into a project life cycle. Some standard life cycle models are the Waterfall model, the Prototyping model, the Incremental model, and the Spiral model. Organizational policies and attitudes influence the progress of a software project and the tasks of a software project manager. For smooth progress of software, project, the organization should be proactive in adopting changes in technology and market environments, focused on developing software, and accept software projects that match the organizational capability baseline. In addition, the organization should implement employee-friendly human resource policies and good knowledge management system. The role of a software project manager includes managing resources, cost, risk, schedules, project plan, and quality. Software project management activities can Technology-related Problems and file sharing, the team might start adding unnecessary features like video calls or games. This can lead to confusion and delay in the project because there’s no clear understanding of what the app should do. Fuzzy users: Suppose a company wants to develop a software tool for teachers. If they don’t specify what kind of teachers (like high school, college, or elementary) or what subjects they teach, the software might end up with features that aren’t useful for the intended users. For example, a high school math teacher might need different features compared to an elementary school art teacher. 2 Overestimated savings from reusable components and new tools: A team decides to use a pre-built login system from another project to save time. They expect this to reduce the development time by 50%. However, after integrating it, they realize it doesn’t fully meet the current project’s requirements and needs significant modifications, resulting in less savings than anticipated. 1 Switching tools midway: During a project, the team decides to switch from one programming language to another because the new language promises faster performance. However, the team spends a lot of time learning the new language, and some of the initial code has to be rewritten. This ends up causing delays and increased costs. 2 Integrating different software products in cross-platform implementation: A company develops a new scheduling tool but doesn’t ensure it can connect with existing calendar apps like Google Calendar or Outlook. As a result, users find it inconvenient to use the new tool because it doesn’t integrate with the software they already use, reducing its usefulness. 3 15/08/2024, 20:28 FancyGPT - cs611 lecture 12 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/6
  • 226. be divided into phases. The main phases and the associated activities are initiating the project, planning, controlling, and tracking, implementing the product, and project closedown. Initiating the project includes gathering requirements, determining the scope, allocating resources, and creating an initial project plan. Planning, controlling, and tracking involve creating a detailed project plan, constructing software, and implementing a control mechanism. Implementing the product comprises implementation plan, support plan, training plan, and user acceptance plan. Project closedown includes preparing closedown report, identifying learning for future projects, and identifying reusable software components for future software projects. Problems- affecting software projects can be classified into people-related, project-related, product-related, and technology-related. Various myths regarding software project management are adding more people to a late project can help to finish the project on time, combining the best resources Software Project Management (CS615) 91 © Copyright Virtual University of Pakistan with the worst resources results in optimal resource allocation, and changes to the scope of the software project and the software product can be made at any-time in the SDLC. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are beginner-level examples for the key points from the lecture on software project management: Project Life Cycle Models Project Life Cycle Models Project Life Cycle Models Project Life Cycle Models Project Life Cycle Models 15/08/2024, 20:28 FancyGPT - cs611 lecture 12 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/6
  • 227. Organizational Policies and Attitudes Organizational Policies and Attitudes Organizational Policies and Attitudes Organizational Policies and Attitudes Organizational Policies and Attitudes Phases of Software Project Management Phases of Software Project Management Phases of Software Project Management Phases of Software Project Management Phases of Software Project Management Problems in Software Projects Problems in Software Projects Problems in Software Projects Problems in Software Projects Problems in Software Projects Waterfall Model: A team follows a linear process where they first gather all the requirements, then design the software, write the code, test it, and finally deploy it. Each phase must be completed before the next one begins. Prototyping Model: Developers create a simple version of the software to demonstrate basic functionality. The prototype is then shown to stakeholders for feedback, which is used to refine the requirements and create a better final product. Incremental Model: A software team builds a messaging app by first releasing a basic version that only allows text messages. Over the next few months, they incrementally add features like voice messaging, video calls, and group chats. Spiral Model: A team develops a customer relationship management (CRM) system by going through multiple iterations of gathering requirements, assessing risks, developing the product, and getting feedback, allowing for adjustments at each stage. Proactive in Adopting Changes: A company regularly updates its software development tools to stay competitive, ensuring its developers are using the latest technology to produce high-quality software efficiently. Accept Software Projects Matching Capability: An organization declines a project that requires expertise in machine learning because its team specializes in mobile app development, ensuring they don't overextend their capabilities. Employee-friendly HR Policies: A company offers flexible working hours and remote work options to its developers, leading to higher job satisfaction and better retention rates. Knowledge Management System: A firm maintains a comprehensive database where developers can access previous project documents, reducing the time needed to resolve issues by leveraging past solutions. Initiating the Project: A project manager gathers all the requirements for a new e- commerce website, determines the features needed, allocates a team of developers, and drafts an initial project timeline. Planning, Controlling, and Tracking: The manager creates a detailed project plan for the website, including timelines for each feature. They also set up a system to monitor progress and ensure the project stays on track. Implementing the Product: The team follows an implementation plan, providing support and training to the client’s staff. They also ensure the product meets the client's acceptance criteria. Project Closedown: Once the e-commerce website is live, the team prepares a report detailing the project's outcomes, lessons learned, and identifies code or modules that can be reused in future projects. People-related Problems: A team struggles because one developer is unfamiliar with the chosen programming language, causing delays. Project-related Problems: The team finds out that the project was scheduled to finish within six months, but the required resources were not available until the third month, causing timeline issues. Product-related Problems: The software product's features were not clearly defined initially, leading to disagreements about what functionality to implement. Technology-related Problems: The team decides to use a new development framework halfway through the project. However, this framework isn’t compatible with existing components, causing integration issues. 15/08/2024, 20:28 FancyGPT - cs611 lecture 12 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/6
  • 228. From ChatGPT, designed with FancyGPT Myths in Software Project Management Myths in Software Project Management Myths in Software Project Management Myths in Software Project Management Myths in Software Project Management Adding More People to a Late Project: A project that is behind schedule gets five additional developers. However, the extra time needed to train them on the project specifics actually delays the project further. Combining Best and Worst Resources: A project manager pairs the most experienced developer with a novice, hoping the former will mentor the latter. Instead, the experienced developer spends most of their time teaching, slowing down the overall progress. Changes to Scope at Any Time: A client requests significant new features late in the development process of a web application, leading to increased costs and delayed delivery as the team has to rework existing modules. 15/08/2024, 20:28 FancyGPT - cs611 lecture 12 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/6
  • 229. cs611 lecture 13 cs611 lecture 13 cs611 lecture 13 cs611 lecture 13 cs611 lecture 13 LECTURE # 13 2. Software Development Fundamentals Technical Fundamentals 2.11 Requirements Management ⇒Preview Software requirements engineering is a process of discovery, refinement, modeling and specification. The system requirements and role allocated to software-initially established by the system engineer- are refined in detail. Models of the required data information and control flow and operational behavior are created. Alternative solutions are analyzed and a complete analysis model is created. Requirements engineering is the systematic use of proven principles, techniques, languages, and tools for the cost effective analysis, documentation, and on-going evolution of user needs and the specification of the external behavior of a system to satisfy those user needs. Notice that like all engineering disciplines, requirements engineering is not conducted in a sporadic random or otherwise haphazard fashion,
  • 230. but instead is the systematic use of proven approaches. Both the software engineer and customer take an active role in software requirements engineering-a set of activities that is often referred to as analysis. The customer attempts to reformulate a sometimes nebulous system-level description of data, function and behavior into concrete detail. The developer acts as interrogator, consultant, problem solver and negotiator. The overall role of Software in a larger system is identified during system engineering. However, it's necessary to take a harder look at software's role-to understand the specific requirements that must be achieved to build high-quality software. That's the job of software requirements analysis. To perform the job properly, you should follow a set of underlying concepts and principles. Generally, a software engineer performs requirements analysis However, for complex business applications a 'system analyst’ trained in the business aspects of the application domain may perform the task. If you don't analyze, it's highly likely that you'll build a very elegant software solution that solves the wrong problem. The result is wasted time and money, personal frustration and unhappy
  • 231. customers. Software Project Management (CS615) 93 © Copyright Virtual University of Pakistan Data, functional, and behavioral requirements are identified by eliciting information from the customer. Requirements are refined and analyzed to assess their clarity, completeness, and consistency. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. ⇒Requirements analysis Requirements analysis is a software engineering task that bridges the gap between system level requirements engineering and software design (Figure 1). Requirements engineering activities result in the specification of software's operational characteristics (function, data; and behavior),
  • 232. indicate software's interface with other system elements, and establish constraints that software must meet. Requirements analysis allows the software engineer (sometimes called analyst in this. role) to refine the software allocation and build models of the data, functional, and behavioral domains that will be treated by software. Requirements analysis provides the software designer with a representation of information, function, and behavior that can be translated to data, architectural, interface, and component-level designs. Finally, the requirements specification provides the developer and the customer with the means to assess quality once software is built. Figure 1: a bridge between system engineering and software design Software requirements analysis may be divided into five areas of effort: (1) Problem recognition, (2) Evaluation and synthesis, (3) Modeling (4) Specification, and (5) Review System Engineerin g Software Design Software
  • 233. Requirement s Analysis Software Project Management (CS615) 94 © Copyright Virtual University of Pakistan Initially, the analyst studies the System Specification (if one exists) and the Software Project Plan. It is important to understand software in a system context and to review the software scope that was used to generate planning estimates. Next, communication for analysis must be established so that problem recognition is ensured. The goal is recognition of the basic problem elements as perceived by the customer/users. ƒ Problem evaluation ƒ Solution synthesis (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples related to the concepts in the given prompt, ensuring coherence for lecture delivery:
  • 234. 1. 1. 1. 1. 1. Requirements Analysis as a Bridge Between System Requirements Analysis as a Bridge Between System Requirements Analysis as a Bridge Between System Requirements Analysis as a Bridge Between System Requirements Analysis as a Bridge Between System Engineering and Software Design Engineering and Software Design Engineering and Software Design Engineering and Software Design Engineering and Software Design Imagine you're working on a mobile banking app. At the system engineering level, the overall system requirements, such as secure transactions, are defined. Requirements analysis is the bridge that takes these high-level system requirements and translates them into more detailed requirements specific to the software. For instance, it details how secure transactions will be implemented in the app, including encryption protocols, user authentication methods, and data validation processes. 2. 2. 2. 2. 2. Software Operational Characteristics: Function, Software Operational Characteristics: Function, Software Operational Characteristics: Function, Software Operational Characteristics: Function, Software Operational Characteristics: Function, Data, and Behavior Data, and Behavior Data, and Behavior Data, and Behavior Data, and Behavior For the mobile banking app, the operational characteristics of the software include: 3. 3. 3. 3. 3. Software Interface with Other System Elements Software Interface with Other System Elements Software Interface with Other System Elements Software Interface with Other System Elements Software Interface with Other System Elements The mobile banking app needs to interface with various system elements, such as the bank's core database, external payment gateways, and authentication services like biometric verification (e.g., fingerprint or face ID). The requirements analysis will define these interfaces, specifying how the app should communicate with these systems, ensuring seamless data exchange and security. 4. 4. 4. 4. 4. Constraints that Software Must Meet Constraints that Software Must Meet Constraints that Software Must Meet Constraints that Software Must Meet Constraints that Software Must Meet The app must meet specific constraints, such as ensuring transactions are completed within 3 seconds, supporting multiple languages, and complying with security regulations like GDPR. These constraints are identified during requirements analysis to ensure the software adheres to necessary standards and performance metrics. 5. 5. 5. 5. 5. Building Models of Data, Functional, and Behavioral Building Models of Data, Functional, and Behavioral Building Models of Data, Functional, and Behavioral Building Models of Data, Functional, and Behavioral Building Models of Data, Functional, and Behavioral Domains Domains Domains Domains Domains During requirements analysis, models are created to represent: Function: Enabling users to view account balances, transfer funds, and pay bills. Data: Managing customer data, transaction history, and balance information. Behavior: Ensuring that the app responds appropriately to user actions, such as sending confirmation messages after a successful transfer.
  • 235. 6. 6. 6. 6. 6. Representation of Information, Function, and Representation of Information, Function, and Representation of Information, Function, and Representation of Information, Function, and Representation of Information, Function, and Behavior for Design Behavior for Design Behavior for Design Behavior for Design Behavior for Design The requirements analysis results in detailed representations of how the app will handle information (e.g., storing and retrieving transaction data), perform functions (e.g., processing payments), and behave (e.g., responding to failed login attempts). These representations are then passed on to the software designers to create the architectural and component-level designs, ensuring that the app is built according to the requirements. 7. 7. 7. 7. 7. Assessing Quality Based on Requirements Assessing Quality Based on Requirements Assessing Quality Based on Requirements Assessing Quality Based on Requirements Assessing Quality Based on Requirements Specification Specification Specification Specification Specification Once the app is built, the requirements specification serves as a reference to assess its quality. For example, if the specification states that the app should process transactions within 3 seconds, the built software is tested to verify that it meets this performance requirement. This ensures that the app functions as expected and satisfies the user's needs. 8. 8. 8. 8. 8. Five Areas of Effort in Requirements Analysis Five Areas of Effort in Requirements Analysis Five Areas of Effort in Requirements Analysis Five Areas of Effort in Requirements Analysis Five Areas of Effort in Requirements Analysis Data Domain: A model showing how user information, account details, and transactions are stored and managed within the app. Functional Domain: A flowchart outlining the steps users take to perform tasks like transferring money or checking their balance. Behavioral Domain: A state diagram illustrating how the app behaves in response to different user interactions, such as showing error messages when login attempts fail. Problem Recognition: The analyst identifies the key problem the mobile banking app needs to solve, such as providing secure and convenient banking access to users. Evaluation and Synthesis: The analyst evaluates possible solutions, such as different security measures (e.g., multi-factor authentication) and synthesizes them into a coherent approach to address the identified problem. Modeling: The analyst creates models to represent how users interact with the app, how data is processed, and how different components of the app communicate with each other. Specification: The analyst writes detailed specifications for each requirement, such as the encryption standards to be used for securing
  • 236. 9. 9. 9. 9. 9. System Specification and Software Project Plan System Specification and Software Project Plan System Specification and Software Project Plan System Specification and Software Project Plan System Specification and Software Project Plan Before starting requirements analysis, the analyst studies the system specification, which might detail high-level objectives like support mobile transactions and ensure data privacy. The software project plan outlines the scope, timeline, and resources for developing the mobile banking app. Understanding these documents is crucial for the analyst to ensure that the app is designed to meet system-level goals within the project's constraints. 10. 10. 10. 10. 10. Communication for Analysis and Problem Communication for Analysis and Problem Communication for Analysis and Problem Communication for Analysis and Problem Communication for Analysis and Problem Recognition Recognition Recognition Recognition Recognition Effective communication with stakeholders is critical for recognizing the core problem the app is meant to solve. For instance, through discussions with the bank's management, the analyst might discover that the primary concern is ensuring that customers can access their accounts quickly and securely from anywhere. This problem recognition helps guide the rest of the requirements analysis process. 11. 11. 11. 11. 11. Problem Evaluation and Solution Synthesis Problem Evaluation and Solution Synthesis Problem Evaluation and Solution Synthesis Problem Evaluation and Solution Synthesis Problem Evaluation and Solution Synthesis The analyst evaluates different solutions to address the identified problem. For instance, for securing transactions, the analyst might consider encryption techniques, tokenization, or biometric verification. After evaluating the pros and cons of each, the analyst synthesizes the best approach into the final requirements. These examples provide a practical and structured understanding of requirements analysis, fitting into the larger context of the lecture on software development fundamentals. transactions or the specific error messages that should be displayed when a user enters incorrect login details. Review: The analyst reviews the requirements with the customer and development team to ensure that they are complete, accurate, and align with the overall system goals. Any discrepancies or ambiguities are resolved during this review phase.
  • 237. rs. ƒ Problem evaluation Problem evaluation and solution synthesis is the next major area of effort for analysis. The analyst must define all externally observable data objects, evaluate the flow and content of information, define and elaborate all software functions, understand software behavior in the context of events that affect the system, establish system interface characteristics, and uncover additional design constraints. Each of these tasks serves to describe the problem so that an overall approach or solution may be synthesized. For example, an inventory control system is required for a major supplier of auto parts. The analyst finds that problems with the current manual system include: (1) Inability to obtain the status of a component rapidly (2) Two or three-day turnaround to update a card file (3) Multiple reorders to the same vendor because there is no way to associate vendors with components, and so forth. Once problems have been identified, the analyst determines what information is to be produced by the new system and what data will be provided to the system. For instance, is the customer desires a daily
  • 238. report that indicates what parts have been taken from inventory and how many similar parts remain. The customer indicates that inventory clerks will log the identification number of each part as it leaves the inventory area. ƒ Solution synthesis Upon evaluating current problems and desired information (input and output), the analyst begins to synthesize one or more solutions. To begin, the data objects processing functions and behavior of the system are defined in detail. Once this information has been established, basic architectures for implementation are considered. A client/server approach would seem to be appropriate, but does the software to support this architecture fall within the scope outlined in the Software Plan? A database management system would seem to be required, but is user/customer's need for associativity justified? The process of evaluation and synthesis continues until both analyst and Software Project Management (CS615) 95 © Copyright Virtual University of Pakistan customer feel confident that software can be adequately specified for subsequent development steps. Throughout evaluation and solution synthesis, the
  • 239. analyst's primary focus is on what, not how. What data does the system produce and consume what functions the system must perform. What behaviors do the system exhibit, what interfaces, are defined and what constraints apply? During the evaluation and solution synthesis activity, the analyst creates models of the system in an effort to better understand data and control flow, functional processing, operational behavior, and information content. The model serves as a foundation for software design and as the basis for the creation of specifications for the Software. The customer may be unsure of precisely what is required. The developer may be unsure that a specific approach will properly accomplish function and performance. For these, and many other reasons, an alternative approach to requirements analysis, called Prototyping, may be conducted. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 240. Here are simple, beginner-level examples related to the concepts provided in the prompt, maintaining coherence for lecture delivery: 1. 1. 1. 1. 1. Problem Evaluation Problem Evaluation Problem Evaluation Problem Evaluation Problem Evaluation Problem evaluation involves identifying and understanding issues within the current system that need to be resolved. For example, in an inventory control system for an auto parts supplier, the analyst may discover the following problems: By evaluating these problems, the analyst can clearly define what needs to be fixed in the new system. 2. 2. 2. 2. 2. Solution Synthesis Solution Synthesis Solution Synthesis Solution Synthesis Solution Synthesis Solution synthesis involves creating solutions to address the problems identified during the evaluation. Once the problems are understood, the analyst can begin designing the new system. For example: Inability to Obtain Component Status Quickly: The current system may not allow users to quickly find out how many parts are available in the inventory. Slow Update Times: Updating records might take several days, causing delays in reordering parts. Multiple Reorders to the Same Vendor: The system may lack the ability to associate specific vendors with components, leading to redundant orders to the same vendor. Data Objects and Processing Functions: The new inventory control system could include data objects like Parts and Vendors. The system would perform functions such as checking part availability, placing orders, and tracking shipments. Behavior of the System: The system might be designed to automatically update inventory records whenever parts are taken from or added to the inventory. This ensures that data remains accurate in real time.
  • 241. 3. 3. 3. 3. 3. Evaluation and Solution Synthesis Process Evaluation and Solution Synthesis Process Evaluation and Solution Synthesis Process Evaluation and Solution Synthesis Process Evaluation and Solution Synthesis Process During this process, the analyst continually assesses whether the proposed solutions meet the customer’s needs and fit within the project scope. For example: 4. 4. 4. 4. 4. Focus on What Instead of How Focus on What Instead of How Focus on What Instead of How Focus on What Instead of How Focus on What Instead of How During evaluation and synthesis, the analyst focuses on understanding what the system needs to do, not how it will be built. For example: The details of how these functions will be implemented, such as programming languages or specific technologies, will be handled during the design phase. 5. 5. 5. 5. 5. Modeling the System Modeling the System Modeling the System Modeling the System Modeling the System During this phase, the analyst creates models to represent different aspects of the system: Architectural Considerations: The analyst might decide that a client/server architecture is appropriate, where the inventory system is accessed via client applications that communicate with a central server. This architecture supports centralized data management. Database Management: The analyst might determine that a database management system (DBMS) is necessary to handle the large amount of data related to parts, vendors, and transactions. However, the analyst must evaluate whether the added complexity of using a DBMS is justified based on the customer’s requirements. Scope Consideration: The analyst will check if the proposed solutions are feasible given the time, budget, and resource constraints outlined in the Software Project Plan. What Data is Produced and Consumed: The system must produce reports showing the quantity of each part in stock and consume data entered by inventory clerks. What Functions the System Performs: The system needs to allow inventory clerks to log part information, check stock levels, and generate reordering reports. What Behaviors the System Exhibits: The system should automatically update stock levels and trigger alerts when inventory is low. Data Flow Model: A diagram might be created to show how data moves through the system, such as from inventory entry to stock reports.
  • 242. From ChatGPT, designed with FancyGPT These models help the analyst and the development team understand the system’s requirements in detail, serving as the foundation for design. 6. 6. 6. 6. 6. Prototyping as an Alternative Approach Prototyping as an Alternative Approach Prototyping as an Alternative Approach Prototyping as an Alternative Approach Prototyping as an Alternative Approach Sometimes, the customer may not be entirely sure what they need, or the development team might be uncertain if a particular approach will work. In such cases, prototyping can be used as an alternative method. For example: Prototyping can be especially useful in complex systems where detailed requirements may be difficult to define upfront. These examples offer a clear and structured understanding of problem evaluation, solution synthesis, and related processes within the context of requirements analysis, ensuring coherence in the lecture content. Functional Processing Model: This could outline the specific functions the system performs, like updating stock levels and generating reorder alerts. Operational Behavior Model: A state diagram might be used to represent the system’s behavior in response to user actions, such as what happens when a part is logged out of the inventory. The analyst might create a simple, working model of the inventory control system that allows the customer to see how it will function. This prototype helps both the customer and the developer clarify requirements and refine the final solution.
  • 243. cs611 lecture 14 cs611 lecture 14 cs611 lecture 14 cs611 lecture 14 cs611 lecture 14 LECTURE # 14 2. Software Development Fundamentals Technical Fundamentals 2.11 Requirements Management ⇒Requirements Analysis • Evaluation and Synthesis Upon evaluating current problems and desired information (input and output), the analyst begins to synthesize one or more solutions. To begin, the data objects processing functions and behavior of the system are defined in detail. Once this information has been established, basic architectures for implementation are considered. A client/server approach would seem to be appropriate, but does the software to support this architecture fall within the scope outlined in the Software Plan? A database management system would seem to be required, but is user/customer's need for associativity justified? The process of evaluation and synthesis continues until both analyst and customer feel
  • 244. confident that software can be adequately specified for subsequent development steps. Throughout evaluation and solution synthesis, the analyst's primary focus is on what, not how. What data does the system produce and consume what functions the system must perform. What behaviors do the system exhibit, what interfaces, are defined and what constraints apply? • Models During the evaluation and solution synthesis activity, the analyst creates models of the system in an effort to better understand data and control flow, functional processing, operational behavior, and information content. The model serves as a foundation for software design and as the basis for the creation of specifications for the Software. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 245. are. • Specification Software Project Management (CS615) 97 © Copyright Virtual University of Pakistan During the evaluation and solution synthesis activity, the analyst creates models of the system in an effort to better understand data and control flow, functional processing, operational behavior, and information content. The model serves as a foundation for software design and as the basis for the creation of specifications for the Software. The customer may be unsure of precisely what is required. The developer may be unsure that a specific approach will properly accomplish function and performance. For these, and many other reasons, an alternative approach to requirements analysis, called Prototyping, may be conducted. • Concerns for Review The customer may be unsure of precisely what is
  • 246. required. The developer may be unsure that a specific approach will properly accomplish function and performance. For these, and many other reasons, an alternative approach to requirements analysis, called Prototyping, may be conducted. For example, an inventory control system is required for a major supplier of auto parts. The analyst finds that problems with the current manual system include: (1) Inability to obtain the status of a component rapidly, (2) Two- or three-day turn- around to update a card file, (3) Multiple reorders to the same vendor because there is no way to associate vendors with components, and so forth. Once problems have been identified, the analyst determines what information is to be produced by the new system and what data will be provided to the system. For instance, customer desires a daily report that indicates what parts have been taken from inventory and how many similar parts remain. The customer indicates that inventory clerks will log the identification number of each part as it leaves the inventory area.
  • 247. Upon evaluating current problems and desired information (input and output), the analyst begins to synthesize one or more solutions. To begin, the data objects, processing functions, and behavior of the system are defined in detail. Once this information has been established, basic architectures for implementation are considered. A client/server approach would seem to be appropriate, but does the software to support this architecture fall within the scope outlined in the Software Plan? A database management system would seem to be required, but is the user/customer's need for Software Project Management (CS615) 98 © Copyright Virtual University of Pakistan associativity justified? The process of evaluation and synthesis continues until both analyst and customer feel confident that software can be adequately specified for subsequent development steps. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies.
  • 248. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. s. ⇒Requirements Elicitation for Software Before requirements can be analyzed, modeled, or specified they must be gathered through an elicitation process. A customer has a problem that may be amenable to a computer-based solution. A developer responds to the customer's request for help. Communication has begun. But, as we have already noted, the road from communication to understanding is often full of potholes. 1. Initiating the Process The most commonly used requirements elicitation technique is to conduct a meeting or interview. The first meeting between a software engineer (the analyst) and the customer can be likened to the awkwardness of a first date between two
  • 249. adolescents. Neither person knows what to say or ask; both are worried that what they do say will be misinterpreted; both are thinking about where it might lead (both likely have radically different expectations here); both want to get the thing over with, but at the same time, both want it to be a success. Yet, communication must be initiated. Gause and Weinberg [GAU89] suggest that the analyst start by asking context-free questions. That is, a set of questions that will lead to a basic understanding of the problem, the people who want a solution, the nature of the solution that is desired, and the effectiveness of the first encounter itself. The first set of contextfree, questions focuses on the customer, the overall goals, and the benefits. For example; the analyst might ask: – Who is behind the request for this work? – Who will use the solution? – What will be the economic benefit of a successful solution? – Is there another source for the solution that you need? These questions help to identify all stakeholders who will have interest in the software to be built. In addition, the questions identify the measurable benefit of a successful
  • 250. implementation and possible alternatives to custom software development. Software Project Management (CS615) 99 © Copyright Virtual University of Pakistan The next set of questions enables the analyst to gain a better understanding of the problem and the customer to voice his or her perceptions about a solution: – How would you characterize good output that would be generated by a successful solution? – What problem(s) will this solution address? – Can you show me (or describe) the environment in which the solution will be used? – Will special performance issues or constraints affect the way the solution is approached? The final set of questions focuses on the effectiveness of the meeting. Gause and Weinberg call these meta- questions and propose the following (abbreviated) list: – Are you the right person to answer these questions? Are your answers official? – Are my questions relevant to the problem that you have? – Am I asking too many questions? – Can anyone else provide additional information? – Should I be asking you anything else?
  • 251. These questions (and others) will help to break the ice and initiate the communication that is essential to successful analysis. But a question and answer meeting format is not an approach that has been overwhelmingly successful. In fact, the QA session should be used for the first encounter only and then replaced by a meeting format that combines elements of problem solving, negotiation, and specification. v (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Requirements Elicitation for Software Requirements Elicitation for Software Requirements Elicitation for Software Requirements Elicitation for Software Requirements Elicitation for Software Initiating the Process Initiating the Process Initiating the Process Initiating the Process Initiating the Process Before analyzing or specifying software requirements, the first step is to gather them through a process called elicitation. This involves understanding the customer's problem and determining if it can be solved using software. The key is effective communication between the software engineer (the analyst) and the customer. Conducting the First Meeting 1
  • 252. The first step in eliciting requirements usually involves a meeting or interview between the analyst and the customer. This can be a bit uncomfortable initially, as both parties might be unsure about what to say or ask. However, this communication is crucial for understanding the problem and starting the process. 2 Asking Context-Free Questions Examples of Context-Free Questions: These questions help identify everyone who has an interest in the project and establish the goals and benefits of the solution. 3 The analyst begins by asking context-free questions—questions that help establish a basic understanding of the problem, the stakeholders involved, and the desired solution. These questions are designed to be open-ended and non-technical, helping the analyst gather essential information without making assumptions. 4 Who is behind the request for this work? (Identifies the main stakeholders.) 5 Who will use the solution? (Determines the end users.) 6 What will be the economic benefit of a successful solution? (Assesses the value of the solution.) 7 Is there another source for the solution that you need? (Explores alternative options.) 8 Understanding the Problem and the Customer's Perspective Examples of Problem-Focused Questions: 9 The analyst then asks questions that help them understand the customer's problem and how they perceive a successful solution. 10 How would you characterize good output from a successful solution? (Clarifies the desired outcomes.) 11 What problem(s) will this solution address? (Identifies the specific issues to be solved.) 12 Can you describe the environment where the solution will be used? (Helps understand the context.) 13
  • 253. 2. Facilitated Application Specification Techniques Too often, customers and software engineers have an unconscious Overall, the goal of this initial meeting and the questions asked is to break the ice and start the essential communication process that will lead to successful requirements analysis. However, this question-and-answer format should be used only for the first meeting. Subsequent discussions should focus more on problem- solving, negotiation, and specifying the details of the project. These questions allow the customer to express their needs and expectations clearly, helping the analyst gain a deeper understanding of the project. Will special performance issues or constraints affect the solution? (Identifies any technical challenges or requirements.) 14 Evaluating the Effectiveness of the Meeting Examples of Meta-Questions: These questions help ensure that the initial communication is productive and that both the analyst and the customer are aligned in their understanding of the project. 15 At the end of the meeting, the analyst may ask meta-questions to assess how effective the communication has been and to identify any gaps in the information gathered. 16 Are you the right person to answer these questions? (Ensures that the right stakeholders are involved.) 17 Are my questions relevant to the problem you have? (Checks if the discussion is on track.) 18 Am I asking too many questions? (Ensures that the customer is comfortable with the process.) 19 Can anyone else provide additional information? (Identifies other potential sources of information.) 20 Should I be asking you anything else? (Ensures no important details are missed.) 21
  • 254. us and them mind-set. Rather than working as a team to identify and refine requirements, each constituency defines its own territory and communicates through a series of memos, formal position papers, documents, and question and answer sessions. History has shown that this approach doesn't work very well. Misunderstandings abound, important information is omitted, and a successful working relationship is never established. It is with these problems in mind that a number of independent investigators have developed a team-oriented approach to requirements gathering that is applied during early stages of Software Project Management (CS615) 100 © Copyright Virtual University of Pakistan analysis and specification. Called facilitated application specification techniques (FAST). This approach encourages the creation of a joint team of customers and developers who work together to: Identify the problem Propose elements of the solution Negotiate different approaches and specify a preliminary set of solution requirements. FAST has been used predominantly by the information
  • 255. systems community, but the technique offers potential for improved communication in applications of all kinds. Many different approaches to FAST have been proposed. Each makes use of a slightly different scenario, but all apply some variation on the following basic guidelines: – A meeting is conducted at a neutral site and attended by both software engineers and customers. – Rules for preparation and participation are established. – An agenda is suggested that is formal enough to cover all important points but informal enough to encourage the free flow of ideas. – A ‘facilitator’ (can be a; customer, a developer, or an outsider) controls the meeting. – A definition mechanism (can be work sheets, flip charts, or wall stickers or an electronic bulletin board, chat room or virtual forum) is used. The goal is to identify the problem, propose elements of the solution, negotiate different approaches, and specify a preliminary set of solution requirements in an atmosphere that is conducive to the accomplishment of the goal.
  • 256. To better understand the flow of events as they occur in a typical FAST meeting, we present a brief scenario that outlines the sequence of events that lead up to the meeting, occur during the meeting, and follow the meeting. Initial meetings between the developer and customer occur and basic questions and answers help to establish the scope of the problem and the overall perception of a solution. Out of these initial meetings, the developer and customer write a one- or twopage product request. A meeting place, time, and date for FAST are selected and a facilitator is chosen. Attendees from both the Software Project Management (CS615) 101 © Copyright Virtual University of Pakistan development and customer/user organizations are invited to attend. The product request is distributed to all attendees before the meeting date. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 257. Facilitated Application Specification Techniques (FAST) Facilitated Application Specification Techniques (FAST) Facilitated Application Specification Techniques (FAST) Facilitated Application Specification Techniques (FAST) Facilitated Application Specification Techniques (FAST) In software development, effective communication between customers and developers is crucial for gathering accurate requirements. However, traditional methods of communication, such as memos and formal documents, often lead to misunderstandings, missing information, and a lack of teamwork. To address these issues, Facilitated Application Specification Techniques (FAST) were developed as a more collaborative approach. Key Elements of FAST Key Elements of FAST Key Elements of FAST Key Elements of FAST Key Elements of FAST Joint Team Formation Example: Imagine a team that includes software developers, project managers, and representatives from a company that needs new software to manage their inventory. This team works together to understand the problem and figure out what the software needs to do. 1 In FAST, a team is formed that includes both customers (who need the software) and developers (who will build the software). This team works together from the early stages of the project to ensure that everyone is on the same page. 2 Neutral Meeting Place Example: The team might meet in a conference room at a third-party location, rather than at the customer’s office or the developer’s office, to ensure a neutral environment. 3 Meetings are held at a neutral location, where neither the customer nor the developer feels like they are in enemy territory. This helps to reduce tension and promote open communication. 4 Preparation and Participation Rules Example: The team agrees that everyone will read the product request document before the meeting and that all participants will have an equal 5 Before the meeting, rules are set for how everyone should prepare and participate. This ensures that the meeting runs smoothly and that everyone has a chance to contribute. 6
  • 258. Flow of a Typical FAST Meeting Flow of a Typical FAST Meeting Flow of a Typical FAST Meeting Flow of a Typical FAST Meeting Flow of a Typical FAST Meeting chance to speak. Facilitator Example: The team might choose an experienced project manager as the facilitator to keep the meeting on track and make sure that all important points are covered. 7 A facilitator is chosen to guide the meeting. This person can be a customer, a developer, or even an outside party. The facilitator’s job is to keep the discussion focused and ensure that everyone’s ideas are heard. 8 Definition Mechanism Example: During the meeting, the facilitator might use a flip chart to list all the requirements that the team agrees upon, so everyone can see them in real-time. 9 A definition mechanism, such as flip charts, wall stickers, or virtual tools, is used to capture ideas and decisions during the meeting. This helps the team visually organize their thoughts and ensures that nothing is overlooked. 10 Pre-Meeting Activities Example: Before the FAST meeting, the developer and customer discuss the need for a new inventory management system and draft a product request that summarizes what the software should achieve. 1 Initial meetings are held between developers and customers to establish the scope of the problem. From these meetings, a brief product request document is created, outlining the basic requirements and goals of the project. This document is shared with all participants before the FAST meeting. 2 During the FAST Meeting Example: During the meeting, the team might discuss different ways to track inventory levels and negotiate whether the system should include features 3 At the FAST meeting, the team discusses the problem, proposes solutions, negotiates different approaches, and specifies a preliminary set of requirements. The facilitator ensures that the meeting stays productive and that all viewpoints are considered. 4
  • 259. 3. Quality Function Deployment A quality management technique that translates needs of customers into technical requirements of software. i. Normal Requirement: meeting objectives goals stated for a product or system during meeting i. Expected Requirement: Implicit to products / system and may be so fundamental that customer does not explicitly state them i. Exciting Requirement: Features beyond customer’s expectation and prove to be very satisfying when present 4. Use Cases As requirements are gathered as part of: • Informal meeting By following the FAST approach, the development team and the customer can work together more effectively, leading to a better understanding of the project’s goals and requirements. This collaborative method helps prevent misunderstandings and ensures that everyone involved has a clear and shared vision of the software to be developed. like automated reordering. Post-Meeting Activities Example: Following the FAST meeting, the developer might create a more detailed specification document based on the agreed-upon requirements, which will guide the development process. 5 After the meeting, the team reviews the outcomes and begins the process of refining the requirements and planning the next steps of the project. 6
  • 260. • FAST or QFD SW Engineer can create a set of scenario that identify a thread of usage for system to be constructed; providing a description of how system will be used. 5. Analysis Principles A variety of modeling notations are developed by investigators. Each analysis method has a unique point of view. However all analysis methods are related by a set of operational principles like: – The information domain of a problem must be represented and understood. – The functions that the software is to perform must be defined. – The behavior of the software (as a sequence of external events) must be represented. – The models that depict information function and behavior must be partitioned in a manner that uncovers details in a layered (or hierarchical) fashion. Software Project Management (CS615) 102 © Copyright Virtual University of Pakistan – The analysis process should move from essential information toward implementation detail. 6. Software Prototyping Analysis should be conducted regardless of the SW
  • 261. From ChatGPT, designed with FancyGPT engineering paradigm. (Various approaches apply) In some cases it is possible to apply operational analysis principles and derive a model of SW from which a design can be developed. In other situation Requirement Elicitation (FAST, QFD etc) is conducted and a model is built, called Prototype. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 262. cs611 lecture 15 cs611 lecture 15 cs611 lecture 15 cs611 lecture 15 cs611 lecture 15 LECTURE # 15 2. Software Development Fundamentals Technical Fundamentals 2.11 Requirements Management ⇒The Software Requirements Specification The Software Requirements Specification is produced at the culmination of the analysis task, The function and performance allocated to software as part of system engineering are refined by establishing a complete information description, a detailed functional description, a representation of system behavior, an indication of performance requirements and design constraints, appropriate validation criteria, and other: information pertinent to requirements. The National Bureau of Standards; IEEE (Standard No. 830-1984), and the U.S. Department of Defense have all proposed candidate formats for software requirements specifications (as well as other software engineering documentation). Mode of specification has a great impact on quality of solution. Forcing SWE to work with incomplete, inconsistence, or misleading specifications result in
  • 263. frustration and confusion affecting: – Quality – Timeliness and – Completeness of SW product • Principles i. Separate functionality from implementation. ii. Develop a model of desired behavior of a system that encompasses data and the functional response of a system to various stimuli from the environment. iii. Establish the context in which SW operates by specifying the manner in which other system components interact with software. iv. Define the environment in which system operates and indicate how a highly inter-wined collection of agents react to stimuli in the environment (changes to objects) produced by those agents. v. Create a cognitive model rather than a design or implementation model. Cognitive model describes a system as perceived by its user community. Software Project Management (CS615) 104 © Copyright Virtual University of Pakistan vi. Recognize that; “the specifications must be tolerant of incompleteness and augmentable.” vii. A specification is always a model –an abstraction- of some real (or envisioned) situation that is normally quite complex. Hence it will be incomplete and will exit at many levels of detail. i. Establish the content and structure of a specification
  • 264. in a way that will enable it to be amenable to change. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. e. • Representation i. Representation format and content should be relevant to the problem. (A general outline of SRS can be developed). ii. Information contained within the specification should be nested. iii. It should reveal layers of information so that reader can move to the level of detail required. Paragraph diagram number scheme to indicate level. iv. Diagrams and other notational forms should be restricted in number and consistent in use. (Confusing or inconsistent notations, whether graphical
  • 265. or symbolic degrades understating and foster errors.) v. Representation should be revisable. vi. The content of specification will change. Ideally, CASE tools should be available to update all representations that are affected by each change. The function and performance allocated to software as part of system engineering are refined by establishing: 1. A complete information description, 2. A detailed functional description, 3. A representation of system behavior, 4. An indication of performance requirements and design constraints, 5. Appropriate validation criteria, and other: information pertinent to requirements. The Introduction of the software requirements specification states the goals and objectives of the software, describing it in the context of the computer-based system; actually, the Introduction may be nothing more than the software scope of the planning document. Software Project Management (CS615) 105 © Copyright Virtual University of Pakistan The Software Requirements Specification is produced at the culmination of the analysis task. The function and performance allocated to software as part of system engineering are refined by establishing: – A complete information description – A detailed functional description
  • 266. – A representation of system behavior – An indication of performance requirements and design constraints – Appropriate validation criteria and other information pertinent to requirements. The Information Description provides a detailed description of the problem that the software must solve. Information content, flow, and structure are documented. Hardware, software, and human interfaces are described (or external system elements: and internal software functions. A description of each function required to solve the problem is presented in the Functional Description. A processing narrative is provided for each function: – Design constraints are stated and justified – Performance characteristics are stated, and – One or more diagrams are included to graphically represent the overall structure of the software and interplay among software functions and other system elements The Behavioral Description section of the specification examines the operation of the software as a consequence of external events and internally generated control characteristics. Validation Criteria is probably the most important and, ironically, the most often, neglected section of the Software Requirements specification. – How do we recognize a successful implementation?
  • 267. – What classes of tests must be conducted to validate function, performance, and constraints? We neglect this section because completing it demands a thorough understanding of software requirements-something that we often do not have at this stage. Yet, specification of validation criteria acts as an implicit review of all other requirements. It is essential that time and attention be given to this section. Finally, the specification includes a Bibliography and Appendix. Software Project Management (CS615) 106 © Copyright Virtual University of Pakistan – The bibliography contains references to all documents that relate to the software. These include other software engineering documentation, technical references, vendor literature, and; standards. – The appendix contains information that supplements the specifications. Tabular data, detailed description of algorithms, charts, graphs and other material, are presented as appendixes. In many cases the Software Requirements Specification may be accompanied by an executable prototype (which in some cases may replace the specification), a paper prototype or a Preliminary User's Manual. The Preliminary Users Manual
  • 268. presents the software as a black box: That is, heavy emphasis is placed on user input and the resultant output. The manual can serve as a valuable tool for uncovering problems at the human/machine interface. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. ⇒Review A review of the Software Requirements Specification (and/or prototype) is conducted by both the software developer and the customer. Extreme care should be taken in conducting the review because the specification forms the foundation of the development phase. The review is first conducted at a macroscopic level; that is, reviewers attempt to ensure that the specification is complete, consistent,
  • 269. and accurate when the overall information, functional, and behavioral domains; are considered. However, to fully explore each of these domains, the review becomes more detailed, examining not only broad descriptions but the way in which requirements are worded. For example, when specifications contain vague terms (e.g., some, sometimes, often, usual ordinarily, most, or mostly), the reviewer should flag the statements for further clarification. Once the review is complete, the Software Requirements Specification is signedoff by both the customer and the developer. The specification becomes a contract for software development. Requests for changes in requirements after the specification is finalized will not be eliminated. But the customer should note that each after- the-fact change is an extension of software scope and therefore can increase cost, and/or protract the schedule. Even with the best review procedures in place, a number of common specification problems persist. The specification is difficult to test in any meaningful way, and therefore inconsistency or omissions may pass unnoticed. During the review, changes to the specification may be recommended. It can be extremely difficult to assess the global impact of a change; that is, how a change in one function affects
  • 270. requirements for other functions. Modem software engineering environments incorporate CASE tools that have been developed to help solve these problems. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Simple Beginner-Level Examples for Reviewing the Simple Beginner-Level Examples for Reviewing the Simple Beginner-Level Examples for Reviewing the Simple Beginner-Level Examples for Reviewing the Simple Beginner-Level Examples for Reviewing the Software Requirements Specification (SRS) Software Requirements Specification (SRS) Software Requirements Specification (SRS) Software Requirements Specification (SRS) Software Requirements Specification (SRS) Macroscopic Review During the initial review of the SRS, both the software developer and the customer should look at the document as a whole. For example, if the SRS describes an online bookstore, reviewers should check if it covers all major areas like user registration, book search, and checkout. The goal is to ensure that the specification is complete and that there are no missing sections or inconsistencies. 1 Detailed Review Once the broad overview is complete, reviewers dive into the details. For instance, if the SRS describes how users add books to their cart, the reviewers should look for vague wording like usually or most of the time and flag it for clarification. These unclear terms can lead to misunderstandings during development, so they need to be replaced with precise language. 2 Signed-Off Specification After the review, both the customer and the developer sign off on the SRS, indicating that they agree on what the software should do. For example, after reviewing the online bookstore’s SRS, both parties agree that the 3
  • 271. From ChatGPT, designed with FancyGPT These examples illustrate the importance of careful review of the SRS, highlighting how both broad and detailed checks help prevent issues later in the development process. specified search, cart, and checkout functionalities are correct and meet the project goals. This signed document acts as a formal agreement for the development phase. Requests for Changes If, after the SRS is signed, the customer wants to add a new feature, like a wish list for the online bookstore, this change request will be considered an extension of the project scope. The developer will explain that adding this feature may require more time and budget, as it wasn’t included in the original agreement. 4 Common Specification Problems Even with thorough reviews, some issues might go unnoticed. For instance, the SRS might specify that users should be able to remove items from their cart but not detail what happens if they try to remove an item when the cart is empty. This omission could cause problems during development, as the requirement is not fully clear. 5 Global Impact of Changes If a change is made to one part of the system, it might affect other areas. For example, adding a wish list feature to the online bookstore might impact how the user profile is managed, requiring updates to the login and account management features. Assessing this impact can be challenging, as changes can have ripple effects across the system. 6 CASE Tools for Managing Changes Modern software engineering environments use CASE tools to help manage these challenges. For instance, if the wish list feature is added, CASE tools can help automatically update all related diagrams and documentation in the SRS, ensuring consistency across the project. 7
  • 272. cs611 lecture 16 cs611 lecture 16 cs611 lecture 16 cs611 lecture 16 cs611 lecture 16 LECTURE # 16 2. Software Development Fundamentals Technical Fundamentals 2.12 Design ⇒Management Aspect – Major design styles • Object, structured, data-structured design – Foundational design concepts • Information hiding, abstraction, encapsulation, Inheritance, basic algorithms data structures, ... ⇒Attributes of SW Design Software design is actually a multi step process that focuses on four distinct attributes of a program: – Data structure, – Software architecture, – Interface representations, and procedural (algorithmic) detail. The design process translates requirements into a representation of the software that can be assessed for quality before coding begins. Like requirements, the design is documented and becomes part of the software configuration. Design is the technical kernel of software engineering. During design, progressive refinements of data structure, architecture, interfaces, and procedural detail of software components are developed, reviewed, and documented. Design results in representations of software that can be assessed for quality. A number of fundamental software design principles and concepts have been proposed over the past four decades. Design principles guide the software engineer as the design process proceeds. Design concepts provide basic criteria for design quality. Software Project Management (CS615) 108 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/12
  • 273. © Copyright Virtual University of Pakistan a. Code generation The design must be translated into a machine-readable form. The code generation step performs this task. If design is performed in a detailed manner, code generation can be accomplished mechanistically. b. Testing Once code has been generated, program testing begins. The testing process focuses on the logical internals of the software, ensuring that all statements have been tested and on the functional externals; that is, conducting tests to uncover errors and ensure that defined input will produce actual results that agree with required results. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Certainly! Here are simple beginner-level examples of the topics and concepts related to software development fundamentals, focusing on design and the software development process. Major Design Styles Major Design Styles Major Design Styles Major Design Styles Major Design Styles Foundational Design Concepts Foundational Design Concepts Foundational Design Concepts Foundational Design Concepts Foundational Design Concepts Object-Oriented Design: Imagine you are designing a simple drawing application. You create a class called Shape, and from it, you derive specific shapes like Circle, Square, and Triangle. Each of these shapes has common properties (like color) but also specific methods and attributes (like radius for circles or side length for squares). 1 Structured Design: Consider a program that processes customer orders. You might break down the program into functions such as inputOrder(), processOrder(), and outputInvoice(). Each function performs a specific task, making the overall structure clear and easy to manage. 2 Data-Structured Design: Imagine an application that manages a library of books. You design the data around Book objects, each containing fields like title, author, and ISBN. The program revolves around these data structures, with operations to add, remove, or update books in the library. 3 Information Hiding: In a banking application, the balance of an account is hidden from direct access by other parts of the program. Other parts of the program must use methods like getBalance() or deposit(amount) to interact with the account balance. 1 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/12
  • 274. ⇒Key Features of Design A number of fundamental software design principles and concepts have been proposed over the past four decades. Design principles guide the software engineer as the design process proceeds. Design concepts provide basic criteria for design quality. Support Support Software will undoubtedly undergo change after it is delivered to the customer (a possible exception is embedded software). Change will occur Attributes of Software Design Attributes of Software Design Attributes of Software Design Attributes of Software Design Attributes of Software Design Code Generation and Testing Code Generation and Testing Code Generation and Testing Code Generation and Testing Code Generation and Testing Abstraction: For a vehicle simulation, you define an abstract class Vehicle with a method move(). Specific vehicles like Car and Bike implement the move() method differently, but the program can interact with them using the same interface. 2 Encapsulation: In a user management system, user data such as name and password are encapsulated within a User class. The data can only be accessed or modified through the class’s methods, like setPassword() or getName(). 3 Inheritance: In an employee management system, you have a base class Employee and derived classes like Manager and Developer. Both Manager and Developer inherit common attributes like name and ID from Employee but have their own specific attributes and methods. 4 Basic Algorithms Data Structures: A simple algorithm example is sorting a list of numbers. Basic data structures include arrays and linked lists, which you might use to store and manage collections of data. 5 Data Structure: Designing a system that manages student records, you use a hash table to efficiently store and retrieve student information based on student ID. 1 Software Architecture: You design a web application using the Model-View-Controller (MVC) architecture. This separates the data model, the user interface, and the control logic, making the application easier to develop and maintain. 2 Interface Representations: In a calculator application, you define an interface CalculatorInterface that includes methods like add(), subtract(), etc. Any class implementing this interface must provide these methods. 3 Procedural (Algorithmic) Detail: For a search feature in a text editor, you implement an algorithm to find a word in a large document efficiently. 4 Code Generation: After designing a login system, you convert the design into code. For instance, you create a User class in a programming language based on the design specifications. 1 Testing: Once the code for a calculator application is written, you test it by checking each operation (add, subtract, etc.) with different inputs to ensure they produce the correct results. This includes checking edge cases like dividing by zero. 2 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/12
  • 275. because errors have been encountered, because the software must be adapted to accommodate changes in its external environment (e.g. a change required because of a new operating system or peripheral device), or because the customer requires functional or performance enhancements. Software support/maintenance reapplies each of the preceding phases to an existing program rather than a new one. Modularity Modularity (in both program and data) and the concept of abstraction enable the designer to simplify and reuse software components. Refinement provides a mechanism for representing successive layers of functional detail. Program and data structure contribute to an overall view of software architecture, while procedure provides the detail necessary for algorithm implementation. Software Project Management (CS615) 109 © Copyright Virtual University of Pakistan Information hiding and functional independence provide heuristics for achieving effective modularity. We try to solve the problem by rushing through the design process so that enough time will be left at the end of the project to uncover errors that were made because we rushed through the design process. The moral is this: Don't rush through it! Design is worth the effort. ⇒Standard design approaches • Exception handling, • Localization • Portability • Reuse • Input/output • Memory management, • Performance (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/12
  • 276. coherent examples. Sure, here are simple beginner-level examples for the key features of software design and standard design approaches as outlined: Key Features of Design Key Features of Design Key Features of Design Key Features of Design Key Features of Design Standard Design Approaches Standard Design Approaches Standard Design Approaches Standard Design Approaches Standard Design Approaches Support: Consider a word processing application. After delivery, a user reports a bug where the text formatting is lost after saving the document. To support and maintain the software, the development team revisits the original design, identifies the issue in the code, and provides a fix. Additionally, if a new feature like real-time collaborative editing is requested, the design and code are updated to incorporate this enhancement. 1 Modularity: In a video game, the game logic, graphics rendering, and sound effects are separated into different modules. Each module can be developed and tested independently. If a bug is found in the sound module, it can be fixed without affecting the graphics or game logic modules. This separation of concerns also allows for reusing the sound module in another game. 2 Refinement: In designing a shopping cart system for an e-commerce site, you start with a high-level overview, such as adding items, removing items, and checking out. You then refine these functions into more detailed steps like handling different item categories, applying discounts, and calculating taxes. 3 Information Hiding and Functional Independence: In a banking application, the method to calculate the interest on a loan is hidden inside a class and is only accessible through a public method calculateInterest(). This prevents other parts of the program from directly accessing or modifying the interest calculation logic, ensuring that changes in the interest calculation don't impact other parts of the program. 4 Exception Handling: In a file-reading program, if the program tries to open a file that doesn’t exist, an exception is raised. The program catches this exception and displays a message to the user instead of crashing. 1 Localization: A social media app is designed to support multiple languages. The text strings for different languages are stored in separate files. When a user selects a language, the app loads the strings from the corresponding file, allowing users worldwide to interact with the app in their preferred language. 2 Portability: A simple calculator application is developed using a programming language that is supported across multiple operating systems, such as Python. This allows the application to run on Windows, macOS, and Linux without any modification to the code. 3 Reuse: In a web development project, a library for handling date and time calculations is used. This library is already tested and proven to work, saving the developers time and effort in writing and testing new code for date and time operations. 4 Input/Output: In a weather forecasting application, the user enters a city name (input), and the application retrieves and displays the current weather information for that city (output). 5 Memory Management: In a game, objects like bullets or enemies are created and destroyed frequently. The game uses efficient memory management techniques to ensure that these objects are created and disposed of properly, preventing memory leaks and ensuring smooth gameplay. 6 Performance: A database query in an e-commerce application is optimized to retrieve user order history quickly, ensuring that the user doesn't experience delays when checking their past orders. 7 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/12
  • 277. 2.13 Construction – Coding practices Naming, layout, documentation – Data-related concepts Scope, persistence, binding time – Data usage guidelines Bytes, arrays – Use of construction tools Programming environment, group work support (documents, code), code libraries generators 2.14 Software Configuration management Software configuration management (SCM) takes care of changes in a software process. SCM identifies controls, audits, and reports modifications that occur during software development. SCM helps maintain the integrity of configurable items produced during software development. SCM is an integral part of Software Quality Assurance (SQA). SCM involves assessing the impact of the changes made during SQA activities and making decisions based on cost and benefit analysis. SCM is used to establish and maintain integrity of software items and ensure that they can be traced easily. SCM helps define a library structure for storage and retrieval of software items. Software Project Management (CS615) 110 © Copyright Virtual University of Pakistan • To ensure that project stays consistent over time: You need to: a) Evaluate proposed changes b) Track the changes c) Control the Version d) Check integrity of Source code, documents, plans, design e) Ensure quality (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/12
  • 278. coherent examples. Here are beginner-level examples for the topics related to construction and software configuration management as outlined: Construction Construction Construction Construction Construction Software Configuration Management (SCM) Software Configuration Management (SCM) Software Configuration Management (SCM) Software Configuration Management (SCM) Software Configuration Management (SCM) Coding Practices: 1 Naming: In a student management system, use clear and descriptive names like studentName, studentID, and enrollmentDate for variables and functions. This makes the code easier to understand and maintain. 2 Layout: Maintain consistent indentation and spacing in the code to enhance readability. For example, indent each block of code within a function to clearly show its scope. 3 Documentation: Add comments in the code to explain complex logic or algorithms. For instance, before a function that calculates a student’s GPA, add a comment explaining how the calculation is performed. 4 Data-Related Concepts: 5 Scope: In a function that calculates the sum of two numbers, the variables holding the numbers are local to the function, meaning they cannot be accessed outside of it. 6 Persistence: In a game application, the player's score is stored in a database so that the score persists even after the game is closed and reopened. 7 Binding Time: In a web application, the color of the header is determined at runtime based on the user’s settings. This late binding allows for a more dynamic user experience. 8 Data Usage Guidelines: 9 Bytes: In a file upload system, you might limit the file size to 2 megabytes (2,048,000 bytes) to ensure quick uploads and downloads. 10 Arrays: In a calendar application, you use an array to store the names of the days of the week ([Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]) for quick access and manipulation. 11 Use of Construction Tools: 12 Programming Environment: Using an integrated development environment (IDE) like Visual Studio Code provides tools like syntax highlighting and code completion to make coding more efficient. 13 Group Work Support: Teams use version control systems like Git to manage code changes and collaborate effectively. They can share code libraries and use generators to quickly scaffold new projects. 14 Evaluate Proposed Changes: In a web development project, a team member proposes changing the database structure to optimize performance. The SCM process evaluates the impact of this change on the existing code and data. 1 Track the Changes: Every modification made to the codebase is recorded in a version control system. This allows the team to see who made what changes and when. 2 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/12
  • 279. ⇒Software Configuration Management Activities SCM is used to establish and maintain integrity of software items and ensure that they can be traced easily. Using SCM, you can define a library structure for storage and retrieval of software items. SCM needs to be performed at all phases in the SDLC of a software project. The various SCM activities are: 1. Identifying Objects 2. Controlling Versions 3. Controlling Changes 4. Auditing 5. Communicating Changes 1. Identifying Objects The first activity in SCM involves identifying software configurable items (SCIs). SCI is an aggregation of software that is designated for configuration management. It is treated as a single entity in the configuration management process. For example, design documents, program code, test case, and custom requirement document are configurable items. You can use the Item Traceability Matrix to identify SCIs at the end of each phase. A sample of Item Traceability Matrix is displayed in Table 1. In the table, you can see the different SCIs in different phases of the development process. Software Project Management (CS615) 111 © Copyright Virtual University of Pakistan Table 1: Item Traceability Matrix Control the Version: The SCM system maintains different versions of the software. For instance, the team can switch between the stable release version and the development version to test new features. 3 Check Integrity of Source Code, Documents, Plans, Design: Before releasing a new version of the software, the SCM process involves reviewing the source code, checking that all required documents are updated, and ensuring that the design plans are still valid. 4 Ensure Quality: The SCM team conducts audits and reviews to ensure that the software meets the required quality standards and that all changes are correctly implemented. 5 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/12
  • 280. Phase Deliverable Name Requirement Analysis Design Construction Testing Requirement Analysis Document Requirement Analysis Document Design Document Functional Specification Document and Program Specification Document Code Code A Code B Code C Test Document Unit Test Cases System Test Cases Database Design Document Database Design Specification To identify SCls, you need to first breakdown the project deliverable to the SCI level. Each phase in the project has its own deliverables. To trace the deliverables, you need to map the SCls to the phases in which they are delivered. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/12
  • 281. Here are beginner-level examples for the Software Configuration Management (SCM) activities outlined: Software Configuration Management Activities Software Configuration Management Activities Software Configuration Management Activities Software Configuration Management Activities Software Configuration Management Activities These examples illustrate how SCM activities are integral to managing and maintaining the integrity of software throughout its lifecycle. Identifying Objects: Sample Item Traceability Matrix: Phase Phase Phase Phase Deliverable Name Deliverable Name Deliverable Name Deliverable Name Requirement Analysis Requirement Analysis Requirement Analysis Requirement Analysis Requirement Analysis Document Requirement Analysis Document Requirement Analysis Document Requirement Analysis Document Design Design Design Design Design Document Design Document Design Document Design Document Construction Construction Construction Construction Code A, Code B, Code C Code A, Code B, Code C Code A, Code B, Code C Code A, Code B, Code C Testing Testing Testing Testing Unit Test Cases, System Test Cases Unit Test Cases, System Test Cases Unit Test Cases, System Test Cases Unit Test Cases, System Test Cases 1 In a web application project, the team identifies software configurable items (SCIs) such as the requirements document, design document, source code files, test cases, and user manuals. Each of these items is designated for configuration management and is treated as a single entity. 2 The team creates an Item Traceability Matrix to map each SCI to the specific phase of the software development lifecycle (SDLC) in which it is delivered. For example, the requirements document is associated with the Requirement Analysis phase, while the design document is linked to the Design phase. 3 Controlling Versions: 4 During development, multiple versions of the source code are created as new features are added and bugs are fixed. The team uses a version control system like Git to manage these versions, allowing them to revert to previous versions if necessary. 5 Each version of the software is tagged with a unique identifier, such as v1.0, v1.1, v2.0, etc., to distinguish between different stages of development and release. 6 Controlling Changes: 7 When a change request is submitted, such as adding a new feature or fixing a bug, it goes through a change control process. The impact of the change is assessed, and if approved, the changes are implemented and documented. 8 The team maintains a change log that records all approved changes, including the description of the change, the reason for the change, and the person responsible for implementing it. 9 Auditing: 10 Before releasing a new version of the software, the team conducts an audit to ensure that all changes have been implemented correctly and that the software meets the required standards. 11 The audit involves reviewing the source code, design documents, and test results to ensure that the software is complete and accurate. 12 Communicating Changes: 13 After a change has been implemented, the team communicates the change to all stakeholders, including developers, testers, and end-users. 14 This communication may include updates to user manuals, release notes, and internal documentation to ensure that everyone is aware of the changes and how they affect the software. 15 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/12
  • 282. 2. Controlling Versions Version control combines procedures and tools to manage different versions of configuration objects that are created during software product development. To control versions, you can use Version Control Register. In Version Control Register, you enter the details of components, such as component identification numbers, their versions, and dates of validity. It is advisable to release a baseline after a version is released. Baseline is a specification or a product that is formally reviewed and agreed upon. This serves as the basis for further development. Baseline can be changed only through formal change control procedures. A baseline consists of a set of SCIs that are logically related to each other. Baselines are established when subsequent changes to the SCIs need to be controlled. Version control is essential so that everybody uses only the latest version. Any kind of version mismatch might result in rework. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple beginner-level examples illustrating the concepts of controlling versions in software configuration management: Controlling Versions Controlling Versions Controlling Versions Controlling Versions Controlling Versions Version Control Register: 1 In a mobile app development project, the team maintains a Version Control Register. This register includes details such as the component name (e.g., UserInterfaceModule), identification number (UI001), version number (v1.2), and date of validity (e.g., August 10, 2024). This helps the team track different versions of each component throughout development. 2 Baseline: 3 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/12
  • 283. From ChatGPT, designed with FancyGPT These examples demonstrate how version control and baselines are critical for maintaining the integrity and consistency of software throughout its development lifecycle. After completing a major feature update for the application, the team releases a baseline version, such as v2.0. This baseline includes the final versions of all configuration items, such as the code, documentation, and test cases. The baseline is reviewed and approved by all stakeholders, and it serves as the foundation for any future updates or changes. 4 Change Control Procedures: 5 Suppose a new requirement comes in to add a dark mode feature to the application. To implement this, the team follows formal change control procedures. They first assess the impact of the change, get approval from the relevant stakeholders, and then integrate the new feature into the baseline. The updated version is then recorded in the Version Control Register as v2.1. 6 Preventing Version Mismatch: 7 By using version control tools like Git, the development team ensures that all members are working with the latest version of the codebase. This prevents issues where different team members might accidentally work on outdated code, which could lead to integration problems and rework. 8 Logical Grouping of SCIs: 9 In the context of a web application, a baseline might include all related SCIs for a specific functionality, such as user authentication. This could consist of the login module, the database schema for user data, and the API endpoints for authentication. By establishing a baseline for these items, the team can manage changes more effectively and ensure consistency across related components. 10 15/08/2024, 20:45 FancyGPT - cs611 lecture 16 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/12
  • 284. cs611 lecture 17 cs611 lecture 17 cs611 lecture 17 cs611 lecture 17 cs611 lecture 17 LECTURE # 17 2. Software Development Fundamentals Technical Fundamentals 2.14 Software Configuration management b. Controlling Versions Version control combines procedures and tools to manage different versions of configuration objects that are created during software product development. To control versions, you can use Version Control Register. In Version Control Register, you enter the details of components, such as component identification numbers, their versions, and dates of validity. It is advisable to release a baseline after a version is released. Baseline is a specification or a product that is formally reviewed and agreed upon. This serves as the basis for further development. Baseline can be changed only through formal change control procedures. A baseline consists of a set of SCIs that are logically related to each other. Baselines are established when subsequent changes to the SCIs need to be controlled. Version control is essential so that everybody uses only the latest version. Any kind of version mismatch might result in rework. c. Controlling Changes Uncontrolled change can lead to chaos. Change control combines human procedures and automated tools to provide a mechanism for controlling change. The purpose of change control is to monitor and control changes in order to baseline SCIs. There are various reasons that trigger changes. A problem report might call for a change. Similarly, suggestions or ideas from brainstorming sessions and feedback from clients can result in 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/19
  • 285. change. Modifications or addition to functionality and changes in environment can also cause changes. The Figure 1 explains the formal change control process using a flow chart. Software Project Management (CS615) 113 © Copyright Virtual University of Pakistan Figure 1: Formal Change Control Process A request for change triggers that change control procedure. Then request is logged in the change request register. Next, the change request number is recorded in the change request evaluation plan. The request is evaluated and analyzed to check if the change is valid. Change request is also evaluated in Start Change request is made Change request is logged Change request is evaluated Outcome is notified Is the Request Rejected? Change request is implemented Stop Yes Yes No No Is the Request Deferred? Software Project Management (CS615) 114 © Copyright Virtual University of Pakistan terms of the number of items affected and the effort involved in effecting the change. Finally, the possible outcome of the change request is communicated. The request for change is rejected, deferred, or approved. If the request for change is rejected, the requestor needs to log a fresh request. A deferred change request is evaluated at a later date while the change request that is approved is implemented. 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/19
  • 286. There are tools that provide facilities to check in and check out so that the same version of the object is not updated more than once. The check-in and checkout facilities provide synchronization control. Synchronization control helps to ensure that parallel changes performed by two different people do not overwrite one another. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple beginner-level examples illustrating the concepts of controlling changes in software configuration management, including the formal change control process: Controlling Changes Controlling Changes Controlling Changes Controlling Changes Controlling Changes Logging Change Requests: 1 In a software development team, when a developer or client identifies a need for change, such as a new feature request or a bug fix, they create a change request document. This document includes details such as the description of the change, the reason for the change, and the impact of the change on the existing system. 2 The change request is then logged in a change request register, which keeps a record of all change requests submitted. Each change request is assigned a unique identification number for tracking purposes. 3 Evaluating Change Requests: 4 Once a change request is logged, the team evaluates it to determine its validity. This involves analyzing the feasibility of the change, the resources required to implement it, and the potential impact on the project timeline and budget. 5 The evaluation also considers the number of configuration items (SCIs) affected by the change and the effort involved in making the changes. 6 Notifying the Outcome: 7 After the evaluation, the team communicates the outcome of the change request to the requestor and other stakeholders. The change request can be either approved, rejected, or deferred. 8 If the change request is rejected, the requestor is informed of the reasons for rejection. They can revise and resubmit the request if necessary. If the request is deferred, it is scheduled for evaluation at a later date. If the request is approved, the change is implemented in the project. 9 Formal Change Control Process: 10 The formal change control process involves several steps, as depicted in the flowchart: 11 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/19
  • 287. d. Auditing Configuration audit is conducted formally by the SQA group in projects where SCM is a formal activity. The identification, version control, and change control tasks help the developer maintain order and decorum in an environment of change. However, the control mechanisms track a change only until an item is generated. FTRs and software configuration audits (SCA) are conducted to ensure that change is properly implemented. FTR verifies the technical correctness of the SCI that is subjected to change. SCA assesses those characteristics of an SCI that are not considered during FTRs. Audit verifies whether the changes specified in the request for change are made and additional modifications, if any, are also noted. Audits ensure that FTRs are These examples illustrate how change control procedures help manage and implement changes in software projects systematically and effectively. Change request is made: A developer, tester, or client identifies a need for a change and initiates a request. 12 Change request is logged: The request is documented in the change request register. 13 Change request is evaluated: The team reviews the request to assess its validity and feasibility. 14 Outcome is notified: The requestor is informed of the evaluation results— whether the request is approved, rejected, or deferred. 15 Is the request rejected?: If yes, the process stops, and the requestor may submit a new request. 16 Is the request deferred?: If yes, the request is put on hold and revisited later. If no, the change request is implemented. 17 Change request is implemented: The approved changes are made to the software, updating the affected SCIs. 18 Synchronization Control: 19 The team uses tools with check-in and check-out features to manage changes to the codebase. These features ensure that when a developer is working on a specific part of the code, it is locked to prevent other developers from making conflicting changes simultaneously. 20 This synchronization control helps maintain the integrity of the codebase and avoids issues where parallel changes by different team members could potentially overwrite each other's work. 21 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/19
  • 288. conducted to check for technical correctness. Audits verify that changes made are highlighted in the SCI. The change date and change author are specified and the attributes of SCI reflect the change. The SCM procedures for noting, recording, and reporting change are also followed. Audits also ensure that related SCIs are updated. e. Communicating Changes Another task of SCM is communicating changes. This task ensures communication between different members in the project. It notes the activities performed, the time when they are performed, those involved in the activities, and those affected by the activities. In short, the task is all about status reporting. In a large project, there is a possibility of miscommunication among various people involved in the project. This is usually done using configuration status report shown in Table 11.7. The table contains the name of the SCI, the latest released version, the date of release, brief description of changes performed, and associated change request. Further details of the changes can be obtained from the associated change request. There can be instances where two developers may be trying to modify the same software configurable item with different and conflicting intentions. Absence of status reporting could result in incorrect decisions being taken or important decisions Software Project Management (CS615) 115 © Copyright Virtual University of Pakistan not being communicated. At times, those who should be pointing out the serious side effects caused by a change are not aware of the implementation of the change. There are also instances of version mismatch when teams are unaware of the latest version to be followed. To avoid such hazards due to lack of communication among the project team, changes are communicated 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/19
  • 289. among team members. Therefore, status reporting provides information about each change to those who need to know. Software configuration management takes care of changes in a software process. SCM identifies controls, audits, and reports modifications that occur during software development. SCM helps maintain the integrity of configurable items produced during software development. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are beginner-level examples for auditing and communicating changes in software configuration management: Auditing Auditing Auditing Auditing Auditing Configuration Audit by SQA Group: 1 In a software project where Software Configuration Management (SCM) is formalized, the Software Quality Assurance (SQA) team conducts configuration audits. The purpose is to verify that all changes made to a Software Configurable Item (SCI) are implemented correctly and that no additional, unauthorized modifications have been made. 2 For example, if a change request specified updating a feature to improve its performance, the audit will check whether the feature's code was modified as described in the change request. The audit will also confirm that the new version is correctly documented and that any related documents or SCIs are also updated. 3 Technical Review (FTR): 4 Formal Technical Reviews (FTRs) are conducted to verify the technical accuracy of the SCIs before changes are implemented. The FTRs involve a group of peers who review the proposed changes to ensure they are logical and error-free. 5 For example, if a new module is being added to the software, an FTR would involve reviewing the design documents and code to ensure the module integrates seamlessly with existing components and adheres to the project's coding standards. 6 Verifying Change Implementation: 7 During the audit, the SQA team checks whether the changes made are documented properly, including the change date and the author of the change. The audit ensures that the attributes of the SCI reflect the changes accurately. 8 For instance, after a bug fix is implemented, the audit will check that the bug is indeed resolved in the latest version, and the documentation is updated to reflect the change, noting who made the change and when it was done. 9 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/19
  • 290. 2.14 Software Configuration management Software configuration management (SCM) takes care of changes in a software process. SCM identifies controls, audits, and reports modifications that occur during software development. SCM helps maintain the integrity of configurable items produced during software development. SCM is an integral part of Software Quality Assurance (SQA). SCM involves assessing the impact of the changes made during SQA activities and making decisions based on cost and benefit analysis. SCM is used to establish and maintain integrity of software items and ensure that they can be traced easily. SCM helps define a library structure Communicating Changes Communicating Changes Communicating Changes Communicating Changes Communicating Changes These examples highlight the importance of auditing and communication in maintaining the integrity and consistency of software throughout its development lifecycle. Configuration Status Reporting: 1 SCM includes a status reporting mechanism to keep all team members informed about the changes made to the software. This report includes the name of the SCI, the latest version released, the release date, a brief description of the changes, and the associated change request. 2 For example, after a feature enhancement is released, the status report would include details about the enhancement, its version number, and the change request ID. This report is shared with all relevant team members to ensure everyone is aware of the changes. 3 Preventing Miscommunication: 4 Effective communication of changes helps prevent conflicts, such as two developers unknowingly working on the same SCI with different objectives. The status report provides clarity on the latest versions and modifications, avoiding confusion and potential errors. 5 For instance, if two developers are working on different enhancements in the same module, the status report will help them understand the current state of the module, preventing conflicts or overwrites. 6 Notifying Affected Parties: 7 When a significant change is implemented, it’s crucial to inform all stakeholders who might be affected by the change. This includes developers, testers, and possibly even end-users. 8 For example, if a security patch is applied to the software, all team members, especially those responsible for security and testing, are notified about the patch's details, ensuring that the change is thoroughly tested and documented. 9 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/19
  • 291. for storage and retrieval of software items. Software Project Management (CS615) 110 © Copyright Virtual University of Pakistan • To ensure that project stays consistent over time: You need to: a) Evaluate proposed changes b) Track the changes c) Control the Version d) Check integrity of Source code, documents, plans, design e) Ensure quality ⇒Software Configuration Management Activities SCM is used to establish and maintain integrity of software items and ensure that they can be traced easily. Using SCM, you can define a library structure for storage and retrieval of software items. SCM needs to be performed at all phases in the SDLC of a software project. The various SCM activities are: 1. Identifying Objects 2. Controlling Versions 3. Controlling Changes 4. Auditing 5. Communicating Changes 1. Identifying Objects The first activity in SCM involves identifying software configurable items (SCIs). SCI is an aggregation of software that is designated for configuration management. It is treated as a single entity in the configuration management process. For example, design documents, program code, test case, and custom requirement document are configurable items. You can use the Item Traceability Matrix to identify SCIs at the end of each phase. A sample of Item Traceability Matrix is displayed in Table 1. In the table, you can see the different SCIs in different phases of the development process. Software Project Management (CS615) 111 © Copyright Virtual University of Pakistan Table 1: Item Traceability Matrix Phase Deliverable 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/19
  • 292. Name Requirement Analysis Design Construction Testing Requirement Analysis Document Requirement Analysis Document Design Document Functional Specification Document and Program Specification Document Code Code A Code B Code C Test Document Unit Test Cases System Test Cases Database Design Document Database Design Specification To identify SCls, you need to first breakdown the project deliverable to the SCI level. Each phase in the project has its own deliverables. To trace the deliverables, you need to map the SCls to the phases in which they are delivered. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are beginner-level examples illustrating the activities of Software Configuration Management (SCM) as described: 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/19
  • 293. Identifying Objects Identifying Objects Identifying Objects Identifying Objects Identifying Objects Controlling Versions Controlling Versions Controlling Versions Controlling Versions Controlling Versions Controlling Changes Controlling Changes Controlling Changes Controlling Changes Controlling Changes Auditing Auditing Auditing Auditing Auditing Identifying Software Configurable Items (SCIs): 1 SCIs are individual components of the software that need to be managed. These could include design documents, program code, test cases, and custom requirement documents. Each of these items is considered a single entity within the configuration management process. 2 For example, during the requirements analysis phase of a project, the requirement analysis document is identified as an SCI. Similarly, during the design phase, the design document is treated as an SCI. This ensures that each item is managed consistently across the project. 3 Using Item Traceability Matrix: 4 The Item Traceability Matrix helps in identifying and tracking SCIs throughout the different phases of the Software Development Life Cycle (SDLC). It provides a structured way to map SCIs to their respective phases. 5 For instance, at the end of the design phase, the matrix will list the design document as an SCI. During the construction phase, various codes (e.g., Code A, Code B, and Code C) are listed as SCIs. This matrix ensures that all SCIs are accounted for and can be traced back to their origin. 6 Version Control: 1 Version control is essential for managing different versions of SCIs. It involves using tools and procedures to track changes made to these items over time. Each change is documented, and a new version is created. 2 For example, when a developer modifies the code to fix a bug, a new version of the code is created and documented in the version control system. This ensures that any previous version can be retrieved if needed, and the history of changes is maintained. 3 Baseline Establishment: 4 After a version is finalized and reviewed, it is set as a baseline. This baseline serves as a reference point for future development and changes. Changes to the baseline can only be made through a formal process. 5 For instance, once a functional specification document is approved and baselined, any further changes to the document must go through a change control process to ensure consistency and traceability. 6 Change Control: 1 Change control involves monitoring and managing changes to SCIs. It ensures that changes are evaluated for their impact and are implemented in a controlled manner. 2 For example, if a client requests a new feature, a change request is logged and evaluated. The change is then planned and implemented only after its impact on the existing system is fully assessed. 3 Configuration Audits: 1 Configuration audits are conducted to verify that the changes made to SCIs are implemented correctly and that all related documentation is updated. 2 For example, after a new module is added to the software, an audit is conducted to ensure that the module integrates correctly with the existing system and that all associated documents reflect the change. 3 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/19
  • 294. 2. Controlling Versions Version control combines procedures and tools to manage different versions of configuration objects that are created during software product development. To control versions, you can use Version Control Register. In Version Control Register, you enter the details of components, such as component identification numbers, their versions, and dates of validity. It is advisable to release a baseline after a version is released. Baseline is a specification or a product that is formally reviewed and agreed upon. This serves as the basis for further development. Baseline can be changed only through formal change control procedures. A baseline consists of a set of SCIs that are logically related to each other. Baselines are established when subsequent changes to the SCIs need to be controlled. Version control is essential so that everybody uses only the latest version. Any kind of version mismatch might result in rework. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Communicating Changes Communicating Changes Communicating Changes Communicating Changes Communicating Changes These examples provide a straightforward understanding of SCM activities and their importance in maintaining the integrity and consistency of software throughout its development lifecycle. Status Reporting: 1 Status reporting is used to communicate changes to all stakeholders. It includes details about the SCI, the latest version, the changes made, and the rationale behind the changes. 2 For instance, after a major update to the software, a status report is generated and shared with the development team, project managers, and clients. This report includes the version number, a summary of changes, and the impact of the changes on the overall system. 3 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/19
  • 295. ⇒Software Configuration Management Vs Software Maintenance SCM is an integral part of SQA. SCM involves assessing the impact of the changes made during SQA activities and making decisions based on cost and benefit analysis. SCM can be defined as the art of identifying, organizing, and Controlling Versions Controlling Versions Controlling Versions Controlling Versions Controlling Versions These examples highlight the importance of version control in maintaining the integrity and consistency of software components throughout the development process. Version Control Register: 1 A Version Control Register is used to document details about each version of a software component. This includes the component identification number, version number, and the date when it was valid or released. 2 Example: For a particular module in a software application, the register will have entries like: 3 Component ID: Module_X_123 4 Version: 1.0 5 Release Date: 01-Jan-2024 6 Releasing a Baseline: 7 Once a version of a software component is reviewed and approved, it is established as a baseline. This means that it is the official version to be used for all future development until further changes are approved. 8 Example: After finalizing the functional specifications for a feature, the document is set as a baseline. Any new changes to the feature must go through the formal change control process before they are implemented. 9 Change Control Procedures: 10 Changes to the baseline can only be made through a formal process. This ensures that all stakeholders are aware of the changes and agree on their implementation. 11 Example: If a bug is found in the baseline version of a software module, a change request is submitted. The request is reviewed and, if approved, the changes are made. The new version is then added to the version control register. 12 Avoiding Version Mismatch: 13 Proper version control ensures that all team members work with the latest version of the software components. This prevents conflicts and reduces the need for rework. 14 Example: If a developer accidentally uses an outdated version of a code library, it might cause errors in the application. By using the version control system, the developer can quickly identify the latest version and update their code accordingly. 15 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/19
  • 296. controlling changes in a software project with the objective of minimizing mistakes. SCM is different from software maintenance. Software maintenance is required after the software is delivered to the client and is put into operation. As opposed to this, SCM is a set of tracking and controlling activities that begins when a software project begins and ends only when the software is taken out of operation. ⇒Baselines vs. Interim Versions SCM differentiates between baselines and interim versions. A baseline is a tested and certified version of a system. Baselines can be assigned version numbers such as 1.0, 2.0, 3.0, and so on. A baseline usually undergoes intensive testing. Interim versions, on the other hand, have version numbers, such as 1.1 or 1.2. The interim version is a temporary version. Interim versions have a short life and survive only during bug fixing, testing, or debugging. However, interim versions also have a unique version number or name. Baselines are more visible with the marketing team and the vendors than the interim versions. However, as part of SCM, all versions of changes are saved, clearly labeled, and archived. Archiving is the process of maintaining controlled copies of prior versions. Archiving helps in recreating earlier versions in the event of data loss or data corruption. ⇒Effective Configuration Control Effective configuration control requires effective and well- defined organization. Any configuration control method must be based on the following four concepts: A clearly defined configuration management authority must be established. Configuration control standards, procedures and guidelines must be produced and distributed to the developers. Software Project Management (CS615) 116 © Copyright Virtual University of Pakistan Configuration control cannot be effective without the necessary tools and facilities. 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/19
  • 297. A configuration management plan must be developed at the beginning of the project. The configuration management environment consists of the resources necessary for the implementation of the configuration control plan. Configuration control tools, including: ƒ Automatic version control and ƒ Change control tools ƒ Monitoring, auditing and registration support utilities ƒ Storage facilities; a safe repository for all approved configuration items, including: – On-site storage for the day to day development process – Off-site storage for catastrophe recovery (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Software Configuration Management vs. Software Software Configuration Management vs. Software Software Configuration Management vs. Software Software Configuration Management vs. Software Software Configuration Management vs. Software Maintenance Maintenance Maintenance Maintenance Maintenance Baselines vs. Interim Versions Baselines vs. Interim Versions Baselines vs. Interim Versions Baselines vs. Interim Versions Baselines vs. Interim Versions Software Configuration Management (SCM): 1 SCM is an ongoing process that begins when a software project starts and continues until the software is no longer in use. It involves identifying, organizing, and controlling changes within a software project to minimize errors. 2 Example: During the development of a new feature in a project, SCM is used to track all the changes made to the code, documents, and design artifacts. This ensures that all modifications are documented, reviewed, and approved. 3 Software Maintenance: 4 Software maintenance takes place after the software has been delivered and is in use by the client. It involves fixing issues, making updates, and adding new features based on user feedback and changing requirements. 5 Example: After delivering a mobile app to the client, the development team notices that users are reporting bugs. The team then works on fixing these bugs and updating the app, which is a part of software maintenance. 6 Baselines: 1 A baseline is a stable, tested, and certified version of a system that is formally reviewed and approved. Baselines are often assigned major version numbers like 1.0, 2.0, etc. 2 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/19
  • 298. ⇒Guidelines for effective configuration management The following are some additional guidelines for effective configuration management. Some of these guidelines are equally applicable to other management support functions. • Configuration management requires authority in order to be Effective Configuration Control Effective Configuration Control Effective Configuration Control Effective Configuration Control Effective Configuration Control By implementing effective configuration control, teams can ensure that all changes are properly managed, reducing the risk of errors and improving the overall quality of the software. Example: After completing all the testing and getting approval from the stakeholders, the team releases version 1.0 of their software as the first baseline. This version is considered stable and ready for use. 3 Interim Versions: 4 Interim versions are temporary versions created during bug fixing, testing, or debugging. They usually have minor version numbers like 1.1, 1.2, etc., and are not intended for long-term use. 5 Example: During the development phase, the team discovers some bugs and fixes them, releasing version 1.1 as an interim version. This version is used internally for further testing and is not released to the public. 6 Configuration Management Authority: 1 A specific authority or team is designated to oversee the configuration management process and ensure compliance with the established standards. 2 Example: A project manager is assigned the role of configuration management authority, responsible for approving changes and ensuring that all team members follow the SCM procedures. 3 Standards, Procedures, and Guidelines: 4 Clear guidelines and procedures are developed and distributed to the development team to ensure everyone understands the SCM process. 5 Example: The SCM team creates a document outlining the steps for requesting, reviewing, and implementing changes. This document is shared with all developers to ensure consistency. 6 Necessary Tools and Facilities: 7 The organization provides the required tools and resources, such as version control systems and storage facilities, to support the SCM process. 8 Example: The team uses a version control system like Git to manage code changes and a secure server to store all approved configuration items. 9 Configuration Management Plan: 10 A detailed plan is developed at the beginning of the project to outline how configuration management will be implemented and maintained. 11 Example: Before starting the project, the team creates a configuration management plan that includes the processes for version control, change control, and auditing, ensuring everyone knows their roles and responsibilities. 12 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/19
  • 299. effective. This authority must be clearly delegated by the project manager to the responsible engineers. Any configuration management plan will become meaningless if the plan cannot be enforced. • Blunt enforcement of any plan policy or standard is best avoided, whenever possible. One of the qualities of a good manager is the ability to apply policy with minimal enforcement. Whenever policies and standards are readily accepted by the developers, they are more willingly followed and there are fewer rejections of submitted material. This leads to a more efficient development process. • Configuration management should be implemented from the start of a software project. Many of the formal documents issued during the initial concept phase are crucial for the requirements and design phases, and must be placed under configuration control. • The early application of configuration management is especially important in rapid prototyping, spiral models, or other iterative development methodologies. These development approaches initially produce several Software Project Management (CS615) 117 © Copyright Virtual University of Pakistan versions of each product. Many different versions can become an engineering nightmare without orderly configuration control. • Occasionally some software configuration control activities may overlap with software quality assurance activities. In small projects, these two functions may be assigned to a single support engineer. Even in large projects, these two functions are sometimes performed by a single support group. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/19
  • 300. ⇒Misapplication of Guidelines It should be noted that configuration management can be Guidelines for Effective Configuration Management Guidelines for Effective Configuration Management Guidelines for Effective Configuration Management Guidelines for Effective Configuration Management Guidelines for Effective Configuration Management Authority in Configuration Management: 1 For configuration management (CM) to be effective, authority must be delegated to the appropriate engineers by the project manager. This authority allows them to enforce the CM plan effectively. 2 Example: The project manager delegates authority to the lead software engineer, allowing them to approve or reject changes to the codebase based on the CM plan. This ensures that the lead engineer can make decisions that align with the project goals. 3 Minimal Enforcement of Policies: 4 Blunt enforcement of policies and standards should be avoided. Instead, the policies should be applied in a way that makes them easily acceptable to developers. This encourages compliance and reduces resistance. 5 Example: The CM team presents the policies in a way that highlights their benefits to the developers, such as reducing rework and improving collaboration. By doing so, the developers are more likely to follow the policies without feeling forced. 6 Early Implementation of Configuration Management: 7 Configuration management should be implemented from the beginning of a software project. This ensures that important documents and artifacts from the initial phases are properly managed and controlled. 8 Example: As soon as the project begins, the CM team starts tracking and managing documents like the project charter, requirements specification, and design documents. This ensures that all changes are documented and controlled right from the start. 9 Importance in Iterative Development Methodologies: 10 In development approaches like rapid prototyping, spiral models, or other iterative methodologies, configuration management is especially important. These methodologies produce multiple versions of the product, which can become difficult to manage without proper CM. 11 Example: In a project using the spiral model, the team develops several iterations of the software. The CM team tracks each version, ensuring that all changes are documented and that there is a clear path from one version to the next. 12 Overlap with Software Quality Assurance: 13 In some projects, activities related to configuration management may overlap with software quality assurance (SQA) activities. In small projects, these activities may be handled by a single support engineer. In larger projects, they might be managed by a single support group. 14 Example: In a small software project, a single engineer is responsible for both CM and SQA. They ensure that changes are properly managed and that the software meets the required quality standards. In larger projects, a dedicated support group handles both CM and SQA, ensuring consistency across the project. 15 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 17/19
  • 301. greatly exaggerated. The various configuration control activities are not an objective in themselves, they are a means. • A typical example of the misapplication of configuration management (and misguided quality control), is a requirement to modify reused software to comply with current standards and procedures. • Reused software is software developed previously in another project, and found suitable to be incorporated into the current project. In such cases it rarely makes sense to modify a complete and working product in order to make it comply with administrative standards intended to make it a complete and working product. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. give me answer in not more than 170 words Misapplication of Guidelines Misapplication of Guidelines Misapplication of Guidelines Misapplication of Guidelines Misapplication of Guidelines Exaggerated Configuration Management: 1 Configuration management should not be viewed as an end in itself but rather as a means to support project goals. 2 Example: A project team is required to enforce strict configuration management rules even for trivial or non-critical changes. This leads to delays and frustration among the team members without adding significant value to the project. 3 Unnecessary Modification of Reused Software: 4 Modifying reused software just to meet current standards, when the software is already functioning correctly, is a common misapplication of configuration management. 5 Example: A team decides to alter a well-tested and functioning module from a previous project to comply with new documentation standards. This effort consumes time and resources without improving the software's functionality or performance, demonstrating a misapplication of configuration management principles. 6 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 18/19
  • 302. From ChatGPT, designed with FancyGPT 16/08/2024, 08:09 FancyGPT - cs611 lecture 17 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 19/19
  • 303. cs611 lecture 18 cs611 lecture 18 cs611 lecture 18 cs611 lecture 18 cs611 lecture 18 LECTURE # 18 2. Software Development Fundamentals Technical Fundamentals 2.15 Quality Assurance Management ⇒Definition According to American Heritage Dictionary, quality is defined as an inherent or distinguishing characteristic or a property. The distinguishing characteristics of a software product are the cyclomatic complexity, cohesion, function points, and lines of code. These characteristics of a software product define the quality of the product. • The US DOD (1988) defines software quality rather simply as: – The ability of a software product to satisfy its specified requirements. • The British Standards Institution (1986) has stated that: – “Quality is in the eye of the beholder, a matter, of the client's judgment.” ⇒Quality Standards and Procedures The quality of software is said to be high if it meets the standards and procedures, defined for the product. Standards are criteria to which the products are compared.
  • 304. For example, there may be standards that govern the quality review process. Documentation standard design standard and code standard are the three types of standards that software projects usually follow. Documentation standard specifies the form and content for planning, control, and product documentation. Design standards provide rules and methods for translating the software requirements into software design. The design standards are specified in the form and content of the product design. Unlike documentation standard, code standard defines the language in which code should be written. The standard clearly mentions the structures, style conventions, and rules for data structures and interfaces that will be implemented in the project. Software Project Management (CS615) 119 © Copyright Virtual University of Pakistan Procedures are criteria to which the development and control processes are compared. Procedures are explicit steps followed in a process. Procedures need to be properly documented because they are needed for configuration management, nonconformance reporting, corrective action, testing, and formal inspections. Proper documentation of procedures is necessary because SQA activities rely on them for project compliance. Organizations normally enforce quality standards
  • 305. with the help of checklists, common error lists, and standards and guidelines. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. ⇒Concepts Product quality depends on its conformance to software requirements, development standards, and implicit requirements. During software development, the quality of a product depends on the quality of the design. The quality of product design, in turn, depends on how effectively the product designer captures the client requirements and specifications. At times, the client has some implicit requirements that are not captured in the requirements document. There are three things that guide
  • 306. requirements: want, desire, and wish. Usually, wants are captured explicitly in the requirements documents. However, if you manage to capture desires and wishes, the product becomes a great success. The product designer needs to state these implicit requirements clearly during analysis. The adherence to these implicit requirements is the key attribute that sets one product apart from another. The product quality also depends on how strictly, and to what degree the developer adheres to design specifications. This is what the concept quality is meeting or exceeding our client's needs and requirements' means. The product quality is said to be high if the product is manufactured according to design specifications. ⇒Quality Control Quality control is a series of review activities, such as: • Inspections • Reviews and • Tests, used throughout the SDLC of the software product The objective of quality control is to find problems as early as possible and fix them. Quality control ensures that the software product meets the requirements defined at every stage in its development. Software Project Management (CS615) 120 © Copyright Virtual University of Pakistan
  • 307. There is provision for feedback mechanism during quality control. Any slippage in meeting the requirements during the development process is communicated to the development team immediately. Feedback ensures that errors or misses found during quality control are rectified as soon as they are detected. During software development, quality control plays a valuable role by evaluating products against standards and specifications. Quality control activities can be fully automated manual, or a combination of these. Quality control involves monitoring specific project results to determine if: – They comply with relevant quality standards – Identifying ways to eliminate causes of unsatisfactory results. Project results include both: – Product results, such as deliverables, and – Project management results, such as cost and schedule performance. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 308. Here are simple, beginner-level examples based on the text provided: Concepts Concepts Concepts Concepts Concepts Quality Control Quality Control Quality Control Quality Control Quality Control Product Quality and Conformance: The quality of a software product is judged by how well it meets the software requirements, follows the development standards, and includes any additional needs that the client might not have explicitly mentioned. For example, if a client asks for a website that allows users to log in, the product must not only include a working login system (explicit requirement) but also load quickly and look good on all devices (implicit requirements). Quality of Product Design: The effectiveness of the product design depends on how well the designer understands and captures the client's requirements. For instance, if a client wants an application that is easy to use, the designer needs to understand what easy to use means to the client and ensure that the final design reflects this. If the designer also captures desires and wishes that the client didn’t clearly state, like a modern user interface, the final product will likely exceed expectations. Adherence to Design Specifications: The product's quality is high if the developers strictly follow the design specifications when building the software. For example, if the design specifies that the application should load within 2 seconds, the developers need to ensure that this is achieved in the final product. Inspections: During inspections, developers or quality control teams carefully check parts of the software or documents to find any issues. For example, reviewing the code to ensure it follows coding standards. Reviews: In reviews, the software team goes through various aspects of the project, like design or test plans, to identify any potential problems. For example, a design review might check if the software meets the user’s needs before development starts. Tests: Testing involves running the software to check if it works correctly. For example, testing a login system to ensure it accepts valid credentials and rejects invalid ones. Feedback Mechanism: If any problems are found during inspections, reviews, or tests, they are immediately communicated to the development team so they can fix them quickly. For example, if a test reveals that a feature isn’t working, the development team is informed right away so they can correct the issue.
  • 309. ⇒Quality Factors There are a number of factors that determine the quality of a software product. These factors can be measured either directly or indirectly. McCall (MCC77) and his colleagues proposed some software quality factors based on three most important aspects of a software product: 1. Product operation 2. Product revision and 3. Product transition 1. Product Operation Factors The product operation factors determine the quality of software when a program is executed. Good quality software is not only correct and reliable but also delivers correct performance in all circumstances. Some of the factors of product operation are correctness, reliability, efficiency, integrity, and Monitoring Compliance with Quality Standards: Quality control also involves checking if the software meets specific quality standards, like ensuring that the software works correctly across different devices. If the software fails to meet these standards, steps are taken to find and fix the causes of these failures. Project Results: Quality control doesn't only focus on the software itself but also on how well the project is managed. For example, it monitors whether the project is staying within the budget and timeline (project management results) and whether the final software product meets the expected quality (product results).
  • 310. usability. You can look at the factor description in Table 1. Table 1: Product Operation Factors Correctness Accuracy of the program and the extent to which it fulfills design specifications Reliability Extent to which the program is secure and its ability to recover quickly from failure. Software Project Management (CS615) 121 © Copyright Virtual University of Pakistan Efficiency Performance of the program and its ability to perform tasks within a time frame Integrity Ability of the program to take care of security and the extent to which it can prevent unauthorized. Usability Ease with which a user can learn, operates, and uses the program. 2. Product Revision Factors Product revision factors focus on the ease of maintenance of the software product. Maintenance tasks could be either correcting faults in the original design or making improvements to adapt the functionality to changing environments. Product revision covers the following factors: maintainability, flexibility, and testability. These factors are described in Table 2. Table 2: Product Revision Factors Maintainability Ease with which a program is debugged. Flexibility Ease with which a program is modified. Testability Ease with which a program is tested. 3. Product Transition Factors
  • 311. The product transition factors determine the quality of programs that are designed for open systems. Here the focus is more on the portability and reusability of a software product. To help a system run on different platforms, certain parts of a system may be reused. The product transition factors are portability, reusability, interoperability, configurability, and expandability. These factors are described in Table 3. Table 3: Product Transition Factors Portability Efficiency with which a program runs on different platforms or operating systems Reusability Extent to which the program can be used in more than one program or system Interoperability Effort needed to transfer a program to another system Configurability Ability of the program to be installed at more than one location with different features at each location Expandability Ability of the program to support an increase in data and users (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 312. Here are simple, beginner-level examples based on the text provided: Quality Factors Quality Factors Quality Factors Quality Factors Quality Factors 1. Product Operation Factors 1. Product Operation Factors 1. Product Operation Factors 1. Product Operation Factors 1. Product Operation Factors These factors determine how well the software works when it is running. 2. Product Revision Factors 2. Product Revision Factors 2. Product Revision Factors 2. Product Revision Factors 2. Product Revision Factors These factors focus on how easy it is to maintain and update the software after it has been developed. Correctness: If a software program is designed to calculate taxes, correctness means it should accurately calculate the correct amount of tax based on the input it receives. If it follows the design specifications perfectly, it is considered correct. Reliability: A reliable software program, like an online banking app, should consistently perform its tasks without crashing. If it encounters a problem, it should be able to recover quickly, such as by reconnecting to the server automatically after losing connection. Efficiency: This refers to how well the software performs its tasks within a given time. For example, a search function in an application should return results quickly, even when searching through a large database. Integrity: Integrity means the software is secure and can protect against unauthorized access. For example, a password-protected system should prevent users who don’t have the correct password from accessing sensitive information. Usability: Usability refers to how easy it is for users to learn and use the software. For instance, a mobile app with clear navigation and simple instructions is considered user-friendly and has high usability. Maintainability: If a software program has a bug, maintainability refers to how easily a developer can find and fix that bug. For example, if the code is well-organized and documented, it will be easier to debug. Flexibility: Flexibility means how easily the software can be modified to add new features or adapt to changes. For instance, if a business wants to add a new payment option to their e-commerce site, the software should be flexible enough to allow this change without needing a complete overhaul.
  • 313. From ChatGPT, designed with FancyGPT 3. Product Transition Factors 3. Product Transition Factors 3. Product Transition Factors 3. Product Transition Factors 3. Product Transition Factors These factors determine how well the software can adapt to different environments or be reused in other systems. Testability: Testability refers to how easily the software can be tested to ensure it works correctly. For example, if the software is designed with clear, separate functions, it will be easier to test each part individually to ensure there are no issues. Portability: Portability refers to how easily the software can run on different platforms, like moving a desktop application to run on both Windows and macOS without much modification. Reusability: If a software component, like a login system, can be reused in different applications (e.g., a website, a mobile app, and a desktop app), it has high reusability. Interoperability: Interoperability means how easily the software can work with other systems. For example, a messaging app that can send messages to users on different platforms (like Android and iOS) has good interoperability. Configurability: Configurability refers to the ability to set up the software differently depending on where it is installed. For instance, a point-of-sale system might be installed in different stores with slightly different features tailored to each store's needs. Expandability: Expandability means the software can support an increase in data or users without significant changes. For example, a cloud storage service should be able to handle more users or more data as the need grows without performance issues.
  • 314. cs611 lecture 19 cs611 lecture 19 cs611 lecture 19 cs611 lecture 19 cs611 lecture 19 LECTURE # 19 2. Software Development Fundamentals Technical Fundamentals 2.15 Quality Assurance Management ⇒Software Quality Assurance Activities SQA is the process of evaluating the quality of a product and enforcing adherence to software product standards and procedures. It is an umbrella activity that ensures conformance to standards and procedures throughout the SDLC of a software product. There are a large number of tasks involved in SQA activities. These include: i. Formulating a quality management plan ii. Applying software engineering techniques iii. Conducting formal technical reviews iv. Applying a multi-tiered testing strategy v. Enforcing process adherence vi. Controlling change vii. Measuring impact of change viii. Performing SQA audits ix. Keeping records and reporting i. Formulating a Quality Management Plan One of the tasks of SQA is the formulation of a quality management plan. The
  • 315. quality management plan identifies the quality aspects of the software product to be developed. It helps in planning checkpoints for work products and the development process. It also tracks changes made to the development process based on the results of the checks. The quality management plan is tracked as a live plan throughout the SDLC. ii. Applying Software Engineering Application of software engineering techniques helps the software designer to achieve high quality specification. The designer gathers information using techniques such as interviews and FAST. Using the information gathered, the designer prepares project estimation with the help of techniques such as WBS, SLOC estimation, or FP estimation. iii. Conducting Formal Technical Reviews Formal technical review (FTR) in conducted to assess the quality and design of the prototype. It is a meeting with the technical staff to discuss the quality Software Project Management (CS615) 123 © Copyright Virtual University of Pakistan requirements of a software product and its design quality. FTRs help in detecting errors at an early phase of development. This prevents errors from percolating down to the latter phases and resulting in rework. iv. Applying a Multi-tiered Testing Strategy Software testing is a critical task of SQA activity,
  • 316. which aims at error detection. Unit testing is the first level of testing. The subsequence levels of testing are integration testing and system level testing. There are various testing strategies followed by organization. At times, developers perform unit testing and integration testing with independence testing support. There are also occasions where testers perform functional testing and system level testing with developer support. Sometimes beta testing with selected clients is also conducted to test the product before it is finally released. v. Enforcing Process Adherence This task of SQA emphasizes the need for process adherence during product development. In addition, the development process should also adhere to procedures defined for product development. Therefore, this is a combination of two tasks, product evaluation and process monitoring. vi. Product Evaluation Product evaluation ensures that the standards laid down for a project are followed. During product evaluation, the compliance of the software product to the existing standards is verified. Initially, SQA activities are conducted to monitor the standards and procedures of the project. Product evaluation ensures that the software product reflects the requirements identified in the project management plan.
  • 317. vii. Process Monitoring Process monitoring ensures that appropriate steps to follow the product development procedures are carried out. SQA monitors processes by comparing the actual steps carried out with the steps in the documented procedures. Product evaluation and process monitoring ensure that the development and control processes described in the project management plan are correctly carried out. These tasks ensure that the project-re1ated procedures and standards are followed. They also ensure that products and processes conform to standards and procedures. Audits ensure that product evaluation and process monitoring are performed. viii. Controlling Change This task combines human procedures and automated tools to provide a mechanism for change control. The change control mechanism ensures software quality by formalizing requests for change, evaluating the nature of change, and controlling the impact of change. Change control mechanism is implemented during the development and maintenance stages. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind
  • 318. in that and give coherent examples. ix. Measuring Impact of Change Change is inevitable in the SDLC. However, the change needs to be measured and monitored. Changes in the product or process are measured using software quality metrics. Software qua1ity metrics helps in estimating the cost and resource requirements of a project. To control software quality; it is essential to measure quality and then compare it with established standards. Software qua1ity metrics are used to evaluate the effectiveness of techniques and tools, the productivity of development activities and the qua1ity of products. Metrics enables mangers and developers to monitor the activities and proposed changes throughout the SDLC and initiate corrective actions. x. Performing SQA Audits SQA audits scrutinize the software development process by comparing it to established processes. This ensures that proper control is maintained over the
  • 319. documents required during SDLC. Audits also ensure that the status of an activity performed by the developer is reflected in the status report of the developer. xi. Keeping Records and Reporting Keeping records and reporting ensure the collection and circulation of information relevant to SQA. The results of reviews, audits, change control, testing, and other SQA activities are reported and compiled for future reference. ⇒Software Review Software review is an effective way of filtering errors in a software product. Typically, an error found after the product release costs 50 times as much to correct as one detected during the design phase. This means the cost of fixing a defect rises dramatically if it is found late in the development life cycle of the product. Therefore, you need to filter errors as early as possible. Software review is used as a filter at various points of software development. Reviews conducted at each of these phases, analysis, design, coding, and testing reveal areas of improvement in the product. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind
  • 320. in that and give coherent examples. Reviews also indicate those areas that do not need any improvement. You can use software reviews to achieve consistency and uniformity across products. Reviews also make the task of product creation more manageable. Some of the most common software review techniques, practiced across software organizations include: a) Inspection b) Walkthrough c) Formal technical reviews a) Inspections Software Project Management (CS615) 125 © Copyright Virtual University of Pakistan Inspections improve the reliability, availability, and maintainability of a software product. Anything readable that is produced during software development can be inspected. The readable material can be requirements specifications, design documents and models, test
  • 321. plans, system documentation, and user aids. Group inspections enable team members to exchange knowledge and ideas during an inspection session. Inspections can be combined with structured, systematic testing to provide a powerful tool for creating defect-free programs. The inspection activity follows a specified process and the participants play well-defined roles. An inspection team consists of three to eight members who play the roles of moderator, author, reader, recorder, and inspector. Moderator leads the inspection, schedules meetings, controls meetings, reports inspection results, and follows up on rework issues. Author creates or maintains the work product being inspected. Reader describes the sections of the work product to the team as they proceed through inspection. Recorder classifies and records defects and issues raised during the inspection. The moderator might perform this role in a small inspection team. Inspector finds errors in the product. All participants play the role of inspectors. However, good inspectors are those who have created the specification for the work product being inspected. For example, the designer can act as an inspector during code inspection while a quality assurance representative can act as
  • 322. standard enforcer. It also helps to have a client representative participate in requirements specification inspections. b) Walkthroughs The term walkthrough refers to a group activity in which the developer of the product guides the progress of the review. Walkthroughs are less rigorous than either formal inspections or peer reviews in which the developer plays a more passive role. Normally walkthroughs turn into a presentation by the author. The focus of finding errors is diluted. Such misadventures make walkthroughs usually less successful at detecting bugs than the more formal review methods. Two useful walkthrough approaches adopted worldwide are group reviews with individual preparation and individual peer desk- checks. Group reviews are not very rigorous like inspections. The group reviews involve many of the same activities and roles, such as individual preparation and the use of a moderator and a recorder. Usually the overview meeting and the follow-up steps are skipped and checklists are used sparingly. At the end, the readers paraphrase their interpretation of what a program is doing. Software Project Management (CS615) 126 © Copyright Virtual University of Pakistan
  • 323. Individual peer desk-checks are quite cost-effective. Only one person besides the author examines the material. This approach can be more effective if there are individuals who are extremely good at finding defects on their own. Tip: If someone consistently finds most of the group- identified defects during the individual preparation step, such a person is fit to perform individual peer desk-checks. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. cks. c) Formal Technical Reviews One of the most common, yet important, software quality assurance activity performed is FTR. This activity is performed to check
  • 324. errors in logic, function, or implementation for any representation of the software. Using FTR, you can verify whether or not the software product adheres to the defined standards. FTR is also conducted to check for consistency in the software product and audit the manageability of the software product. It includes activities such as walkthrough and inspection. FTR focuses on specific parts of the software product, such as the requirements components, detailed design module, and the source code listing for a module. FTR also concentrates on the entire product. The participants in FTR are the developer, the project leader, and all the reviewers. At the end of the review meeting, the issues recorded are formalized into review issues list. The minutes of the meeting are summarized into a review summary report as displayed in table 4. Technical Review Report Review Identification Project Name Current Phase Review Number Product Identification Item Reviewed Version No. Developer Brief Description Documents Referred (along with versions, if any) Start Name End Time Review Material Attached: Yes / No Participants Role Preparation Time
  • 325. Software Project Management (CS615) 127 © Copyright Virtual University of Pakistan Total Review Time (No. of Participants * Actual duration of meeting) Total Review Person Hours Product Appraisal Accepted as is ( ) With Minor Modification ( ) Not Accepted Major Revision ( ) Minor Revision ( ) Review Not Completed (Explanation as follows) Supplementary Material Attached Issue Lists: Others Revise and Reschedule (if required) Target Date for Next Review Verification of Defect Closure Responsibility of: Planned Date of Verification Recommended for Release Signature: Date: Table 4: Technical Review Report Tip: To prepare realistic schedule, you can collect data from past projects. Speak to related project managers regarding time estimation for reviews, the review capacity of the reviewer, and estimates the review effort accordingly. Percentage of Defects Removed Development Time Fastest schedule (BEST schedule) Most Organizations Are somewhere around this point 95% 100% (my prompt is that give me simple beginner level
  • 326. examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. The image provided appears to be a chart demonstrating the relationship between Development Time and Percentage of Defects Removed in software development, with annotations highlighting key points like the Fastest schedule (BEST schedule) and where Most Organizations Are somewhere around this point. This chart illustrates the balance between removing defects and minimizing development time. The curve suggests that, as more defects are removed, development time initially decreases, reaching an optimal point. Beyond this point, attempting to remove more defects (e.g., moving from 95% to 100%) causes an increase in development time, likely due to diminishing returns and the difficulty of finding and fixing the remaining defects. To tie this chart to your lecture on software quality assurance activities and review techniques: FTR (Formal Technical Reviews): Formal Technical Reviews, such as inspections and walkthroughs, help identify and fix defects early, moving the development process toward that optimal point on the curve where the highest number of defects are removed with minimal additional development time. Multi-tiered Testing Strategy: A testing strategy that includes unit testing, integration testing, and system-level testing is critical for defect removal. As organizations aim for a higher percentage of defects removed, this strategy ensures that defects are caught across different levels, contributing to a more efficient development process. SQA Audits and Change Control: These processes help monitor adherence to quality standards, ensuring that the development doesn't fall off track.
  • 327. From ChatGPT, designed with FancyGPT In practice, this chart reminds us that striving for 100% defect removal can be counterproductive if it significantly extends development time. The goal is to find an optimal balance where most defects are removed while keeping development time within a reasonable limit. When issues are found, these mechanisms allow for correction without causing a significant delay in development time.
  • 328. cs611 lecture 20 cs611 lecture 20 cs611 lecture 20 cs611 lecture 20 cs611 lecture 20 Figure 1: Quality Assurance LECTURE # 20 3. Processes 3.1 Software Process When you build a product or system, it's important to go through a series of predictable steps – a road map that helps you create a timely, high-quality result, The road map that you follow is called a 'software process' . Software engineers and their managers adapt the process to their needs and then follow it. In addition, the people who have ties defined by the process requested the software play a role in the software process. It provides stability, control, and organization to an activity that can, if left uncontrolled, become quite chaotic. At a detailed level, the process that you adopt depends on the software you're building. One process might be appropriate for creating software for an aircraft avionics system, while an entirely different process would be indicated for the creation of a web site. From the point of view of a software engineer, the work products are the
  • 329. programs, documents and data produces as a consequence of the software engineering activities defined by the process. A number of software process assessment mechanisms enable organizations to determine the “maturity” of a software process. However, the quality, timeliness and long-term viability of the product you build are the best indicators of the efficacy of the process that you use. A common process framework is established by defining a small number of framework activities that are applicable to all software projects, regardless of their size or complexity. A number of task sets-each a collection of software engineering work tasks, project milestones, work products, and quality assurance points enable the framework activities to be adapted to the characteristics of the software project and the requirements of the project team. Finally, umbrella activities-such as software quality assurance, software configuration management, and measurement - overlay the process model. Umbrella activities are independent of anyone framework activity and occur through- out the process. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are
  • 330. part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's break down the concepts from the provided text and give simple, beginner- level examples for each: Software Process Software Process Software Process Software Process Software Process Common Process Framework Common Process Framework Common Process Framework Common Process Framework Common Process Framework Framework Activities Framework Activities Framework Activities Framework Activities Framework Activities Task Sets Task Sets Task Sets Task Sets Task Sets Definition: A software process is a set of steps that software engineers and managers follow to create a software product. Example: Imagine you are working on a project to develop a mobile app. The software process would be the specific steps you follow, like planning, designing, coding, testing, and deploying the app. Definition: A common process framework is a structure that includes key activities applicable to all software projects, no matter how big or small. Example: Whether you are building a small website or a large enterprise system, you would follow certain common steps like requirement gathering, designing the system architecture, implementing the code, and testing the software before release. Definition: These are the core activities that are necessary for any software project. Example: In any project, you need to plan what needs to be done, design the solution, write the code, test the solution, and finally deploy it. Definition: Task sets are collections of work tasks, milestones, work products, and quality assurance points tailored to a specific project. Example: If you are developing an e-commerce website, your task set might include tasks like setting up a product database, integrating payment gateways, testing user login functionality, and ensuring the website meets quality standards.
  • 331. ⇒Software Process Vs Software Engineering But what exactly is a software process from a technical point of view? A software Project Milestones Project Milestones Project Milestones Project Milestones Project Milestones Work Products Work Products Work Products Work Products Work Products Quality Assurance Points Quality Assurance Points Quality Assurance Points Quality Assurance Points Quality Assurance Points Umbrella Activities Umbrella Activities Umbrella Activities Umbrella Activities Umbrella Activities These examples are simple and aligned with the lecture content you provided, ensuring a coherent and consistent explanation. Definition: Milestones are significant points in the project timeline where specific goals or objectives are achieved. Example: A milestone in your project could be completing the design phase or successfully launching the beta version of your software. Definition: Work products are the tangible outcomes produced during the software process, such as code, documentation, and data. Example: The code you write, the user manuals you create, and the test results you document are all work products. Definition: Quality assurance points are checks in the process where the quality of the work products is evaluated. Example: Before you release your software, you might have a quality assurance point where you thoroughly test the software to make sure it works correctly and meets user requirements. Definition: These are ongoing activities that support the software process but are not tied to any specific step in the process. Example: Throughout the project, you might continuously manage changes to the code (configuration management) or measure the progress of the project (measurement). These are umbrella activities that happen alongside the main steps of the process.
  • 332. process is a framework for the tasks that are required to build high-quality software. Is process synonymous with software engineering? The answer is yes and no. A software process defines the approach that is taken as software is engineered. But software engineering also encompasses technologies that populate the process-technical methods and automated tools. More important, software engineering is performed by creative, knowledgeable people who should work within a defined and mature software process that is appropriate for the products they build, and the demands of their marketplace. ⇒Software Engineering Software engineering is a layered technology. Referring to Figure 2, any engineering approach (including software engineering) must rest on an organizational commitment to quality. Total quality management and similar philosophies foster a continuous process improvement culture, and this culture ultimately leads to the development of increasingly more mature approaches to Figure 1: The software Process Tasks Milestones, SQA points Tasks Framework activities Common process
  • 333. Software Project Management (CS615) 130 © Copyright Virtual University of Pakistan software engineering. The bedrock that supports software engineering is a quality focus. Figure 2: Software engineering layers The foundation for software engineering is the process layer. Software engineering process is the glue that holds the technology layers together and enables rational and timely development of computer software. Process defines a framework for a set of key process areas that must be established for effective delivery of software engineering technology. The key process areas form the basis for management control of software projects and establish the context in which technical methods are applied, work products (models, documents, data, reports, forms, etc.) are produced, milestones are established, quality is ensured, and change is properly managed. Software engineering methods provide the technical how-to’s for building software. Methods encompass a broad array of tasks that include requirements analysis, design, program construction testing and support. Software engineering methods rely on a set of basic principles that govern each area of the technology and include modeling and other descriptive techniques.
  • 334. Software engineering tools provide automated or semi-automated support for the process and the methods. When tools are integrated so that information created by one tool can be used by another, a stem for the support of software development called computer-aided software engineering, is established. CASE combines software, hardware, and a software engineering database (a repository containing important information about analysis, design, program construction and testing) to create software engineering environment analogous to CAD/CAE (computeraided design engineering) for hardware. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's break down the concepts from the provided text and give simple, beginner- level examples for each: Software Process vs. Software Engineering Software Process vs. Software Engineering Software Process vs. Software Engineering Software Process vs. Software Engineering Software Process vs. Software Engineering Software Process: Definition: A software process is a framework that outlines the tasks required to develop high-quality software.
  • 335. Software Engineering Layers Software Engineering Layers Software Engineering Layers Software Engineering Layers Software Engineering Layers The layers represent the components that support software engineering as a structured and effective practice. Example: Think of a software process as a step-by-step guide you follow when creating a mobile app, from planning and design to coding and testing. Software Engineering: Definition: Software engineering is the application of engineering principles to software development. It includes not just the process, but also the methods, tools, and people involved. Example: When you develop a software application, software engineering covers everything from understanding what the software needs to do, designing the software, writing the code, and testing it, to using tools that help make these tasks easier. Quality Focus: Definition: The foundation of software engineering is a commitment to quality. This means focusing on delivering software that meets user needs and performs reliably. Example: If you’re developing a website, ensuring that it loads quickly, works well on different devices, and is easy to use reflects a quality focus. Process Layer: Definition: The process layer is the framework that binds all aspects of software engineering together, ensuring that the project is managed effectively and that the software is developed in an organized way. Example: The process layer would involve planning the project, setting timelines, defining tasks, and tracking progress to make sure everything stays on course. Methods: Definition: Methods are the technical steps you take to build software. This includes analyzing requirements, designing the system, writing code, testing, and maintaining the software.
  • 336. 3.2 PM Process Groups Project management processes can be organized into five groups of one or more processes each: 1. Initiating processes—authorizing the project or phase 2. Planning processes—defining and refining objectives and selecting the best of the alternative courses of action to attain the objectives that the project was undertaken to address 3. Executing processes—coordinating people and other resources to carry out the plan 4. Controlling processes—ensuring that project objectives are met by monitoring and measuring progress regularly to These examples are simple and aligned with the lecture content you provided, ensuring a coherent and consistent explanation. Example: To develop a mobile app, methods would include gathering user requirements, creating wireframes (designs), writing the code, and then testing the app to ensure it functions correctly. Tools: Definition: Tools are software or systems that help you carry out the methods and support the process. These can be automated or semi- automated. Example: Using an Integrated Development Environment (IDE) like Visual Studio to write code, or a testing tool to automatically check for bugs in your software, are examples of tools in software engineering.
  • 337. identify variances from plan so that corrective action can be taken when necessary 5. Closing processes—formalizing acceptance of the project or phase and bringing it to an orderly end Each process is described by: – Inputs – Tools Techniques – Outputs 3.3 PM Process Links The process groups are linked by the results they produce—the result or outcome of one often becomes an input to another. Among the central process groups, the links are iterated—planning provides executing with a documented project plan early on, and then provides documented updates to the plan as the project progresses. These connections are illustrated in Figure 3. The project management process groups are not discrete, one-time events; they are overlapping activities that occur at varying levels of intensity throughout each phase of the project. These process groups overlap and vary within a phase. Figure 4 illustrates how the process groups overlap and vary within a phase. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are
  • 338. part of a lecture given by one lecturer so keep in mind in that and give coherent examples. e. 3.4 PM Phase interactions Software Project Management (CS615) 132 © Copyright Virtual University of Pakistan Finally, the process group interactions also cross phases such that closing one phase provides an input to initiating the next. For example, closing a design phase requires customer acceptance of the design document. Simultaneously, the design document defines the product description for the ensuing implementation phase. This interaction is illustrated in Figure 5. Repeating the initiation processes at the start of each phase helps to keep the project focused on the business need that it was undertaken to address. It should also help ensure that the project is halted if the business need no longer exists, or if the project is unlikely to satisfy that need. It is important to note that the actual inputs and outputs of the processes depend
  • 339. upon the phase in which they are carried out. Although Figure 5 is drawn with discrete phases and discrete processes, in an actual project there will be many overlaps. The planning process, for example, must not only provide details of the work to be done to bring the current phase of the project to successful completion, but must also provide some preliminary description of work to be done in later phases. This progressive detailing of the project plan is often called rolling wave planning; indicating that planning is an iterative and ongoing process. Involving stakeholders in the project phases generally improves the probability of satisfying customer requirements and realizes the buy-in or shared ownership of the project by the stakeholders, which is often critical to project success. Figure 3: Links among Process Groups in a phase Planning Processes Initiating Processes Controlling Processes Executing Processes Closing Processes Software Project Management (CS615) 133 © Copyright Virtual University of Pakistan
  • 340. Figure 4: Overlap of Process Groups in a Phase Figure 5: Interaction between phases (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's break down the content you've provided into simple, beginner-level examples for each topic. Software Process vs. Software Engineering Software Process vs. Software Engineering Software Process vs. Software Engineering Software Process vs. Software Engineering Software Process vs. Software Engineering Software Engineering Layers Software Engineering Layers Software Engineering Layers Software Engineering Layers Software Engineering Layers Software Process: Think of it as the series of steps or tasks that are required to develop software. It includes everything from planning to designing, coding, testing, and maintenance. Software Engineering: This is a broader concept that includes the software process but also involves the tools and methods used to develop software, as well as the knowledge and creativity of the people involved. Quality Focus: This is the foundation of software engineering. It emphasizes the importance of maintaining high standards throughout the software development process. 1 Process Layer: This layer ensures that all activities involved in software engineering are carried out in an organized and systematic way. 2 Methods Layer: This layer includes the techniques and practices used to carry out tasks like requirement analysis, design, coding, testing, and support. 3 Tools Layer: These are the software or applications used to support the process and methods, making tasks easier and more efficient. 4
  • 341. Project Management Process Groups Project Management Process Groups Project Management Process Groups Project Management Process Groups Project Management Process Groups Process Group Links Process Group Links Process Group Links Process Group Links Process Group Links Process Group Overlap Process Group Overlap Process Group Overlap Process Group Overlap Process Group Overlap Process Group Interactions Across Phases Process Group Interactions Across Phases Process Group Interactions Across Phases Process Group Interactions Across Phases Process Group Interactions Across Phases These explanations should be coherent and consistent for a lecture setting. Let me know if you need further details or additional examples! Initiating Processes: These processes are all about starting a project or a new phase of a project. It involves getting the necessary authorization and setting the stage for planning. 1 Planning Processes: This group focuses on defining the project’s goals and how to achieve them. It includes creating plans for scope, time, cost, quality, and more. 2 Executing Processes: Here, the plans are put into action. The necessary resources, including people, are coordinated to carry out the tasks defined in the plan. 3 Controlling Processes: These processes ensure the project stays on track. Progress is monitored, and any deviations from the plan are corrected to meet the project’s objectives. 4 Closing Processes: These processes are about formally completing the project or phase, making sure everything is finalized and the project is closed properly. 5 Linking Processes: The outcome of one process often becomes the input for another. For example, the output of the planning process provides the guidelines for executing the project. As the project progresses, updated plans provide new directions for execution. Overlap in Phases: The processes in a project are not isolated; they overlap. For instance, planning might continue even as execution begins, and controlling happens throughout execution to keep the project on track. Interactions Between Phases: The completion of one phase often feeds into the initiation of the next phase. For example, completing the design phase might involve getting customer approval, which then triggers the start of the implementation phase. Planning is also ongoing, with each phase providing more detailed plans for subsequent phases.
  • 342. From ChatGPT, designed with FancyGPT
  • 343. cs611 lecture 21 cs611 lecture 21 cs611 lecture 21 cs611 lecture 21 cs611 lecture 21 LECTURE # 21 3. Processes 3.5 Initiating Process ⇒Inputs • Product Description • Strategic Plan • Selection Criteria • Historical Information ⇒Outputs • Project Charter • Project Manager assignments • Constraints • Assumptions ⇒Tools and Techniques • Project selection methods • Expert judgment The tasks performed for project initiation are mentioned below: • Requirement gathering: The first task is to gather the customer requirements. Customer requirements may be spoken or unspoken. Therefore, the challenge for the project manager is to elicit the requirements in such a way that both the spoken and unspoken customer needs and wants are gathered. After collecting the required information, you need to translate the
  • 344. customer requirements into technical specifications for the software project. • Scope determination: The scope of a software project can be defined as the combination of the software product arid services to be delivered to the customer. You carry out the scope determination exercise to define the scope of the software project. The scope determination exercise enables you to refine and understand the customer requirements. You can refine the scope definition further by breaking down each deliverable into smaller and more manageable activities. The scope determination exercise also helps you identify the technology for creating the software product. • Resource allocation: During project initiation, you identify the resources required and allocate them to the software project. The resources identified may be people, reusable software components, and hardware or software tools. You allocate the resource to the software project on the basis of the activities defined in the scope Software Project Management (CS615) 135 © Copyright Virtual University of Pakistan determination exercise. While allocating appropriate resources for a software project, you also need to calculate the cost of each resource. The cost of a resource is calculated according to the duration of the resource in the software
  • 345. project. Estimating the cost of resources also helps you prepare a budget for the software project. • Initial project plan: Another exercise that you carry out during project initiation is the creation of a rough project plan. This plan is a draft version and carries only the primitive project plan features. This project plan carries the initial risk analysis of the software project, the initial start and end dates, the duration of the activities in the project, and the sequencing of these activities. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. es. 3.6 Planning Process Devising and maintaining a workable scheme to accomplish the business need
  • 346. that the project was undertaken to address Planning is setting the direction for something -- some system -- and then guiding the system to follow the direction. The basic planning process typically includes similar nature of activities carried out in similar sequence. The phases are carried out carefully or -- in some cases -- intuitively, for example, when planning a very small, straightforward effort the complexity of the various phases (and their duplication throughout the system) depend on the scope of the system. For example, in a large corporation, the following phases would be carried out in the corporate offices: • In each division • In each department • In each group, etc. Planning typically includes use of the following basic terms • Goals: Goals are specific accomplishments that must be accomplished in total, or in some combination, in order to achieve some larger, overall result preferred from the system, for example, the mission of an organization. (goals are outputs from the system.) • Strategies or Activities: These are the methods or processes required in total, or in some combination, to achieve the goals. (strategies are processes in the system.)
  • 347. Software Project Management (CS615) 136 © Copyright Virtual University of Pakistan • Objectives: Objectives are specific accomplishments that must be accomplished in total, or in some combination, to achieve the goals in the plan. Objectives are usually milestones along the way when implementing the strategies • Tasks: Particularly in small organizations, people are assigned various tasks required to implement the plan. If the scope of the plan is very small, tasks and activities are often essentially the same. • Resources (and Budgets): Resources include the people, materials, technologies, money, etc., required to implement the strategies or processes. The costs of these resources are often depicted in the form of a budget. (Going back to our reference to systems, resources are input to the system.) Goals and Objectives Should Be SMARTER SMARTER is an acronym, that is, a word composed by joining letters from different words in a phrase or set of words. In this case, a SMARTER goal or objective is: Specific: For example, it's difficult to know what someone should be doing if they are to pursue the goal to work harder. It's easier to recognize Write a paper. Measurable: It's difficult to know what the scope of Writing a
  • 348. paper really is. It's easier to appreciate that effort if the goal is Write a 30-page paper. Acceptable: If I'm to take responsibility for pursuit of a goal, the goal should be acceptable to me. For example, I'm not likely to follow the directions of someone telling me to write a 30-page paper when I also have to five other papers to write. However, if you involve me in setting the goal so I can change my other commitments or modify the goal, I'm much more likely to accept pursuit of the goal as well. Realistic: Even if I do accept responsibility to pursue a goal that is specific and measurable, the goal won't be useful to me or others if, for example, the goal is to Write a 30-page paper in the next 10 seconds. Time frame: It may mean more to others if I commit to a realistic goal to Write a 30-page paper in one week. However, it'll mean more to others (particularly if they are planning to help me or guide me to reach the goal) if I specify that I will write one page a day for 30 days, rather than including the possibility that I will write all 30 pages in last day of the 30-day period. Software Project Management (CS615) 137 © Copyright Virtual University of Pakistan Extending: The goal should stretch the performer's capabilities. For example, I
  • 349. From ChatGPT, designed with FancyGPT might be more interested in writing a 30-page paper if the topic of the paper or the way that I write it will extend my capabilities. Rewarding: I'm more inclined to write the paper if the paper will contribute to an effort in such a way that I might be rewarded for my effort. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 350. cs611 lecture 22 cs611 lecture 22 cs611 lecture 22 cs611 lecture 22 cs611 lecture 22 LECTURE # 22 3. Processes ⇒Planning Process Tasks 1. Scope Planning 2. Scope Definition 3. Activity Definition 4. Activity Sequencing 5. Activity Duration Estimating 6. Resource Planning 7. Cost Estimating 8. Cost Budgeting Risk Planning 9. Schedule Development 10. Quality Planning 11. Communications Planning 12. Organization Planning 13. Staff Acquisition 14. Procurement Planning 15. Project Plan Development 1) Scope Planning — developing a written scope statement as the basis for future project decisions 2) Scope Definition—subdividing the major project deliverables into smaller, more manageable components 3) Activity Definition—identifying the specific activities that must be performed to produce the various project deliverables
  • 351. 4) Activity Sequencing—identifying and documenting interactivity dependencies 5) Activity Duration Estimating—estimating the number of work periods that will be needed to complete individual activities. 6) Resource Planning—determining what resources (people, equipment, materials, etc.) and what quantities of each should be used to perform project activities. 7) Cost Estimating—developing an approximation (estimate) of the costs of the resources required to complete project activities. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 8) Cost Budgeting—allocating the overall cost estimates to individual work packages.
  • 352. 9) Schedule Development —analyzing activity sequences, activity durations, and resource requirements to create the project schedule. 10) Quality Planning—identifying which quality standards are relevant to the project and determining how to satisfy them. 11) Communications Planning—determining the information and communications needs of the stakeholders: who needs what information, when will they need it, and how will it be given to them. 12) Organizational Planning—identifying, documenting, and assigning project roles, responsibilities, and reporting relationships. 13) Staff Acquisition—getting the human resources needed assigned to and working on the project. 14) Procurement Planning—determining what to procure, how much to procure, and when. 15) Project Plan Development —taking the results of other planning processes and putting them into a consistent, coherent document. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind
  • 353. in that and give coherent examples. nt. 3.7 Executing Process ⇒Executing Process Tasks 1. Project Plan Execution—carrying out the project plan by performing the activities included therein. 2. Quality Assurance—evaluating overall project performance on a regular basis to provide confidence that the project will satisfy the relevant quality standards 3. Team Development —developing individual and group skills/competencies to enhance project performance 4. Information Distribution—making needed information available to project stakeholders in a timely manner. 5. Solicitation —obtaining quotations, bids, offers, or proposals as appropriate. 6. Source Selection —choosing from among potential sellers. Software Project Management (CS615) 140 © Copyright Virtual University of Pakistan
  • 354. 7. Contract Administration —managing the relationship with the seller. 3.8 Controlling Process Ensuring that project objectives are met by monitoring and measuring progress and taking corrective measures when necessary Project performance must be monitored and measured regularly to identify variances from the plan. Variances are fed into the control processes in the various knowledge areas. To the extent that significant variances are observed (i.e., those that jeopardize the project objectives), adjustments to the plan are made by repeating the appropriate project planning processes. For example, a missed activity finish date may require adjustments to the current staffing plan, reliance on overtime, or tradeoffs between budget and schedule objectives. Controlling also includes taking preventive action in anticipation of possible problems. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 355. ⇒Controlling Process Tasks 1. Integrated Change Control 2. Scope Verification 3. Scope Change Control 4. Schedule Control 5. Cost Control 6. Quality Control 7. Performance Reporting 8. Risk Response Control The controlling process group contains core processes and facilitating processes. 1. Integrated Change Control —coordinating changes across the entire project. 2. Scope Verification—formalizing acceptance of the project scope. 3. Scope Change Control—controlling changes to project scope. 4. Schedule Control—controlling changes to the project schedule. 5. Cost Control—controlling changes to the project budget. 6. Quality Control—monitoring specific project results to determine if they comply with relevant quality standards and identifying ways to eliminate causes of unsatisfactory performance. 7. Performance Reporting—collecting and disseminating performance
  • 356. information. This includes status reporting, progress measurement, and Software Project Management (CS615) 141 © Copyright Virtual University of Pakistan forecasting. 8. Risk Response Control—keeping track of identified risks, monitoring residual risks and identifying new risks, ensuring the execution of risk plans, and evaluating their effectiveness in reducing risk. 3.9 Closing Process Formalizing acceptance of the project or phase and bringing it to an orderly end. ⇒Closing Process Tasks • Contract Closeout —completion and settlement of the contract, including resolution of any open items. • Administrative Closure—generating, gathering, and disseminating information to formalize phase or project completion, including evaluating the project and compiling lessons learned for use in planning future projects or phases. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 357. From ChatGPT, designed with FancyGPT
  • 358. cs615 lecture 23 cs615 lecture 23 cs615 lecture 23 cs615 lecture 23 cs615 lecture 23 LECTURE # 23 4. PLANNING Planning is one of the most important management activities and is an ongoing effort throughout the life of the project. Software project management begins with a set of activities that are collectively called Project Planning. • Preliminary planning starts on day one even in the pre-project phase • It should not be conducted “in secret” • It needs buy-in and approval 4.1 Project Planning Objectives The objective of software project planning is to provide a framework that enables the manager to make reasonable estimates of: • Resources • Cost, and • Schedule These estimates are made within a limited time frame at the beginning of a software project and should be updated regularly as the project progresses. In addition, estimates should attempt to define best case and worst-case scenarios so that project outcomes can be bounded. Planning is one of the most important management activities and is an ongoing effort
  • 359. throughout the life of the project. Software project management begins with a set of activities that are collectively called Project Planning. The software project planner must estimate following things before a project begins: 1. How much will it cost? 2. How long will it take? 3. How many people will it take? 4. What might go wrong? 4.2 Project Planning - Definition Software Project Management (CS615) 143 © Copyright Virtual University of Pakistan • What is it? Software project planning involves estimation - your attempt to determine how much money, how much effort, how many resources, and how much time it will take to build a specific software- based system or product. • Who does it? Software Project Managers- Using information solicited from customers and software engineers and software metrics data collected from past projects. It is advisable to generate your estimates using at least two different methods (as a cross check). Problem complexity and risk are considered before a final estimate is made. • What is the work product? A Simple table delineating the tasks to be performed, the functions to be implemented and the cost, effort and time involved for each is generated. A list of required project
  • 360. resources is also produced. • How do I ensure that I've done it right? That’s hard, because you won't really know until the project has been completed. However, if you have experience and follow a systematic approach, generate estimates using solid historical data, create estimation, data points using at least two different methods, and factors in complexity and risk. You can feel confident that you've done a right job to achieve the targets. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 4.3 Project Planning: Key Tasks 1. Set goal and scope 2. Select lifecycle 3. Set organization team form 4. Start team selection
  • 361. 5. Determine risks 6. Create WBS 7. Identify tasks 8. Estimate size 9. Estimate effort 10. Identify task dependencies 11. Assign resources 12. Schedule work 4.4 Project Management Process The software development management section, which describes the organization and resources that will be used to develop the product, should always be included. The management section discusses how the facilities will be organized to support the development effort. This is one of the sections that provide much of the detail needed to prepare the heart of the development plan, namely the development schedule. The schedule provides answers to two basic planning questions: what and when, while much of the remaining sections discuss how. Software Project Management (CS615) 144 © Copyright Virtual University of Pakistan The discussion in the how sections provides information on how the project will be organized, how risks will be handled, how reviews will be conducted, how standards will be applied, what development methodologies will be used, and how the product will be tested. It is usually best to leave the completion of the schedule section for last. The
  • 362. schedule, being dependent on most of the other sections, is the most sensitive part of the development plan. After a first draft of the development plan is ready, an initial development schedule can then be prepared. As we shall see, the schedule will then be further refined as the development plan goes through progressive iteration. Why is the system being developed? The answer to this question enables all parties to assess the validity of business reasons for the software work. Stated in another way, does the business purpose justify the expenditure of people, time and money? What will be done, by when? The answers to these questions help the team to establish a project schedule by identifying key project tasks and the milestones that are required by the customer. Who is responsible for a function? Earlier in this chapter, we noted that the role and responsibility of each member of the software team must be defined. The answer to this question helps accomplish this. Where they are organizationally located? Not all roles and responsibilities reside within the software team itself. The customer, users, and other stake holders also have responsibilities. How will the job be done technically and managerially? Once product scope is established, a management and technical strategy for the project-must be defined. How much of each resource is needed? The answer to
  • 363. this question is derived by developing estimates based on answers to earlier questions. The definition phase focuses on what. That is, during definition, the software engineer attempts to identify what information is to be processed, what function and performance are desired, what system behavior can be expected, what interfaces are to be established, what design constraints exist, and what validation criteria are required to define a successful system. The key requirements of the system and the software are identified. Although the methods applied during the definition phase will vary depending on the software engineering paradigm (or combination of paradigms) that is applied, three major tasks will occur in some form: system or information engineering, software project planning and requirements analysis. The development phase focuses on how. That is, during development a software engineer attempts to define how data are to be structured, how function is to be implemented within a software architecture, how procedural details are to be Software Project Management (CS615) 145 © Copyright Virtual University of Pakistan implemented, how interfaces are to be characterized, how the design will be translated into a programming language (or nonprocedural language), and how testing
  • 364. will be performed. The methods applied during the development phase will vary, but three specific technical tasks should always occur: software design, code generation, and software testing. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. The support Phase focuses on Change associated with error correction, adaptations required as the software's environment evolves, and changes due to enhancements brought about by changing customer requirements. The support phase reapplies the steps of the definition and development phases but does so in the context of existing software. Four types of change are encountered during the support phase: 1. Correction Even with the best quality assurance activities, it is
  • 365. likely that the customer will uncover defects in the software. Corrective maintenance changes the software to correct defects. 2. Adaptation Over time, the original environment (e.g., CPU, operating system, business rules, external product characteristics) for which the software was developed is likely to change. Adaptive maintenance results in modification I the software to accommodate changes to its external environment. 3. Enhancement As software is used, the customer/user will recognize additional functions that will provide benefit. Perfective maintenance extends the software beyond its original functional requirements. 4. Prevention Computer software deteriorates due to change, and because ( this, preventive maintenance, often called software reengineering, must be conducted to enable the software to serve the needs of its end users, in essence, preventive maintenance makes changes to computer programs so that they ca be more easily corrected, adapted, and enhanced. In addition to these support activities, the users of software require continuing support. In-house technical assistants, telephone-help desks, and applicationspecific Web sites are often implemented as part of the support phase. 4.5 Planning Puzzle
  • 366. Planning is one of the most important management activities and includes the preparation of good estimates, the maintenance of the development schedules and the efficient assignment of personnel. i. Scope Planning Software Project Management (CS615) 146 © Copyright Virtual University of Pakistan Scope planning is the process of progressively elaborating and documenting the project work (project scope) that produces the product of the project. ii. Risk Planning Risk management planning is the process of deciding how to approach and plan the risk management activities for a project. It is important to plan for the risk management processes that follow to ensure that the level, type, and visibility of risk management are commensurate with both the risk and importance of the project to the Organization. iii. Schedule Development Analyzing activity sequences, activity durations, and resource requirements to create the project schedule. iv. Cost Estimating Developing an approximation (estimate) of the costs of the resources required to complete project activities v. Project Control Project Control may be considered to be one of the continuous objectives for the
  • 367. project manager. As such he is responsible for taking remedial actions, within the defined terms of reference, to correct potential problems or taking risk avoidance measures. The prime objective is to protect the integrity of the project at all times. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. mes. 4.6 Primary Planning Steps Once the scope of the project has been defined in the Terms of Reference, the project enters the detailed planning phase. This involves the creation of a: 1. Project Plan (outlining the activities, tasks, dependencies and timeframes) 2. Resource Plan (listing the labor, equipment and
  • 368. materials required) 3. Financial Plan (identifying the labor, equipment and materials costs) 4. Quality Plan (providing quality targets, assurance and control measures) 5. Risk Plan (highlighting potential risks and actions taken to mitigate them) 6. Acceptance Plan (listing the criteria to be met to gain customer acceptance) 7. Communications Plan (listing the information needed to inform stakeholders) 8. Procurement Plan (identifying products to be sourced from external suppliers). At this point the project has been planned in detail and is ready to be executed By this stage, the benefits and costs of the project have been clearly documented, the objectives and scope have been defined, the project team has been appointed and a formal project office environment established. It is now time to undertake detailed planning to ensure that the activities performed in the execution phase of the project are properly sequenced, resourced, executed and controlled. Software Project Management (CS615) 147 © Copyright Virtual University of Pakistan 1. Develop Project Plan The first step is to document the Project Plan. A 'Work Breakdown Structure' (WBS) is identified, which includes a hierarchical set of phases, activities and tasks to be undertaken on the project. After the WBS
  • 369. has been agreed, an assessment of the effort required to undertake the activities and tasks is made. The activities and tasks are sequenced, resources are allocated and a detailed project schedule is formed. This project schedule will become the primary tool for the Project Manager to assess the progress of the project. 2. Develop Resource Plan Immediately after the Project Plan is formed, it is necessary to allocate the resources required to undertake each of the activities and tasks within the Project Plan. Although general groups of resources may have already been allocated to the Project Plan, a detailed resource assessment is required to identify the: ƒ Types of resources (labor, equipment and materials) ƒ Total quantities of each resource type ƒ Roles, responsibilities and skill-sets of all human resources ƒ Items, purposes and specifications of all equipment resource ƒ Items and quantities of material resource A schedule is assembled for each type of resource so that the Project Manager can assess the resource allocation at each stage in the project. 3. Develop Financial Plan Similar to the Resource Plan, a Financial Plan is prepared to identify the quantity of money required for each stage in the project. The total cost of labor, equipment and materials is quantified and an expense schedule is
  • 370. defined which provides the Project Manager with an understanding of the forecast spending vs. the actual spending throughout the project. Preparing a detailed Financial Plan is extremely important as the project's success will depend on whether or not it is delivered within the 'time, cost and quality' estimates for this project. 4. Develop Quality Plan Meeting the quality expectations of the customer is critical to the success of the project. To ensure that the quality expectations are clearly defined and can reasonably be achieved, a Quality Plan is documented. The Quality Plan: ƒ Defines what quality means in terms of this project Software Project Management (CS615) 148 © Copyright Virtual University of Pakistan ƒ Lists clear and unambiguous quality targets for each deliverable. Each quality target provides a set of criteria and standards which must be achieved to meet the expectations of the customer ƒ Outlines a plan of activities which will assure the customer that the quality targets will be met (i.e. a Quality Assurance Plan) ƒ Identifies the techniques used to control the actual level of quality of each deliverable as it is built (i.e. a Quality Control Plan). Finally, it is important to review the quality not only of the deliverables produced by the project but also of the management processes
  • 371. which produce them. A summary of each of the management processes undertaken during the execution phase is identified, including Time, Cost, Quality, Change, Risk, Issue, Procurement, Acceptance and Communications Management. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for each of the Primary Planning Steps as part of a lecture on project management: 4.6 Primary Planning Steps 4.6 Primary Planning Steps 4.6 Primary Planning Steps 4.6 Primary Planning Steps 4.6 Primary Planning Steps Develop Project Plan: 1 Example: In a project to build a new website for a client, the project manager creates a Work Breakdown Structure (WBS) that divides the work into phases like Design, Development, and Testing. Each phase is broken down into smaller tasks such as Create wireframes or Develop homepage code. The tasks are sequenced, and a project schedule is created to track progress. 2 Develop Resource Plan: 3 Example: For the website project, the resource plan details the types of resources needed, such as web developers, graphic designers, and computers. It specifies how many developers are required, what skills 4
  • 372. they need (e.g., HTML, CSS), and what tools they will use. The plan ensures resources are allocated to each task at the right time. Develop Financial Plan: 5 Example: The financial plan for the website project estimates the cost of hiring developers, purchasing design software, and hosting the site. The project manager creates a budget that shows how much money will be spent at different stages, ensuring the project stays within financial limits. 6 Develop Quality Plan: 7 Example: The quality plan for the website project defines quality standards like page load times and responsiveness on mobile devices. It sets specific quality targets, such as ensuring all pages load within 3 seconds. The plan outlines quality assurance activities like code reviews and testing to ensure these targets are met. 8 Develop Risk Plan: 9 Example: The risk plan identifies potential risks in the website project, such as delays due to developer illness or security vulnerabilities in the code. The plan includes strategies to mitigate these risks, like having backup developers or performing regular security checks. 10 Develop Acceptance Plan: 11 Example: The acceptance plan for the website project lists the criteria that need to be met for the client to approve the final product. This could include requirements like a fully functional e-commerce system, a user-friendly interface, and successful completion of user testing. 12 Develop Communications Plan: 13 Example: The communications plan outlines how the project team will keep stakeholders informed about progress. This may include regular status meetings, email updates, and a shared project dashboard where team members can check progress in real-time. 14 Develop Procurement Plan: 15 Example: The procurement plan identifies the items the project needs to source externally, such as purchasing web hosting services or design software licenses. The plan includes details on suppliers, timelines, and costs for these external purchases. 16
  • 373. 5. Develop Risk Plan The foreseeable project risks are then documented within a Risk Plan and a set of actions to be taken formulated to both prevent each risk from occurring and reduce the impact of the risk should it eventuate. Developing a clear Risk Plan is an important activity within the planning phase as it is necessary to mitigate all critical project risks prior to entering the Execution phase of the project. 6. Develop Acceptance Plan The key to a successful project is gaining acceptance from the customer that each deliverable produced meets (or exceeds) his/her requirements. To clarify the criteria used to judge each deliverable for customer acceptance, an Acceptance Plan is produced. The Acceptance Plan provides the criteria for obtaining customer acceptance, a schedule of acceptance reviews within which customer acceptance will be sought and a summary of the process used to gain acceptance of each deliverable from the customer. 7. Develop Communications Plan Prior to the Execution phase, it is also necessary to These examples explain each concept in a straightforward manner, ensuring coherence as part of the lecture content. If you need further elaboration on any topic, feel free to ask!
  • 374. identify how each of the stakeholders will be kept informed of the progress of the project. The Communications Plan identifies the types of information to be distributed, the methods of distributing information to stakeholders, the frequency of distribution and responsibilities of each person in the project team for distributing information regularly to stakeholders. 8. Develop Procurement Plan The last planning activity within the Planning phase is to identify the elements of the Project which will be acquired from external suppliers to the project. The Procurement Plan provides a detailed description of the Products (i.e. goods and services) to be procured from suppliers, the justification for procuring each Software Project Management (CS615) 149 © Copyright Virtual University of Pakistan product externally, as opposed to from within the business, and the schedule for procurement. It also references the process for the selection of a preferred supplier (Tender Process) and the process for the actual order and delivery of the procured products (Procurement Process). (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are
  • 375. part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for each of the additional Planning Steps as part of a coherent lecture on project management: 5. 5. 5. 5. 5. Develop Risk Plan Develop Risk Plan Develop Risk Plan Develop Risk Plan Develop Risk Plan: : : : : 6. 6. 6. 6. 6. Develop Acceptance Plan Develop Acceptance Plan Develop Acceptance Plan Develop Acceptance Plan Develop Acceptance Plan: : : : : 7. 7. 7. 7. 7. Develop Communications Plan Develop Communications Plan Develop Communications Plan Develop Communications Plan Develop Communications Plan: : : : : 8. 8. 8. 8. 8. Develop Procurement Plan Develop Procurement Plan Develop Procurement Plan Develop Procurement Plan Develop Procurement Plan: : : : : Example: In a project to develop a mobile app, the project manager identifies risks such as delays in app testing or issues with app store approvals. The risk plan outlines actions to prevent these risks, like scheduling extra time for testing and staying informed about app store guidelines. If a risk occurs, the plan also includes steps to reduce its impact, such as prioritizing critical fixes if testing takes longer than expected. Example: For a software development project, the acceptance plan specifies the criteria for customer approval. For example, the software must pass all functional tests, meet performance benchmarks, and align with the client's user interface design requirements. The plan includes a schedule for acceptance reviews, where the client will evaluate each deliverable, such as when the software is handed over for user testing or deployment. Example: In a project to launch a new e-commerce website, the communications plan outlines how the team will keep stakeholders informed. This could include weekly status reports via email to the client, regular updates to an internal project management tool for team members, and monthly meetings to review progress with senior management. The plan also assigns specific team members to handle these communications. Example: For a project to implement a new IT system in an organization, the procurement plan lists the products and services to be purchased from external suppliers. This might include hardware like servers and software licenses. The plan justifies why external suppliers are needed, provides a
  • 376. 4.7 The Software Development Plan (SDP) The project development plan is one of the first formal documents produced by the project. Within this document, the project manager describes in detail: ƒ How the project will be developed? ƒ What resources will be required? ƒ How these resources will be used? The project development plan assures that the development of the project is well charted before the main development activities begin. In -addition to the basic development schedule, the plan addresses such issues as: ƒ The timely provision of equipment and tools so that they are available to developers when needed. ƒ The availability of staff to perform the development tasks in accordance with the schedule. ƒ Provision of contingency plans in the event that project risks materialize ƒ The designation .of duties within the development team, and the assignment of these duties to the team members. These examples provide clarity for the lecture on project management planning, ensuring the explanations are straightforward and connected to the content covered in earlier sections. Let me know if you need more details on any topic! timeline for procurement, and details the process for selecting vendors, including how bids will be evaluated and how orders will be placed.
  • 377. Preparing the project plan for a software project helps you ensure that the specified requirements and objectives are met successfully. It is a collation of all planning activities that have happened for a software project. This includes activities such as design and analysis, activity definition, risk planning, and cost estimation. To create the plan, you assess all planning activities, organizational policies regarding the creation of the project plan and assumption and constraints for the project. To implement the software project plan, you require management skills, such as leadership, communication, and problem solving, along with the basic knowledge about the software. You also need to ensure that the senior management bf the company has authorized work on the software project. Knowledge management techniques help you to make informed decision regarding the project plan. After the project plan is executed, you manage the changes to it in such a way that the performance measurement baselines are not impacted, To manage the project plan effectively you monitor the project plan, periodic performance status reports, and requests for change. The primary tool that you can use to control the changes in the project plan is the change control mechanism: This is a set of formal procedures for changing the project plan.
  • 378. 4.7.1 Software Development Plan (SDP) Information needs Software Project Management (CS615) 150 © Copyright Virtual University of Pakistan The Project Plan is a vital part of the project initiation stage. The plan should normally contain the following information: 1. Introduction and status of the plan 2. The authorisation procedures 3. Statement of project objectives 4. Statement of requirement 5. Deliverables in the project 6. A Work Breakdown Structure 7. The project milestones 8. The resource requirements 9. Interdependencies of work 10. The timetable of events 11. Staffing, organisation and responsibilities 12. Development methods and toolsets to be used 13. Source documentation 14. Resource and financial summary This information creates the generation of a Project Book (log). The log should be in a loose-leaf binder with clearly identified sections and version control exercised over the documentation sets. These logs are now often retained as computer file, which enables a greater level of security to be maintained over them and version control to be established as an automatic feature. (my prompt is that give me simple beginner level
  • 379. examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples of the Software Development Plan (SDP) topics that align with the lecture: Software Development Plan (SDP) Examples Software Development Plan (SDP) Examples Software Development Plan (SDP) Examples Software Development Plan (SDP) Examples Software Development Plan (SDP) Examples The Software Development Plan (SDP) is a key document prepared at the start of a project. Below are examples of the essential elements: Introduction and Status of the Plan: 1 Example: A software project to create an online shopping app starts with an introduction that outlines the project’s purpose. The status of the plan might be labeled as “Draft,” meaning it is still being refined. 2 Authorization Procedures: 3 Example: The project manager ensures that the app development project gets approval from the company's senior management before beginning work. This includes official sign-offs from key stakeholders. 4 Statement of Project Objectives: 5 Example: The objective of the online shopping app project is to create a user-friendly platform that allows customers to browse products, add items to a cart, and make purchases easily. 6 Statement of Requirements: 7 Example: The requirements for the app might include features like product search, user login, and secure payment integration. These requirements are clearly listed in this section. 8
  • 380. Deliverables in the Project: 9 Example: Deliverables include the final version of the online shopping app, user manuals, and a maintenance guide. These will be delivered at different stages of the project. 10 Work Breakdown Structure (WBS): 11 Example: The WBS for the app development project includes tasks such as designing the user interface, coding the back-end system, and testing the app before release. Each task is broken down into smaller, manageable activities. 12 Project Milestones: 13 Example: Milestones for the app project include completing the design phase, finishing the first prototype, and launching the app on app stores. These milestones help track progress. 14 Resource Requirements: 15 Example: Resources required for the app project include developers, designers, testers, software licenses, and cloud storage. The project plan lists these resources to ensure they are available when needed. 16 Interdependencies of Work: 17 Example: The app’s back-end system must be developed before the user interface can be fully integrated. This dependency is noted so that tasks are performed in the right order. 18 Timetable of Events: 19 Example: The timetable shows when each phase of the project will start and finish, like beginning development in September and completing testing by November. 20 Staffing, Organization, and Responsibilities: 21 Example: The project team consists of a project manager, developers, designers, and testers. Each team member has specific responsibilities, such as coding or testing. 22 Development Methods and Toolsets: 23 Example: The app will be developed using the Agile methodology with toolsets like Git for version control and Jenkins for continuous 24
  • 381. 4.7.2 Software Development Plan (SDP) Steps/items required The contents of the project development plan may be adapted to the size of the project; it may be a large document or just a few pages. Table 1 presents an outline of some of the subjects covered in the project development plan. Not all subjects in Table 1 are applicable to all projects. For example, many projects do not administer their own budget. Some organizations have a Project Book (Log) Project Book (Log) Project Book (Log) Project Book (Log) Project Book (Log) These examples help illustrate the key components of a Software Development Plan and ensure that the lecture content remains coherent and easy to understand. If you need more details or further examples, feel free to ask! integration. Source Documentation: 25 Example: The source documentation includes design documents, code repositories, and test plans, all stored in a secure location like a cloud- based project management system. 26 Resource and Financial Summary: 27 Example: The financial summary details the budget for the app development, including costs for hiring developers, purchasing software licenses, and marketing the app after launch. 28 Example: A Project Book (Log) for the online shopping app is created to track progress, issues, and changes. It is stored digitally in a shared drive with version control, ensuring that any changes made are recorded, and previous versions can be accessed if needed.
  • 382. financial officer responsible for the administration of project budgets. The interface with external sources is another area riot applicable to all projects. The term, external sources covers such activities as interfacing with subcontractors, vendors and representatives of the customer. Many standards have been produced for the project development plan. The formal structure or the project development plan document differs, depending on the actual documentation standard used. For example, the US DOD standard 2167 provides the option of describing the testing, configuration management and quality assurance plans in three separate documents. For large projects, this option can become a requirement. Software Project Management (CS615) 151 © Copyright Virtual University of Pakistan The IEEE standard 1058.1 describes what is referred to as the software project management plan, which is essentially the same as the project development plan. This standard is largely compatible with the 2167 project development plan, although it is significantly less detailed. This standard, too, provides the option of including configuration management and quality assurance plans, or of
  • 383. describing them in separate documents. The project development plan should be prepared as a standalone document, in the sense that it should be read and understood without the need to refer to other documents. A general overview of the project is therefore usually included in the first section of the document. References for additional detail, of course, should always be provided, including pointers to such documents as the project contract, the concept document or the market research analysis. Software Project Management (CS615) 152 © Copyright Virtual University of Pakistan Table 1: Software project development plan items 1. System overview 2. Software development management Project organization and resources Development facilities Project organizational structure Personnel 3. Schedule and milestones Scheduled activities Milestones and baselines Activity network diagrams System component source Budget administration Milestone payments Major budgetary expenditures Expenditure authorization procedure 4. Risk analysis
  • 384. 5. Security 6. Interface with external sources 7. Procedure for formal reviews 8. Corrective action process 9. Problem change report 10. Software engineering Standards and procedures Development methodology Development resources Personnel - qualifications and function 11. Testing procedure 12. Software configuration management 13 Software quality assurance (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples of the topics and items mentioned in the Software Development Plan (SDP) outlined in the lecture. These examples are designed to fit into the context of a lecture and maintain coherence: Software Development Plan (SDP) Items Software Development Plan (SDP) Items Software Development Plan (SDP) Items Software Development Plan (SDP) Items Software Development Plan (SDP) Items System Overview: 1 Example: The system overview describes the overall structure and purpose of a software project. For an online shopping app, the system overview explains that the app allows users to browse products, make 2
  • 385. purchases, and track deliveries. It provides a high-level summary of the system's purpose and its key components. Software Development Management: 3 Project Organization and Resources: 4 Example: The development team is organized into groups like developers, testers, and designers. Resources include software licenses, computers, and cloud storage. 5 Development Facilities: 6 Example: Development facilities may include workstations, software development environments, and access to a version control system like Git. 7 Project Organizational Structure: 8 Example: The organizational structure outlines the roles within the team, such as a project manager overseeing the project, developers writing code, and testers ensuring quality. 9 Personnel: 10 Example: Personnel include developers, testers, and project managers, each with their defined roles and responsibilities. 11 Schedule and Milestones: 12 Scheduled Activities: 13 Example: Activities like requirements gathering, coding, testing, and deployment are scheduled with specific timelines. 14 Milestones and Baselines: 15 Example: A milestone could be completing the app’s prototype, while a baseline refers to the original timeline for completing each phase of the project. 16 Activity Network Diagrams: 17 Example: These diagrams show the sequence of activities and dependencies, such as finishing the design phase before starting development. 18 System Component Source: 19 Example: This refers to where the components of the app come from, such as open-source libraries or custom code. 20 Budget Administration: 21
  • 386. Example: If the project has its own budget, it will be managed by tracking expenses like developer salaries and software licenses. 22 Milestone Payments: 23 Example: Payments might be made to vendors or subcontractors when specific milestones, like completing a design phase, are achieved. 24 Major Budgetary Expenditures: 25 Example: Expenditures could include buying servers for hosting or paying for cloud services. 26 Expenditure Authorization Procedure: 27 Example: This outlines how spending is approved, such as requiring sign-off from the project manager for purchases above a certain amount. 28 Risk Analysis: 29 Example: Risk analysis might identify potential risks like delays in delivery, security breaches, or lack of resources, and plan actions to mitigate these risks. 30 Security: 31 Example: Security measures for the online shopping app might include encryption of user data, secure login processes, and regular security audits. 32 Interface with External Sources: 33 Example: External sources might include third-party payment processors or vendors supplying APIs (Application Programming Interfaces) used in the app. The plan outlines how the project will communicate and work with these external entities. 34 Procedure for Formal Reviews: 35 Example: The formal review procedure might involve scheduled meetings where the team reviews the progress of the project with stakeholders to ensure everything is on track. 36 Corrective Action Process: 37 Example: If a problem arises, like a delay in development, the corrective action process outlines steps to get the project back on track, such as reallocating resources or adjusting timelines. 38
  • 387. These examples explain the essential items in a Software Development Plan and align with the lecture content. If you need further explanations or more detailed examples, feel free to ask! Problem Change Report: 39 Example: This report documents any issues that arise during development, like bugs or design flaws, and tracks their resolution. 40 Software Engineering: 41 Standards and Procedures: Example: The team follows coding standards, such as naming conventions and code review processes, to ensure quality and consistency. Development Methodology: Example: The project uses Agile methodology, which involves iterative development and regular feedback from stakeholders. Development Resources: Example: Resources include development tools like integrated development environments (IDEs), version control systems, and testing frameworks. Personnel - Qualifications and Function: Example: Developers might have specific qualifications like expertise in Java or Python, and their functions include writing and testing code. Testing Procedure: 1 Example: The testing procedure includes unit testing, integration testing, and user acceptance testing to ensure that the app works as intended before release. 2 Software Configuration Management: 3 Example: Configuration management tracks changes to the software code, ensuring that updates are controlled and that previous versions can be restored if needed. 4 Software Quality Assurance: 5 Example: Quality assurance involves regular checks to ensure the software meets quality standards, such as ensuring the app is free from critical bugs and performs well under various conditions. 6
  • 388. 4.7.3 Inputs to SDP Project plan development uses the outputs of the other planning processes, including strategic planning, to create a consistent, coherent document that can be used to guide both project execution and project control. This process is almost always iterated several times. For example, the initial draft may include generic resource requirements and an undated sequence of activities while the subsequent versions of the plan will include specific resources and explicit dates. 1. Other planning outputs. All of the outputs of the planning processes in the other knowledge areas are inputs to developing the project plan. Other planning outputs include both base documents, such as the WBS, and the Software Project Management (CS615) 153 © Copyright Virtual University of Pakistan supporting detail. Many projects will also require application area-specific inputs (e.g., most major projects will require a cash- flow forecast). 2. Historical information. The available historical information (e.g., estimating data-bases, records of past project
  • 389. performance) should have been consulted during the other project planning processes. This information should also be available during project plan development to assist with verifying assumptions and assessing alternatives that are identified as part of this process. 3. Organizational policies. Any and all of the organizations involved in the project may have formal and informal policies whose effects must be considered. Organizational policies that typically must be considered include, but are not limited to: ƒ Quality management—process audits, continuous improvement targets ƒ Personnel administration—hiring and firing guidelines, employee performance reviews ƒ Financial controls—time reporting, required expenditure and disbursement reviews, accounting codes, and standard contract provisions. 4. Constraints. A constraint is an applicable restriction that will affect the performance of the project. For example, a predefined budget is a constraint that is highly likely to limit the team’s options regarding scope, staffing, and schedule. When a project is performed under contract,
  • 390. contractual provisions will generally be constraints. 5. Assumptions. Assumptions are factors that, for planning purposes, are considered to be true, real, or certain. Assumptions affect all aspects of project planning, and are part of the progressive elaboration of the project. Project teams frequently identify, document, and validate assumptions as part of their planning process. For example, if the date that a key person will become available is uncertain, the team may assume a specific start date. Assumptions generally involve a degree of risk. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples of the inputs to the Software Development Plan (SDP) as outlined in the lecture. These examples are designed to maintain coherence in the lecture. Inputs to the Software Development Plan (SDP) Inputs to the Software Development Plan (SDP) Inputs to the Software Development Plan (SDP) Inputs to the Software Development Plan (SDP) Inputs to the Software Development Plan (SDP) Other Planning Outputs: 1 Example: Outputs from other planning processes, like the Work Breakdown Structure (WBS), serve as inputs to the SDP. For example, if the WBS outlines the tasks required to develop a software 2
  • 391. application, these tasks and their breakdown into smaller units are included in the project plan. The project plan will also include information like resource allocation, which may come from a resource management plan, and a timeline for activities that can be derived from the schedule planning process. Historical Information: 3 Example: When developing a software project plan, the team might look at past projects to estimate how long it will take to complete similar tasks. For example, if a previous project took six months to develop a feature similar to one in the current project, this information can help in making realistic time and cost estimates. Historical data like past project performance, budget, and resource usage guide the planning process by providing benchmarks and helping to avoid repeating past mistakes. 4 Organizational Policies: 5 Example: Organizational policies such as quality management procedures need to be considered. For instance, the company may have a policy requiring regular code reviews to ensure quality, or there could be specific guidelines on hiring practices, like requiring a particular qualification for developers. Financial controls may also dictate how time is reported or how expenditures are reviewed, impacting how the budget is managed in the project. 6 Constraints: 7 Example: A predefined budget is an example of a constraint. If a project has a budget limit of $100,000, the project team will need to plan accordingly, ensuring that the scope of the project, staffing, and the schedule are all aligned with this financial constraint. Other constraints might include deadlines that cannot be moved or technology restrictions, such as having to use specific software or hardware due to contractual obligations. 8 Assumptions: 9 Example: Assumptions are conditions believed to be true during the planning process. For instance, the team might assume that a key developer will be available to start working on a specific date, even though this is uncertain. If this assumption turns out to be incorrect, the project timeline might be affected. Assumptions can involve risks, 10
  • 392. From ChatGPT, designed with FancyGPT These examples help illustrate the inputs required for the Software Development Plan (SDP), providing a clear and coherent understanding of how these factors contribute to the overall planning process. Let me know if you need more details on any of these topics! and the team needs to be aware of them as they might impact the project’s success.
  • 393. cs615 lecture 24 cs615 lecture 24 cs615 lecture 24 cs615 lecture 24 cs615 lecture 24 LECTURE # 24 4. PLANNING 4.7.4 Tools and Techniques for SDP 6. Project planning methodology. A project planning methodology is any structured approach used to guide the project team during development of the project plan. It may be as simple as standard forms and templates (whether paper or electronic, formal or informal) or as complex as a series of required simulations (e.g., Monte Carlo analysis of schedule risk). Most project planning methodologies make use of a combination of “hard” tools, such as project management software, and “soft” tools, such as facilitated startup meetings. 7. Stakeholder skills and knowledge. Every stakeholder has skills and knowledge that may be useful in developing the project plan. The project management team must create an environment in which the stakeholders can contribute appropriately. Who contributes, what they con- tribute, and when they contribute will vary. For example: ƒ On a construction project being done under a lump-sum contract, the professional cost engineer will make a major contribution to the profitability objective during proposal preparation when the contract amount is being determined. ƒ On a project where staffing is defined in advance, the individual contributors may contribute significantly to meeting cost and schedule objectives by reviewing duration and effort estimates for reasonableness. 8. Project management information system (PMIS). A PMIS consists of the tools and techniques used to gather, integrate, and disseminate 16/08/2024, 08:30 FancyGPT - cs615 lecture 24 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/8
  • 394. the outputs of project management processes. It is used to support all aspects of the project from initiating through closing, and can include both manual and automated systems. 9. Earned value management (EVM). A technique used to integrate the project’s scope, schedule, and resources and to measure and report project performance from initiation to closeout. 4.7.5 Outputs from SDP 1. Project plan: The project plan is a formal, approved document used to manage project execution. The project schedule lists planned dates for Software Project Management (CS615) 155 © Copyright Virtual University of Pakistan performing activities and meeting milestones identified in the project plan. The project plan and schedule should be distributed as defined in the communications management plan (e.g., management of the performing organization may require broad coverage with little detail, while a contractor may require complete details on a single subject). In some application areas, the term integrated project plan is used to refer to this document. A clear distinction should be made between the project plan and the project performance measurement baselines. The project plan is a document or collection of documents that should be expected to change over time as more information becomes available about the project. The performance measurement baselines will usually change only intermittently and then generally only in response to an approved scope of work or deliverable change. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give 16/08/2024, 08:30 FancyGPT - cs615 lecture 24 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/8
  • 395. coherent examples. 4.7.6 SDP Execution Project plan execution is the primary process for carrying out the project plan the vast majority of the project’s budget will be expended in performing this process. Here are beginner-level examples for each of the topics in your lecture: 6. Project Planning Methodology 6. Project Planning Methodology 6. Project Planning Methodology 6. Project Planning Methodology 6. Project Planning Methodology Example: In a software development project, the project manager could use a project planning methodology that includes a standard template for creating the project plan. This template might include sections for project objectives, scope, milestones, resource allocation, and risk management. The team fills out the template to create a structured plan. For more complex projects, the methodology might also include using project management software to simulate potential risks and outcomes, such as identifying the likelihood of delays in the schedule through Monte Carlo analysis. 7. Stakeholder Skills and Knowledge 7. Stakeholder Skills and Knowledge 7. Stakeholder Skills and Knowledge 7. Stakeholder Skills and Knowledge 7. Stakeholder Skills and Knowledge Example: On a bridge construction project, a structural engineer contributes their expertise during the design phase to ensure the bridge can handle expected loads. At the same time, a financial analyst reviews the project's cost estimates to ensure they align with the budget. The project manager coordinates these contributions, ensuring the right people provide input at the right times to optimize the project plan's effectiveness. 8. Project Management Information System (PMIS) 8. Project Management Information System (PMIS) 8. Project Management Information System (PMIS) 8. Project Management Information System (PMIS) 8. Project Management Information System (PMIS) Example: A PMIS for a marketing campaign project might include software that tracks task progress, budget expenditures, and resource allocation. Team members enter updates on their tasks, and the PMIS compiles these into reports that the project manager can review. This system helps keep everyone informed and ensures that all aspects of the project are aligned and on track from the beginning to the end of the project. 9. Earned Value Management (EVM) 9. Earned Value Management (EVM) 9. Earned Value Management (EVM) 9. Earned Value Management (EVM) 9. Earned Value Management (EVM) Example: In a software development project, EVM is used to compare the planned work with the actual work completed. For instance, if the project was supposed to complete 50% of the coding phase by a certain date, but only 40% is done, EVM will highlight this discrepancy. The project manager can then take corrective action to get the project back on schedule and within budget. 4.7.5 Outputs from SDP 4.7.5 Outputs from SDP 4.7.5 Outputs from SDP 4.7.5 Outputs from SDP 4.7.5 Outputs from SDP Example: The project plan for a new website development includes a detailed schedule outlining when each section of the website will be designed, developed, tested, and launched. The plan also specifies key milestones, such as completing the homepage or launching the site. This plan is distributed to all stakeholders, ensuring everyone understands the project's timeline and objectives. The project plan will evolve as the project progresses and new information emerges. The performance measurement baselines, such as the cost and timeline estimates, will only change if there are approved modifications to the project's scope or deliverables. 16/08/2024, 08:30 FancyGPT - cs615 lecture 24 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/8
  • 396. In this process, the project manager and the project management team must coordinate and direct the various technical and organizational interfaces that exist in the project. It is the project process that is most directly affected by the project application area in that the product of the project is actually created here. Performance against the project baseline must be continuously monitored so that corrective actions can be taken based on actual performance against the project plan. Periodic forecasts of the final cost and schedule results will be made to support the analysis. 4.7.7 Inputs to SDP Execution 1. Project plan: The subsidiary management plans (scope management plan, risk management plan, procurement management plan, configuration management plan, etc.) and the performance measurement baselines are key inputs to project plan execution. 2. Supporting detail 3. Organizational policies: Any and all of the organizations involved in the project may have formal and informal policies that may affect project plan execution. 4. Preventive action: Preventive action is anything that reduces the probability of potential consequences of project risk events. 5. Corrective action: Corrective action is anything done to bring expected future project performance in line with the project plan. Corrective action is an output of the various control processes—as an input here it completes the feedback loop needed to ensure effective project management. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 16/08/2024, 08:30 FancyGPT - cs615 lecture 24 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/8
  • 397. 4.7.8 Tools and Techniques for SDP Execution Software Project Management (CS615) 156 © Copyright Virtual University of Pakistan 1. General management skills: General management skills such as leadership, Here are simple beginner-level examples for each of the topics in the lecture on SDP Execution: 4.7.6 SDP Execution 4.7.6 SDP Execution 4.7.6 SDP Execution 4.7.6 SDP Execution 4.7.6 SDP Execution Example: In a software development project, the project manager is responsible for ensuring the development team is building the software according to the project plan. They coordinate between different teams, such as developers, designers, and testers, to make sure everyone is working towards the same goal. The project manager monitors the progress of the project by comparing it to the baseline, which includes the planned schedule and budget. If they notice that the project is falling behind schedule or over budget, they will take corrective actions, such as reallocating resources or adjusting the timeline, to keep the project on track. 4.7.7 Inputs to SDP Execution 4.7.7 Inputs to SDP Execution 4.7.7 Inputs to SDP Execution 4.7.7 Inputs to SDP Execution 4.7.7 Inputs to SDP Execution Project Plan Example: For a construction project, the project plan includes detailed subsidiary plans, such as the scope management plan, which outlines the boundaries of the project, and the risk management plan, which identifies potential risks and how to handle them. The project manager uses these plans to guide the execution of the project and ensure that all activities align with the project's objectives. 1 Supporting Detail Example: In a marketing project, the supporting detail could include market research data, a list of required materials, and specifications for promotional materials. This information helps the project team understand the context and requirements of the project, ensuring that the project is executed according to the plan. 2 Organizational Policies Example: In a pharmaceutical project, the company might have policies regarding safety procedures and compliance with regulations. These policies must be followed during the execution of the project to ensure legal and ethical standards are met. The project manager ensures the team is aware of and adheres to these policies throughout the project. 3 Preventive Action Example: In a software development project, preventive action might involve conducting regular code reviews and automated testing to catch and fix issues early on, reducing the likelihood of significant bugs later in the project. By taking these preventive actions, the project team minimizes the risk of major setbacks. 4 Corrective Action Example: If a project to develop a new app is running behind schedule because a feature is taking longer to develop than expected, the project manager might take corrective action by assigning additional developers to help complete the feature on time. This helps align the project's future performance with the original plan. 5 16/08/2024, 08:30 FancyGPT - cs615 lecture 24 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/8
  • 398. communicating, and negotiating are essential to effective project plan execution. 2. Product skills and knowledge: The project team must have access to an appropriate set of skills and knowledge about the project’s product. 3. Work authorization system. A work authorization system is a formal procedure for sanctioning project work to ensure that work is done at the right time and in the proper sequence. The primary mechanism is typically a written authorization to begin work on a specific activity or work package. The design of a work authorization system should balance the value of the control provided with the cost of that control. For example, on many smaller projects, verbal authorizations will be adequate. 4. Status review meetings. Status review meetings are regularly scheduled meetings held to exchange information about the project. On most projects, status review meetings will be held at various frequencies and on different levels (e.g., the project management team may meet weekly by itself and monthly with the customer). 5. Project management information system. 6. Organizational procedures. Any and all of the organizations involved in the project may have formal and informal procedures that are useful during project execution. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple beginner-level examples for each of the topics in the lecture on Tools and Techniques for SDP Execution: 1. General Management Skills 1. General Management Skills 1. General Management Skills 1. General Management Skills 1. General Management Skills 16/08/2024, 08:30 FancyGPT - cs615 lecture 24 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/8
  • 399. 4.7.9 Outputs from SDP Execution 1. Work results. Work results are the outcomes of the activities performed to accomplish the project. Information on work results—which deliverables have been completed and which have not, to what extent quality standards are being met, what costs have been incurred or committed, etc.—is collected as part of project plan execution and fed into the performance reporting process. It should be noted that although outcomes are frequently tangible deliverables such as buildings, roads, etc., they are also often intangibles Example: In a web design project, the project manager needs to use leadership to inspire the team, communicate effectively to ensure everyone understands their tasks and negotiate with stakeholders to manage expectations and project scope. These skills help the project manager navigate challenges and keep the project on track. 2. Product Skills and Knowledge 2. Product Skills and Knowledge 2. Product Skills and Knowledge 2. Product Skills and Knowledge 2. Product Skills and Knowledge Example: In a mobile app development project, the team members need to know programming languages like Java or Swift and understand user interface design principles. This knowledge enables them to create an app that meets the project’s requirements and delivers a high-quality product. 3. Work Authorization System 3. Work Authorization System 3. Work Authorization System 3. Work Authorization System 3. Work Authorization System Example: In a manufacturing project, the project manager uses a work authorization system to formally approve the start of each production phase. This system might involve issuing written authorizations that specify when to begin work on different components of the product. For smaller tasks, the project manager might use verbal authorizations to streamline the process while still maintaining control. 4. Status Review Meetings 4. Status Review Meetings 4. Status Review Meetings 4. Status Review Meetings 4. Status Review Meetings Example: In a marketing campaign project, the project team holds weekly status review meetings to discuss progress, address any issues, and plan the next steps. Once a month, a larger meeting with the client is held to provide updates and ensure alignment with their expectations. These meetings help keep everyone informed and focused on the project’s objectives. 5. Project Management Information System (PMIS) 5. Project Management Information System (PMIS) 5. Project Management Information System (PMIS) 5. Project Management Information System (PMIS) 5. Project Management Information System (PMIS) Example: A PMIS in a construction project might include software tools that track project progress, resource usage, and budget expenditures. Team members input data, and the system compiles this into reports for the project manager. These reports help the project manager make informed decisions and ensure the project stays on track. 6. Organizational Procedures 6. Organizational Procedures 6. Organizational Procedures 6. Organizational Procedures 6. Organizational Procedures Example: In a healthcare IT project, the organization might have procedures for handling patient data securely and ensuring compliance with health regulations. These procedures must be followed during the project execution to maintain data privacy and meet legal requirements. The project manager ensures the team is aware of and adheres to these procedures throughout the project. 16/08/2024, 08:30 FancyGPT - cs615 lecture 24 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/8
  • 400. From ChatGPT, designed with FancyGPT such as people trained who can effectively apply that training. 2. Change requests. Change requests (e.g., to expand or contract project scope, to modify cost [budgets], or schedule estimates [dates, etc.]) are often identified while the work of the project is being done. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple beginner-level examples for each of the topics in the lecture on Outputs from SDP Execution: 1. Work Results 1. Work Results 1. Work Results 1. Work Results 1. Work Results Example: In a software development project, the work results include the completed modules of the software, documentation, and test results. The project manager collects this information to report on the project’s progress, indicating which parts of the software have been developed, tested, and are ready for deployment. In addition to the software itself, work results could also include intangible outcomes, such as training sessions conducted for team members to improve their skills in using the new software tools. 2. Change Requests 2. Change Requests 2. Change Requests 2. Change Requests 2. Change Requests Example: During the construction of a new office building, a client may request additional office spaces or a change in the layout. This requires the project team to adjust the project scope and potentially the budget and timeline. The project manager documents these change requests, assesses their impact on the project, and seeks approval before implementing the changes. This process ensures that any modifications to the project are formally managed and communicated to all stakeholders. 16/08/2024, 08:30 FancyGPT - cs615 lecture 24 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/8
  • 401. cs615 lecture 25 cs615 lecture 25 cs615 lecture 25 cs615 lecture 25 cs615 lecture 25 LECTURE # 22 3. Processes ⇒Planning Process Tasks 1. Scope Planning 2. Scope Definition 3. Activity Definition 4. Activity Sequencing 5. Activity Duration Estimating 6. Resource Planning 7. Cost Estimating 8. Cost Budgeting Risk Planning 9. Schedule Development 10. Quality Planning 11. Communications Planning 12. Organization Planning 13. Staff Acquisition 14. Procurement Planning 15. Project Plan Development 1) Scope Planning — developing a written scope statement as the basis for future project decisions 2) Scope Definition—subdividing the major project deliverables into smaller, more manageable components 3) Activity Definition—identifying the specific activities that must be performed to produce the various project deliverables
  • 402. 4) Activity Sequencing—identifying and documenting interactivity dependencies 5) Activity Duration Estimating—estimating the number of work periods that will be needed to complete individual activities. 6) Resource Planning—determining what resources (people, equipment, materials, etc.) and what quantities of each should be used to perform project activities. 7) Cost Estimating—developing an approximation (estimate) of the costs of the resources required to complete project activities. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 8) Cost Budgeting—allocating the overall cost estimates to individual work packages.
  • 403. 9) Schedule Development —analyzing activity sequences, activity durations, and resource requirements to create the project schedule. 10) Quality Planning—identifying which quality standards are relevant to the project and determining how to satisfy them. 11) Communications Planning—determining the information and communications needs of the stakeholders: who needs what information, when will they need it, and how will it be given to them. 12) Organizational Planning—identifying, documenting, and assigning project roles, responsibilities, and reporting relationships. 13) Staff Acquisition—getting the human resources needed assigned to and working on the project. 14) Procurement Planning—determining what to procure, how much to procure, and when. 15) Project Plan Development —taking the results of other planning processes and putting them into a consistent, coherent document. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind
  • 404. in that and give coherent examples. nt. 3.7 Executing Process ⇒Executing Process Tasks 1. Project Plan Execution—carrying out the project plan by performing the activities included therein. 2. Quality Assurance—evaluating overall project performance on a regular basis to provide confidence that the project will satisfy the relevant quality standards 3. Team Development —developing individual and group skills/competencies to enhance project performance 4. Information Distribution—making needed information available to project stakeholders in a timely manner. 5. Solicitation —obtaining quotations, bids, offers, or proposals as appropriate. 6. Source Selection —choosing from among potential sellers. Software Project Management (CS615) 140 © Copyright Virtual University of Pakistan
  • 405. 7. Contract Administration —managing the relationship with the seller. 3.8 Controlling Process Ensuring that project objectives are met by monitoring and measuring progress and taking corrective measures when necessary Project performance must be monitored and measured regularly to identify variances from the plan. Variances are fed into the control processes in the various knowledge areas. To the extent that significant variances are observed (i.e., those that jeopardize the project objectives), adjustments to the plan are made by repeating the appropriate project planning processes. For example, a missed activity finish date may require adjustments to the current staffing plan, reliance on overtime, or tradeoffs between budget and schedule objectives. Controlling also includes taking preventive action in anticipation of possible problems. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 406. ⇒Controlling Process Tasks 1. Integrated Change Control 2. Scope Verification 3. Scope Change Control 4. Schedule Control 5. Cost Control 6. Quality Control 7. Performance Reporting 8. Risk Response Control The controlling process group contains core processes and facilitating processes. 1. Integrated Change Control —coordinating changes across the entire project. 2. Scope Verification—formalizing acceptance of the project scope. 3. Scope Change Control—controlling changes to project scope. 4. Schedule Control—controlling changes to the project schedule. 5. Cost Control—controlling changes to the project budget. 6. Quality Control—monitoring specific project results to determine if they comply with relevant quality standards and identifying ways to eliminate causes of unsatisfactory performance. 7. Performance Reporting—collecting and disseminating performance
  • 407. information. This includes status reporting, progress measurement, and Software Project Management (CS615) 141 © Copyright Virtual University of Pakistan forecasting. 8. Risk Response Control—keeping track of identified risks, monitoring residual risks and identifying new risks, ensuring the execution of risk plans, and evaluating their effectiveness in reducing risk. 3.9 Closing Process Formalizing acceptance of the project or phase and bringing it to an orderly end. ⇒Closing Process Tasks • Contract Closeout —completion and settlement of the contract, including resolution of any open items. • Administrative Closure—generating, gathering, and disseminating information to formalize phase or project completion, including evaluating the project and compiling lessons learned for use in planning future projects or phases. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 408. LECTURE # 25 4. PLANNING 4.7.4 Elements of SDP Project Plan is iteratively defined through Concept Requirements Phase. Initial estimates are refined as scope and requirements become clearer. There are two phases of project plan: 1. Preliminary 2. Final Following are some elements of Software Project Plan: a) Scope Planning • Scope planning is the process of progressively elaborating and documenting the project work (project scope) that produces the product of the project. • Project Scope Planning starts with the initial inputs of product description, the project charter, and the initial definition of constraints and assumptions. • Note that the product description incorporates product requirements that reflect agreed-upon customer needs and the product design that meets the product requirements. • The outputs of scope planning are the scope statement and scope management
  • 409. plan, with the supporting detail. • The scope statement forms the basis for an agreement between the project and the project customer by identifying both the project objectives and the project deliverables. • Project teams develop multiple scope statements that are appropriate for the level of project work decomposition. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. b) Objectives – Business Requirements – Could be “Mission Statement” – Defines Business objectives for project – Includes Business Case (NPV Model) Detailed Description of assumptions. c) Technical Approach Software Project Management (CS615) 158
  • 410. © Copyright Virtual University of Pakistan • Description of how new system is to be developed – Technologies – In House vs. Consultants – Derivatives of existing (i.e. use existing object model) – Architectural Layout – Layers d) Contractual Aspects • Specifies general needs from outside sources – Consultants – Software Suppliers – Hardware Suppliers – Network/Infrastructure Suppliers • There are two types of contracts 1. Cost -Plus 2. Fixed Price (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples related to the additional elements of the Software Project Plan, focusing on Objectives – Business Requirements, Technical Approach, and Contractual Aspects: Objectives – Business Requirements Objectives – Business Requirements Objectives – Business Requirements Objectives – Business Requirements Objectives – Business Requirements Mission Statement Example: The project’s mission might be to Develop a user-friendly e- 1
  • 411. Technical Approach Technical Approach Technical Approach Technical Approach Technical Approach Contractual Aspects Contractual Aspects Contractual Aspects Contractual Aspects Contractual Aspects commerce platform that increases online sales by 20% within the first year of launch. Business Objectives for the Project Example: The business objectives might include “Expanding market reach by enabling online sales,” “Improving customer satisfaction through a better online shopping experience,” and “Reducing operational costs by automating order processing.” 2 Business Case (NPV Model) Detailed Description of Assumptions Example: The business case might include a financial model showing that the project is expected to generate a positive Net Present Value (NPV) over five years. The assumptions might include factors like “The online market will grow by 10% annually,” and “The project will be completed within six months.” 3 Description of How the New System Is to Be Developed Example: The project might decide to develop the e-commerce platform using a combination of in-house resources and external consultants, using the latest web development technologies like React for the frontend and Node.js for the backend. 1 Technologies Example: The project will use specific technologies such as MySQL for the database, AWS for cloud hosting, and Python for backend processing. 2 In-House vs. Consultants Example: The project team might handle the core development in-house but bring in consultants to design the user interface or set up the cloud infrastructure. 3 Derivatives of Existing Systems Example: If the organization already has an object model for managing customer data, the project might reuse this existing model rather than developing a new one from scratch. 4 Architectural Layout – Layers Example: The project’s architectural design might include different layers such as a presentation layer (user interface), a business logic layer (processing transactions), and a data access layer (interacting with the database). 5
  • 412. Most other relationships are some kind of combination of these two 1. Cost-plus (also called Time and material) Cost-plus is a contractual relationship where the developer is paid for the cost of the service provided and in addition is allowed an Specifying General Needs from Outside Sources Example: The project might need to contract with external suppliers for software licenses, additional hardware, or network infrastructure. 1 Consultants Example: The project might hire a consulting firm to help with the system's architecture design or to provide specialized expertise in cloud computing. 2 Software Suppliers Example: The project might purchase third-party software modules or libraries to integrate into the e-commerce platform, such as a payment gateway. 3 Hardware Suppliers Example: The project might need to buy new servers or other hardware components from a hardware supplier to support the platform's infrastructure. 4 Network/Infrastructure Suppliers Example: The project might work with a network supplier to ensure the necessary bandwidth and connectivity for the e-commerce platform. 5 Cost-Plus Contracts Example: In a cost-plus contract, the project would pay the supplier for the actual costs of the work, plus an additional fee for their profit. This might be used when the exact scope of work is uncertain. 6 Fixed-Price Contracts Example: In a fixed-price contract, the project would pay a predetermined amount for the supplier’s services, regardless of how much it costs the supplier to complete the work. This might be used when the scope is well- defined. 7
  • 413. agreed profit margin. This is rather like renting a car the customer pays for the time that the car is used (by the hour, day, week etc.), and for any other expenses such as insurance and gasoline. 2. Fixed price A fixed price contract is a commitment by the developer to provide an agreed product or service for an agreed fee, within an agreed schedule. This is similar to purchasing a bus ticket, when the bus company agrees to take the customer to a specific destination within a published timetable, and for an agreed fee. e) Schedules • Defines specific dates for milestones components • Work Breakdown Structure • Use Scheduling Engines like MS project etc. f) Resource Allocation Software Project Management (CS615) 159 © Copyright Virtual University of Pakistan • Resources such as licenses, servers, or other software/hardware related items • Personnel – how many people of what type and for how long (Remember these are initial estimates in preliminary project plan) g) Evaluation Methods • What methods to be used to validate performance – Testing for adherence to spec – Monitoring usage
  • 414. From ChatGPT, designed with FancyGPT • Web trends • Database Logs – Transaction logs – Setup schedule for reviews h) Overview of Project Management • Define where possible problems can occur – New technologies – Business risks – Resources • Define Contingency Plans – Development methods – If the worst happens, what to do (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples.
  • 415. cs615 lecture 26 cs615 lecture 26 cs615 lecture 26 cs615 lecture 26 cs615 lecture 26 LECTURE # 26 5. ORGANIZATION 4.8.1 Life cycle Models To ensure the successful execution of a project, it is necessary to break down the project into: multiple manageable tasks. Each task is performed in a series using processes. To understand what a process is, consider an example of a non software-related project. You are planning the market launch of an office management product. To create an effective plan, you need to perform certain tasks. • First, you schedule a meeting of all managers and the Finance, Marketing, Production, and Systems personnel. You can follow a process to complete this 'task. You may send email messages or call them up personally. • Next, you decide some feasible marketing and advertising strategies. Again there are processes that help you select the strategies. • Fina1ly, you determine the territory where the product should be launched. This is done in consultation with the Production and
  • 416. Marketing departments. Just like a non software-related project plan consists of multiple processes, a software development activity also consists of multiple tasks. A process or a combination of multiple processes is required to complete each task. A typical SDLC follows a consistent sequence of processes or a process model. A process is defined as a collection of related tasks with specific milestones. To ensure smooth progress of a software project, relevant processes are arranged and executed in a sequence. Every software project is discrete with respect to its complexity, size, and goals. Therefore, different process models are designed for different software projects. These process models provide approaches that decide the path of software development from the conceptualization of a project to its formal termination. 1. The Waterfall model: This is the traditional life cycle model. It assumes that all phases in a software project are carried out sequentially and that each phase is completed before the next is taken up. 2. The Prototyping Model: A model that works on an iterative cycle of gathering customer requirements, producing a prototype based on the requirement specifications, and getting the prototype validated by the
  • 417. Software Project Management (CS615) 161 © Copyright Virtual University of Pakistan customer. Each iteration of the life cycle builds on the prototype produced in the previous iteration. 3. The Incremental Model: The Incremental model is an example of an evolutionary life cycle model. It combines the linear nature of the Waterfall model and the iterative nature of the Prototyping model. The Incremental model divided the development life cycle into multiple linear sequences, each of which produces an increment of the final software product. In this model, the software product is developed in builds. A build is defined as a selfcontained unit of the development activity. The entire development cycle is planned for a specific number of logical builds, each having a specific set of features. 4. The Spiral model: Another evolutionary life cycle model that combines the linear nature of the Waterfall model and the iterative nature of the Prototyping model. The project life cycle is divided into phases, and each phase is executed in all of the iteration of the Spiral Model. 5. The RAD Model: A Process defines the overall processes that an organization needs to follow to manage a project efficiently. It defines a structured approach to sequence the
  • 418. phases and identify the requirements of each phase in the SDLC. The definition of the phases in a process model helps organize, monitor, and execute a project efficiently. A process model is flexible and does not follow any rigid rules of implementation. An organization can deploy a totally new process model for its overall software development effort. It can also customize an existing process model to merge with its implemented process model. For example, figure 1, shows two process models, A and B. Process model A was used by an organization that manufactures confidential defense applications. The management used the model to plan extensively for unexpected project risks. However, after discussing with the project managers and system analysts, the organization wants to merge its current process model with a model lat has simple and consistent SDLC phases. This leads to the evolution of the process model B. Software Project Management (CS615) 162 © Copyright Virtual University of Pakistan Figure: Customizing Process Models (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are
  • 419. part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's break down the topics mentioned in your prompt into simple, beginner-level examples for a coherent lecture. Life Cycle Models in Software Development: Life Cycle Models in Software Development: Life Cycle Models in Software Development: Life Cycle Models in Software Development: Life Cycle Models in Software Development: To manage and execute software projects efficiently, different life cycle models are used. These models help define the approach for development and ensure that tasks are executed in the right sequence. Here are some common life cycle models: Waterfall Model: 1 Example: Imagine you have a software project that must be developed in a specific order, starting with gathering requirements, then moving to design, followed by coding, testing, and finally deployment. The project cannot proceed to the next phase until the current one is fully completed. 2 Prototyping Model: 3 Example: Suppose a customer is unsure about their requirements. You create a prototype (a rough version of the software), get feedback from the customer, make improvements, and continue refining the software until the customer is satisfied. 4 Incremental Model: 5 Example: In this approach, you break down the software project into smaller parts (increments). Each increment is developed and delivered separately. For instance, you could first build the core functionality of the software, deliver it to the customer, and then keep adding additional features in subsequent increments. 6 Spiral Model: 7 Example: This model combines elements of the Waterfall and Prototyping models. Each phase of the project (such as requirements 8
  • 420. Process Models and Customization: Process Models and Customization: Process Models and Customization: Process Models and Customization: Process Models and Customization: A process model outlines the overall approach an organization follows to manage a software project. It provides a structured way to sequence the phases and identify the requirements for each phase. Key Takeaways: Key Takeaways: Key Takeaways: Key Takeaways: Key Takeaways: This structure ensures clarity and flexibility in project management while adapting to the specific needs of software development projects. gathering, design, etc.) is revisited multiple times, allowing for continuous refinement. After completing each cycle, risks are evaluated, and the next steps are planned. RAD (Rapid Application Development) Model: 9 Example: This model focuses on quickly developing software using iterative prototyping and rapid feedback. It’s useful when there is a need for faster delivery of a software product. 10 Customizing Process Models: Example: Let's say an organization originally used a complex process model (Process Model A) that involved extensive risk planning for a defense application. After evaluating the effectiveness of this approach, the organization decides to simplify the process by combining it with a model that has more straightforward phases (Process Model B). The new customized model maintains some of the risk planning while introducing a more streamlined process. Software development is divided into manageable tasks that follow a specific life cycle model. Each life cycle model serves different project needs, ranging from strict sequential approaches (like the Waterfall model) to more flexible, iterative approaches (like the Spiral and Incremental models). Organizations can customize their process models to suit their unique requirements, combining elements of existing models to create a tailored approach.
  • 421. 4.8.2 Choosing the lifecycle model In choosing a lifecycle model for your project, you should examine: 1. How well requirements are understood at the beginning? Is it going to change when moving through the project? 2. Is system architecture understood? Any changes on the way? 3. Level of reliability? 4. Level of re-design for future versions? 5. Risk Level? 6. Stuck With Predefined Schedule? 7. Need For Midcourse Correction? 8. Customer Informed through the Project? 9. Visible Management through the Project? 10. If a Model is chosen, how much it needs Modification? Selecting an appropriate process model is crucial because it can provide a basic framework to initiate and carry out a project to its conclusion. It also defines the path for various project- related activities. For example, if you select a process model, you know for sure that you need to carry out certain activities, such as planning, scheduling, resource allocation, risk management, and cost and effort estimation. These activities ensure smooth progress of a project within the Process Model A Process Model B Software Project Management (CS615) 163 © Copyright Virtual University of Pakistan allocated time and ensure maintenance of quality and measurability throughout the
  • 422. project. With so many process models available, a project manager is likely to face the dilemma of selecting the right process model for managing a software project efficiently. To select a process model that is suitable to a project, the following criteria can be considered: • Business goals of the organization • Expected size of the project • Client and project requirements • Availability of funds and development staff • Risks perceived in the project Business Goals of the Organization This criterion indicates the overall approach and mindset of an organization. If the organization has a past history of developiI;1g projects in accordance with well-defined plans and other job aids in every phase, the suitable process model can be the Waterfall model. However, if the organization is well equipped with the resources to deal with financial, technological, and personnel risks, it can choose the Spiral model. The organization can choose the Prototyping model if it is used to working in an experimental and a constant feedback mode. Expected Size of the Project If the size of a project is extensive and the client prefers all the features of the proposed project at the first delivery, you can select the
  • 423. Waterfall model. When you want the entire product to be developed and delivered in piecemeal so that the clieI;1t can immediately begin the unit testing of each module, you would select the Incremental model. In contrast, if the size of the project is doubtful, you can go for the Prototyping or Spiral model. These models help to develop projects that have a vague and uncertain estimate of the project size. Client and Project Requirements The Waterfall model or the Incremental model is chosen if the client needs and the project requirements are defined and approved. In addition, no changes or negligible changes are 1 expected in the future regarding design requirements. In contrast, you would choose the Spiral j and Prototyping models when the client needs and system requirements are uncertain and is likely to change in the future. Availability of Funds and Development Staff The Waterfall and Prototyping models require predetermined and adequate resources at the start of a project. However, if you expect additional funds and human resources as you progress through the different phases, you should go in for the Incremental or Spiral models. This is because the Incremental model operates on the assumption of developing a project into several builds due to lack of human resources. Similarly, the funds and Software Project Management (CS615) 164
  • 424. © Copyright Virtual University of Pakistan staffing requirements in the Spiral model may increase or decrease depending on the changes in requirements arid feasibility of the proposed project in the future. Risks Perceived in a Project This is yet another important criterion for the selection of a process model. You choose the Waterfall or Incremental model if the occurrence of risks and their impact perceived is minimum. However, you should go in for the Spiral model if the risks and their perceived impact are very high. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. You should use the waterfall model if: • The project is large yet it is clearly divided into discrete phases and each phase has defined number of days, personnel, and resources
  • 425. allocated. The Waterfall model requires the presence of defined phases and processes in each phase. • The development also perceives that it can have defined set of input and certified output. This is because each phase would lead to another and the next phase would not begin until the previous phase is certified as closed. This way baselines and milestones for each phase can be identified. The Waterfall model assumes the closure of a previous phase before the successive phase begins. This ensures linear progression of a project where developers do not need to revert to an earlier phase or a process. • The development team is not likely to face any bumps in the development process because of clear cut project requirements as well documentation provided to them by the client. Clarity of project vision and project requirements are the essential features of the Waterfall model, which are fulfilled in the preceding scenario. Therefore, if the requirements are defined and a project is large enough to be divided into defined phases, you can go for the Waterfall model. However Waterfall model has the following drawbacks: • There cannot be a sudden crossover from one phase to the next. Real-time projects require sudden crossover between phases because such projects are subjected to change in every phase of the development cycle. For
  • 426. example, real-time projects such as embedded software development where the phases and the requirements for every phase cannot be determined at the analysis phase cannot deploy the Waterfall model. • Another reason for the unpopularity of the Waterfall model is that it requires too much effort for stringent documentation-in every phase. Every phase is closed with formal documentation. Projects with predictable final product, such as banking software or an airline reservation project, usually have formal documentation. This is because the phases of these projects are defined. However, it is difficult for research and development (RD) related projects to complete all project documentation. • The Waterfall model does not support the development of a working model of a Software Project Management (CS615) 165 © Copyright Virtual University of Pakistan project first and then further development based on client feedback. Absence of a working model prevents you from detecting an issue in an early phase. As a result, you incur higher expenditure in rectifying the issue in a later phase. This in turn has an adverse effect on the effort, cost, and time spent on rework. • Finally, the Waterfall model causes, as a blocking state. When a blocking state occurs, some team members wait for other team
  • 427. members to finish a dependent task. For example, in the following figure, the team member assigned to do the design task cannot begin work until the analysis is complete. This delays the turnaround of the software project. Many times, the blocking state wastes a lot of developers' time that could have been spent on productive project -related work. Figure: Idle Team Members in the Phases of the Waterfall Model You should use Prototyping model when: • The client is not clear about the requirements of the proposed system or Analysis Design Coding Testing Implementation Design Software Project Management (CS615) 166 © Copyright Virtual University of Pakistan • When there is a conflict in client requirements. To resolve the conflict, the development team develops a working model so that the requirements of the client become defined. Defined client requirements enable the physical development of the actual product. The Prototyping model enables an analysis team to first construct a working model with their prior software experience combined with the vague needs of the client.
  • 428. The Prototyping model can be as simple as a drawing on a paper or as complex as the real working software. The closer your prototype is to the actual product, the more precise is your evaluation. There are different types of prototyping methods that an organization can implement: • Rapid prototyping • Reusable prototyping • Modular prototyping (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Lecture: Software Development Models - Waterfall Lecture: Software Development Models - Waterfall Lecture: Software Development Models - Waterfall Lecture: Software Development Models - Waterfall Lecture: Software Development Models - Waterfall and Prototyping Models and Prototyping Models and Prototyping Models and Prototyping Models and Prototyping Models This lecture focuses on the Waterfall and Prototyping models of software development, explaining when and why to use them, as well as their drawbacks. Let's break down the key points with simple, beginner-level examples to help understand these concepts. Waterfall Model Waterfall Model Waterfall Model Waterfall Model Waterfall Model When to Use the Waterfall Model: 1 Large Project with Defined Phases: 2 Example: Imagine you are working on a project to create a banking software system. You know exactly what each phase of the project will involve, such as gathering requirements, 3
  • 429. designing the system, coding, testing, and implementation. Each phase is well-defined, and you allocate specific resources (people, time, and tools) for each phase. This makes the Waterfall model a good choice. Defined Inputs and Outputs: 4 Example: Each phase of your banking project has a clear start and end. For instance, you won’t move on to coding until the design phase is completed and approved. The Waterfall model is useful when you need this type of linear, step-by-step approach. 5 Clear Project Requirements and Vision: 6 Example: The client has provided detailed documentation about what they want in the banking system. Since there is no uncertainty in the requirements, the Waterfall model works well because it relies on having everything clearly laid out from the beginning. 7 Drawbacks of the Waterfall Model: 8 No Sudden Crossovers Between Phases: 9 Example: In a real-time embedded software project, such as developing firmware for a medical device, requirements may change frequently. The Waterfall model does not support these changes easily because it doesn’t allow jumping back and forth between phases. 10 Heavy Documentation: 11 Example: The Waterfall model requires detailed documentation at each phase. In a banking software project, this might be fine, but for research projects like developing a new AI algorithm, where requirements evolve, this can be a burden. 12 No Early Detection of Issues: 13 Example: Without a working model early on, you may not detect problems until later phases, such as during testing. This can increase costs if significant changes are needed late in the project. 14 Blocking State: 15
  • 430. Prototyping Model Prototyping Model Prototyping Model Prototyping Model Prototyping Model Conclusion Conclusion Conclusion Conclusion Conclusion The Waterfall model is suited for projects with well-defined phases and requirements, like banking software, but can be problematic in projects requiring flexibility or frequent changes. On the other hand, the Prototyping model is ideal Example: During the design phase of the banking project, developers working on the coding phase are idle because they cannot start until the design is finished. This delay causes inefficiencies, as shown in the diagram where team members wait for others to finish their tasks. 16 When to Use the Prototyping Model: 1 Unclear Client Requirements: 2 Example: You are building an e-commerce platform, but the client is unsure about how they want the product pages to look. You use the Prototyping model to create a simple prototype, like a rough sketch or a basic working model, which helps the client better understand what they need. Once they see it, they can provide more specific requirements. 3 Conflicting Requirements: 4 Example: If the marketing and sales teams disagree on how the checkout process should function, you create a prototype to resolve this conflict. Seeing a tangible model helps both teams clarify their needs. 5 Types of Prototyping: 6 Rapid Prototyping: 7 Example: You quickly build a rough version of the e-commerce platform to show the client. It’s not fully functional, but it helps in quickly gathering feedback. 8 Reusable Prototyping: 9 Example: You develop a prototype that can be reused as part of the final product, such as the basic layout of the platform. 10 Modular Prototyping: 11 Example: You break down the e-commerce platform into smaller modules, such as the login system, product pages, and checkout process. You develop prototypes for each module separately. 12
  • 431. Rapid prototyping This model is suitable when: • The cost and time required to create a prototype is minimal. • The project has a substantially long cycle • Development team wants the design to be strong. Reusable prototyping This model is used when: • The old design needs major changes but the supplementary components of the old design do not need major changes. Modular prototyping This model is used when: • Considerable cost, time and effort are deployed to create a prototype. • Client feedback for enhancements is not major • Minor improvisations are needed to obtain client approval. Using the Prototyping model saves cost and time involved in the build-it-twice approach. The experience of developing the prototype is useful for developers while developing the final product. It reduces the risks of an unfeasible project design because the developers when client requirements are unclear or conflicting, allowing the development team to build a working model for clarification. These models represent different approaches to software development, and choosing the right one depends on the project’s specific needs, requirements, and constraints.
  • 432. gain a fair idea of the resources and the probable time taken to create the [mal product. They also get a feel of the implementation tool to be used in the project. Incremental Model Software Project Management (CS615) 167 © Copyright Virtual University of Pakistan You can use the Incremental model approach in software projects: • Where human resource is scarce. In such cases, the management can decide to divide and develop a product in individual builds. When the resources are available, the subsequent builds are planned and executed. This process model is useful in real life because normally all the resources required to complete the project are not available at the same time. Example: Consider a situation in which you might need to use the Incremental model of SDLC. Supersoft2000 requires a software product that automates the employee and their salary details. It has assigned this project to Blue Valley Consulting (BVC) that specializes in developing Human Resources (HR)-related applications. The project requirements are defined to start the project. However, the client wants to roll out the new system for the benefit of its employees as early as possible. The analysis team in BVC has been able to divide the entire project into seven independent modules. On the basis of their prior
  • 433. experience, it feels each module can be executed and deployed independently by the client. After all the modules are completed, the maintenance team in BVC can assemble and implement the system at the client site. Currently, the development personnel in BVC are hired on contract and BVC faces shortage of skilled personnel. In such a case, you use the Incremental model because of the following reasons: • Time and lack of skilled personnel are the main hindrances in this project. Therefore, by using the Incremental model, you can design, develop, and deliver independent modules. This way by using a few skilled personnel you are able to develop a system with basic features and provide it to the client immediately. The most important and the least dependent module are developed first. While the client is using the module, BVC can arrange for additional skilled personnel to complete the rest of the modules and deliver them to the client. The Incremental model enables you to revert to an earlier phase and refine the product based on client feedback. After all the modules have been developed, the development personnel can be released. BVC can then hire or retain a few experienced personnel to create a maintenance team. This team would assemble and implement the entire employee salary details product at the client site. This flexibility of personnel can be exercised because you use the Incremental model.
  • 434. Using the Incremental model enables: • Division of skilled labor • Division of a complex project into modules • Development of those modules within a short time frame Software Project Management (CS615) 168 © Copyright Virtual University of Pakistan Therefore, if time and skilled personnel are constraints of a Project, you can effectively use the Incremental model. Spiral Model The basic goal of using the Spiral model is to define ways of eliminating risks in the design phase. Consequently, minimum and manageable risks percolate into the development phase. Example: LMN Inc. has acquired a project to develop a telecommunications project using the Voice-over Internet telephony (VOIP) technology. The company does not have any prior experience or the required level of expertise to develop such a project. There is a team of three analysts and the company does not propose to dedicate a team to complete this project. This is because it anticipates many risks and a large amount of rework that may add to the cost of project execution. The company has determined multiple models and designs to execute the project. After presenting the models to the client, the client is itself confused. However, it assures LMN Inc. of continued feedback and support. The client
  • 435. fully understands the ambitiousness of the project and does not consider time and budget as constraints for the project. Consequently, LMN Inc. decides to use the client feedback and risk analysis effectively until the end of the project. In this situation, you would use the Spiral model because of the following reasons: • LMN Inc. has no prior experience or expertise in executing such a project. Therefore, it expects a lot of rework in reverting to an earlier phase and incorporating client feedback therein. Using the Spiral model, you can to revert to an earlier phase to incorporate client feedback and compete that phase. • It needs to perform risk analysis effectively to eliminate losses arising due to uncertain development models, resource requirements, project constraints, and time. • It is also preferable to create a prototype for every deliverable that LMN Inc. might deem necessary to receive client feedback. • Spiraling cumulative project costs can be covered up by the liberal budget provided by the client. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind
  • 436. in that and give coherent examples. 4.9 Planning Documents You (the PM) need to choose which documents are appropriate. Documents do not have to be lengthy. The requirements phase produces one main product document: • The software requirements specification document And two Project Planning Documents: Software Project Management (CS615) 169 © Copyright Virtual University of Pakistan 1. The Project Development Plan • The Software Test Plan The requirements phase formally concludes with the project's first major review: the software requirements review (SRR). It is this review that signs off the requirements specification and formally declares the requirements document as the first approved project baseline. 2. The Statement of Requirement (SOR) The project manager (or the advising consultant adopting this role) must ensure
  • 437. that the project sponsor has produced a written statement of requirements (SOR). This must be a thorough document which is: o Unambiguous o Fully defined or complete o Verifiable deliverables o No conflicts o Consistent o Auditable The SOR will be the document against which change control will be exercised. The SOR should be closely matched to the contract and there should be no conflict of interests between the two. Where consultants are involved, the client or sponsor SOR will normally form the basis of the proposal. All of these documents must carefully align and there should be no scope for misinterpretation, confusion or lack of understanding. This will be the cornerstone of the project. 3. System Specification If a System Specification has been properly developed, nearly all information required for a description of software scope is available and documented before software project planning begins. In cases where a specification has not been developed, the planner must take on the role of system analyst to determine attributes and bounds that will influence estimation tasks. 4. Design Specification
  • 438. The first stage of risk analysis requires a review of all, project technical and administrative plans in order to identity potential problems. It includes: • The project development plan • The requirements specification • The design specification Software Project Management (CS615) 170 © Copyright Virtual University of Pakistan All major dependencies in the project development plan are examined and evaluated. Examples may be the dependence on external sources such as subcontractors, vendors and suppliers, and service providers. Problems will arise if external components or services are not provided on time, or if they do not function as expected. The project design specification is a detailed plan of how the requirements are to be implemented. The implementation decisions involved may contain potential problems, For example, problems will arise if the selected hardware turns out to be inadequate, such as if the CPU is too slow, the LAN is not sufficiently reliable, or the maximum available memory is insufficient. A list of all anticipated problems is then compiled, identifying each problem and describing the potential effect on the project. Following table presents an example
  • 439. of an anticipated problem list. Table 1: Example of an anticipated problem list Problem Description 1. Late delivery of the If the computer is not delivered by June 1, as Development computer planned the integration phase will be delayed. 2. Insufficient memory The size of the memory resident part of the System may exceed 8 megabytes (the maximum memory size supported by the computer). 3. No operating system The system requires changes to the standard expert operating system. John Adams is the only OS Expert in the company, and he may not be available for this project. 4. System response time The required system response time to the input too slow. may exceed the 5 seconds specified in the requirements. 5. High staff turnover The schedule is tight with only minimal slack time. If there is more than average staff Replacement during development, we will slip the schedule. Software Project Management (CS615) 171 © Copyright Virtual University of Pakistan 6. Communication The standard communications package is too too slow slow. The design is based on the new binary Communication package. This package has never Been used with this system and may not be suitable.
  • 440. 7. Late delivery of the The data based subsystem is subcontracted to Data base subsystem Software Developer Inc. (SDI), who have Committed to delivery by April 15, SDI may not Deliver on time, thus delaying the final integration and test phase. The anticipated problem list should be compiled with the participation of the principle members of the project development team. Other people may also be invited to contribute to the list, based on their experience and technical or administrative knowledge. This might include people from other project teams, support groups, the company's legal department or the purchasing department. While the objective is not to list every conceivable problem that any project may experience, it is necessary to identify those problems that should reasonably be considered in relation to the project. In any event, the following analysis stage is designed to isolate only those problems that could have significant impact on the project, and that can reasonably be expected to appear. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind
  • 441. in that and give coherent examples. Here are simple, beginner-level examples for the topics mentioned in your lecture content: 1. 1. 1. 1. 1. Software Requirements Specification (SRS) Software Requirements Specification (SRS) Software Requirements Specification (SRS) Software Requirements Specification (SRS) Software Requirements Specification (SRS) Document Document Document Document Document 2. 2. 2. 2. 2. Project Development Plan Project Development Plan Project Development Plan Project Development Plan Project Development Plan 3. 3. 3. 3. 3. Software Test Plan Software Test Plan Software Test Plan Software Test Plan Software Test Plan 4. 4. 4. 4. 4. Statement of Requirements (SOR) Statement of Requirements (SOR) Statement of Requirements (SOR) Statement of Requirements (SOR) Statement of Requirements (SOR) Purpose: The SRS document outlines all the software requirements in detail. It serves as the foundation for the entire project. Example: A team is working on developing an e-commerce platform. The SRS document contains all the functional and non-functional requirements, such as the ability to add products to a cart, process payments, and ensure secure transactions. Purpose: This document outlines how the software project will be developed. It includes the schedule, resources, and tasks needed for the project. Example: In the e-commerce project, the Project Development Plan specifies that the development will be done in three phases: user interface development, payment integration, and final testing. It also defines the timeline for each phase and the resources allocated to them. Purpose: The Software Test Plan outlines how the software will be tested to ensure it meets all the requirements. Example: For the e-commerce platform, the Software Test Plan specifies that testing will be done in two stages: unit testing of individual components (like product listing and payment processing) and system testing of the entire platform. Purpose: The SOR is a formal document provided by the project sponsor, detailing the project requirements clearly and without ambiguity.
  • 442. 5. 5. 5. 5. 5. System Specification System Specification System Specification System Specification System Specification 6. 6. 6. 6. 6. Design Specification Design Specification Design Specification Design Specification Design Specification 7. 7. 7. 7. 7. Anticipated Problem List Anticipated Problem List Anticipated Problem List Anticipated Problem List Anticipated Problem List Example: The SOR for the e-commerce project might state that the system must support at least 500,000 users, must process payments within 2 seconds, and should be compliant with data privacy regulations. Purpose: The System Specification document provides detailed information about the system's technical and functional aspects. It helps in defining the software's scope. Example: For the e-commerce platform, the System Specification document would include details about the server infrastructure, databases, programming languages, and third-party integrations required for payment gateways. Purpose: The Design Specification details how the system will be implemented. It includes technical choices such as hardware, software, and network configurations. Example: In the e-commerce project, the Design Specification would outline that the platform will run on cloud servers, use a relational database for storing product information, and implement a specific encryption algorithm for secure transactions. Purpose: This list identifies potential problems that could arise during the project and describes their impact on the project. Example: Problem: Late delivery of the development server. Impact: If the server is delayed, integration and testing might be pushed back, affecting the overall project timeline. Problem: Insufficient memory in the development system. Impact: The system might not be able to handle the required operations, leading to performance issues during development. Problem: Lack of an available operating system expert. Impact: If the expert is unavailable, it might delay configuring the system and integrating the necessary software. Problem: Communication too slow. Impact: If the communication system is slower than expected, it could affect the real-time processing of orders and customer
  • 443. 5. The Data Item Descriptions (DID s) Standard 2168 (DOD 1988b) contains the requirements for the development, documentation and implementation of a software quality program. The software quality program includes planning for and conducting: ƒ Evaluations of the quality of software ƒ Associated documentation and related activities ƒ Follow-up activities necessary to assure timely and effective resolution of problems The DID s are a comprehensive set of documentation standards that cover all phases of software development, maintenance and the production of user reference manuals. The DID s include a section called preparation instructions that provide a large degree of freedom by permitting 8. 8. 8. 8. 8. Software Requirements Review (SRR) Software Requirements Review (SRR) Software Requirements Review (SRR) Software Requirements Review (SRR) Software Requirements Review (SRR) By addressing these elements in a project, the development team can ensure that the software is built according to the agreed-upon requirements and any risks are managed effectively. transactions. Purpose: The SRR is a formal review process where the project's requirements are approved and signed off as the first project baseline. Example: After completing the SRS document for the e-commerce platform, the project manager and stakeholders hold an SRR meeting. During this meeting, they ensure that all requirements are clear, agreed upon, and no conflicts exist between the client’s expectations and the document.
  • 444. tailoring of the document format and the use of alternate presentation styles. The full set of DID s is described in Table 2. Standard 2167 states that it is not intended to specify or discourage the use of any particular software development method (DOD 1988a). However, as mentioned previously, the standard is heavily inclined toward phased development methodologies, such as the Waterfall paradigm. The phased approach is inherent Software Project Management (CS615) 172 © Copyright Virtual University of Pakistan in the required development stages and reviews, requiring system design to be followed by software requirements, software design, implementation and testing. The Data Item Descriptions define the formal documentation standards for all required documents generated during the development of software according to standard 2167. DID s apply to the development of one or more computer system configuration items (CSCI s), a term used throughout the 2167 standard to identify high level decomposition components of a computer system. Table 2: DOD Data Item Descriptions (DID s) Development documentation • Software development plan System documentation • System/segment specification
  • 445. • System/segment design document Software design and requirements • Software requirements specification • Software design document Interface design and requirements • Interface requirements, specification • Interface design document Version description • Version description document Test documentation • Software test plan • Software test description • Test report Release manuals • Computer system operator's manual • Software user's manual • Software programmer's manual • Firmware support manual Maintenance documentation and source code • Computer resources integrated support document • Software product specification Software Project Management (CS615) 173 © Copyright Virtual University of Pakistan A CSCI, as applied to software; is a component of the system that can be individually controlled, configured, tested and documented. CSCI s are often reviewed and approved as separate development items, and though a single review or audit can consider more than one CSCI, each is usually addressed separately during the review process. There are no clear-cut guidelines for the
  • 446. division of a software system into CSCI s as the division is essentially one of convenience. Table 3: DOD Data Item Description standards Data requirements title Acronym 1. System segment design document SSDD 2.Software development plan SDP 3.Software requirements specification SRS 4. Interface requirements specification IRS 5. Interface design document IDD 6. Software design document SDD 7. Software product specification SPS 8. Version description document VDD 9. Software test plan STP 10. Software test description STD II. Software test report STR 12. Computer system operator's manual CSOM 13. Software user's manual SUM 14. Software programmer's manual SPM 15. Software support manual FSM 16. Computer resources integrated support document CRISD 17. Engineering change proposal ECP 18. Specification change notice SCN Table 3 contains a list of the DID s referenced by standard 2167A. The software quality DID is referenced separately in the DOD software quality program standard 2168. All DID document formats follow a similar pattern. Several of the sections are common to most, if not all of the documents, such as: • Title page format • Table of contents
  • 447. • Scope (including identification, overview, references etc.) • Other applicable documents • Notes and appendices Software Project Management (CS615) 174 © Copyright Virtual University of Pakistan phasis is on the required content and not on the required format. This is specifically addressed in the preparation instructions accompanying each DIn addition, the page format, page numbering scheme, section numbering scheme and various other preparation instructions are common. This clearly suggests the use of an automatic tool to assist in the preparation of the documents, a practice greatly encouraged by the 2167 standard. Many such tools have been developed to support 2167, and Polack, in a paper analyzing the use of CASE tools for DOD projects (Polack 1990), concludes that these tools do indeed save time, and result in a higher quality software system. Each DID describe the requirements for the preparation of a specific document, but the main emID, which state that other presentation styles, including charts, tables or matrices, are acceptable (e.g. Hatley and Pirbhai (1988) or Ward and Mellor (1986). There is also substantial flexibility in the requirements regarding the content of the documents. The standard provides for considerable tailoring to
  • 448. adapt the standard to the type of project being developed. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Tailoring the standard Tailoring of standard 2167 is not only encouraged, it is required. The foreword to 2167 states that the standard must be appropriately tailored by the Program Manager to ensure that only cost-effective requirements are cited in defense solicitations and contracts. The DOD has issued a guide for tailoring that can be used as a reference source for adapting the standards to the type of project being developed. Two basic principles apply to tailoring: • The tailoring process is the deletion of non- applicable requirements.
  • 449. • Tailoring of the standard should be carried out by the contracting agency. The first principle means that these modifications can only include the deletion of requirements from the standard (and not changes to the requirements in the standard). The second principle means that the contractor (i.e. the developer) cannot tailor the standard without receiving permission from the contracting agency (i.e. the DOD). Tailoring of the 2167 standard must be completed as early as possible. This is best performed either during contract negotiations or as one of the initial activities as soon as the project begins. The following is a description of the basic procedure for tailoring standard 2167: 1. Review all standard 2167 requirements, including; • reviews and audits • documentation Software Project Management (CS615) 175 © Copyright Virtual University of Pakistan • testing activities • quality assurance activities • configuration control activities • other required development activities 2. Identify the requirements that are not applicable, justifiable or reasonable for the project being developed. For example, the Firmware Support Manual will not be required if no firmware is being developed: or two design reviews
  • 450. (POR and COR) may not be necessary for a small project. 3. Prepare a list of requests for deletions from the standard. This may include: • exclusion of documents • exclusion of sections in documents • exclusion of activities. • exclusion of parts of activities 4. Prepare a written description of the justifications for each item that is requested to be tailored out. 5. Submit the tailoring request, together with the justification, as early as possible (preferably before the project begins). In order to be able to differentiate between forgotten items and tailored items, all tailored items must be clearly referenced. When submitting a list of documents for a formal review or milestone, all documents tailored out should be listed together with a statement to that effect. Within a document, when a paragraph is tailored out a statement to that effect will appear directly after the paragraph number. If a paragraph and all of its subparagraphs are tailored out, only the highest level paragraph number need be included. The list of the DID s together with the list of tailoring approvals are an integral part of the project deliverables. Until tailoring approval has been granted, the developer is obligated to provide the full list of Dills, with all their inclusions. This is the reason why tailoring should be concluded as
  • 451. early as possible. 6. The software configuration management plan (SCMP) The software configuration management plan (SCMP) is part of the project's software development plan. The SCMP may appear as a separate document or as a section within the project development plan. The SCMP documents the resources that are needed, how they are to be used, and which standards and procedures will be applied during the project. Software Project Management (CS615) 176 © Copyright Virtual University of Pakistan The SCMP then becomes the mandate for the configuration control group during project development. The issuance of this plan is the responsibility of the project manager, though in large projects it may be delegated to the configuration Control manager. Table 4 contains a list of the main subjects covered in the SCMP. When any of these subjects is covered elsewhere (e.g. in the software quality assurance plan), it can be omitted from the SCMP and replaced by a pointer to the document in which it is covered. Though most of the subjects in Table 1 are self-descriptive, the following are some guidelines: Configuration status accounting describes the way in which status information flows:
  • 452. ƒ From the developers to the configuration management organization (audits and reviews) ƒ From the configuration management organization to project management (status reporting procedures) Configuration identification describes the method for designating development items as SCCI s. This is part of the high level decomposition of the system into major development components. The section on identification methods describes the way in which each component generated by the project is marked for unique identification. Security, restricted access and classification refer to the secure development of sensitive products (such as documents, software, patents, military classified information etc.). It is often convenient to assign many of these tasks to configuration control because of the need to be involved in the review and classification of documents and other related activities that are associated with security. Subcontractors, vendors and suppliers mayor may not implement their own configuration management plan. It is the project manager's responsibility to assure that either subcontractors or external developers submit a CMP for review, or that the project's configuration manager assumes responsibility for their work. The SCMP may also include diagrams and flow charts to describe procedures for
  • 453. submitting change requests, or for reporting problems. 7. Statistical software process improvement (SSPI) As an organization becomes more comfortable with the collection and use or process metrics, the derivation of simple indicators gives way to a more rigorous approach called statistical software process improvement (SSPI). Software Project Management (CS615) 177 © Copyright Virtual University of Pakistan In essence, SSPI uses software failure analysis to collect information about all errors and defects encountered as an application, system, or product is developed and used. Failure analysis works in the following manner: 1. All errors and defects are categorized by origin (e.g., flaw in specification, flaw in logic, non conformance to standards). 2. The cost to correct each error and defect is recorded. 3. The number of errors and defects in each category is counted and ranked in descending order. 4. The overall cost of errors and defects in each category is computed. 5. Resultant data are analyzed to uncover the categories that result in highest cost to the organization. 6. Plans are developed to modify the process with the intent of eliminating or reducing the frequency of the class of errors and
  • 454. defects that is most costly. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Table 4: Example of the contents of a software configuration management plan 1. Software configuration management organization and resources ƒ Organization structure ƒ Personnel skill level and qualifications ƒ Resources 2. Standards, procedures, policies and guidelines 3. Configuration identification ƒ Method for defining SCCI s Description of the SCCI s for this project 4. Identification methods (naming and marking of documents, software components, revisions. releases, etc.) 5. Submission of configuration items
  • 455. ƒ Approval/rejection procedure 6. Change control ƒ Change control procedures (method of submission, review. approval and rejection) ƒ Reporting documentation (change requests, problem reports) ƒ Change review procedures and review board 7. Version control ƒ Preparation of software and documentation versions ƒ Release approval procedure 8. Storage, handling and delivery of project media ƒ Storage requirements ƒ Backups Software Project Management (CS615) 178 © Copyright Virtual University of Pakistan 9. Configuration control of subcontractors, vendors and suppliers 10. Additional control ƒ Miscellaneous control procedures ƒ Project specific control (security etc) 11. Configuration status accounting ƒ Configuration audits and reviews ƒ Configuration structure reporting procedures 12. Configuration management major milestones 13. Tools, techniques and methodologies (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind
  • 456. in that and give coherent examples. Here are simple, beginner-level examples for each section of a Software Configuration Management Plan (SCMP) based on the contents listed in the table: 1. 1. 1. 1. 1. Software Configuration Management Organization Software Configuration Management Organization Software Configuration Management Organization Software Configuration Management Organization Software Configuration Management Organization and Resources and Resources and Resources and Resources and Resources 2. 2. 2. 2. 2. Standards, Procedures, Policies, and Guidelines Standards, Procedures, Policies, and Guidelines Standards, Procedures, Policies, and Guidelines Standards, Procedures, Policies, and Guidelines Standards, Procedures, Policies, and Guidelines 3. 3. 3. 3. 3. Configuration Identification Configuration Identification Configuration Identification Configuration Identification Configuration Identification 4. 4. 4. 4. 4. Identification Methods Identification Methods Identification Methods Identification Methods Identification Methods Organization Structure: This section describes who is responsible for configuration management in the project. For example, it might outline that there is a configuration management team led by a configuration manager who reports to the project manager. Personnel Skill Level and Qualifications: This outlines the qualifications and skills required by the personnel involved in configuration management. For example, team members might need experience in version control systems and knowledge of the project's software development tools. Resources: Lists the resources needed for configuration management, such as version control software, storage servers, and backup systems. This section specifies the standards and guidelines the project will follow. For example, it might reference the DOD-STD-2167 standard and any company-specific guidelines for software development and configuration management. Method for Defining SCCIs: Defines how Software Configuration Items (SCCIs) are identified. For example, each software component might be assigned a unique identifier, like COMP01 for a specific module in the system. Description of the SCCIs for This Project: Lists the specific SCCIs that are part of the project. For example, a particular software module or document could be identified as an SCCI.
  • 457. 5. 5. 5. 5. 5. Submission of Configuration Items Submission of Configuration Items Submission of Configuration Items Submission of Configuration Items Submission of Configuration Items 6. 6. 6. 6. 6. Change Control Change Control Change Control Change Control Change Control 7. 7. 7. 7. 7. Version Control Version Control Version Control Version Control Version Control 8. 8. 8. 8. 8. Storage, Handling, and Delivery of Project Media Storage, Handling, and Delivery of Project Media Storage, Handling, and Delivery of Project Media Storage, Handling, and Delivery of Project Media Storage, Handling, and Delivery of Project Media This section describes how configuration items, such as documents, software components, and releases, are named and marked. For example, software versions might follow a naming convention like v1.0, v1.1, etc., while documents might be labeled with a unique document code. Approval/Rejection Procedure: Describes how configuration items are submitted for review and approval. For example, after a software component is developed, it is submitted to the configuration management team for approval. If the component meets all requirements, it is approved; if not, it is rejected with feedback for revision. Change Control Procedures: This section outlines how changes to configuration items are managed. For example, developers submit change requests through a change control system, which are then reviewed and either approved or rejected by a change control board. Reporting Documentation: Specifies the documentation required for change requests and problem reports. For example, a change request form might need to include the reason for the change, the impact on the project, and the approval status. Change Review Procedures and Review Board: Describes how the change review process works and who is on the review board. For example, the review board might include senior developers, project managers, and quality assurance personnel. Preparation of Software and Documentation Versions: Details how different versions of software and documentation are prepared. For example, after significant changes, a new version of the software is prepared, tested, and documented as version 2.0. Release Approval Procedure: Specifies how new versions are approved for release. For example, after testing is completed, the release manager reviews the results and, if everything is satisfactory, approves the software for release. Storage Requirements: Describes how project media, such as software code and documentation, should be stored. For example, the plan might
  • 458. 9. 9. 9. 9. 9. Configuration Control of Subcontractors, Vendors, Configuration Control of Subcontractors, Vendors, Configuration Control of Subcontractors, Vendors, Configuration Control of Subcontractors, Vendors, Configuration Control of Subcontractors, Vendors, and Suppliers and Suppliers and Suppliers and Suppliers and Suppliers 10. 10. 10. 10. 10. Additional Control Additional Control Additional Control Additional Control Additional Control 11. 11. 11. 11. 11. Configuration Status Accounting Configuration Status Accounting Configuration Status Accounting Configuration Status Accounting Configuration Status Accounting 12. 12. 12. 12. 12. Configuration Management Major Milestones Configuration Management Major Milestones Configuration Management Major Milestones Configuration Management Major Milestones Configuration Management Major Milestones 13. 13. 13. 13. 13. Tools, Techniques, and Methodologies Tools, Techniques, and Methodologies Tools, Techniques, and Methodologies Tools, Techniques, and Methodologies Tools, Techniques, and Methodologies require that all media be stored in a secure, climate-controlled environment with access restrictions. Backups: Specifies the backup procedures for configuration items. For example, the plan might require daily backups of all critical data and weekly offsite backups for disaster recovery. This section ensures that subcontractors, vendors, and suppliers follow the project's configuration management procedures. For example, a subcontractor providing a software component must follow the same version control and change management processes as the primary development team. Miscellaneous Control Procedures: Covers any additional control procedures that apply to the project. For example, there might be procedures for handling specific security requirements. Project-Specific Control: Describes any controls unique to the project, such as handling classified information or implementing stricter security measures. Configuration Audits and Reviews: Outlines the process for performing configuration audits and reviews. For example, the configuration management team might perform regular audits to ensure that all configuration items are properly tracked and controlled. Configuration Structure Reporting Procedures: Describes how configuration status is reported. For example, the project manager might receive weekly status reports detailing the current configuration of all project components. This section lists the major milestones for configuration management activities. For example, key milestones might include the completion of initial configuration identification, the first version release, and final project delivery.
  • 459. 8. Communications management plan A communications management plan is a document that provides: • A collection and filing structure that details what methods will be used to gather and store various types of information. Procedures should also cover collecting and disseminating updates and corrections to previously distributed material. • A distribution structure that, details to whom information (status reports, data, schedule, technical documentation, etc.) will flow, and what methods (written reports, meetings, etc.) will be used to distribute various types of information. This structure must be compatible with the responsibilities and reporting relationships described by the project organization chart. • A description of the information to be distributed, including format, content, level of detail, and conventions/definitions to be used. • Production schedules showing when each type of communication will be These examples align with the coherent structure of the lecture, providing students with clear and practical understanding of how these components fit into the Software Configuration Management Plan (SCMP). This section details the specific tools, techniques, and methodologies that will be used for configuration management. For example, it might specify the use of a particular version control system (e.g., Git) and describe the techniques for performing code reviews and audits.
  • 460. produced. • Methods for accessing information between scheduled communications. • A method for updating and refining the communications management plan as the project progresses and develops. The communications management plan may be formal or informal, highly detailed or broadly framed, based on the needs of the project. It is a subsidiary component of the overall project plan. 9. The software quality assurance plan Every project must have a quality plan. The quality plan will be presented as a section in the project plan. Software Project Management (CS615) 179 © Copyright Virtual University of Pakistan It is drawn up by the project manager at the start of the project and should be agreed with the project sponsor. You would expect the quality plan to contain the following elements: ƒ Statement of the quality control organisation ƒ Identification of specific standards and methods that will be used ƒ Definition of the quality control procedures; this is aligned to the Work Breakdown Structure ƒ Specification of quality milestones ƒ Detail of unusual features ƒ Change control and configuration management ƒ Detail of acceptance procedures ƒ Specification of quality assurance procedures
  • 461. The software quality assurance plan (SQAP), like the software configuration plan, is also part of the overall software project development plan. The SQAP documents which resources are needed, how they should be used and which standards and procedures will be applied during the project. The SQAP then becomes the mandate for the quality assurance group during project development. The issuance of this plan is the responsibility of the project manager, though in large projects it will usually be delegated to the quality assurance manager. The SQAP may appear as a separate document or as a section within the project development plan, and may include the configuration management plan (if this has not been documented separately). Table 5 contains a list of the main subjects covered in the SQAP. When any of these subjects is covered elsewhere, such as in the software configuration management plan (SCMP), it can be omitted from the SQAP and replaced by a pointer to the document in which it is covered. However, the SCMP and the SQAP are concerned with different aspects of the controlled items. The SCMP is primarily concerned with the format of controlled items while the SQAP is more involved with the contents of controlled items. The SQAP must cover subcontractors, vendors and
  • 462. suppliers, irrespective of whether or not these external entities have their own quality assurance organization. In any project, the quality of external components is ultimately the concern of the project manager and the SQA organization. When a system fails, it usually makes Software Project Management (CS615) 180 © Copyright Virtual University of Pakistan little difference whether the failure is due to an externally developed component or an in-house developed component. The plans for supervising these external groups must be adapted to the type of external components being provided (off the shelf or new development) and the type of organization (do they have their own quality assurance organization?). (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for the Communications Management Plan and Software Quality Assurance Plan (SQAP) based on the contents listed in
  • 463. your prompt. These examples are coherent and part of a single lecture, ensuring clarity. 8. 8. 8. 8. 8. Communications Management Plan Communications Management Plan Communications Management Plan Communications Management Plan Communications Management Plan Collection and Filing Structure: This section specifies how information will be collected and stored. For example, status reports might be collected weekly via a project management tool like Jira, and stored in a shared drive that all team members have access to. The procedures also explain how updates or corrections to previously distributed information, such as revised project timelines, will be handled and communicated to relevant stakeholders. Distribution Structure: This section details who will receive project information and how it will be delivered. For example, the project manager might distribute weekly status reports to the development team through email and hold monthly meetings with senior management to review progress. This structure should align with the project’s organization chart, where responsibilities and reporting relationships are clearly defined. Description of Information to Be Distributed: This section describes what information will be communicated, its format, and how detailed it should be. For example, technical documentation might be distributed as PDF files with a detailed description of system architecture, while status reports could be brief, summarizing key milestones achieved and any risks encountered. Production Schedules: This section outlines when different types of communication will be created and distributed. For example, the project plan might specify that status reports will be produced every Friday, while a quarterly technical review will be scheduled at the end of each quarter. Methods for Accessing Information Between Scheduled Communications: This section provides guidelines for team members who need to access information between scheduled communications. For example, project members might be able to access up-to-date project documentation on the company’s internal wiki or project management software. Updating the Communications Management Plan: This section explains how the plan will be updated over time. For example, if the project scope changes and new stakeholders are added, the communications plan might be revised to include them in the distribution of status reports. The plan might be reviewed and updated every six months or as needed based on project developments.
  • 464. 9. 9. 9. 9. 9. Software Quality Assurance Plan (SQAP) Software Quality Assurance Plan (SQAP) Software Quality Assurance Plan (SQAP) Software Quality Assurance Plan (SQAP) Software Quality Assurance Plan (SQAP) Statement of the Quality Control Organization: This section describes who is responsible for ensuring software quality. For example, a quality assurance (QA) team is led by a QA manager, who reports to the project manager. This team oversees all quality control activities within the project. Identification of Specific Standards and Methods: This section specifies the standards and methods that will be used to ensure quality. For example, the project might adopt the ISO 9001 standard for quality management and use automated testing tools like Selenium to verify software functionality. Definition of Quality Control Procedures: This section details the quality control procedures that will be followed during the project. For example, the team may follow a procedure where each new software feature must pass unit testing, integration testing, and user acceptance testing before it is considered complete. Specification of Quality Milestones: This section outlines key milestones related to quality assurance. For example, quality milestones might include the completion of the first round of testing, the resolution of all high- priority defects, and the final approval of the software by the quality assurance team. Detail of Unusual Features: This section describes any unusual features or special requirements that affect quality control. For example, the project may involve integrating a third-party component that requires special testing procedures due to its complexity. Change Control and Configuration Management: This section describes how changes to the software will be managed. For example, any change requests must go through a formal approval process, and configuration management tools like Git will be used to track changes to the codebase. Detail of Acceptance Procedures: This section specifies how the project will determine if the software meets the required quality standards. For example, the acceptance procedure might involve conducting a formal review with the client, where the software is demonstrated and evaluated against the project’s acceptance criteria. Specification of Quality Assurance Procedures: This section describes the overall procedures the quality assurance team will follow. For example, QA procedures might include regular code reviews, automated regression testing, and manual testing of user interfaces.
  • 465. Table 5: Example of the contents of a software quality assurance plan 1. Software quality assurance organization and resources Organizational structure Personnel skill level and qualifications Resources 2. SQA standards. Procedures, policies and guidelines 3. SQA documentation requirements List of all documentation subject to quality control Description of method of evaluation and approval 4. SQA software requirements Evaluation and approval of software Description of method of evaluation Evaluation of the software development process Evaluation of reused software This structure provides students with a clear understanding of both the Communications Management Plan and the Software Quality Assurance Plan, explaining how these plans are integrated into the overall project management process and tailored to the specific needs of the project. Covering Subcontractors, Vendors, and Suppliers: This section explains how the SQAP applies to external entities, such as subcontractors or vendors. For example, the project might require that all subcontractors follow the same testing and quality assurance procedures as the in-house team. The QA team will review and verify the quality of any external components before they are integrated into the project. Adaptation to External Groups: This section describes how the plan will be adapted based on the type of external components or the nature of the external organization. For example, if a vendor is providing an off-the-shelf product, the QA team might focus on integration testing, while if a subcontractor is developing a custom module, the team may require that the subcontractor follows the full quality assurance process.
  • 466. Evaluation of non-deliverable software 5. Evaluation of storage handling and delivery Project documents Software Data files 6. Reviews and audits 7. Software configuration management (when not addressed in a separate document) 8. Problem reporting and corrective action 9. Evaluation of test procedures 10. Tools techniques and methodologies 11. Quality control of subcontractors, vendors and suppliers 12. Additional control Miscellaneous control procedures Project specific control 13. SQA reporting, records and documentation. Status reporting procedures Maintenance Storage and security Retention period The SQAP, as part of the project development plan, should be reviewed and updated periodically and whenever any requirements, project development procedures, methodologies or other relevant activities are changed. Software Project Management (CS615) 182 © Copyright Virtual University of Pakistan The IEEE SQAP guide recommends periodic evaluation of two aspects of the plan:
  • 467. (1) The plan's content and (2) The plan's implementation The plan's content should be evaluated with regard to the specific SQAP standard used, to assure the plan's continuing compliance with the standard even when the characteristics of the software project change. The plan's implementation should be evaluated in terms of the changing scope of the project, including the tasks and responsibilities referenced in the plan, and other new or changed characteristics of the project. When updating the SQAP the following project activities and events should be considered: ƒ New or changed contractual requirements ƒ Additional standards and policies ƒ Additional project documents ƒ Changes in the project's organizational structure ƒ New tools and utilities ƒ Additional subcontractors and vendors 10. The RMMM Plan A collection of risk information sheets developed for all risks that lie above the cut off. A risk management strategy can be included in the software project plan or the risk management steps can be organized into a separate Risk Mitigation, Monitoring and Management Plan. The RMMM plan documents all work performed as part of risk analysis and are used by the project manager as part of the overall project plan. Some software teams do not develop a formal RMMM
  • 468. document. Rather, each risk is documented individually using a risk information sheet (RIS) [WIL97]. In most cases, the RIS is maintained using a database system, so that creation and information entry, priority ordering, searches, and other analysis may be accomplished easily. Once RMMM has been documented and the project has begun, risk mitigation and monitoring steps commence. Software Project Management (CS615) 183 © Copyright Virtual University of Pakistan As we have already discussed, risk mitigation is a problem avoidance activity. Risk monitoring is a project tracking activity with three primary objectives: 1. To assess whether predicted risks do, in fact, occur; 2. To ensure that risk aversion steps defined for the risk are being properly applied; and 3. To collect information that can be used for future risk analysis. In many cases, the problems that occur during a project can be traced to more than one risk. Another job of risk monitoring is to attempt to allocate origin (what risk(s) caused which problems throughout. the project). (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are
  • 469. part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for the contents of a Software Quality Assurance Plan (SQAP) and the Risk Mitigation, Monitoring, and Management (RMMM) Plan, ensuring coherence as they are part of a single lecture. Software Quality Assurance Plan (SQAP) Software Quality Assurance Plan (SQAP) Software Quality Assurance Plan (SQAP) Software Quality Assurance Plan (SQAP) Software Quality Assurance Plan (SQAP) Software Quality Assurance Organization and Resources 1 Organizational Structure: This section details the structure of the SQA team. For example, a QA Manager leads a team of QA engineers and testers, who report their findings to the project manager. 2 Personnel Skill Level and Qualifications: Here, the plan describes the qualifications required for the QA team, such as knowledge of testing methodologies, experience with testing tools, and familiarity with software development practices. 3 Resources: This section lists the resources available to the QA team, such as testing environments, hardware for performance testing, and software tools like Selenium or JIRA for tracking defects. 4 SQA Standards, Procedures, Policies, and Guidelines 5 This section specifies the standards (e.g., ISO 9001), procedures (e.g., code review process), and policies (e.g., defect reporting) that the project must follow to ensure quality. 6 SQA Documentation Requirements 7 List of Documentation Subject to Quality Control: All project documents such as requirements specifications, design documents, and test plans must undergo quality checks. 8 Description of Method of Evaluation and Approval: For example, documents may be reviewed through formal peer reviews, and approval is given by the QA manager after all identified issues are resolved. 9
  • 470. SQA Software Requirements 10 Evaluation and Approval of Software: The team assesses the software to ensure it meets the requirements. For example, user stories and features are tested to verify they function as expected. 11 Evaluation of the Software Development Process: This involves evaluating whether the development team is following the established processes, such as using version control or conducting code reviews. 12 Evaluation of Reused Software: Any software components reused from other projects are evaluated for compatibility and correctness. 13 Evaluation of Non-Deliverable Software: Tools and utilities used internally, such as scripts or custom testing tools, are evaluated to ensure they work correctly. 14 Evaluation of Storage, Handling, and Delivery 15 Project Documents: Procedures are defined to ensure that all project documents are stored securely, such as using a version-controlled repository (e.g., GitHub) to prevent unauthorized changes. 16 Software and Data Files: The plan describes how software and data files should be stored and delivered securely, ensuring that no corruption occurs during transfer. 17 Reviews and Audits 18 Regular reviews and audits of the software and project documents are scheduled. For example, code audits might be conducted at the end of each sprint to ensure adherence to coding standards. 19 Software Configuration Management (When Not Addressed in a Separate Document) 20 This section explains how configuration management is handled. For example, version control systems like Git are used to track changes to the software, ensuring consistency across different versions. 21 Problem Reporting and Corrective Action 22 This section details the process for reporting defects and implementing corrective actions. For example, defects are reported using an issue-tracking system like JIRA, and the development team is responsible for fixing them within a specified timeframe. 23
  • 471. Risk Mitigation, Monitoring, and Management Risk Mitigation, Monitoring, and Management Risk Mitigation, Monitoring, and Management Risk Mitigation, Monitoring, and Management Risk Mitigation, Monitoring, and Management (RMMM) Plan (RMMM) Plan (RMMM) Plan (RMMM) Plan (RMMM) Plan Evaluation of Test Procedures 24 Test procedures are evaluated to ensure they are thorough and effective. For example, automated tests may be reviewed to confirm they cover all critical scenarios. 25 Tools, Techniques, and Methodologies 26 This section lists the tools, techniques, and methodologies used in the project. For example, the team might use Selenium for automated testing and follow the Agile methodology. Quality Control of Subcontractors, Vendors, and Suppliers 1 This section describes how the quality of work done by subcontractors and vendors is controlled. For example, any software components delivered by subcontractors must be tested according to the same quality standards as in-house components. Additional Control 1 Miscellaneous Control Procedures: Additional quality control procedures that are unique to the project are listed here. For example, special security testing might be required for certain features. Project-Specific Control: Any controls that are specific to the project are documented. For example, a project involving a medical device might require compliance with FDA regulations. SQA Reporting, Records, and Documentation 1 Status Reporting Procedures: This section defines how the quality assurance team will report its status to the project manager, such as through weekly reports or dashboard updates. Maintenance: This section explains how quality-related documentation will be maintained, such as by using version control for all documents. Storage and Security: Procedures for securely storing QA documents, such as using encrypted cloud storage, are outlined. Retention Period: The plan specifies how long QA records will be retained, which might be required for compliance with industry standards.
  • 472. By covering both the SQAP and RMMM Plan in this lecture, students will have a clear understanding of how quality assurance and risk management are handled in software projects, with examples that illustrate the practical application of these concepts. Risk Information Sheets (RIS) 1 A Risk Information Sheet is created for each identified risk. For example, if there’s a risk of a key team member leaving, this risk would be documented in an RIS, including details about its likelihood, impact, and mitigation strategies. 2 Risk Management Strategy 3 The risk management strategy outlines how the team will handle identified risks. For example, if there’s a risk of project delays, the strategy might include adding buffer time to the schedule or cross- training team members to handle multiple roles. 4 Risk Mitigation 5 Problem Avoidance: Risk mitigation focuses on avoiding potential problems. For example, if there’s a risk of data loss, the team might implement regular data backups to mitigate this risk. 6 Risk Monitoring 7 Assessing Predicted Risks: The team continuously monitors the project to see if any predicted risks occur. For example, if there’s a risk of a vendor delivering late, the team regularly checks in with the vendor to ensure they’re on track. 8 Ensuring Proper Application of Risk Aversion Steps: The team ensures that risk aversion steps are being followed. For example, if additional testing was identified as a mitigation strategy for a high-risk feature, the team checks that this testing is being carried out as planned. 9 Collecting Information for Future Risk Analysis: The team collects data on risks that occurred and how they were managed, which can help in future projects. For example, if a project was delayed due to a specific issue, that information can be used to improve planning in the future. 10
  • 473. 11. Project Development Budget Good estimates are important, as they form the foundations of a good project development plan. This plan, prepared by the project manager, is produced during the initial stages of the project and includes estimates related to: • The project development budget • The project development schedule • The required development resources (development staff, development equipment etc.) In parallel with integration and testing, the following managerial and activities take place: • Final budgeting of the project; the cost of changes is determined, risk contingency activities are evaluated, and the budget is updated. • Training is conducted for users, operators, customers, installers, maintenance engineers, and marketing engineers. • Installation sites are prepared, and the infrastructure for hardware and special equipment is planned and installed. • The development team size is reduced. 12. Maintenance Documents The phased approach to software development divides the development life cycle into: • The development of the software code • Preparation for integration and test of the system
  • 474. (the next phase) • The development of the maintenance plan Apart from the actual code being written (and hopefully being well commented), some of the other documents that are developed during this phase include: Software Project Management (CS615) 184 © Copyright Virtual University of Pakistan • The programmer's notebook, documenting coding decisions, unit tests, and resolution of implementation problems. • Maintenance plan and documentation, including all necessary documentation needed for system maintenance. • Initial versions of the user documentation, including reference manuals and operator guides. At the conclusion of the integration and test phase all documentation must be complete and ready for delivery, including: • Maintenance documentation • Final user documentation • All updated development documentation • Test documentation and test reports Maintenance requires a much smaller team, and a different type of management. In fact, a single maintenance group can be established to maintain several products, with common management, configuration control, installation and field engineers, and maintenance of documentation. The documents that need to be updated during this phase include:
  • 475. • Version release documentation • Problem reports • All development documentation • All user documentation • Maintenance logs and customer service reports (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for the topics related to the project development budget and maintenance documents, ensuring coherence as these are part of a single lecture. 11. Project Development Budget 11. Project Development Budget 11. Project Development Budget 11. Project Development Budget 11. Project Development Budget Project Development Budget 1 The project manager prepares a budget estimate during the initial project planning stages. For example, the budget includes costs for development staff salaries, software licenses, hardware requirements, and other resources needed throughout the development process. This helps the team ensure they have enough funds to complete the project. 2 Project Development Schedule 3 The project manager also creates a schedule that estimates how long different phases of the project will take. For example, the schedule might allocate three months for development, one month for testing, and another month for deployment. 4 Required Development Resources 5
  • 476. 12. Maintenance Documents 12. Maintenance Documents 12. Maintenance Documents 12. Maintenance Documents 12. Maintenance Documents The project manager estimates the resources required for the project, such as the number of developers needed, the development tools required (e.g., IDEs like Visual Studio), and any special equipment for testing or deployment (e.g., specific servers for deployment). 6 Final Budgeting of the Project 7 Once integration and testing begin, the project manager finalizes the budget. For example, if changes are made during development, such as adding new features, the additional costs are evaluated and the budget is updated to reflect these changes. Risk contingency costs, like preparing for potential delays, are also reviewed. 8 Training for Users and Other Stakeholders 9 Training sessions are conducted to prepare users, operators, and other stakeholders (e.g., marketing engineers) for the new software. For example, end-users might attend a training session to learn how to use the system, while maintenance engineers are trained on how to troubleshoot and repair it. 10 Preparation of Installation Sites 11 The installation site for the software is prepared during this phase. For example, if the software is to be installed in a data center, the required servers and network infrastructure are set up in advance to ensure everything is ready for deployment. 12 Development Team Size Reduction 13 As the project progresses into the final stages, the size of the development team is reduced. For example, after the major development work is completed, fewer developers are needed, and some may move on to other projects, leaving a smaller team to handle final fixes and integration. 14 Phased Approach to Software Development 1 The software development life cycle is divided into phases, such as coding, integration, and testing. For example, after writing the code, the next phase might involve integrating the code into the overall system and performing system-level tests to ensure everything works as expected. 2
  • 477. Development of the Maintenance Plan 3 A maintenance plan is created to ensure the software can be effectively maintained after it is delivered. For example, the plan might specify how updates and bug fixes will be managed, and who will be responsible for maintaining the software over time. 4 Programmer's Notebook 5 During development, programmers keep a notebook documenting important details such as coding decisions, unit tests, and how they resolved any problems they encountered. For example, if a programmer encounters a bug in the code, they might document the steps they took to identify and fix the issue. 6 Maintenance Documentation 7 The maintenance documentation provides all the information needed to maintain the software after it is delivered. For example, this includes detailed instructions on how to install updates, troubleshoot problems, and perform routine maintenance tasks. 8 User Documentation 9 Initial versions of user documentation are also developed during this phase. For example, reference manuals and operator guides provide end-users and system operators with detailed instructions on how to use the software and troubleshoot common issues. 10 Conclusion of Integration and Test Phase 11 At the end of the integration and test phase, all project documentation must be complete and ready for delivery. For example, maintenance documentation, user manuals, development documentation, and test reports are finalized to ensure they are accurate and up-to-date. 12 Smaller Maintenance Team 13 After the project is delivered, a smaller maintenance team is formed to handle ongoing support. For example, while a large team might have been needed during the development phase, only a few people are required to handle updates and fixes during the maintenance phase. 14 Version Release Documentation 15 Version release documentation is updated to reflect any changes or updates made to the software. For example, this might include a list of 16
  • 478. From ChatGPT, designed with FancyGPT By covering both the project development budget and maintenance documents in this lecture, students will have a clear understanding of how budgeting, scheduling, resource planning, and documentation play critical roles throughout the software development and maintenance phases. new features or bug fixes introduced in the latest software release. Problem Reports 17 Problem reports document any issues encountered during the use of the software. For example, if a user reports a bug, the problem report details the issue, its impact, and the steps taken to resolve it. 18 Updated Development Documentation 19 All development documentation, such as design documents and code specifications, is updated to reflect any changes made during the final stages of the project. 20 Updated User Documentation 21 User documentation, such as manuals and guides, is updated to include any new features or changes made to the software after delivery. 22 Maintenance Logs and Customer Service Reports 23 Maintenance logs track all maintenance activities, such as bug fixes and updates. Customer service reports document any issues reported by users, along with the actions taken to resolve them. 24
  • 479. cs615 lecture 26a cs615 lecture 26a cs615 lecture 26a cs615 lecture 26a cs615 lecture 26a 13. The statement of work (SOW) The statement of work is the basis of the contract between the pro-poser and the customer, and is often incorporated into the contract. The SOW contains a detailed list of all work to be performed by the pro-poser for the benefit of the customer. It is a narrative description of products or services to be supplied by the project. For internal projects, the project initiator or sponsor provides the statement of work based on business needs, or product or service requirements. For external projects, the statement of work can be received from the customer as part of a bid document, for example, request for proposal, request for information, request for bid, or as part of a contract. The SOW indicates a: • Business need - an organization’s business need, can be based on needed training, market demand, technological advance, legal requirement, or governmental standard. Software Project Management (CS615) 185 © Copyright Virtual University of Pakistan • Product scope description - documents the product requirements and characteristics of the product or service that the project will be undertaken to create. The product requirements will generally have less detail during the initiation process and more detail during later processes, as the product characteristics are progressively elaborated. These requirements should also document the relationship among the products or services being created and the business need or other stimulus that causes the need. While the form and substance of the product requirements document will vary, it 18/08/2024, 13:29 FancyGPT - cs615 lecture 26a chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/4
  • 480. should always be detailed enough to support later project planning. • Strategic plan - all projects support the organization’s strategic goals—the strategic plan of the performing organization should be considered as a factor in project selection decisions. The SOW starts as a general list of required deliverables in the RFP. A more detailed version t of the SOW is submitted as part of the proposal, and is still considered only an initial description of the work to be performed. The blinding version of the SOW is finalized during contract negotiations, or after the detailed project requirements have been completed. Table 6 presents an example of an SOW outline for a software project. The list of items varies considerably, depending on the type of project being developed; for example not all projects include the delivery of hardware components, and not all projects require training or installation. The basic guideline for the preparation of the SOW is that any activity, service or product required by the customer, and agreed to by the developer, must be included. This means that there can be no binding work items that were informally understood or agreed to verbally, which do not appear in the SOW. The formal SOW must include all and only the work to be performed. This condition prevents misunderstandings and disagreements later, after the project begins. The statement of work (SOW) describes the procurement item in sufficient detail to allow prospective sellers to determine if they are capable of providing the item. “Sufficient detail” may vary, based on the nature of the item, the needs of the buyer, or the expected contract form. Some application areas recognize different types of SOW. For example, in some government jurisdictions, the term SOW is reserved for a procurement item that is a clearly specified product or service, and the term Statement of Objectives (SOO) 18/08/2024, 13:29 FancyGPT - cs615 lecture 26a chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/4
  • 481. is used for a procurement item that is presented as a problem to be solved. The statement of work may be revised and refined as it moves through the procurement process. For example, a prospective seller may suggest a more Software Project Management (CS615) 186 © Copyright Virtual University of Pakistan efficient approach or a less costly product than that originally specified. Each individual procurement item requires a separate statement of work. However, multiple products or services may be grouped as one procurement item with a single SOW. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Sure! Let's break down the topics from the Statement of Work (SOW) section into simple, beginner-level examples. 1. 1. 1. 1. 1. Business Need Business Need Business Need Business Need Business Need 2. 2. 2. 2. 2. Product Scope Description Product Scope Description Product Scope Description Product Scope Description Product Scope Description 3. 3. 3. 3. 3. Strategic Plan Strategic Plan Strategic Plan Strategic Plan Strategic Plan 4. 4. 4. 4. 4. General List of Required Deliverables in the RFP General List of Required Deliverables in the RFP General List of Required Deliverables in the RFP General List of Required Deliverables in the RFP General List of Required Deliverables in the RFP 5. 5. 5. 5. 5. Detailed SOW Submitted as Part of the Proposal Detailed SOW Submitted as Part of the Proposal Detailed SOW Submitted as Part of the Proposal Detailed SOW Submitted as Part of the Proposal Detailed SOW Submitted as Part of the Proposal Example: Imagine a company needs to develop new software to meet updated government regulations. The business need here is to comply with these regulations by creating the necessary software. Example: Suppose the project is to develop an e-commerce website. The product scope description would include the required features like a shopping cart, payment gateway, and user login system. Initially, this description might be broad, but as the project progresses, more details about each feature will be added. Example: If a company’s strategic goal is to expand into online markets, a project to build an e-commerce website would align with this goal. The SOW should consider this strategic plan to ensure the project supports the company's overall direction. Example: In an RFP (Request for Proposal) for developing a mobile app, the general list might include the creation of the app, user testing, and final delivery of the app to the app stores. This list is broad and will be refined later. Example: When a software development company submits a proposal for the mobile app project, they might detail the specific programming languages they’ll use, the timeline for development, and how they’ll handle user testing. 18/08/2024, 13:29 FancyGPT - cs615 lecture 26a chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/4
  • 482. From ChatGPT, designed with FancyGPT 6. 6. 6. 6. 6. Binding Version of the SOW Finalized During Contract Binding Version of the SOW Finalized During Contract Binding Version of the SOW Finalized During Contract Binding Version of the SOW Finalized During Contract Binding Version of the SOW Finalized During Contract Negotiations Negotiations Negotiations Negotiations Negotiations 7. 7. 7. 7. 7. Prevention of Misunderstandings Prevention of Misunderstandings Prevention of Misunderstandings Prevention of Misunderstandings Prevention of Misunderstandings 8. 8. 8. 8. 8. SOW Describing Procurement Items in Sufficient Detail SOW Describing Procurement Items in Sufficient Detail SOW Describing Procurement Items in Sufficient Detail SOW Describing Procurement Items in Sufficient Detail SOW Describing Procurement Items in Sufficient Detail 9. 9. 9. 9. 9. Different Types of SOW (e.g., Statement of Objectives) Different Types of SOW (e.g., Statement of Objectives) Different Types of SOW (e.g., Statement of Objectives) Different Types of SOW (e.g., Statement of Objectives) Different Types of SOW (e.g., Statement of Objectives) 10. 10. 10. 10. 10. SOW Revised During Procurement Process SOW Revised During Procurement Process SOW Revised During Procurement Process SOW Revised During Procurement Process SOW Revised During Procurement Process These examples are intended to clarify how each aspect of the SOW is applied in a project, helping you understand its importance in managing project scope and expectations. Example: After discussing the proposal with the client, the final SOW might be adjusted to include a specific launch date or additional features that were requested during negotiations. This finalized SOW will be the binding document for the project. Example: If the SOW specifies that the mobile app will include a chat feature, both the developer and the client know this feature must be delivered. Any additional features requested later that aren’t in the SOW would require a new agreement. Example: If the project involves purchasing third-party software for integration, the SOW would detail the specific software needed, including version, licensing requirements, and how it should integrate with the project. Example: In a government project, the SOW might detail the exact software to be developed, while the Statement of Objectives (SOO) might only outline the problem that needs solving, allowing bidders to propose their solutions. Example: During the bidding process, a vendor might propose a cheaper software solution that still meets the project’s needs. The SOW could be revised to reflect this change before the contract is signed. 18/08/2024, 13:29 FancyGPT - cs615 lecture 26a chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/4
  • 483. cs611 lecture 26c cs611 lecture 26c cs611 lecture 26c cs611 lecture 26c cs611 lecture 26c Table 6: A sample SOW outline for a software project 1. Referenced documents • requirements specification • existing system description • customer's RFP • developer's proposal • vendor's and developer's technical literature 2. Software deliverables • functionality (as documented in the requirements specification) • list of major software components 3. Equipment and hardware deliverables • functionality (as documented in the requirements specification) • list of major hardware components 4. Training • user courses • operator training • installation training 5. Market research 6. Procurement 7. Supervision of subcontractors 8. Documentation • development documentation • user documentation • maintenance documentation • other technical documentation 9. Testing • alpha testing • beta testing • acceptance tests (ATP) 10. Installation 11. Maintenance services 12. Other services and deliverable items 13. Method of delivery Software Project Management (CS615) 187 © Copyright Virtual University of Pakistan • software • documentation • hardware The statement of work should be as clear, as complete, and as 18/08/2024, 13:54 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/4
  • 484. concise as possible. It should include a description of any collateral services required, such as performance reporting or post-project operational support for the procured item. In some application areas, there are specific content and format requirements for a SOW. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Lecture: Understanding the Sample Statement of Work Lecture: Understanding the Sample Statement of Work Lecture: Understanding the Sample Statement of Work Lecture: Understanding the Sample Statement of Work Lecture: Understanding the Sample Statement of Work (SOW) for a Software Project (SOW) for a Software Project (SOW) for a Software Project (SOW) for a Software Project (SOW) for a Software Project In this lecture, we’ll go through the different sections of a sample Statement of Work (SOW) for a software project, providing simple, beginner-level examples for each topic mentioned. The goal is to make you familiar with what each part of the SOW entails. 1. Referenced Documents 1. Referenced Documents 1. Referenced Documents 1. Referenced Documents 1. Referenced Documents Referenced documents are existing documents that provide background or additional information needed for the project. Examples include: 2. Software Deliverables 2. Software Deliverables 2. Software Deliverables 2. Software Deliverables 2. Software Deliverables This section lists the software components that will be delivered to the customer. For example: 3. Equipment and Hardware Deliverables 3. Equipment and Hardware Deliverables 3. Equipment and Hardware Deliverables 3. Equipment and Hardware Deliverables 3. Equipment and Hardware Deliverables If the project includes physical hardware, this section outlines what will be provided. For instance: Requirements Specification: A document listing all the features and functionalities the software must have. Existing System Description: An overview of the current system that the new software will replace or integrate with. Customer’s RFP (Request for Proposal): A formal document from the customer outlining what they need in the new software. Developer’s Proposal: The document in which the developer explains how they plan to meet the customer's needs. Vendor's and Developer's Technical Literature: Manuals, brochures, or guides that describe products or technologies used in the project. Functionality: The specific features of the software, like user login, data processing, or report generation. List of Major Software Components: The main parts of the software, such as the user interface, database, and backend services. 18/08/2024, 13:54 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/4
  • 485. 4. Training 4. Training 4. Training 4. Training 4. Training Training ensures that users and operators know how to use the software and hardware. Examples include: 5. Market Research 5. Market Research 5. Market Research 5. Market Research 5. Market Research Market research involves studying market trends, competitors, and customer needs to ensure the software meets its intended market. An example might include: 6. Procurement 6. Procurement 6. Procurement 6. Procurement 6. Procurement Procurement involves acquiring the necessary hardware, software, or services for the project. An example: 7. Supervision of Subcontractors 7. Supervision of Subcontractors 7. Supervision of Subcontractors 7. Supervision of Subcontractors 7. Supervision of Subcontractors This involves overseeing other companies or teams hired to complete parts of the project. For example: 8. Documentation 8. Documentation 8. Documentation 8. Documentation 8. Documentation Documentation is the written material that supports the project. Examples include: 9. Testing 9. Testing 9. Testing 9. Testing 9. Testing Testing ensures the software works correctly before it’s released. Examples include: 10. Installation 10. Installation 10. Installation 10. Installation 10. Installation This section covers the process of setting up the software and hardware at the customer’s site. An example: Functionality: The purpose or use of the hardware, like servers for data storage or routers for network connectivity. List of Major Hardware Components: Key items like servers, workstations, or networking devices. User Courses: Classes or tutorials that teach end-users how to operate the software. Operator Training: Training sessions for those responsible for maintaining and running the software or hardware. Installation Training: Guidance on how to correctly install the software or hardware. Conducting surveys to understand what features users expect from similar software products. Purchasing licenses for third-party software that will be integrated into the project. Ensuring that a third-party team responsible for developing a specific software module is meeting deadlines and quality standards. Development Documentation: Documents explaining how the software was built, like design documents and code comments. User Documentation: Manuals or guides that help users understand how to use the software. Maintenance Documentation: Information on how to maintain and update the software after it’s deployed. Other Technical Documentation: Any other technical guides, such as installation instructions or troubleshooting tips. Alpha Testing: Early testing done by developers to catch bugs. Beta Testing: Testing done by a small group of actual users to get feedback and find more issues. Acceptance Tests (ATP): The final tests to confirm the software meets the customer’s requirements before delivery. 18/08/2024, 13:54 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/4
  • 486. From ChatGPT, designed with FancyGPT 11. Maintenance Services 11. Maintenance Services 11. Maintenance Services 11. Maintenance Services 11. Maintenance Services Maintenance services include ongoing support after the software is deployed. An example: 12. Other Services and Deliverable Items 12. Other Services and Deliverable Items 12. Other Services and Deliverable Items 12. Other Services and Deliverable Items 12. Other Services and Deliverable Items This category includes any additional items or services not covered elsewhere in the SOW. An example: 13. Method of Delivery 13. Method of Delivery 13. Method of Delivery 13. Method of Delivery 13. Method of Delivery This section describes how the software, documentation, and hardware will be delivered to the customer. For example: Conclusion Conclusion Conclusion Conclusion Conclusion The Statement of Work (SOW) is a critical document in a software project as it clearly defines what will be delivered and what is expected. By understanding each section of the SOW, both the customer and the developer can ensure that the project runs smoothly and meets the required objectives. Installing the software on the customer's servers and ensuring it runs as expected. Regular updates to fix bugs or add new features as needed. Providing customer support for a set period after the software is deployed. Software: Delivering the software as a downloadable file or pre-installed on a server. Documentation: Providing user manuals in PDF format. Hardware: Shipping the necessary hardware to the customer’s location. 18/08/2024, 13:54 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/4
  • 487. cs611 lecture 26c cs611 lecture 26c cs611 lecture 26c cs611 lecture 26c cs611 lecture 26c 14. Responsibility Assignment Matrix (RAM) Project roles (who do what) and responsibilities (who decide what) must be assigned to the appropriate project stakeholders. Roles and responsibilities may vary over time. Most roles and responsibilities will be assigned to stakeholders who are actively involved in the work of the project, such as the project manager, other members of the project management team, and the individual contributors. The roles and responsibilities of the project manager are generally critical on most projects, but vary significantly by application area. Project roles and responsibilities should be closely linked to the project scope definition. A Responsibility Assignment Matrix (RAM) is often used for this purpose. On larger projects, RAM s may be developed at various levels. For example, a high-level RAM may define which group or unit is responsible for each component of the work breakdown structure, while lower-level RAM s are used within the group to assign roles and responsibilities for specific activities to particular individuals. A structure that relates the project organization structure to the work breakdown structure, to help ensure, that each element of the project’s scope of work is assigned to a responsible individual. – Shows who does what (x=person, y=phase). The most important feature of the RAM is the participatory development process involving all stakeholders. Show who is participant, who is accountable, who handles reviews, who provides input and who must sign off on specific work packages or project phases. 18/08/2024, 13:50 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/6
  • 488. 15. Project Charter Software Project Management (CS615) 188 © Copyright Virtual University of Pakistan A document issued by senior management that formally authorizes the existence of a project. And it provides the project manager with the authority to apply organizational resources to project activities. 16. Risk management plan The risk management plan describes how risk identification, qualitative and quantitative analysis, response planning, monitoring, and control will be structured and performed during the project life cycle. The risk management plan may include the following. – Methodology. Defines the approaches, tools, and data sources that may be used to perform risk management on this project. Different types of assessments may be appropriate, depending upon the project stage, amount of information available, and flexibility remaining in risk management. – Roles and responsibilities. Defines the lead, support, and risk management team membership for each type of action in the risk management plan. Risk management teams organized outside of the project office may be able to perform more independent, unbiased risk analyses of project than those from the sponsoring project team. – Budgeting. Establishes a budget for risk management for the project. – Timing. Defines how often the risk management process will be performed throughout the project life cycle. Results should be developed early enough to affect decisions. The decisions should be revisited periodically during project execution. – Scoring and interpretation. The scoring and interpretation methods appropriate for the type and timing of the qualitative and quantitative risk analysis being performed. Methods and scoring must be determined in 18/08/2024, 13:50 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/6
  • 489. advance to ensure consistency. – Thresholds. The threshold criteria for risks that will be acted upon, by whom, and in what manner. The project owner, customer, or sponsor may have a different risk threshold. The acceptable threshold forms the target against which the project team will measure the effectiveness of the risk response plan execution. – Reporting formats. Describes the content and format of the risk response plan. Defines how the results of the risk management processes will be documented, analyzed, and communicated to the project team, internal and external stakeholders, sponsors, and others. Software Project Management (CS615) 189 © Copyright Virtual University of Pakistan – Tracking. Documents how all facets of risk activities will be recorded for the benefit of the current project, future needs, and lessons learned. Documents if and how risk processes will be audited. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 4.10 Scheduling Any project can be completed, given an infinite amount of time and resources. Realistically, the amount of time available for project development is always finite. In fact, in most cases it is less than the project manager considers sufficient. Few projects are completed ahead of time; many projects overrun their schedule. 18/08/2024, 13:50 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/6
  • 490. The project schedule is one of the most important parts of the project development plan. The plan includes: – Scheduling of development activities and – Scheduling of project resources, particularly people The project development plan describes in detail: – how the project manager plans to develop the project – what resources will be required and – how these resources will be applied No matter how well the project schedule is prepared, that schedule is useless unless it is adhered to. It is the project manager's responsibility to withstand pressure and to assure that the project is developed in an orderly fashion, according to the schedule. Whenever circumstances change, the project schedule should then be updated to reflect the new situation. A schedule is a list of: – Activities and – Anticipated time of implementation of these activities There are many ways of representing a schedule: – Lists of activities, – Diagrams, – Graphs etc. Software Project Management (CS615) 190 © Copyright Virtual University of Pakistan The most common methods of schedule representation are : – precedence network diagrams (such as PERT), – Gantt charts and – lists of milestones (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Sure! Here are simple, beginner-level examples for the topics related to scheduling: Scheduling Scheduling Scheduling Scheduling Scheduling Project Schedule 1 Example: For a project to create a new website, the project schedule might include tasks like designing the homepage, writing content, coding, and testing. 2 18/08/2024, 13:50 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/6
  • 491. These examples illustrate how to plan, schedule, and track project activities and resources to ensure a project is completed on time. Each task will have a start and end date. Scheduling of Development Activities 3 Example: The website project schedule lists activities such as Design Homepage starting on August 1st and ending on August 5th, Write Content from August 6th to August 10th, and so on. 4 Scheduling of Project Resources 5 Example: The project plan indicates that the web designer will work from August 1st to August 5th, the content writer will be involved from August 6th to August 10th, and the developer will work from August 11th to August 20th. 6 Project Development Plan 7 Example: The plan details how the website will be built, what tools and people will be needed (like graphic design software and a web designer), and how these will be used (e.g., the designer will create the layout using Photoshop). 8 Adhering to the Schedule 9 Example: If the Design Homepage task is delayed due to a design issue, the project manager must update the schedule and adjust subsequent tasks to keep the project on track. 10 Activity List and Anticipated Time 11 Example: The schedule lists activities such as: 12 Create Wireframe – 2 days 13 Develop Frontend – 5 days 14 Review and Testing – 3 days 15 Representation of Schedules 16 Lists of Activities: 17 Example: A simple list might show: 18 Design Homepage (August 1 - August 5) 19 Write Content (August 6 - August 10) 20 Coding (August 11 - August 20) 21 Testing (August 21 - August 25) 22 Diagrams: 23 Example: A Precedence Network Diagram (like PERT) shows that Design Homepage must be completed before Coding starts. 24 Gantt Charts: 25 Example: A Gantt Chart visually displays the project schedule with bars representing the duration of each task along a timeline. 26 Lists of Milestones: 27 Example: Milestones might include: 28 Homepage Design Completed (August 5) 29 Content Written (August 10) 30 Website Launched (August 25) 31 18/08/2024, 13:50 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/6
  • 492. From ChatGPT, designed with FancyGPT 18/08/2024, 13:50 FancyGPT - cs611 lecture 26c chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/6
  • 493. user 4.11 Guidelines for successful Planning A common failure in many kinds of planning is that the plan is never really implemented. Instead, all focus is on writing a plan document. Most of the following guidelines help to ensure that the planning process is carried out completely and is implemented completely or, deviations from the intended plan are recognized and managed accordingly. i. Involve the Right People in the Planning Process It's critical that all parts of the system continue to exchange feedback in order to function effectively. This is true no matter what type of system. When planning, get input from everyone who will be responsible to carry out parts of the plan, along with representative from groups who will be affected by the plan. Of course, people involved should be responsible to review and authorize the plan. ii. Write Down the Planning Information and Communicate it Widely New managers, in particular, often forget that others don't know what these managers know. Even if managers do communicate their intentions and plans verbally, chances are that others won't completely hear or understand what the manager wants done. Also, as plans change, it's extremely difficult to remember who is supposed to be doing what and according to which version of the plan. Key stakeholders (employees, management, board members, sponsors, customers, clients, etc.) may request copies of various types of plans. Therefore, it's critical to write plans down and communicate them widely. iii. Goals and Objectives Should Be SMARTER • Specific • Measurable Software Project Management (CS615) 191 © Copyright Virtual University of Pakistan • Acceptable • Realistic • Time frame • Extending • Rewarding iv. Build in Accountability (Regularly Review Who's Doing What and By When?) Plans should specify who is responsible for achieving each result, including goals and objectives. Dates should be set for completion of each result, as well. Responsible parties should regularly review status of the plan. Be sure to have someone of authority sign off on the plan, including putting their signature on the plan to indicate they agree with and support its contents. Include responsibilities in policies, procedures, job descriptions, performance review processes, etc. v. Note Deviations from the Plan and Re-plan Accordingly It's OK to deviate from the plan. The plan is not a set of rules. It's an overall guideline. It is equally important to notice deviations and adjust the plan accordingly. vi. Evaluate Planning Process and the Plan During the planning process, regularly collect feedback from participants. Do they agree with the planning process? If not, what don't they like and how could it be done better? In large, ongoing planning processes (such as strategic
  • 494. planning, business planning, project planning, etc.), it's critical to collect this kind of feedback regularly. During regular reviews of implementation of the plan, assess if goals are being achieved or not. If not, were goals realistic? Do responsible parties have the resources necessary to achieve the goals and objectives? Should goals be changed? Should more priority be placed on achieving the goals? What needs to be done? Write down how the planning process could have been done better. File it away and read it the next time you conduct the planning process. Software Project Management (CS615) 192 © Copyright Virtual University of Pakistan vii. Recurring Planning Process is at Least as Important as Plan Document Far too often, primary emphasis is placed on the plan document. This is extremely unfortunate because the real treasure of planning is the planning process itself. During planning, planners learn a great deal from ongoing analysis, reflection, discussion, debates and dialogue around issues and goals in the system. The ongoing communications are what sensitize people to understanding and following the values and behaviors described viii. Nature of the Process Should Be Compatible to Nature of Planners A prominent example of this type of potential problem is when planners don't prefer the top down or bottom up, linear type of planning For example, going from general to specific along the process of an environmental scan, SWOT analysis, mission/vision/values, issues and goals, strategies, objectives, timelines, etc. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// Certainly! Here are beginner-level examples for each guideline in the planning process: ### i. Involve the Right People in the Planning Process **Example:** Imagine a company is planning to launch a new product. To make sure the plan is effective, the company should involve people from different departments: product development, marketing, sales, and customer service. For instance, the product development team can provide insights on technical feasibility, while the marketing team can offer input on promotional strategies. ### ii. Write Down the Planning Information and Communicate it Widely
  • 495. **Example:** A school is planning a new after-school program. The principal writes a detailed plan outlining the program’s objectives, schedule, and responsibilities. This plan is then distributed to all teachers, parents, and students involved. This ensures everyone knows the details and can refer to the plan if needed. ### iii. Goals and Objectives Should Be SMARTER **Example:** A gym wants to increase membership. Instead of saying “We want more members,” they set a SMARTER goal: “Increase gym membership by 20% over the next 6 months by implementing a referral program, ensuring it is realistic and rewarding for the staff who bring in new members.” ### iv. Build in Accountability (Regularly Review Who's Doing What and By When?) **Example:** A team is working on a community garden project. The project plan specifies that Jane is responsible for securing donations by the end of the month, and Tom is responsible for coordinating volunteers. Every two weeks, the team holds a meeting to check on progress and ensure everyone is meeting their deadlines. ### v. Note Deviations from the Plan and Re-plan Accordingly **Example:** During a company’s software development project, the initial plan included a release date of June 1. If the development team realizes they need more time, they adjust the release date to June 15 and update the plan to reflect this change. ### vi. Evaluate Planning Process and the Plan **Example:** After completing a marketing campaign, a company gathers feedback from the marketing team about what worked and what didn’t. They find that certain strategies were less effective than anticipated. They review the campaign's goals and adjust future plans based on this feedback to improve their approach. ### vii. Recurring Planning Process is at Least as Important as Plan Document **Example:** A non-profit organization is planning an annual fundraising event. Instead of just focusing on the event plan document, they hold monthly meetings to discuss progress, address any issues, and make adjustments. This ongoing planning process helps them stay on track and adapt to any changes. ### viii. Nature of the Process Should Be Compatible to Nature of Planners **Example:** A small start-up team prefers informal and flexible planning methods. They use brainstorming sessions and iterative adjustments rather than a rigid, step-by-step plan. This approach suits their dynamic work style and helps them adapt quickly to new ideas. These examples illustrate how to apply each guideline in a practical, beginner-friendly way.
  • 496. cs615 lecture 27 cs615 lecture 27 cs615 lecture 27 cs615 lecture 27 cs615 lecture 27 LECTURE # 27 5. ORGANIZATION 5.1 Basic Definition Basically, an organization is a group of people intentionally organized to accomplish an overall, common goal or set of goals. Business organizations can range in size from two people to tens of thousands. How you interpret each of the above major parts of an organization depends very much on your values and your nature. People can view organizations as machines, organisms, families, groups, etc. People are managed through an organizational structure. This hierarchical structure is based on the four cornerstones of management: – Delegation – Authority – Responsibility – Supervision. Delegation bestows authority, and authority produces (and requires) responsibility. Both authority and responsibility require supervision, and effective supervision requires a suitable organizational structure: Most projects are organized as teams, with each team assigned specific functions within the project. Different types of project require different types of team structure, as for example a team of junior programmers requires a technical team leader while a team of experts may require only an administrative team leader. It is the project manager's responsibility to select the structure best suited for the project. Basically an organization is a group of people intentionally organized to accomplish an overall, common goal or set of goals. Business organizations can range in size from two people to tens of thousands. How you interpret each of the above major parts of an 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/16
  • 497. organization depends very much on your values and your nature. People can view organizations as machines, organisms, families, groups, etc. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 5.2 Organization as a System It helps to think of organizations are systems. Here are simple beginner-level examples for each of the topics in the lecture on Organization: Basic Definition Basic Definition Basic Definition Basic Definition Basic Definition Example: A non-profit organization that aims to reduce plastic waste organizes volunteers and staff to conduct beach clean-ups and run educational workshops. This organization has a clear goal of reducing plastic waste and brings people together to achieve that goal. Organizational Structure Organizational Structure Organizational Structure Organizational Structure Organizational Structure Example: A retail company has a hierarchical structure where the CEO is at the top, followed by the managers of different departments like sales, marketing, and finance. Each manager has a team of employees working under them, creating a clear line of authority and responsibility. Delegation, Authority, Responsibility, and Supervision Delegation, Authority, Responsibility, and Supervision Delegation, Authority, Responsibility, and Supervision Delegation, Authority, Responsibility, and Supervision Delegation, Authority, Responsibility, and Supervision Example: In a software development project, the project manager delegates the task of creating a user interface to a team of designers. The team leader has the authority to make decisions about the design and is responsible for ensuring the interface meets the project's requirements. The project manager supervises the team leader, providing guidance and support as needed. Team Structure Team Structure Team Structure Team Structure Team Structure Example: For a project developing a new smartphone app, the project manager organizes a team of junior programmers with a technical team leader who has experience in mobile app development. The technical team leader guides the junior programmers, helping them solve problems and learn new skills. In contrast, a team of experienced software architects working on a complex project might only require an administrative team leader to handle scheduling and resource allocation. Project Manager’s Responsibility Project Manager’s Responsibility Project Manager’s Responsibility Project Manager’s Responsibility Project Manager’s Responsibility Example: A project manager working on a construction project decides to use a matrix team structure. This allows for flexibility and better communication among different specialists like architects, engineers, and construction workers. The project manager evaluates the project's needs and selects the team structure that best fits those requirements. 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/16
  • 498. Simply put, a system is an organized collection of parts that are highly integrated in order to accomplish an overall goal. The system has various inputs which are processed to produce certain outputs, which together, accomplish the overall goal desired by the organization. There is ongoing feedback among these various parts to ensure they remain aligned to accomplish the overall goal of the organization. There are several classes of systems, ranging from very simple frameworks all the way to social systems, which are the most complex. Organizations are, of course, social systems. Systems have inputs, processes, outputs and outcomes. To explain, inputs to the system include resources such as raw materials, money, technologies and people. These inputs go through a process where they're aligned, moved along and carefully coordinated, ultimately to achieve the goals set for the system. Outputs are tangible results produced by processes in the system, such as products or services for consumers. Another kind of result is outcomes, or benefits for consumers, e.g., jobs for workers, enhanced quality of life for customers, etc. Systems can be the entire organization, or its departments, groups, processes, etc. Feedback comes from, e.g., employees who carry out processes in the organization, customers/clients using the products and services, etc. Feedback also comes from the larger environment of the organization, e.g., influences from government, society, economics, and technologies. Each organization has numerous subsystems, as well. Each subsystem has its own boundaries of sorts, and includes various inputs, processes, outputs and outcomes geared to accomplish an overall goal for the subsystem. Common examples of subsystems are departments, programs, projects, teams and processes to produce products or services, etc. Organizations are made up of people - who are also systems of 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/16
  • 499. systems of systems - and on it goes. Subsystems are organized in a hierarchy needed to accomplish the overall goal of the overall system. Software Project Management (CS615) 195 © Copyright Virtual University of Pakistan The organizational system is defined by, e.g., its legal documents (articles of incorporation, by laws, roles of officers, etc.), mission, goals and strategies, policies and procedures, operating manuals, etc. The organization is depicted by its organizational charts, job descriptions, marketing materials, etc. The organizational system is also maintained or controlled by policies and procedures, budgets, information management systems, quality management systems, performance review systems, etc. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple beginner-level examples for each of the topics in the lecture on Organization as a System: Organization as a System Organization as a System Organization as a System Organization as a System Organization as a System Example: A hospital can be seen as a system where various departments like emergency, surgery, and pharmacy work together to achieve the overall goal of providing healthcare to patients. The hospital receives inputs such as medical supplies, staff, and patient information, which are processed through coordinated medical procedures and treatments to produce outputs like cured patients and medical reports. Inputs, Processes, Outputs, and Outcomes Inputs, Processes, Outputs, and Outcomes Inputs, Processes, Outputs, and Outcomes Inputs, Processes, Outputs, and Outcomes Inputs, Processes, Outputs, and Outcomes Example: Feedback Feedback Feedback Feedback Feedback Inputs: A manufacturing company receives raw materials, machinery, workers, and capital as inputs. Processes: These inputs are then used in manufacturing processes to create products like automobiles. Outputs: The outputs are the finished cars that are ready for sale. Outcomes: The outcomes include customer satisfaction, job creation for workers, and revenue generation for the company. 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/16
  • 500. 5.3 Structural Dimensions The organization's structure, or design, is the overall arrangement of the organization's various roles, processes and their relationships in the organization. The design of an organization is a means to accomplishing the organization's overall goal - the structure is not an end in itself. In systems theory terms, the design ensures that the appropriate inputs go through the necessary processes to produce the required outputs to produce the intended outcomes. ƒ Centralization -the extent to which functions are dispersed in the organization, either in terms of integration with other functions or geographically ƒ Formalization - regarding the extent of policies and procedures in the organization Example: A restaurant collects feedback from customers about their dining experience through surveys. This feedback is used to improve the menu, service, and ambiance, ensuring the restaurant continues to meet customer expectations. Feedback can also come from health and safety regulations that the restaurant must follow to stay in business. Subsystems Subsystems Subsystems Subsystems Subsystems Example: In a university, different subsystems include departments like admissions, academics, and finance. The admissions department processes student applications (inputs), determines acceptance (process), and provides admitted students (outputs). The outcome might be a diverse and qualified student body that contributes to the university's reputation. Organizational System Definition Organizational System Definition Organizational System Definition Organizational System Definition Organizational System Definition Example: A software company’s organizational system is defined by its legal documents, such as its incorporation papers, which establish it as a legal entity. Its mission statement might focus on developing innovative software solutions, and it has specific policies and procedures, like coding standards and development practices, to ensure quality and consistency. Organizational Charts and Job Descriptions Organizational Charts and Job Descriptions Organizational Charts and Job Descriptions Organizational Charts and Job Descriptions Organizational Charts and Job Descriptions Example: In a retail company, an organizational chart shows the hierarchy, with the CEO at the top, followed by department managers (like marketing, sales, and HR), and then their respective teams. Each position has a job description that outlines the specific duties and responsibilities of the role, ensuring everyone understands their role in achieving the company’s goals. Organizational System Maintenance and Control Organizational System Maintenance and Control Organizational System Maintenance and Control Organizational System Maintenance and Control Organizational System Maintenance and Control Example: A bank maintains its organizational system through policies such as security protocols to protect customer data, budgets that allocate resources effectively, and performance review systems that evaluate employee performance. These controls help the bank operate smoothly and meet its financial and service goals. 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/16
  • 501. ƒ Hierarchy - regarding the extent and configuration of levels in the structure ƒ Routinization - regarding the extent that organizational processes are standardized ƒ Specialization - regarding the extent to which activities are refined ƒ Training - regarding the extent of activities to equip organization members with knowledge and skills to carry out their roles. 5.4 Organizational Systems Project-based organizations are those whose operations consist primarily of projects. These organizations fall into two categories: – Organizations that derive their revenue primarily from performing projects for others—architectural firms, engineering firms, consultants, construction contractors, government contractors, nongovernmental organizations, etc – Organizations that have adopted management by projects, these organizations Software Project Management (CS615) 196 © Copyright Virtual University of Pakistan tend to have management systems in place to facilitate project management. For example, their financial systems are often specifically designed for accounting, tracking, and reporting on multiple simultaneous projects. Non project-based organizations often lack management systems designed to support project needs efficiently and effectively. The absence of project-oriented systems usually makes project management more difficult. In some cases, non project-based organizations will have departments or other subunits that operate as project-based organizations with systems to match. The project management team should be acutely aware of how the organization’s systems affect the project. For example, if the organization rewards its functional managers for charging staff time to projects, then the project management team may need to implement controls to ensure that assigned staff members are being used 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/16
  • 502. effectively on the project. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple beginner-level examples for each of the topics in the lecture on Structural Dimensions and Organizational Systems: 5.3 Structural Dimensions 5.3 Structural Dimensions 5.3 Structural Dimensions 5.3 Structural Dimensions 5.3 Structural Dimensions Example: A company’s structure is how it organizes its departments, roles, and processes to achieve its goals. 5.4 Organizational Systems 5.4 Organizational Systems 5.4 Organizational Systems 5.4 Organizational Systems 5.4 Organizational Systems Example: Centralization: In a national retail chain, the decision-making power is centralized at the headquarters. Store managers must follow guidelines from the head office for pricing and promotions, even though the stores are spread across different regions. Formalization: In a large manufacturing company, there are strict policies and procedures for everything from how products are assembled to how employees request time off. These formal rules ensure consistency and quality across all operations. Hierarchy: In a hospital, there is a clear hierarchy. At the top, you have the hospital director, followed by department heads like those for surgery, nursing, and administration, and then the staff members in each department. This structure helps maintain order and clarity in decision-making and responsibilities. Routinization: A fast-food chain standardizes its cooking processes so that every burger is made the same way, no matter which location you visit. This routinization ensures that customers receive the same product quality at every outlet. Specialization: In a law firm, lawyers specialize in different areas like corporate law, criminal law, or family law. Each lawyer focuses on their specialty, making them experts in their specific field. Training: A tech company regularly conducts training sessions for its employees on the latest software development tools and practices. This training ensures that the staff is up-to-date with the skills needed to perform their jobs effectively. Project-Based Organizations: An engineering firm primarily works on different projects for clients, such as designing bridges or buildings. Each project is unique and managed individually, with its own budget, timeline, and team. The firm’s entire business is structured around completing these projects successfully. Organizations Using Management by Projects: A large construction company has adopted a project-based management approach. Even though they might have ongoing operations, their financial systems and management processes are designed to handle multiple projects at once, such as building residential complexes, office spaces, and shopping malls simultaneously. 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/16
  • 503. 5.5 Organizational Cultures and Styles Most organizations have developed unique and describable cultures. These cultures are reflected in their: – Shared values, – Norms, – Beliefs – Expectations – Policies and – Procedures – View of authority relationships and numerous other factors Organizational cultures often have a direct influence on the project. – A team proposing an unusual or high-risk approach is more likely to secure approval in an aggressive or entrepreneurial organization. – A project manager with a highly participative style is apt to encounter problems in a rigidly hierarchical organization, while a project manager with an authoritarian style will be equally challenged in a participative organization. The structure of the performing organization often constrains the availability of or terms under which resources become available to the project. Software Project Management (CS615) 197 © Copyright Virtual University of Pakistan Organizational structures can be characterized as spanning a spectrum from functional to projectized, with a variety of matrix structures in between. The following table shows key project related characteristics of the major types of enterprise organizational structures: Non Project-Based Organizations: A manufacturing company primarily focuses on producing goods like furniture. However, if they decide to take on a large, one-time project like setting up a new production facility, they might struggle because their systems aren’t designed to manage projects effectively. In this case, the company may form a temporary project team with the specific skills and tools needed to manage the project. Departments Operating as Project-Based Organizations: In a university, the research department operates as a project-based unit. Each research project has its own budget, timeline, and goals. The department has systems in place for tracking research progress and managing project finances, even though the rest of the university operates differently. 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/16
  • 504. Table: Organizational Structure Influences on Projects Project Matrix Characteristics Organization Structure Functional Weak Balanced Strong Projectized Project Manager’s Authority Little or non Limited Low to Moderate Moderate to High High to almost Total Percent of Performing Organization’s Personnel assigned Full time to Project work Virtually None 0-25% 15-60% 50-95% 85-100% Project Manager’s Role Part-time Part time Full-time Full-time Full-time Common Titles for Project Manager’s Role Project Coordinator/ Project Leader Project Coordinato r/ Project Leader Project Manager/Pr oject Officer Project Manager/ Program Manager Project Manager/ Program Manager Project Management Administrative Staff Part-time Part time Part-time Full-time Full-time (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/16
  • 505. Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple beginner-level examples for each of the topics in the lecture on Organizational Cultures and Styles: 5.5 Organizational Cultures and Styles 5.5 Organizational Cultures and Styles 5.5 Organizational Cultures and Styles 5.5 Organizational Cultures and Styles 5.5 Organizational Cultures and Styles Example: Different companies have unique ways of doing things, which are shaped by their shared values, norms, and beliefs. This culture influences how projects are managed and executed within the organization. Influence of Organizational Culture on Projects Influence of Organizational Culture on Projects Influence of Organizational Culture on Projects Influence of Organizational Culture on Projects Influence of Organizational Culture on Projects Organizational Structure Influences on Projects Organizational Structure Influences on Projects Organizational Structure Influences on Projects Organizational Structure Influences on Projects Organizational Structure Influences on Projects Shared Values: In a tech startup, innovation and creativity are highly valued. Employees are encouraged to experiment with new ideas, even if they carry some risk. This shared value supports projects that involve developing cutting-edge technology. Norms: In a consulting firm, it is a norm for employees to work long hours to meet client deadlines. This expectation shapes how projects are planned, with tight schedules and high-pressure environments being common. Beliefs: A non-profit organization might strongly believe in social responsibility. This belief influences the types of projects they take on, focusing on those that benefit the community or the environment. Expectations: In a corporate law firm, there is an expectation that all project deliverables will be of the highest quality. This drives project managers to implement rigorous review processes to ensure that all outputs meet these high standards. Policies and Procedures: In a government agency, there are strict policies and procedures that must be followed for every project. These might include detailed documentation, regular audits, and adherence to legal regulations. View of Authority Relationships: In a traditional manufacturing company, authority is strictly hierarchical. Decisions are made by senior management, and employees are expected to follow orders without question. This culture would influence how a project manager communicates and implements project tasks. Aggressive/Entrepreneurial Organization: In a marketing agency known for its aggressive and entrepreneurial approach, a team proposing a new and risky advertising campaign is likely to get approval because the organization values bold, creative strategies. Participative vs. Authoritarian Styles: In a participative non-profit organization where decisions are made collaboratively, a project manager who tries to impose decisions without consulting the team might face resistance. Conversely, in a company with a top- down approach, a project manager who seeks too much input from team members might be seen as indecisive. Functional Organization: In a large corporation where departments like marketing, finance, and operations work separately, a project manager in the marketing department might have limited authority and work part-time on projects. The team members are not fully dedicated to the project, as they have other departmental responsibilities. 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/16
  • 506. 5.6 Traditional Structures of Business Organization i. Functional Structure Most business organizations start out with a functional structure, or a small variation of this structure. This is the basic building block for other structures. In this structure, there is a central office which oversees various departments or major functions, e.g., human resources, finances, sales, marketing, engineering, etc. Think of a picture that has a box at the top labeled Central Office. Think of a row of boxes underneath the top box. Each box is labeled, e.g., sales, engineering, human resources, etc. Software Project Management (CS615) 198 © Copyright Virtual University of Pakistan Connect the boxes with lines coming down from the top box to each of the boxes below. Use functional structures when the organization is small, geographically centralized, and provides few goods and services. When the organization experiences bottlenecks in decision making and difficulties in coordination, it has outgrown its functional structure. The classic functional organization is a hierarchy where each employee has one clear superior. Staff members are grouped by specialty, such as production, marketing, engineering, and accounting at the top level, with engineering further subdivided into functional organizations that support the business of the larger organization (e.g., mechanical and electrical). Functional organizations still have projects, but the perceived scope of the project is limited to the boundaries of the function: the engineering department in a functional organization will do its work independent of the manufacturing or marketing departments. For example, when a new product development is undertaken Weak Matrix Organization: In 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/16
  • 507. in a purely functional organization, the design phase is often called a design project and includes only engineering department staff. If questions about manufacturing arise, they are passed up the hierarchy to the department head, who consults with the head of the manufacturing department. The engineering department head then passes the answer back down the hierarchy to the engineering project manager. ii. Projectized Structure In this structure, there is a centralized corporate office and under it, are various divisions each of which is dedicated to producing and / or selling a certain type of business or product, e.g., product 1, product 2, etc. Each division that is dedicated to a certain business or product is, in turn, is organized as its own functional structure. So, for example, the division dedicated to making product 1 has its own sales department, human resources, etc. Basically, project structure is a bunch of functional structures each of which reports to one central office. Use a divisional structure when the organization is relatively large, geographically dispersed, and/or produces wide range of goods/services. In a projectized organization, team members are often collocated. Most of the organization’s resources are involved in project work, and project managers have a great deal of independence and authority. Software Project Management (CS615) 199 © Copyright Virtual University of Pakistan Projectized organizations often have organizational units called departments, but these groups either report directly to the project manager or provide support services to the various projects. iii. Matrix Structure Think of the functional structure. Imagine if you took someone from each of the major functions in the functional structure (the boxes along the bottom of the organization chart), e.g., people from sales, engineering, etc., and organized them 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/16
  • 508. into a separate group intended to produce and sell one certain kind of product or service. Members of this group stay together until that product is produced or they continue to sell and service it. This overall structure (made up of a functional structure that also has groups assigned to products) is a matrix structure. This structure is useful because it focuses highly skilled people from across the organization to work on a complex product or service. It can be difficult, though, because each person essentially reports to two supervisors: the supervisor of the functional area (e.g., engineering) and the product manager, as well. When the organization needs constant coordination of its functional activities, then lateral relations do not provide sufficient integration. Consider the matrix structure. To adopt the matrix structure effectively, the organization should modify many traditional management practices. Matrix organizations are a blend of functional and projectized characteristics. Weak matrices maintain many of the characteristics of a functional organization, and the project manager role is more that of a coordinator or expediter than that of a manager. In similar fashion, strong matrices have many of the characteristics of the projectized organization—full-time project managers with considerable authority and full-time project administrative staff. Software Project Management (CS615) 200 © Copyright Virtual University of Pakistan Figure 1: Weak Matrix Organization Figure 2: Balanced Matrix Organization Chief Executive Functional Manager Functional Manager Functional 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/16
  • 509. Manager Staff Staff Project Manag Staff Staff Staff Staff Staff Staff Chief Executive Functional Manager Functional Manager Functional Manager Staff Staff Staff Staff Staff Staff Staff Staff Staff Project Coordinatio Project Coordinatio Software Project Management (CS615) 201 © Copyright Virtual University of Pakistan Figure 3: Strong Matrix Organization (Black boxes represent staff engaged in project activites) iv. Project Office There is a range of uses for what constitutes a project office. A project office may operate on a continuum from providing support functions to project managers in the form of training, software, templates, etc. to actually being responsible for the results of the project. Most modern organizations involve all these structures at various levels. For example, even a fundamentally functional organization may create a special 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/16
  • 510. project team to handle a critical project. Such a team may have many of the characteristics of a project in a projectized organization. The team may include full-time staff from different functional departments, it may develop its own set of operating procedures, and it may operate outside the standard, formalized reporting structure. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple beginner-level examples for each of the traditional structures of business organizations: i. Functional Structure i. Functional Structure i. Functional Structure i. Functional Structure i. Functional Structure Example: In a small software company, there might be a central office with different departments such as Human Resources, Finance, Sales, and Engineering. The Engineering department focuses only on developing software, while the Sales department handles all the sales-related activities. When the company needs to develop a new software feature, the Engineering department works on it independently, without much direct interaction with other departments. ii. Projectized Structure ii. Projectized Structure ii. Projectized Structure ii. Projectized Structure ii. Projectized Structure Example: Imagine a large construction company where different divisions are responsible for specific projects. For instance, one division might be dedicated to building residential houses, while another focuses on commercial buildings. Each division has its own team with roles like sales, finance, and engineering, all working full-time on their specific projects. The division working on residential houses has its own sales team, engineers, and HR staff, all reporting to the project manager of that division. iii. Matrix Structure iii. Matrix Structure iii. Matrix Structure iii. Matrix Structure iii. Matrix Structure Example: Consider a consumer electronics company that manufactures smartphones and laptops. In this company, there is a functional structure with departments like Sales, Engineering, and Marketing. However, to develop a new smartphone, the company might create a project team consisting of engineers from the Engineering department, marketers from the Marketing department, and salespeople from the Sales department. These team members report both to their functional manager (e.g., Head of Engineering) and the project manager responsible for the smartphone project. Weak Matrix Example: In a weak matrix structure, the project manager has limited authority. For instance, the smartphone project manager mainly coordinates tasks but doesn't have much decision-making power. The engineers still prioritize tasks assigned by their functional manager over the project tasks. Balanced Matrix Example: In a balanced matrix, the smartphone project manager shares authority with the functional managers. Team members work on the 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/16
  • 511. From ChatGPT, designed with FancyGPT iv. Project Office iv. Project Office iv. Project Office iv. Project Office iv. Project Office Example: In a large IT consulting firm, there might be a Project Office that provides resources like templates, training, and software tools to project managers working on different client projects. In some cases, the Project Office might even take full responsibility for overseeing major projects, ensuring they are completed on time and within budget. For instance, if the firm takes on a complex project for a government client, the Project Office might assign a dedicated team to manage every aspect of the project from start to finish. smartphone project part-time and report equally to their functional manager and the project manager. Strong Matrix Example: In a strong matrix, the smartphone project manager has significant authority, almost like a projectized structure. The project manager can make decisions, and team members are dedicated full-time to the project, reporting directly to the project manager. 18/08/2024, 09:53 FancyGPT - cs615 lecture 27 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/16
  • 512. cs615 lecture 28 cs615 lecture 28 cs615 lecture 28 cs615 lecture 28 cs615 lecture 28 LECTURE # 28 5. ORGANIZATION 5.7 ORGANIZATIONAL PLANNING Organizational planning involves identifying, documenting, and assigning project roles, responsibilities, and reporting relationships. Roles, responsibilities, and reporting relationships may be assigned to individuals or to groups. The individuals and groups may be part of the organization performing the project, or they may be external to it. Internal groups are often associated with a specific functional department such as engineering, marketing, or accounting. On most projects, the majority of organizational planning is done as part of the earliest project phases. However, the results of this process should be reviewed regularly throughout the project to ensure continued applicability. If the initial organization is no longer effective, then it should be revised promptly. Organizational planning is often tightly linked with communications planning since the project’s organizational structure will have a major effect on the project’s communications requirements. 5.7.1 Inputs to Organizational Planning i. Project interfaces. Project interfaces generally fall into one of three categories: – Organizational interfaces—formal and informal reporting relationships among different organizational units. Organizational interfaces may be highly complex or very simple. For example, developing a complex telecommunications system may require coordinating numerous subcontractors over several years, while fixing a programming error in a 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/41
  • 513. system installed at a single site may require little more than notifying the user and the operations staff upon completion. – Technical interfaces—formal and informal reporting relationships among different technical disciplines. Technical interfaces occur both within project phases (e.g., the site design developed by the civil engineers must be compatible with the superstructure developed by the structural Software Project Management (CS615) 203 © Copyright Virtual University of Pakistan engineers) and between project phases (e.g., when an automotive design team passes the results of its work along to the retooling team that must create the manufacturing capability for the vehicle). – Interpersonal interfaces—formal and informal reporting relationships among different individuals working on the project. These interfaces often occur simultaneously, as when an architect employed by a design firm explains key design considerations to an unrelated construction contractor’s project management team. ii. Staffing requirements. Staffing requirements define what kinds of competencies are required from what kinds of individuals or groups and in what time frames. Staffing requirements are a subset of the overall resource requirements identified during resource planning. iii. Constraints. Constraints are factors that limit the project team’s options. A project’s organizational options may be constrained in many ways. Common factors that may constrain how the team is organized include, but are not limited to, the following: – Organizational structure of the performing organization—an organization whose basic structure is a strong matrix means a relatively stronger role for the project manager than one whose basic structure is a weak matrix. – Collective bargaining agreements—contractual agreements with unions 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/41
  • 514. or other employee groups may require certain roles or reporting relationships (in essence, the employee group is a stakeholder). – Preferences of the project management team—if members of the project management team have had success with certain structures in the past, then they are likely to advocate similar structures in the future. – Expected staff assignment —how the project is organized is often influenced by the competencies of specific individuals (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 5.7.2 Tools and Techniques for Organizational Planning i. Templates. Although each project is unique, most projects will resemble another project to some extent. Using the role and responsibility definitions or reporting relationships of a similar project can help expedite the process of organizational planning. ii. Human resource practices. Many organizations have a variety of policies, guidelines, and procedures that can help the project management team with various aspects of organizational planning. For example, an organization that views managers as “coaches” is likely to have documentation on how the role of “coach” is to be performed. Software Project Management (CS615) 204 © Copyright Virtual University of Pakistan iii. Organizational theory. There is a substantial body of literature describing how organizations can and should be structured. Although only a 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/41
  • 515. small subset of this body of literature is specifically targeted toward project organizations, the project management team should be generally familiar with the subject of organizational theory so as to be better able to respond to project requirements. iv. Stakeholder analysis. The identification of stakeholders and the needs of the various stakeholders should be analyzed to ensure that their needs will be met. 5.7.3 Outputs from Organizational Planning i. Role and responsibility assignments. Project roles (who does what) and responsibilities (who decides what) must be assigned to the appropriate project stakeholders. Roles and responsibilities may vary over time. Most roles and responsibilities will be assigned to stakeholders who are actively involved in the work of the project, such as the project manager, other members of the project management team, and the individual contributors. The roles and responsibilities of the project manager are generally critical on most projects, but vary significantly by application area. Project roles and responsibilities should be closely linked to the project scope definition. A Responsibility Assignment Matrix is often used for this purpose. On larger projects, RAM s may be developed at various levels. For example, a high-level RAM may define which group or unit is responsible for each component of the work breakdown structure, while lower-level RAM s are used within the group to assign roles and responsibilities for specific activities to particular individuals. ii. Staffing management plan. The staffing management plan describes when and how human resources will be brought onto and taken off of the project team. The staffing plan may be formal or informal, highly detailed or broadly framed, based on the needs of the project. It is a subsidiary element of the overall project plan. The staffing management plan often includes resource histograms. Particular 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/41
  • 516. attention should be paid to how project team members (individuals or groups) will be released when they are no longer needed on the project. Appropriate reassignment procedures may: – Reduce costs by reducing or eliminating the tendency to “make work” to fill the time between this assignment and the next. – Improve morale by reducing or eliminating uncertainty about future employment opportunities. iii. Organization chart. An organization chart is any graphic display of project reporting relationships. It may be formal or informal, highly detailed or broadly framed, based on the needs of the project. For example, the organization chart for a three- to four-person internal service project is unlikely to have the rigor and detail of the organization chart for a 3,000-person disaster response team. An Software Project Management (CS615) 205 © Copyright Virtual University of Pakistan Organizational Breakdown Structure (OBS) is a specific type of organization chart that shows which organizational units are responsible for which work packages. iv. Supporting detail. Supporting detail for organizational planning varies by application area and project size. Information frequently supplied as supporting detail includes, but is not limited to: Organizational impact— what alternatives are precluded by organizing in this manner. – Job descriptions—written outlines by job title of the competencies, responsibilities, authority, physical environment, and other characteristics involved in performing a given job. Also called position descriptions. – Training needs—if the staff to be assigned is not expected to have the competencies needed by the project, those competencies will need to be developed as part of the project. 5.8 STAFF ACQUISITION Staff acquisition involves getting the needed human resources 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/41
  • 517. (individuals or groups) assigned to and working on the project. In most environments, the “best” resources may not be available, and the project management team must take care to ensure that the resources that are available will meet project requirements. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for the topics you provided: 5.7.2 Tools and Techniques for Organizational Planning 5.7.2 Tools and Techniques for Organizational Planning 5.7.2 Tools and Techniques for Organizational Planning 5.7.2 Tools and Techniques for Organizational Planning 5.7.2 Tools and Techniques for Organizational Planning i. Templates ii. Human Resource Practices iii. Organizational Theory iv. Stakeholder Analysis 5.7.3 Outputs from Organizational Planning 5.7.3 Outputs from Organizational Planning 5.7.3 Outputs from Organizational Planning 5.7.3 Outputs from Organizational Planning 5.7.3 Outputs from Organizational Planning i. Role and Responsibility Assignments Imagine you’re managing a software development project. You might have a template from a previous similar project that outlines the roles and responsibilities of team members, like who is responsible for coding, testing, and documentation. Using this template can save time in setting up your current project. If your organization has a policy that managers should act as mentors, there might be a guideline or document explaining how managers should support their teams, such as providing feedback, helping with career development, and ensuring team members have the resources they need to do their jobs effectively. Suppose you’re leading a project and you need to decide how to structure your team. Organizational theory might guide you in choosing between a hierarchical structure, where decisions flow from the top down, or a flat structure, where team members have more autonomy. Understanding these theories helps you make better decisions on how to organize your team. When planning a project, you identify that key stakeholders include the project sponsor, end-users, and regulatory bodies. You analyze their needs, such as the sponsor wanting the project completed within budget, users needing a product that is easy to use, and regulators requiring compliance with specific standards. This analysis helps you ensure that the project meets all these needs. In a software project, the project manager might assign roles like lead developer, quality assurance lead, and technical writer. Responsibilities are also assigned, such as the lead developer being responsible for the overall code quality and the technical writer being 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/41
  • 518. 5.8.1 Inputs to Staff Acquisition i. Staffing management plan. It includes the project’s staffing requirement ii. Staffing pool description. When the project management team is able to influence or direct staff assignments, it must consider the characteristics of the potentially available staff. Considerations include, but are not limited to: – Previous experience—have the individuals or groups done similar or related work before? Have they done it well? – Personal interests—are the individuals or groups interested in working on this project? – Personal characteristics—are the individuals or groups likely to work well together as a team? – Availability—will the most desirable individuals or groups be ii. Staffing Management Plan iii. Organization Chart iv. Supporting Detail 5.8 Staff Acquisition 5.8 Staff Acquisition 5.8 Staff Acquisition 5.8 Staff Acquisition 5.8 Staff Acquisition These examples are designed to be simple and beginner-friendly, consistent with the rest of the lecture content. responsible for creating user manuals. These roles and responsibilities ensure that everyone knows what they are supposed to do. Suppose your project is planned to last one year. The staffing management plan might outline that you need three developers from the start, two testers midway through the project, and then you release the testers after the testing phase is complete. This plan helps ensure that the right people are available at the right times and helps manage costs by not keeping people on the project longer than needed. For a small internal project with four team members, the organization chart might simply show the project manager at the top with three team members below, each responsible for a different aspect of the project. For a larger project, the chart could show multiple teams with different leads reporting to the project manager. This visual helps everyone understand who reports to whom. For example, if you’ve organized a project team in a certain way, the supporting detail might include a job description for each role, outlining the required skills, responsibilities, and any necessary training. If someone needs additional training to perform their role effectively, that training is noted in the project’s plan. Let’s say you need a database administrator (DBA) for your project, but the best DBA in your company is already assigned to another project. You might have to choose someone with less experience, so you ensure that this person has the necessary support and resources to succeed. This process involves acquiring the staff needed for the project, even if they are not the first choice. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/41
  • 519. available in the necessary time frames? – Competencies and proficiency—what competencies are required and at what level? iii. Recruitment practices. One or more of the organizations involved in the project may have policies, guidelines, or procedures governing staff assignments. When they exist, such practices act as a constraint on the staff- acquisition process. Software Project Management (CS615) 206 © Copyright Virtual University of Pakistan 5.8.2 Tools and Techniques for Staff Acquisition i. Negotiations. Staff assignments must be negotiated on most projects. For example, the project management team may need to negotiate with: – Responsible functional managers to ensure that the project receives appropriately competent staff in the necessary time frame. – Other project management teams within the performing organization to assign scarce or specialized resources appropriately. The team’s influencing competencies play an important role in negotiating staff assignments, as do the politics of the organizations involved. For example, a functional manager may be rewarded based on staff utilization. This creates an incentive for the manager to assign available staff who may not meet all of the project’s requirements. ii. Pre-assignment. In some cases, staff may be pre-assigned to the project. This is often the case when a) the project is the result of a competitive proposal, and specific staff was promised as part of the proposal, or b) the project is an internal service project, and staff assignments were defined within the project charter. iii. Procurement. Project procurement management can be used to obtain the services of specific individuals or groups of individuals to perform project activities. Procurement is required when the performing organization lacks the inhouse staff needed to complete the project (e.g., as a result of a conscious decision 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/41
  • 520. not to hire such individuals as full-time employees, as a result of having all appropriately competent staff previously committed to other projects, or as a result of other circumstances). 5.8.3 Outputs from Staff Acquisition i. Project staff assigned. The project is staffed when appropriate people have been reliably assigned to work on it. Staff may be assigned full time, part time, or variably, based on the needs of the project. ii. Project team directory. A project team directory lists all the project team members and other stakeholders. The directory may be formal or informal, highly detailed or broadly framed, based on the needs of the project. 5.9 TEAM DEVELOPMENT Team development includes both enhancing the ability of stakeholders to contribute as individuals as well as enhancing the ability of the team to function as a team. Individual development (managerial and technical) is the foundation necessary to develop the team. Development as a team is critical to the project’s ability to meet its objectives. Software Project Management (CS615) 207 © Copyright Virtual University of Pakistan Team development on a project is often complicated when individual team members are accountable to both a functional manager and the project manager. Effective management of this dual reporting relationship is often a critical success factor for the project, and is generally the responsibility of the project manager. Team development occurs throughout the project. 5.9.1 Inputs to Team Development i. Project staff. The staff assignments implicitly define the individual competencies and team competencies available upon which to build. ii. Project plan. The project plan describes the technical context within which the team operates. iii. Staffing management plan. iv. Performance reports. Performance reports provide feedback to the project team about performance against the project plan. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/41
  • 521. v. External feedback. The project team must periodically measure itself against the expectations of those outside the project. 5.9.2 Tools and Techniques for Team Development i. Team-building activities. Team-building activities include management and individual actions taken specifically and primarily to improve team performance. Many actions—such as involving non-management-level team members in the planning process, or establishing ground rules for surfacing and dealing with conflict— may enhance team performance as a secondary effect. Team-building activities can vary from a five-minute agenda item in a regular status review meeting to an extended, off-site, professionally facilitated experience designed to improve interpersonal relationships among key stakeholders. There is a substantial body of literature on team building. The project management team should be generally familiar with a variety of team-building activities. ii. General management skills. General management skills are of particular importance to team development. iii. Reward and recognition systems. Reward and recognition systems are formal management actions that promote or reinforce desired behavior. To be effective, such systems must make the link between project performance and reward clear, explicit, and achievable. For example, a project manager who is to be rewarded for meeting the project’s cost objective should have an appropriate level of control over staffing and procurement decisions. Projects must often have their own reward and recognition systems since the systems of the performing Software Project Management (CS615) 208 © Copyright Virtual University of Pakistan organization may not be appropriate. For example, the willingness to work overtime to meet an aggressive schedule objective should be rewarded or recognized; needing to work overtime as the result of poor 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/41
  • 522. planning should not be. Reward and recognition systems must also consider cultural differences. For example, developing an appropriate team reward mechanism in a culture that prizes individualism may be very difficult. iv. Co-location. Collocation involves placing all, or almost all, of the most active project team members in the same physical location to enhance their ability to perform as a team. Collocation is widely used on larger projects and can also be effective for smaller projects (e.g., with a war room, where the team congregates and posts schedules, updates, etc.). On some projects, collocation may not be an option; where it is not viable, an alternative may be scheduling frequent face to face meetings to encourage interaction. v. Training. Training includes all activities designed to enhance the competencies of the project team. Some authors distinguish among training, education, and development, but the distinctions are neither consistent nor widely accepted. Training may be formal (e.g., classroom training, computer- based training) or informal (e.g., feedback from other team members). There is a substantial body of literature on how to provide training to adults. If the project team members lack necessary management or technical skills, such skills must be developed as part of the project, or steps must be taken to re-staff the project appropriately. Direct and indirect costs for training are generally paid by the performing organization. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for the topics you provided: 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/41
  • 523. 5.8.1 Inputs to Staff Acquisition 5.8.1 Inputs to Staff Acquisition 5.8.1 Inputs to Staff Acquisition 5.8.1 Inputs to Staff Acquisition 5.8.1 Inputs to Staff Acquisition i. Staffing Management Plan ii. Staffing Pool Description iii. Recruitment Practices 5.8.2 Tools and Techniques for Staff Acquisition 5.8.2 Tools and Techniques for Staff Acquisition 5.8.2 Tools and Techniques for Staff Acquisition 5.8.2 Tools and Techniques for Staff Acquisition 5.8.2 Tools and Techniques for Staff Acquisition i. Negotiations ii. Pre-assignment iii. Procurement 5.8.3 Outputs from Staff Acquisition 5.8.3 Outputs from Staff Acquisition 5.8.3 Outputs from Staff Acquisition 5.8.3 Outputs from Staff Acquisition 5.8.3 Outputs from Staff Acquisition i. Project Staff Assigned ii. Project Team Directory If a project requires five software developers, two testers, and one project manager, the staffing management plan would include these requirements and outline when and how these roles need to be filled throughout the project. When considering available staff for a new project, the project management team might look at: Previous Experience: A developer who has successfully worked on similar projects in the past. Personal Interests: A team member who is eager to learn new skills related to the project. Personal Characteristics: Choosing team members who work well together based on past collaborations. Availability: Ensuring that a key developer is not already committed to another project during the critical phases of this one. Competencies and Proficiency: Selecting someone who is proficient in the specific programming languages needed for the project. Suppose the company has a policy that requires all new project staff to go through a specific recruitment process, including interviews and background checks. These procedures must be followed, even if it takes extra time, as they act as a constraint on how quickly staff can be acquired. The project manager might need to negotiate with the head of the IT department to get a highly skilled developer assigned to the project. This negotiation could involve agreeing on the developer's availability or sharing the developer with another project. If a project was won based on a proposal that promised a specific expert would lead the technical development, this expert would be pre-assigned to the project even before other team members are selected. If the company doesn’t have an in-house graphic designer for the project, the project manager might need to hire a freelance designer through a procurement process to handle the design tasks. Once the project team is finalized, you might have a situation where three developers are working full-time, two testers are working part-time, and a project manager is available as needed. These assignments are documented and confirmed. The project manager creates a directory that lists everyone involved in the project, including their roles, contact information, and any other relevant details. This directory could be a simple document shared among the team. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/41
  • 524. 5.9 Team Development 5.9 Team Development 5.9 Team Development 5.9 Team Development 5.9 Team Development Team Development involves both improving the skills of individual team members and ensuring the team works well together to achieve project goals. 5.9.1 Inputs to Team Development 5.9.1 Inputs to Team Development 5.9.1 Inputs to Team Development 5.9.1 Inputs to Team Development 5.9.1 Inputs to Team Development i. Project Staff ii. Project Plan iii. Staffing Management Plan iv. Performance Reports v. External Feedback 5.9.2 Tools and Techniques for Team Development 5.9.2 Tools and Techniques for Team Development 5.9.2 Tools and Techniques for Team Development 5.9.2 Tools and Techniques for Team Development 5.9.2 Tools and Techniques for Team Development i. Team-Building Activities ii. General Management Skills iii. Reward and Recognition Systems iv. Co-location v. Training The project team consists of members with various skills like coding, testing, and project management. These existing competencies form the basis for further team development activities. The project plan might outline the technical tasks that the team needs to complete, such as developing a software module or conducting system tests. This plan helps guide the team’s efforts. This plan will detail how the team will grow or shrink during the project, ensuring that team development activities are aligned with the availability of team members. If a team member consistently delivers high-quality work ahead of schedule, this feedback helps identify areas where the team is strong and where further development may be needed. If a client reviews a project milestone and provides feedback that some aspects need improvement, the team can use this feedback to make adjustments and improve their performance. The project manager might organize a workshop to help team members improve their communication skills. This could be a short session during a regular meeting or a longer, dedicated event to enhance team collaboration. The project manager might use their leadership skills to resolve conflicts within the team, ensure clear communication, and motivate team members to stay focused on the project goals. Suppose a team member consistently meets their deadlines and produces high-quality work. The project manager might recognize this effort with a formal reward, such as a bonus or a public acknowledgment during a team meeting. On a large project, the team members might be placed in the same office space, allowing them to collaborate more easily and quickly address issues as they arise. If a team member needs to learn a new programming language for the project, they might attend a training course or receive on-the-job training from a more experienced colleague. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/41
  • 525. 5.9.3 Outputs from Team Development i. Performance improvements. Team performance improvements can come from many sources and can affect many areas of project performance; for example: – Improvements in individual skills may allow a specific person to perform assigned activities more effectively. – Improvements in team behaviors (e.g., surfacing and dealing with conflict) may allow project team members to devote a greater percentage of their efforts to technical activities. – Improvements in either individual or team competencies may facilitate identifying and developing better ways of doing project work. ii. Input to performance appraisals. Project staff should generally provide input to the appraisals of any project staff members with whom they interact in a significant way. 5.10 Organizational Management Tools i. Management Development – Responsibility Software Project Management (CS615) 209 © Copyright Virtual University of Pakistan – Authority – Competence – Resource Distribution – Pre-requisites – Constraints – Calendar ii. Supervisory Training – Field/on site operations – Concept clearance – Procedural details – Resource management – Activity Scheduling iii. Team Building – Managers – Professionals – Technical support group These examples are straightforward and aimed at helping you understand the concepts without using analogies, maintaining coherence throughout the explanation. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/41
  • 526. – Logistical support group – Skill set evaluation iv. Vital Statistics – Historical facts – Technical data – Direct concerns – Lesson learned – Identification of missing links – Reliability of data – Relevance of data v. Progress reporting – Mandatory periodic reports – Exception reports – Event reporting – Current status reporting – Reporting formats – Reporting frequency – Report recipient – Reporting officer – Reporting Media – Response analysis (of previous reporting) – Review of Reports – Signing of Reports – Tracking of Reports – Mitigations offered – Corresponding the dead lines Software Project Management (CS615) 210 © Copyright Virtual University of Pakistan vi. Compliance of Rule of Business – Financial – Procedural – Administrative – Justifications for deviations – Acceptance of derailments vii. Trade Offs – Trade off between DO or DON’T – Quality of job (in the light of constraints) – Limiting the scope/deliverables – Meeting targets with minimum standards – Unavoidable mandatory deliverables viii. Quality Assurance – Standard QA procedures – Self defined measures – Task-specific controls ix. Beneficiaries Concern – Acceptance – Enthusiasm – Adding comforts in terms of use, cost or time 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/41
  • 527. – Confidence building-The Reliability (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are simple, beginner-level examples for the topics you provided: 5.9.3 Outputs from Team Development 5.9.3 Outputs from Team Development 5.9.3 Outputs from Team Development 5.9.3 Outputs from Team Development 5.9.3 Outputs from Team Development i. Performance Improvements ii. Input to Performance Appraisals 5.10 Organizational Management Tools 5.10 Organizational Management Tools 5.10 Organizational Management Tools 5.10 Organizational Management Tools 5.10 Organizational Management Tools i. Management Development ii. Supervisory Training Individual Skills: After a developer attends a training session on a new coding framework, they can now complete their assigned tasks more quickly and with fewer errors. Team Behaviors: When team members start openly discussing and resolving conflicts during meetings, they can focus more on their work and complete their tasks more efficiently. Competencies: As the team becomes more familiar with project processes, they develop better methods for tracking project progress, leading to smoother project execution. A project manager might ask team members to provide feedback on their colleagues' performance, especially if they have worked closely together. This input could be used to evaluate how well a team member is contributing to the project. Responsibility: A project manager is responsible for overseeing the project’s progress and ensuring that tasks are completed on time. Authority: The project manager has the authority to make decisions regarding the project’s direction and resource allocation. Competence: The project manager needs to have the necessary skills and knowledge to lead the project effectively. Resource Distribution: The project manager allocates resources, such as time and budget, to different tasks within the project. Pre-requisites: Before starting a project phase, the project manager ensures that all necessary conditions, such as approvals and materials, are in place. Constraints: The project manager must work within certain constraints, such as a limited budget or tight deadlines. Calendar: The project manager uses a project calendar to track deadlines, milestones, and important meetings. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 16/41
  • 528. iii. Team Building iv. Vital Statistics v. Progress Reporting Field/on-site Operations: Supervisors receive training on how to manage work done at the project site, ensuring that tasks are performed correctly and safely. Concept Clearance: Supervisors are trained to understand the project’s goals and objectives, so they can effectively guide their teams. Procedural Details: Supervisors learn the specific procedures required to complete project tasks, ensuring consistency and quality. Resource Management: Supervisors are trained to manage resources, such as materials and manpower, efficiently to avoid waste. Activity Scheduling: Supervisors learn how to schedule activities to maximize productivity and meet project deadlines. Managers: Managers participate in team-building activities to strengthen leadership and coordination among themselves. Professionals: Engineers and other professionals engage in activities that enhance collaboration and knowledge sharing. Technical Support Group: The IT team might engage in exercises to improve their ability to solve technical problems together. Logistical Support Group: The logistics team works on improving their coordination in handling supplies and equipment. Skill Set Evaluation: The team assesses each member’s skills to ensure they are utilized effectively and identify areas for improvement. Historical Facts: The project team reviews past projects’ data to avoid previous mistakes and replicate successful strategies. Technical Data: The team gathers and analyzes technical information relevant to the project to ensure accuracy and reliability. Direct Concerns: The team identifies and addresses issues directly affecting the project, such as potential risks or resource shortages. Lessons Learned: The team documents what worked well and what didn’t in the project, so future projects can benefit from these insights. Identification of Missing Links: The team identifies gaps in the project plan or execution that need to be addressed to ensure success. Reliability of Data: The team ensures that all data used in the project is accurate and trustworthy to avoid errors. Relevance of Data: The team ensures that the data being used is directly related to the project’s objectives. Mandatory Periodic Reports: The team submits regular progress reports to stakeholders to keep them informed of the project’s status. Exception Reports: If an issue arises that could affect the project’s timeline or budget, the team creates a report detailing the problem and potential solutions. Event Reporting: The team documents significant events, such as achieving a major milestone or encountering a significant obstacle. Current Status Reporting: The team provides updates on the current status of the project, including completed tasks and pending activities. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 17/41
  • 529. vi. Compliance of Rule of Business vii. Trade-Offs viii. Quality Assurance Reporting Formats: The team uses standardized templates for reports to ensure consistency and clarity. Reporting Frequency: The team decides how often reports will be generated, such as weekly or monthly, based on project needs. Report Recipient: The team identifies who will receive the reports, such as the project sponsor or stakeholders. Reporting Officer: The team designates a person responsible for preparing and submitting reports. Reporting Media: The team decides whether reports will be delivered electronically, in print, or both. Response Analysis (of Previous Reporting): The team reviews feedback on previous reports to improve future reporting. Review of Reports: The team periodically reviews reports to ensure they are accurate and provide valuable information. Signing of Reports: The project manager or other authorized person signs off on reports before they are distributed. Tracking of Reports: The team tracks report submissions to ensure they are delivered on time and to the correct recipients. Mitigations Offered: The team suggests solutions or mitigation strategies for any issues highlighted in the reports. Corresponding the Deadlines: The team ensures that all reports and related actions are aligned with the project’s deadlines. Financial: The project manager ensures that all financial transactions and budget allocations comply with organizational policies. Procedural: The project team follows the organization’s procedures for all project activities to ensure consistency and compliance. Administrative: The project manager adheres to administrative rules, such as approvals and documentation, to keep the project on track. Justifications for Deviations: If the project deviates from the original plan, the team provides a clear explanation and justification for the change. Acceptance of Derailments: The team acknowledges and addresses any significant deviations from the project plan to minimize their impact. Trade-Off Between DO or DON’T: The project manager might need to decide whether to proceed with a risky task or delay it until more information is available. Quality of Job (in the Light of Constraints): The team may have to balance delivering a high-quality product with the need to meet tight deadlines. Limiting the Scope/Deliverables: The team might decide to reduce the project’s scope to ensure it is completed on time and within budget. Meeting Targets with Minimum Standards: The team might have to meet project targets using the minimum acceptable quality to stay within budget or time constraints. Unavoidable Mandatory Deliverables: The team identifies deliverables that must be completed, even if they require additional resources or time. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 18/41
  • 530. 5.11 Contractual Obligations A contract is a mutually binding agreement that obligates the seller to provide the specified product and obligates the buyer to pay for it. A contract is a legal relationship subject to remedy in the courts. The agreement may be simple or complex, usually (but not always) reflecting the simplicity or complexity of the product. Contracts may be called, among other names, a contract, an agreement, a subcontract, a purchase order, or a memorandum of understanding. Most organizations have documented policies and procedures specifically defining who can sign such agreements on behalf of the organization, typically called a delegation of procurement authority. Although all project documents are subject to some form of review and approval, the legally binding nature of a contract usually means that it will be subjected to a more extensive approval process. In all cases, a primary focus of the review and approval process should be to ensure that the contract language describes a ix. Beneficiaries Concern These examples aim to provide a clear, straightforward understanding of each topic without using analogies, ensuring coherence throughout the explanation. Standard QA Procedures: The project follows established quality assurance processes, such as regular testing and reviews, to ensure the product meets standards. Self-Defined Measures: The team might develop its own quality measures specific to the project’s needs, such as additional testing for a critical feature. Task-Specific Controls: The team implements specific controls, such as peer reviews or automated tests, to ensure that critical tasks are completed correctly. Acceptance: The team ensures that the final product meets the expectations of those who will use it, such as end-users or clients. Enthusiasm: The team works to generate enthusiasm among stakeholders by involving them in the project and showing how it will benefit them. Adding Comforts in Terms of Use, Cost, or Time: The team might introduce features that make the product easier to use or reduce costs, enhancing the overall value to the users. Confidence Building—The Reliability: The team focuses on delivering a reliable product that users can trust, thereby building confidence among stakeholders. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 19/41
  • 531. product or service that will satisfy the identified need. In the case of major Software Project Management (CS615) 211 © Copyright Virtual University of Pakistan projects undertaken by public agencies, the review process may even include public review of the agreement. • Types of Contracts Owing to the rapid advances in technology during the last several decades, it has become increasingly necessary for high technology organizations to specialize in specific, well-defined areas. Specialization has not only defined many new branches of engineering, it has also defined areas of expertise within the engineering disciplines. This is especially true of software engineering. Frequently, organizations that do not specialize in software development hire other organizations that do so to develop software for them. Even organizations that do develop their own software may decide to hire outside specialists in specific areas. IBM hired Microsoft to develop the PC-DOS operating system, because Microsoft had experience in developing microcomputer systems and IBM had not. The development of software is much less deterministic and more risky than other areas of technology. This often leads to misunderstandings and disagreements that could have been avoided if they had been anticipated and contained early enough. To standardize our terminology, the organization to whom, a proposal is being submitted will be referred to as the customer, and the organization submitting the proposal will be referred to as the pro-poser. Other terms commonly used elsewhere for the pro-poser include bidder, vendor or contractor and for the customer requestor or issuer. The organization submitting the winning proposal, after being selected, will be referred to as the developer. a) The cost-plus contract Cost-plus is a contractual relationship where the developer is 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 20/41
  • 532. paid for the cost of the service provided and in addition is allowed an agreed profit margin. This is rather like renting a car the customer pays for the time that the car is used (by the hour, day, week etc.), and for any other expenses such as insurance and gasoline. Thus, in a cost-plus contract the total cost of the projects is only known after the project has been completed. As an example, company Alpha may contract software company Beta to develop a system, company Beta will be paid $80 by company Alpha for each hour invested by their engineers in the project. In additional 20 percent may then be added to cover managerial, secretarial and other services. Additional expenses incurred by company Beta for the benefit of the project would then be reimbursed by company Alpha. These expenses might cover such areas as: Software Project Management (CS615) 212 © Copyright Virtual University of Pakistan • Special purpose development equipment (computers, compilers, networks etc.) • Travel expenses incurred by employees of company Beta for the benefit of the project • Target equipment procured by company Beta for the use of company Alpha • Services from other outside sources requested by company Beta for the project The customer company, Alpha, may require the developer, company Beta, to receive prior authorization before incurring any single expense exceeding $250, and any expense in excess of $6000 monthly total. Such authorization should always be in writing. This defines a basic cost-plus contractual relationship between the two companies. In many cases, cost-plus can be the most appropriate way to contract development work however, there are numerous potential problems. A conflict of interest may 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 21/41
  • 533. arise due to the developer's lack of motivation to complete the project as quickly as possible, or due to the customer's reluctance to authorize additional expenses. Cost-plus is often appropriate for small undefined projects, when it is difficult to identify the project's requirements in advance. In fact, in many cases the requirements phase of a project is offered as a cost-plus contract, all the remaining phases are contracted at a fixed price. The requirements phase is then used to bring the rest of the project to a sufficiently well-defined state from which it can then be contracted at a fixed price. Occasionally, one company is awarded a cost-plus contract for the requirements phase, and another company is awarded the remaining phases as a fixed price contract. Cost-plus may be preferred by the customer who wants to retain control of the development process. In some cases, the developer is perceived as an extension of the customer's organization, and the development activities are managed by the customer. A cost-plus contract should cover the following issues: • List of persons to be assigned to the project • Work definition • The assignment percentage for each person • Hourly or daily work rate for each person • Administrative overhead • Authorized expenses to be reimbursed • Billing procedure • Payment procedure • Termination procedure Software Project Management (CS615) 213 © Copyright Virtual University of Pakistan The assignment percentage refers to the amount of time each person will be expected to devote to the project. This may be 100 percent for some engineers, and 50-60 percent for experts in specific areas. The assignment percentage may also be quoted in terms of maximum or minimum, meaning that, for example, a quality assurance engineer will devote no 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 22/41
  • 534. more than 20 hours a week to the project, and no fewer than 10 hours a week to the project. The billing rate may be a fixed rate for all persons assigned to the project, or individual rates may be set for each person or class of people. For example, for each hour worked on the project, the developer will bill $80, irrespective of who, worked that hour. Or the contract may stipulate that design engineers bill at $120 per hour, coders at $60 per hour, documentation writers at $50 per hour, and so forth. The most difficult cost-plus contract billing rate method is the individual billing method, where Frank Jones is billed at $90 per hour, John Smith at $75 etc. This means that each time a person is replaced or added to the project, the hourly rate must renegotiated. For a software development organization, there can be real advantages in costplus contracts these include: • No financial or business risk • Acquisition of knowledge and experience at the expense of another organization However, as in most cases, these advantages come with some disadvantages, which include: • Low business profit • Possible staff discontent • Reduced control of staff and development work • Potential friction with the customer due to a lack of well- defined goals and motivation factors • Contract continuity is not assured Most employees prefer a clear definition of the hierarchy to which they belong. In a cost-plus contract the employee works within the customer's hierarchy, but belongs to the developer's hierarchy, and this can cause discontent. In general, from the developer's perspective, a cost-plus contract is a solid, low profit, no risk business relationship. From the customer's perspective, the advantages of a cost-plus contract are: Software Project Management (CS615) 214 © Copyright Virtual University of Pakistan 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 23/41
  • 535. • Retention of control over development • No commitment needed for a full project contract • A possible reduced business risk (due to the ability to terminate the contract at any time The customer's possible disadvantages are: • Increased development costs • Customer's assumption of development risks • Increased involvement in development • Potential friction with the developer due to a lack of well- defined goals and motivation factors For the customer, the desirability of a cost-plus contract is difficult to establish. Clearly is dependent on the type of project and the conditions under which it will be developed, as we as on other non-technical business considerations. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Here are beginner-level examples related to the topics you provided: 5.11 Contractual Obligations 5.11 Contractual Obligations 5.11 Contractual Obligations 5.11 Contractual Obligations 5.11 Contractual Obligations Definition of a Contract Legal Relationship Names for Contracts Delegation of Procurement Authority Review and Approval Process Example: A software company (the seller) agrees to create a custom software application for a retail business (the buyer). The retail business agrees to pay a set amount once the software is delivered and meets all specified requirements. Example: If the software company fails to deliver the software on time, the retail business can take legal action to enforce the contract or seek compensation for losses. Example: The agreement between the software company and the retail business could be called a contract, agreement, or purchase order, depending on the organization's terminology. Example: In a large corporation, only the procurement manager has the authority to sign contracts with external vendors on behalf of the company. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 24/41
  • 536. Types of Contracts Types of Contracts Types of Contracts Types of Contracts Types of Contracts Specialization in Software Development Risk and Uncertainty in Software Development Roles in Contracting a) The Cost-Plus Contract a) The Cost-Plus Contract a) The Cost-Plus Contract a) The Cost-Plus Contract a) The Cost-Plus Contract Basic Definition Example of a Cost-Plus Contract Potential Issues with Cost-Plus Contracts Appropriate Use of Cost-Plus Contracts Maintaining Control Elements Covered in a Cost-Plus Contract Elements Covered in a Cost-Plus Contract Elements Covered in a Cost-Plus Contract Elements Covered in a Cost-Plus Contract Elements Covered in a Cost-Plus Contract List of Persons to be Assigned Work Definition Assignment Percentage Example: Before signing the contract, the retail business’s legal team reviews the contract to ensure it clearly defines the software to be delivered and that all terms are acceptable. Example: A bank that specializes in financial services but not in software development hires a software company to build an online banking platform. Example: A software company is hired to develop a new mobile app, but because the exact requirements are unclear, there is a high risk of misunderstandings between the company and the client. Example: A government agency (the customer) issues a request for proposals to develop a public service app. Several software companies (proposers) submit their proposals, and the agency selects one developer to complete the project. Example: A startup hires a software development company to create a mobile app. The startup agrees to pay for the actual cost of the development (e.g., hourly wages for developers) plus an additional 20% profit margin for the software company. Example: Company Alpha hires software company Beta to develop a new system. Beta charges $80 per hour for their engineers’ work and adds a 20% fee to cover management and other services. If Beta needs to buy special equipment for the project, Alpha reimburses those costs. Example: If Beta’s engineers take longer than expected to complete the project, Alpha’s costs increase, which could lead to conflicts if Alpha believes Beta is not working efficiently. Example: Alpha uses a cost-plus contract when hiring Beta for the initial phase of the project, where requirements are not fully defined. Once the project is clearly defined, Alpha may switch to a fixed-price contract for the remaining work. Example: Alpha prefers a cost-plus contract because it allows them to closely manage the development process, ensuring that Beta’s work aligns with their expectations. Example: The contract specifies that three software engineers and one project manager from Beta will work on the project. Example: The contract outlines that Beta’s engineers will develop the front-end and back-end of the new system. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 25/41
  • 537. Hourly or Daily Work Rate Administrative Overhead Authorized Expenses Billing Procedure Payment Procedure Termination Procedure Advantages and Disadvantages of Cost-Plus Contracts Advantages and Disadvantages of Cost-Plus Contracts Advantages and Disadvantages of Cost-Plus Contracts Advantages and Disadvantages of Cost-Plus Contracts Advantages and Disadvantages of Cost-Plus Contracts For the Developer (Beta) For the Customer (Alpha) Example: The contract states that the project manager will devote 50% of their time to this project, while one senior engineer will be fully dedicated (100%) to it. Example: The contract specifies that Beta will charge $80 per hour for developers and $100 per hour for the project manager. Example: The contract includes a 20% fee on top of the hourly rates to cover Beta’s administrative costs. Example: The contract allows Beta to be reimbursed for any travel expenses related to the project, as long as Alpha approves any single expense over $250 in advance. Example: The contract states that Beta will send an invoice every two weeks, detailing hours worked and any authorized expenses. Example: The contract specifies that Alpha will pay each invoice within 30 days of receipt. Example: The contract allows either party to terminate the contract with 30 days' notice, with Beta being compensated for all work completed up to the termination date. Advantages: No Financial Risk: Beta is paid for all costs incurred, so there is no risk of losing money on the project. Knowledge Acquisition: Beta gains experience and knowledge from working on the project, which can benefit future projects. Disadvantages: Low Profit: Beta’s profit margin is limited to the agreed percentage, which might not be as high as in a fixed-price contract. Staff Discontent: Beta’s engineers might feel uncertain about their roles, as they work within Alpha’s hierarchy but are employed by Beta. Reduced Control: Beta may have less control over how its staff works since Alpha closely manages the project. Advantages: Control Over Development: Alpha can oversee the development process, ensuring that the project meets their standards. Flexibility: Alpha can terminate the contract if the project is not progressing as expected, reducing the risk of being stuck in a non-productive contract. Disadvantages: Increased Costs: Alpha may end up paying more than expected if the project takes longer to complete. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 26/41
  • 538. b) The fixed price contract A fixed price contract is a commitment by the developer to provide an agreed product or service for an agreed fee, within an agreed schedule. This is similar to purchasing a bus ticket, when the bus company agrees to take the customer to a specific destination within a published timetable, and for an agreed fee. Of course, travelers can elect to rent a car, instead of purchasing a bus ticket, and then drive to their destinations themselves. However, this may turn out to be more expensive, and requires of the traveler some prior skills and knowledge, such driving skills and knowledge of the route to the destination. So travelers (or customers) must decide between providing the service themselves and contracting someone else to provide the service. A fixed price contract can only be applied to a well-defined project. Both customer and developer must be able to define the final deliverable product or service. Once this has been achieved, one of the main weaknesses of the fixed price contract will have been removed. The advantages of a fixed price contract for the developer include: • Full control of the development process • Possible higher business profit • Commitment for a complete project The commitment for a complete project is a significant advantage over cost-plus contract that may end at any time, at the customer's discretion. Of course, fixed price contracts also have some disadvantages for the developer, which include: Software Project Management (CS615) These examples are designed to help beginners understand the concepts without using analogies, while maintaining coherence as if delivered in a lecture. Development Risks: Alpha assumes the risk if the project encounters significant issues or delays, as costs will continue to rise. Potential Friction: Without clear goals, there might be disagreements between Alpha and Beta, leading to tension and reduced productivity. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 27/41
  • 539. 215 © Copyright Virtual University of Pakistan • Assumption of business and development risks • Potential friction with the customer due to: − continuing requirement changes − project completion criteria − interpretation of requirements A successful software organization will often prefer a fixed price contract. These are usually the projects that build a company's professional reputation, and generate profit to enable growth. Unfortunately, these are also the projects that generate loss, and which often severely harm a company. Stiff competition for an important contract occasionally tempts a company to underbid, which ultimately generates losses for the developer. It is almost inevitable in any project that the developer will be requested to change requirements during development. Such changes are usually associated with additional cost the customer, and are invariably a cause of disagreement between developer and customer. This is often due to unclear or ambiguous requirements, which, in turn lead to disagreement regarding the criteria for project completion. This, essentially, returns the contract to insufficiently defined state. From the customer's perspective, the advantages in a fixed price contract include: • A fixed budget for the project. • Most of the development risks are transferred to the developer • Minimal involvement in the development process The disadvantages to the customer are: • Risk of late delivery by the developer • Reduced control of the development process • Potential friction with the developer due to: − high cost of requirement changes − unclear project completion criteria − interpretation of requirements Even though the interests of the developer and the customer may be different, fixed price contracts are still often preferred by both parties. If the project is sufficiently detailed and clear and if the relationship between 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 28/41
  • 540. the two parties is Software Project Management (CS615) 216 © Copyright Virtual University of Pakistan well defined, then fixed price contracts can be beneficial to both the developer and the customer. • The Cost-Plus Vs Fixed Price There is often a real or imagined conflict of interest between the developer and the customer. The customer wants to spend less and the developer wants to earn more. As we shall see, a good relationship between developer and customer need not necessarily lead to this conflict of interest. There are basically two types of contractual relationship between the customer and the Developer: − Cost-plus (also called Time and material) − Fixed price Most other relationships are some kind of combination of these two • Contract type selection: Different types of contracts are more or less appropriate for different types of purchases. Contracts generally fall into one of three broad categories: ƒ Fixed-price or lump-sum contracts—this category of contract involves a fixed total price for a well-defined product. To the extent that the product is not well defined, both the buyer and seller are at risk—the buyer may not receive the desired product or the seller may need to incur additional costs to provide it. Fixed-price contracts may also include incentives for meeting or exceeding selected project objectives, such as schedule targets. ƒ Cost-reimbursable contracts—this category of contract involves payment (Reimbursement) to the seller for its actual costs plus, typically, a fee representing seller profit. Costs are usually classified as direct costs or indirect costs. Direct costs are costs incurred for the exclusive benefit of the project (e.g. salaries of full-time project staff). Indirect costs, also called overhead costs, are costs allocated to the project by the 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 29/41
  • 541. performing organization as a cost of doing business (e.g., salaries of corporate executives). Indirect costs are usually calculated as a percentage of direct costs. Cost-reimbursable contracts often include incentives for meeting or exceeding selected project objectives, such as schedule targets or total cost. ƒ Time and Material (TM) contracts—TM contracts are a hybrid type of contractual arrangement that contains aspects of both cost- reimbursable and fixed-price-type arrangements. TM contracts resemble cost- type arrangements in that they are open ended, because the full value of the arrangement is not defined at the time of the award. Thus, TM contracts can Software Project Management (CS615) 217 © Copyright Virtual University of Pakistan grow in con-tract value as if they were cost-reimbursable-type arrangements. Conversely, TM arrangements can also resemble fixed-unit arrangements when, for example, the unit rates are preset by the buyer and seller, as when both parties agree on the rates for the category of “senior engineers.” • Other Customer-Developer Relationships Cost-plus and fixed price are two of the traditional contractual relationships between developer and customer. There are many variations of these two basic relationships, including various combinations that are tailored to suit specific projects. Some of these relationships are associated with the roles of customer and developer, and attempt to provide more incentives for the developer to support the customer's objectives beyond contractual obligations. Additional types of customer-developer relationship include: • Combinations of fixed price and cost-plus • Joint ventures • Royalty agreements • Long-term commitments Joint ventures are instances where the customer-developer 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 30/41
  • 542. dividing line can become hazy, and many of the previously discussed advantages and disadvantages may not apply. There are many cases where some form of joint venture may be desirable for both parties, such as when the developer wants to retain rights to the product, or when the developer joins the customer in funding part of the development effort. One way the customer can offer the developer moderate participation in the business aspect of the project is by substituting royalties as partial payment. This generates an added dimension to the developer's interest in the success of the project. The royalties are usually such that the failure of the project would produce less revenue for the developer than a straightforward fixed price contract, and the success of the project will increase the developer's revenue. Long-term relationships are often important for the developer. In many cases, long term commitments are also in the customer's interest. This occurs when the developer, by being awarded the initial contract, gains, through acquired knowledge, a major advantage over others for subsequent development work. Clearly, when the developer successfully completes a large and complex project, a significant advantage is then acquired over other companies with respect to future extensions of the project. A long-term commitment may then be of mutual interest to both parties, wherein the customer assures future services from the developer and the developer assures a long term income commitment. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 31/41
  • 543. 5.12 The statement of work (SOW) Software Project Management (CS615) 218 © Copyright Virtual University of Pakistan The statement of work is the basis of the contract between the pro-poser and the customer, and is often incorporated into the contract. The SOW contains a detailed list of all work to be performed by the pro-poser for the benefit of the customer. It is a narrative description of products or services to be supplied by the project. For internal projects, the project initiator or sponsor provides the statement of work based on business needs, or product or service requirements. For external projects, the statement of work can be received from the customer as part of a bid document, for example, request for proposal, request for information, request for bid, or as part of a contract. The SOW indicates a: ƒ Business need - an organization’s business need, can be based on needed training, market demand, technological advance, legal requirement, or governmental standard. ƒ Product scope description - documents the product requirements and characteristics of the product or service that the project will be undertaken to create. The product requirements will generally have less detail during the initiation process and more detail during later processes, as the product characteristics are progressively elaborated. These requirements should also document the relationship among the products or services being created and the business need or other stimulus that causes the need. While the form and substance of the product requirements document will 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 32/41
  • 544. vary, it should always be detailed enough to support later project planning. ƒ Strategic plan - all projects support the organization’s strategic goals—the strategic plan of the performing organization should be considered as a factor in project selection decisions. The SOW starts as a general list of required deliverables in the RFP. A more detailed version t of the SOW is submitted as part of the proposal, and is still considered only an initial description of the work to be performed. The blinding version of the SOW is finalized during contract negotiations, or after the detailed project requirements have been completed. Following table presents an example of an SOW outline for a software project. The list of items varies considerably, depending on the type of project being developed; for example not all projects include the delivery of hardware components, and not all projects require training or installation. Software Project Management (CS615) 219 © Copyright Virtual University of Pakistan Table: A sample SOW outline for a software project 14. Referenced documents • requirements specification • existing system description • customer's RFP • developer's proposal • vendor's and developer's technical literature 15. Software deliverables • functionality (as documented in the requirements specification) • list of major software components 16. Equipment and hardware deliverables • functionality (as documented in the requirements specification) • list of major hardware components 17. Training • user courses • operator training • installation training 18. Market research 19. Procurement 20. Supervision of subcontractors 21. Documentation 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 33/41
  • 545. • development documentation • user documentation • maintenance documentation • other technical documentation 22. Testing • alpha testing • beta testing • acceptance tests (ATP) 23. Installation 24. Maintenance services 25. Other services and deliverable items 26. Method of delivery • software • documentation • hardware Software Project Management (CS615) 220 © Copyright Virtual University of Pakistan The basic guideline for the preparation of the SOW is that any activity, service or product required by the customer, and agreed to by the developer, must be included. This means that there can be no binding work items that were informally understood or agreed to verbally, which do not appear in the SOW. The formal SOW must include all and only the work to be performed. This condition prevents misunderstandings and disagreements later, after the project begins. The statement of work (SOW) describes the procurement item in sufficient detail to allow prospective sellers to determine if they are capable of providing the item. “Sufficient detail” may vary, based on the nature of the item, the needs of the buyer, or the expected contract form. Some application areas recognize different types of SOW. For example, in some government jurisdictions, the term SOW is reserved for a procurement item that is a clearly specified product or service, and the term Statement of Objectives (SOO) is used for a procurement item that is presented as a problem to be solved. The statement of work may be revised and refined as it moves through the procurement process. For example, a prospective seller may 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 34/41
  • 546. suggest a more efficient approach or a less costly product than that originally specified. Each individual procurement item requires a separate statement of work. However, multiple products or services may be grouped as one procurement item with a single SOW. The statement of work should be as clear, as complete, and as concise as possible. It should include a description of any collateral services required, such as performance reporting or post-project operational support for the procured item. In some application areas, there are specific content and format requirements for a SOW. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's go through the key points about the Statement of Work (SOW) in a simple and clear manner: 5.12 The Statement of Work (SOW) 5.12 The Statement of Work (SOW) 5.12 The Statement of Work (SOW) 5.12 The Statement of Work (SOW) 5.12 The Statement of Work (SOW) The Statement of Work (SOW) is a document that serves as the foundation for a contract between a developer (or proposer) and a customer. It outlines all the work that the developer is required to perform for the customer. This document is crucial because it specifies what the customer expects to receive and what the developer must deliver. Key Components of an SOW Key Components of an SOW Key Components of an SOW Key Components of an SOW Key Components of an SOW Business Need: 1 The SOW starts by identifying why the project is necessary. This could be due to a need for new software, a legal requirement, or a technological update. For example, a company may need new software to comply with updated industry regulations. 2 Product Scope Description: 3 This part of the SOW describes in detail the product or service to be delivered. For example, if the project is to develop a new software application, this section will list the key features and functions that the software must have. It also explains how this product will meet the business need. 4 Strategic Plan: 5 Every project should align with the organization's broader strategic goals. The SOW explains how the project supports these goals. For example, if a company’s 6 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 35/41
  • 547. How the SOW is Used How the SOW is Used How the SOW is Used How the SOW is Used How the SOW is Used Example of an SOW Outline for a Software Project Example of an SOW Outline for a Software Project Example of an SOW Outline for a Software Project Example of an SOW Outline for a Software Project Example of an SOW Outline for a Software Project Here’s what a typical SOW might include for a software project: strategy is to become a leader in digital innovation, the SOW might describe how the new software will contribute to that objective. Initial Description: The SOW begins as a general list of what the customer wants when they send out a Request for Proposal (RFP). For example, a company might say they need a new customer management system without specifying every detail. Proposal Submission: When developers submit their proposals, they include a more detailed version of the SOW, describing exactly what they will do and how they will do it. For example, a software developer might propose specific features and a timeline for delivery. Finalization: The final version of the SOW is agreed upon during contract negotiations. It becomes a binding document that both parties must follow. For example, if the SOW states that the software will be delivered in six months with specific features, the developer must meet this requirement. Referenced Documents: 1 List of documents like the requirements specification, existing system descriptions, and the customer’s RFP. 2 Software Deliverables: 3 Detailed list of software features and components that the developer must provide. 4 Equipment and Hardware Deliverables: 5 Any hardware components required for the software, such as servers or specific devices. 6 Training: 7 Description of any training required for users, operators, or installation teams. 8 Market Research: 9 Any research required to understand the market or user needs. 10 Procurement: 11 Details about acquiring any necessary materials or services from third parties. 12 Supervision of Subcontractors: 13 Information on how the developer will manage any subcontractors involved in the project. 14 Documentation: 15 Details on the documentation that will be provided, such as user manuals or maintenance guides. 16 Testing: 17 The types of testing that will be conducted, like alpha and beta testing. 18 Installation: 19 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 36/41
  • 548. 5.12.1 SOW Template i. Scope of work: Describe the work to be done in detail. Specify the hardware and software involved and the exact nature of the work. ii. Location of Work: Describe where the work must be performed. Specify the location of hardware and software and where the people must perform the work. iii. Period of Performance: Specify when the work is expected to start and end, working hours, number of hours that can be billed per week, where the work must be performed, and related schedule information. Optional “Compensation” section. Software Project Management (CS615) 221 Importance of the SOW Importance of the SOW Importance of the SOW Importance of the SOW Importance of the SOW This overview should give you a clear understanding of what an SOW is and how it is used in managing software projects. How the software will be installed and set up for use. 20 Maintenance Services: 21 Description of ongoing support and maintenance that will be provided after the software is delivered. 22 Other Services and Deliverable Items: 23 Any additional services or items that are part of the project. 24 Method of Delivery: 25 How the software, documentation, and hardware will be delivered to the customer. 26 Clarity and Precision: The SOW must be clear, complete, and concise. For example, if the SOW states that the software should include a reporting feature, it should describe exactly what kind of reports are needed and how they should work. Prevents Misunderstandings: By including everything agreed upon, the SOW helps avoid misunderstandings later in the project. For example, if the SOW does not mention a feature, the developer is not responsible for adding it unless both parties agree to a contract change. Flexibility and Revisions: The SOW can be revised as the project progresses, especially if the customer or developer suggests improvements. For example, if a new technology becomes available, the SOW might be updated to include its use. 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 37/41
  • 549. © Copyright Virtual University of Pakistan iv. Deliverables Schedule: List specific deliverables, describe them in detail, and specify when they are due. v. Applicable Standards: Specify any company or industry- specific standards that are relevant to performing the work. Often an Assumptions section as well. vi. Acceptance Criteria: Describe how the buyer organization will determine if the work is acceptable vii. Special Requirements: Specify any special requirements such as hardware or software certifications, minimum degree or experience level of personnel, travel requirements, documentation, testing, support, and so on. 5.13 Software built around a Scheduling Engine These packages were originally created to manage one project at a time, but over the years have been enhanced to handle multiple projects. Well known examples include: 1. Primavera 2. TurboProject 3. OpenPlan 4. Microsoft Project 5. AutoPlan 6. Project Scheduler 8 7. CA SuperProject 8. Timeline (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 5.12.1 SOW Template 5.12.1 SOW Template 5.12.1 SOW Template 5.12.1 SOW Template 5.12.1 SOW Template Let’s discuss each part of the Statement of Work (SOW) template and provide straightforward examples to help you understand how these sections might be filled out in a real project: Scope of Work: 1 Description: This section details what work needs to be done, including the specific tasks, hardware, and software involved. 2 Example: For a project developing a new customer management system, the Scope of Work might include tasks like designing the user interface, developing backend services, and integrating with the existing database. The hardware 3 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 38/41
  • 550. 5.13 Software Built Around a Scheduling Engine 5.13 Software Built Around a Scheduling Engine 5.13 Software Built Around a Scheduling Engine 5.13 Software Built Around a Scheduling Engine 5.13 Software Built Around a Scheduling Engine Now, let's talk about some software tools that are designed to help manage projects. These tools are built around a scheduling engine, which helps plan, track, and manage project timelines and resources. Here are some well-known examples: involved might be company servers, and the software could include programming languages like Java and database systems like MySQL. Location of Work: 4 Description: This section specifies where the work will be performed, including the locations of hardware, software, and personnel. 5 Example: The work might be performed at the company’s main office, with servers located in the data center. The software development might take place remotely, with the team working from various locations but coordinating via an online platform. 6 Period of Performance: 7 Description: This section outlines when the work will start and end, the expected working hours, and any schedule details. 8 Example: The project might be scheduled to start on September 1st and end on December 31st, with the team working 40 hours per week, Monday through Friday, from 9:00 AM to 5:00 PM. 9 Deliverables Schedule: 10 Description: This section lists the specific deliverables, provides detailed descriptions, and specifies the deadlines. 11 Example: Deliverables might include a completed user interface by October 15th, a working backend system by November 15th, and a fully integrated system by December 15th. 12 Applicable Standards: 13 Description: This section lists any standards that must be followed during the project, including company policies or industry regulations. 14 Example: The project might need to comply with the company’s internal coding standards, as well as industry regulations like GDPR (General Data Protection Regulation) if it involves handling customer data. 15 Acceptance Criteria: 16 Description: This section defines how the customer will determine if the work meets the agreed-upon requirements and is acceptable. 17 Example: The customer might require that the system passes specific tests, such as performance benchmarks and user acceptance testing (UAT), before considering the work complete. 18 Special Requirements: 19 Description: This section lists any additional requirements, such as specific certifications, experience levels, or other conditions that must be met. 20 Example: The project might require that all developers have a minimum of 5 years of experience in software development, and that the team includes a certified security expert to ensure the system’s security features meet industry standards. 21 Primavera: 1 Description: A powerful project management tool often used for large and complex projects, particularly in industries like construction and engineering. 2 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 39/41
  • 551. These explanations should provide you with a clear understanding of the SOW template components and the different software tools that are used for project scheduling and management. Example: A construction company might use Primavera to schedule and manage the construction of a new office building, ensuring that all tasks are completed on time and resources are allocated efficiently. 3 TurboProject: 4 Description: A project management software that helps in planning and tracking multiple projects simultaneously. 5 Example: A software development company might use TurboProject to manage the timelines of several ongoing projects, making sure each one meets its deadlines. 6 OpenPlan: 7 Description: A tool used for project management with features that support the planning and execution of multiple projects. 8 Example: A manufacturing firm might use OpenPlan to oversee the production schedules of different products, coordinating tasks to ensure timely delivery. 9 Microsoft Project: 10 Description: One of the most widely used project management tools, suitable for managing projects of various sizes. 11 Example: A marketing team might use Microsoft Project to organize and track the progress of a new advertising campaign, from initial concept to final launch. 12 AutoPlan: 13 Description: A project management tool designed to automate the scheduling and resource allocation for projects. 14 Example: An IT department might use AutoPlan to automate the scheduling of software updates across the company’s systems. 15 Project Scheduler 8: 16 Description: A project management tool that helps in detailed planning and scheduling of tasks. 17 Example: A research team might use Project Scheduler 8 to plan and track the progress of a long-term scientific study, ensuring that all tasks are completed in the correct order. 18 CA SuperProject: 19 Description: A project management software that provides robust features for complex project scheduling. 20 Example: A telecommunications company might use CA SuperProject to manage the rollout of new network infrastructure across multiple regions. 21 Timeline: 22 Description: A project management tool focused on creating and managing project timelines. 23 Example: A product development team might use Timeline to plan the release schedule of a new product, ensuring that all milestones are met on time. 24 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 40/41
  • 552. From ChatGPT, designed with FancyGPT 18/08/2024, 10:15 FancyGPT - cs615 lecture 28 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 41/41
  • 553. cs615 lecture 29 cs615 lecture 29 cs615 lecture 29 cs615 lecture 29 cs615 lecture 29 LECTURE # 29 6. ESTIMATION 6.1 Estimation - Concepts Watts Humphrey in his book, Managing the Software process, has said, “If you don’t know where you are, a map won’t help.” This saying is very relevant while dealing with software project estimation. In a software project, unless you are sure that your estimation is accurate, you cannot make much progress. Estimation of factors such as cost, effort, risks, and resources is crucial. It gives you a fair idea of the size of the project. You can use the information about size to estimate the cost, effort, and duration of the project. This further helps plan for resources and schedule the project. In the early days of computing, software costs constituted a small percentage of the overall computer-based system cost. An order of magnitude error in estimates of software cost had relatively little impact. Today, software is the most expensive element of virtually all computer-based systems. For complex, custom systems, a large increased cost estimation error can make the difference between profit and loss. Cost overrun can be disastrous for the developer. Software cost and effort estimation will never be an exact science. Too many variables - human, technical, environmental, political - can affect the ultimate cost of software and effort applied to develop it. However, software project estimation can be transformed from a black art to a series of systematic steps that provide estimates with acceptable risk. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/11
  • 554. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 6. ESTIMATION 6. ESTIMATION 6. ESTIMATION 6. ESTIMATION 6. ESTIMATION 6.1 Estimation - Concepts 6.1 Estimation - Concepts 6.1 Estimation - Concepts 6.1 Estimation - Concepts 6.1 Estimation - Concepts Watts Humphrey's quote, If you don’t know where you are, a map won’t help, is important when estimating in software projects. Here's why: In a software project, estimation means predicting the amount of time, money, and resources needed to complete the project. If your estimation is off, you might face unexpected problems. Therefore, accurate estimation is crucial for making progress in the project. Example: Example: Example: Example: Example: Imagine you're managing a small software project for a client. Before starting, you need to estimate how much it will cost, how long it will take, and how many team members you'll need. If you underestimate any of these factors, you could run into issues like not having enough time or budget to complete the project, which could lead to project failure. Estimating Factors: Estimating Factors: Estimating Factors: Estimating Factors: Estimating Factors: By estimating these factors, you can get a rough idea of the project size and complexity. This helps in planning the schedule, allocating resources, and setting a budget. Example: Example: Example: Example: Example: Suppose you're building a new mobile app. You estimate it will take 500 hours of work, cost $50,000, and require a team of 5 developers. You also identify potential risks, such as delays in getting approvals from the client. This estimation helps you plan when to start, how to allocate tasks, and how to manage the budget. Importance of Accurate Estimation: Importance of Accurate Estimation: Importance of Accurate Estimation: Importance of Accurate Estimation: Importance of Accurate Estimation: In the early days of computing, software was a small part of the overall system cost. Even if the software cost estimate was wrong, it didn’t affect the overall project much. However, today, software is a major part of the cost. An incorrect estimate can lead to huge financial losses. Example: Example: Example: Example: Example: If you're working on a large government contract to build a custom software system, and you underestimate the cost by 50%, this could result in a significant financial loss for your company. It could even mean losing the contract entirely if the client decides the project is too expensive. Software Estimation Challenges: Software Estimation Challenges: Software Estimation Challenges: Software Estimation Challenges: Software Estimation Challenges: Estimation is difficult because software development is complex and involves many unpredictable factors. Human skills, technology, environment, and even politics can influence the actual cost and effort needed. Example: Example: Example: Example: Example: Cost: The amount of money required for the project. Effort: The total work required to complete the project, often measured in person- hours or person-days. Risks: Potential problems that could arise and impact the project. Resources: The people, tools, and materials needed to complete the project. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/11
  • 555. To achieve reliable cost and effort estimates, a number of options arise: 1. Delay estimation until late in the project (obviously, we can achieve 100% accurate estimates after the project is complete!). 2. Base estimates on similar projects that have already been completed. 3. Use relatively simple decomposition techniques to generate project cost and effort estimates. 4. Use one or more empirical models for software cost and effort estimation. Unfortunately, the first option, however attractive, is not practical. Cost estimates must be provided 'up front.' However, we should recognize that the longer we Software Project Management (CS615) 223 © Copyright Virtual University of Pakistan wait, the more we know, and the more we know, the less likely we are to make serious errors in our estimates. The second option can work reasonably well, if the current project is quite similar to past efforts and other project influences (e.g., the customer, business conditions, the SEE, deadlines) are equivalent. Unfortunately, past experience has not always been a good indicator of future results. The remaining options are viable approaches to software project estimation. You might estimate that a project will take 6 months, but then new regulations are introduced that require additional features, or a key team member leaves the project. These changes can impact your original estimate, making the project take longer and cost more than expected. Systematic Approach to Estimation: Systematic Approach to Estimation: Systematic Approach to Estimation: Systematic Approach to Estimation: Systematic Approach to Estimation: Although perfect estimation is impossible, you can improve your estimates by following a systematic process. This involves breaking down the project into smaller tasks, using historical data from similar projects, and continuously refining your estimates as you learn more about the project. Example: Example: Example: Example: Example: Before starting a project, you break it down into smaller tasks, such as design, development, testing, and deployment. You then look at previous projects to see how long each task typically takes and use this information to create a more accurate estimate. As the project progresses, you adjust your estimates based on any new information or challenges that arise. By following these steps, you can make better estimations, reducing the risk of cost overruns and project delays. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/11
  • 556. Ideally, the techniques noted for each option should be applied in tandem; each used as a cross-check for the other. Software project estimation is a form of problem solving, and in most cases, the problem to be solved (i.e., developing a cost and effort estimate for a software project) is too complex to be considered in one piece. For this reason, we decompose the problem, re-characterizing it as a set of smaller (and hopefully, more manageable) problems. Following are some points related to project estimation: • Estimation is very difficult to do, but is often needed • It is created, used or refined during – Strategic planning – Feasibility study and/or SOW – Proposals – Vendor and sub-contractor evaluation – Project planning (iteratively) • Basic process involves: – Estimate the size of the product – Estimate the effort (man-months) – Estimate the schedule – NOTE: Not all of these steps are always explicitly performed (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Reliable Cost and Effort Estimation Reliable Cost and Effort Estimation Reliable Cost and Effort Estimation Reliable Cost and Effort Estimation Reliable Cost and Effort Estimation When trying to estimate the cost and effort for a software project, there are several options you can consider. Let's discuss each of these options and some key points about the estimation process. 1. 1. 1. 1. 1. Delay Estimation Until Late in the Project Delay Estimation Until Late in the Project Delay Estimation Until Late in the Project Delay Estimation Until Late in the Project Delay Estimation Until Late in the Project 2. 2. 2. 2. 2. Base Estimates on Similar Projects Base Estimates on Similar Projects Base Estimates on Similar Projects Base Estimates on Similar Projects Base Estimates on Similar Projects Explanation: Waiting until the project is almost done to make estimates would give you the most accurate results because you would have all the necessary information. Example: Suppose you start developing a website without estimating the cost and effort upfront. You could easily determine the exact cost after the website is complete. However, this isn't practical because you need an estimate to secure funding and plan the project. Explanation: This method involves looking at previous projects that are similar to the current one and using them as a reference to estimate costs and effort. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/11
  • 557. 3. 3. 3. 3. 3. Use Decomposition Techniques Use Decomposition Techniques Use Decomposition Techniques Use Decomposition Techniques Use Decomposition Techniques 4. 4. 4. 4. 4. Use Empirical Models Use Empirical Models Use Empirical Models Use Empirical Models Use Empirical Models Practical Considerations Practical Considerations Practical Considerations Practical Considerations Practical Considerations Estimation as a Problem-Solving Process Estimation as a Problem-Solving Process Estimation as a Problem-Solving Process Estimation as a Problem-Solving Process Estimation as a Problem-Solving Process Estimation is challenging because software projects are complex. To handle this, we break down the estimation into smaller, more manageable parts. Key Points About Project Estimation Key Points About Project Estimation Key Points About Project Estimation Key Points About Project Estimation Key Points About Project Estimation Example: If you’ve previously developed a similar e-commerce website, you might use the data from that project to estimate how long and how much it will cost to build another e-commerce website. However, differences in client requirements or technology can make these estimates less accurate. Explanation: Decomposition involves breaking down the project into smaller tasks or components and estimating the cost and effort for each part separately. Example: For a mobile app project, you might break it down into tasks like UI design, backend development, and testing. You would then estimate the effort for each of these tasks individually and combine them to get the total estimate. Explanation: Empirical models use historical data and mathematical formulas to estimate the cost and effort. These models are based on real-world data from past projects. Example: One such model is the COCOMO (Constructive Cost Model), which uses parameters like the size of the project and complexity to calculate the estimated effort and cost. Upfront Estimation is Necessary: Even though waiting until late in the project gives more accurate estimates, it's not feasible because you need cost estimates at the beginning to secure budgets and plan resources. Example: Before starting a project to build a new software tool, your company’s management will require a cost estimate to allocate the budget. Using Past Projects for Estimation: This works well if the current project closely matches previous projects in scope and conditions. Example: If you previously developed a custom CRM system for one client and now you're doing a similar project for another client with similar requirements, you can use your past experience to estimate costs. However, differences like stricter deadlines or new technology might affect the accuracy of your estimate. Decomposing the Problem: Instead of estimating the entire project at once, we break it into smaller tasks. This makes the estimation process easier and more accurate. Example: If you're estimating a project to build an online shopping platform, break it down into smaller tasks like user authentication, product listing, payment processing, and shipping integration. Estimate each part separately and sum them up. Estimation is Difficult but Necessary: Accurate estimates are hard to achieve, but they are crucial for planning and executing a project. Example: You might find it challenging to estimate how long it will take to integrate a new payment system into your app, but you still need an estimate to plan your timeline. Estimation is Used in Various Stages: Estimation isn't a one-time task; it is done during different stages like strategic planning, feasibility studies, and project planning. Example: Before starting a new software product, your team might first create a rough estimate during strategic planning and then refine it as you develop a more detailed project plan. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/11
  • 558. 6.2 Estimation – A Critical factor In a software project, unless you are sure that your estimation is accurate, you cannot make much progress. Estimation of following factors are essential: – Cost, – Effort, Software Project Management (CS615) 224 © Copyright Virtual University of Pakistan – Risks – Resources Estimation gives you a fair idea of the size of the project. You can use the information about size to estimate the cost, effort, and duration of the project. This further helps plan for resources and schedule the project. Estimation of resources, cost, and schedule for a software engineering effort requires: • Experience, • Access to good historical information • Courage to commit to quantitative predictions when qualitative information is all that exists Estimation carries inherent risk and this risk leads to By following these steps and using different estimation methods together, you can improve the accuracy of your software project estimates. Basic Estimation Process: Estimate the Product Size: Determine how large the project is in terms of functionality or lines of code. 1 Example: Estimate the number of screens or features your app will have. 2 Estimate the Effort: Calculate the amount of work needed, usually measured in person-months. 3 Example: If a team of 3 developers can complete the project in 2 months, the effort is 6 person-months. 4 Estimate the Schedule: Determine how long the project will take from start to finish. 5 Example: Based on the effort estimate, you might plan for a 3-month development timeline. 6 Not Always Done Explicitly: In some cases, not all of these steps are formally documented, but they are still considered during the planning process. Example: In a small project, you might estimate the size and effort informally without detailed calculations, but you'll still need a rough idea to plan your schedule. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/11
  • 559. uncertainty. a) Project complexity b) Project size c) The degree of structural uncertainty d) The availability of historical information e) Risk (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 6.2 Estimation – A Critical Factor 6.2 Estimation – A Critical Factor 6.2 Estimation – A Critical Factor 6.2 Estimation – A Critical Factor 6.2 Estimation – A Critical Factor Accurate estimation is crucial in a software project because it influences the success of the project. Without reliable estimates, making progress and managing the project becomes difficult. Essential Factors to Estimate Essential Factors to Estimate Essential Factors to Estimate Essential Factors to Estimate Essential Factors to Estimate In a software project, the following factors must be estimated accurately: Example: Example: Example: Example: Example: When planning to develop a new software tool, you estimate that it will cost $100,000, require 1,200 hours of work, involve 5 developers, and have risks like potential delays in receiving feedback from the client. These estimates help you understand the overall size and complexity of the project, enabling you to allocate resources and schedule tasks effectively. Requirements for Accurate Estimation Requirements for Accurate Estimation Requirements for Accurate Estimation Requirements for Accurate Estimation Requirements for Accurate Estimation To make reliable estimates for a software project, you need: Example: Example: Example: Example: Example: If you’ve worked on similar projects before, you can use that experience to estimate how long it will take to develop the new software tool. If your company keeps records of past projects, you can refer to them to improve your estimates. Even if you don’t have all the information, you must still commit to an estimate to plan the project effectively. Risk and Uncertainty in Estimation Risk and Uncertainty in Estimation Risk and Uncertainty in Estimation Risk and Uncertainty in Estimation Risk and Uncertainty in Estimation Cost: The total amount of money needed for the project. Effort: The amount of work required, typically measured in hours, days, or months. Risks: Potential problems that could impact the project, such as technical issues or changes in requirements. Resources: The people, tools, and materials needed to complete the project. Experience: Knowledge gained from previous projects helps you make better estimates. Historical Information: Data from past projects can guide your current estimates. Courage to Commit: You must be willing to make concrete predictions, even when only partial or qualitative information is available. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/11
  • 560. a) Project complexity has a strong effect on the uncertainty, inherent in planning. Complexity, however, is a relative measure that is affected by familiarity with past effort. The first-time developer of a sophisticated e- commerce application might consider it to be exceedingly complex. However, a software team developing its tenth e-commerce Web site would consider such work run of the mill. A number of quantitative software complexity measures can be applied as per the need of project. Such measures are applied at the design or code level and are therefore difficult to use during Software planning (before a design and code exist). However, other, more subjective assessments of complexity (e.g., the Estimation is not without risk. Several factors can introduce uncertainty into your estimates, including: Understanding and managing these factors helps you make more accurate estimates, reducing the risk of project overruns and ensuring better project management. Project Complexity: The more complex a project is, the harder it is to estimate accurately. Example: If you're building a software system that integrates with multiple external services, the complexity makes it challenging to predict the exact effort and cost. Project Size: Larger projects have more variables, making it difficult to estimate accurately. Example: Estimating the effort for a small mobile app is easier than for a large enterprise system that spans multiple departments. Structural Uncertainty: If the project’s requirements or structure are not well-defined, this uncertainty increases the difficulty of making accurate estimates. Example: If the client’s requirements are vague or frequently changing, it’s hard to estimate the total effort needed. Availability of Historical Information: Having access to detailed records of past projects helps reduce uncertainty in estimates. Example: If your team has data from similar projects, such as how long certain tasks took, you can make more accurate estimates. Without this information, your estimates are more likely to be inaccurate. Risk: Risks such as unforeseen technical challenges or changes in project scope can impact your estimates. Example: If a new technology you’re using turns out to be more difficult to implement than expected, this could cause delays and increase costs, affecting your original estimates. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/11
  • 561. function point complexity adjustment factors) can be established early in the planning process. b) Project size is another important factor that can affect the accuracy and efficacy of estimates. As size increases, the interdependency among various elements of the software grows rapidly. Problem decomposition, an important approach to estimating, becomes more difficult because decomposed elements may still be alarming. To paraphrase Murphy's Law: What can go wrong will go wrong- and if there are more things that can fail, more things will fail. c) The degree of structural uncertainty has an effect on estimation risk. In this context, structure refers to the degree to which requirements have been solidified, the ease with which functions can be compartmentalized and the hierarchical nature of the information that must be processed. Software Project Management (CS615) 225 © Copyright Virtual University of Pakistan d) The availability of historical information has a strong influence on estimation risk. By looking back, we can emulate things that worked and improve areas where problems arose. e) When comprehensive software metrics are available for past projects, estimates can be made with greater assurance, schedules can be established to avoid past difficulties, and overall risk is reduced. f) Risk is measured by the degree of uncertainty in the quantitative estimates established for resources, cost, and schedule. If project scope is poorly understood or project requirements are subject to change, uncertainty and risk become dangerously high. The software planner should demand completeness of function, performance, and interface definitions (contained in a System Specification). The planner, and more important, the customer should recognize that variability in software requirements means instability in cost and schedule. (my prompt is that give me simple beginner level examples of all 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/11
  • 562. the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Factors Affecting Estimation Accuracy Factors Affecting Estimation Accuracy Factors Affecting Estimation Accuracy Factors Affecting Estimation Accuracy Factors Affecting Estimation Accuracy When planning a software project, several factors can influence the accuracy of your estimates. These factors need to be carefully considered to reduce uncertainty and risk. a) Project Complexity a) Project Complexity a) Project Complexity a) Project Complexity a) Project Complexity b) Project Size b) Project Size b) Project Size b) Project Size b) Project Size c) Degree of Structural Uncertainty c) Degree of Structural Uncertainty c) Degree of Structural Uncertainty c) Degree of Structural Uncertainty c) Degree of Structural Uncertainty d) Availability of Historical Information d) Availability of Historical Information d) Availability of Historical Information d) Availability of Historical Information d) Availability of Historical Information e) Use of Software Metrics e) Use of Software Metrics e) Use of Software Metrics e) Use of Software Metrics e) Use of Software Metrics Explanation: Project complexity refers to how challenging the project is based on the experience of the team. Complexity can vary depending on familiarity with similar projects. A team that has developed multiple similar applications will find the project less complex, while a team working on it for the first time might find it very challenging. Example: Suppose a team is building a sophisticated e-commerce platform for the first time. They might find it complex due to new features like real-time inventory management. However, a team that has already built several e-commerce platforms will find the same project easier to handle. To measure complexity, you might use specific metrics at the design or code level, but these are often difficult to apply early in the project. Explanation: The size of the project affects the accuracy of your estimates. As the size increases, the number of interconnected elements within the software grows, making it harder to manage and predict outcomes. Decomposing the project into smaller parts to estimate effort becomes more difficult as each part might still be complex. Example: If you're tasked with building a large enterprise resource planning (ERP) system, the sheer size of the project makes it hard to predict how long it will take or how much it will cost. The more modules or components there are, the more chances there are for things to go wrong, leading to inaccurate estimates. Explanation: Structural uncertainty refers to how well-defined the project’s requirements and functions are. If the requirements are vague or subject to change, it’s harder to make accurate estimates. Well-defined requirements reduce uncertainty, making it easier to plan. Example: If the client provides a detailed list of features and how they should work, it’s easier to estimate the project. However, if the requirements are unclear or likely to change frequently, the uncertainty increases, making it difficult to predict the effort and cost. Explanation: Having access to data from previous projects helps in making more accurate estimates. Historical information allows you to learn from past successes and failures, which can improve the accuracy of your current estimates. Example: If your team has detailed records from previous projects that were similar in scope and complexity, you can use this data to estimate the new project. This reduces the chances of repeating mistakes and helps you set more realistic timelines and budgets. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/11
  • 563. From ChatGPT, designed with FancyGPT f) Risk Due to Uncertainty in Estimates f) Risk Due to Uncertainty in Estimates f) Risk Due to Uncertainty in Estimates f) Risk Due to Uncertainty in Estimates f) Risk Due to Uncertainty in Estimates Importance of Detailed Definitions Importance of Detailed Definitions Importance of Detailed Definitions Importance of Detailed Definitions Importance of Detailed Definitions To minimize risk and uncertainty, it’s crucial to have detailed and complete definitions of the software’s functions, performance, and interfaces. Both the project planner and the client should understand that unclear or changing requirements will lead to instability in cost and schedule. Explanation: When you have comprehensive metrics from past projects, you can make more confident estimates. Metrics help in predicting how long tasks will take, how much they will cost, and what resources are needed. This reduces overall project risk. Example: If you have data showing that a specific type of feature usually takes 50 hours to develop based on previous projects, you can use this metric to estimate similar features in the new project, leading to more accurate predictions. Explanation: Risk in a project is linked to the uncertainty in your estimates. If you’re unsure about the scope of the project or if requirements are likely to change, the risk increases. High uncertainty can lead to significant variations in cost, effort, and schedule. Example: If the project scope isn’t clearly defined at the start, you might estimate that the project will take 6 months and cost $200,000. However, if the client changes requirements mid-project or adds new features, the project could end up taking 9 months and costing $300,000. This uncertainty creates a high level of risk. Example: Before starting the project, ensure that the client provides a comprehensive specification document that outlines all features, performance expectations, and interface details. This will help in creating more accurate estimates and reduce the chances of scope changes that can disrupt the project. 18/08/2024, 10:56 FancyGPT - cs615 lecture 29 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/11
  • 564. cs615 lecture 30 cs615 lecture 30 cs615 lecture 30 cs615 lecture 30 cs615 lecture 30 LECTURE # 30 6. ESTIMATION 6.3 Decomposition Techniques Software project estimation is a form of problem solving, and in most cases, the problem to be solved (i.e., developing a cost and effort estimate for a software project) is too complex to be considered in one piece. For this reason, we decompose the problem, re-characterizing it as a set of smaller (and hopefully, more manageable) problems. Before an estimate can be made, the project planner must understand the scope of the software to be built and generate an estimate of its size. 6.3.1 Software Sizing The accuracy of a software project estimate is predicated on a number of things: (1) The degree to which the planner has properly estimated the size of the product to be built (2) The ability to translate the size estimate into human effort, calendar time, and dollars (a function of the availability of reliable software metrics from past projects) (3) The degree to which the project plan reflects the abilities of the software team (4) The stability of product requirements and the environment that supports the software engineering effort. As project estimate is only as good as the estimate of the size of the work to be accomplished, sizing represents the project planner's first major challenge. In the context of project planning, size refers to a quantifiable outcome of the software project. If a direct approach is taken, size can be measured in LOC. If an indirect approach is chosen, size is represented as FP. There are four different approaches to the sizing problem: 1. Fuzzy logic” sizing: This approach uses the approximate 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/15
  • 565. reasoning techniques that are the cornerstone of fuzzy logic. To apply this approach, the planner must identify the type of application, establish its magnitude on a qualitative scale, and then refine the magnitude within the original range. Although personal experience can be used, the planner should also have Software Project Management (CS615) 227 © Copyright Virtual University of Pakistan access to a historical database of projects8 so that estimates can be com- pared to actual experience. 2. Function point sizing: The planner develops estimates of the information domain. Its characteristics will be discussed later in the session. 3. Standard component sizing: Software is composed of a number of different standard components that are generic to a particular application area. For example, the standard components for an information system are subsystems, modules, screens, reports, interactive programs, batch programs, files, LOC, and object-level instructions. The project planner estimates the number of occurrences of each standard component and then uses historical project data to determine the delivered size per standard component. To illustrate, consider an information systems application. The planner estimates that 18 reports will be generated. Historical data indicates that 967 lines of COBOL [PUT92) are required per report. This enables the planner to estimate that 17,000 LOC will be required for the reports component. Similar estimates and computation are made for other standard components, and a combined size value (adjusted statistically) results. 4. Change sizing: This approach is used when a project encompasses the use of existing software that must be modified in some way as part of a project. The planner estimates the number and type (e.g., reuse, adding code, changing 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/15
  • 566. code, and deleting code) of modifications that must be accomplished. Using an effort ratio [PUT92) for each type of change, the size of the change may be estimated. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation 6. Estimation 6.3 Decomposition Techniques Welcome to Lecture #30. Today, we will discuss software project estimation and focus specifically on decomposition techniques. As a reminder, software project estimation involves predicting the resources required—such as time, effort, and cost—to complete a software project. However, due to the complexity of these projects, it is often necessary to break the problem into smaller, more manageable pieces. This process is known as decomposition. 6.3.1 Software Sizing 6.3.1 Software Sizing 6.3.1 Software Sizing 6.3.1 Software Sizing 6.3.1 Software Sizing One of the key aspects of project estimation is software sizing. The size of the software project is a critical factor that influences the accuracy of the estimates. Let's explore the key points involved in software sizing: Fuzzy Logic Sizing: 1 Explanation: This approach uses reasoning techniques based on approximate values. The planner identifies the type of software application and assigns it a rough size using a qualitative scale (like small, medium, or large). This rough size estimate can be further refined based on more detailed information. 2 Example: Suppose you're planning a small web application for managing contacts. Based on past experiences and a database of similar projects, you start by estimating the size as small. After considering the specifics, you refine this estimate to small-medium. 3 Function Point Sizing: 4 Explanation: Function points are a way to measure the amount of functionality in a software application. The planner estimates different aspects of the software, such as the number of inputs, outputs, user interactions, and files, to calculate the function points. 5 Example: Imagine you’re working on a payroll system. You identify that the system will have 20 inputs (like employee data entry forms), 10 outputs (like salary reports), and 5 files (like employee records). These characteristics help you estimate the size of the project in function points. 6 Standard Component Sizing: 7 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/15
  • 567. 6.4 Estimation – Tools i. Work Breakdown Structure (WBS) a) Dividing into Logical Units/Tasks To correctly estimate the effort, size, or cost of completing a project, it is important to be aware of the multiple tasks that comprise a project. You can divide a project into logical units or tasks by using the WBS technique. Creating a WBS is a prerequisite for any estimation activity. It enables you to conceptualize an abstract entity, such as a project, into distinct, independent units. After dividing a project into tasks, you can categorize them as logical, broad tasks. For example, tasks, such as drawing up a marketing strategy, planning a phase-wise product release, and interacting with media agencies and the production department can be compiled under a common Conclusion Conclusion Conclusion Conclusion Conclusion Software sizing is a crucial first step in project estimation. It involves breaking down the project into smaller parts, estimating the size of each part, and then using these estimates to predict the resources required. The methods we discussed—Fuzzy Logic Sizing, Function Point Sizing, Standard Component Sizing, and Change Sizing—each offer different ways to approach this challenge, depending on the nature of the project. In the next session, we will delve deeper into Function Point Sizing and its application in real- world software projects. Thank you for attending, and I look forward to seeing you in the next lecture! Explanation: In this method, the software is broken down into standard components specific to the application area. The planner estimates the number of each type of component and uses historical data to determine the size of the software. 8 Example: For an e-commerce application, you estimate that there will be 10 modules, 5 screens, and 3 reports. By using data from past projects, you determine that a similar module has an average size of 500 lines of code. You then estimate that 5,000 lines of code will be needed for the modules. 9 Change Sizing: 10 Explanation: This method is used when you are modifying existing software. The planner estimates the amount of work needed based on the number of changes required, such as adding new features, deleting outdated features, or updating existing ones. 11 Example: You’re updating a customer relationship management (CRM) system. You estimate that you need to add 5 new features, modify 10 existing features, and remove 3 outdated ones. By using historical data, you estimate the effort required for each type of change and calculate the overall project size. 12 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/15
  • 568. category, Marketing. b) Benefits of Using a WBS Software Project Management (CS615) 228 © Copyright Virtual University of Pakistan Using a WBS provides a number of benefits to the management and to the development teams. First, it gives the management an idea about the size and complexity of the project. Second, it helps in planning, scheduling, and monitoring a project realistically. This is possible because all the tasks in the project can be preformed measurable targets for each task. To aid planning, scheduling, and monitoring a project, you can use tools such as: – Program Evaluation and Review Techniques (PERT) – Critical Path Method (CPM) – Timeline charts – Gantt charts These tools use WBS as the fundamental basis for assessing resources to tasks, computing the number of days needed, and the cost required to complete the tasks. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation 6. Estimation 6.4 Estimation – Tools Welcome to the continuation of Lecture #30. In this part of the lecture, we will explore the tools that are crucial for accurate software project estimation, specifically focusing on the Work Breakdown Structure (WBS). 6.4.1 Work Breakdown Structure (WBS) 6.4.1 Work Breakdown Structure (WBS) 6.4.1 Work Breakdown Structure (WBS) 6.4.1 Work Breakdown Structure (WBS) 6.4.1 Work Breakdown Structure (WBS) i. Dividing into Logical Units/Tasks When planning a software project, one of the first steps is to divide the entire project into smaller, more manageable tasks. This is done using a technique called the Work Breakdown 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/15
  • 569. Structure (WBS). a) Dividing into Logical Units/Tasks: After identifying these tasks, you categorize them into broad areas like Development, Testing, Deployment, and Marketing. This helps in managing and organizing the project more effectively. b) Benefits of Using a WBS: c) Tools for Planning, Scheduling, and Monitoring: Conclusion Conclusion Conclusion Conclusion Conclusion The Work Breakdown Structure (WBS) is an essential tool in software project estimation. It allows you to break down a complex project into smaller, manageable tasks, making it easier to plan, schedule, and monitor. By using WBS, project managers can better understand the Explanation: WBS is a method where a complex project is broken down into smaller, logical units or tasks. This helps in understanding all the different parts that make up the project. Example: Suppose you are managing a software development project for an online bookstore. To create a WBS, you would break down the project into logical tasks like: Development: Creating the website, developing the backend system, integrating payment gateways. Testing: Unit testing, integration testing, user acceptance testing. Deployment: Setting up the server, deploying the application, configuring the database. Marketing: Creating a marketing strategy, planning product launches, coordinating with media. Explanation: Implementing a WBS provides several benefits to both the management and the development teams. Example: In the online bookstore project, using WBS helps the project manager see that the Development phase has three major tasks. Each task can then be scheduled, assigned resources, and monitored separately. If the website creation is behind schedule, the manager can quickly identify and address the issue without affecting other tasks. Understanding Size and Complexity: WBS gives management a clearer understanding of how big and complex the project is by breaking it down into smaller parts. 1 Planning, Scheduling, and Monitoring: By dividing the project into measurable tasks, WBS helps in realistic planning and scheduling. It also allows for better monitoring of progress since each task can be tracked individually. 2 To aid in planning, scheduling, and monitoring, there are several tools available that rely on WBS: Example: In the online bookstore project, you could use a Gantt chart to visualize when the website development should start, how long it will take, and how it overlaps with other tasks like testing and deployment. Program Evaluation and Review Techniques (PERT): This tool helps in estimating the time needed to complete each task. Critical Path Method (CPM): CPM identifies the sequence of tasks that determines the minimum project duration. Timeline Charts: These charts provide a visual timeline of when each task should be started and completed. Gantt Charts: A Gantt chart is a type of bar chart that represents a project schedule. It shows the start and end dates of each task in a visual format. 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/15
  • 570. ii. Measuring Effort for a Project Measuring the effort for a project is a specialized activity. It enables you to derive cost estimates that are critical for project management. An incorrect measurement of effort at the beginning of project can result in inaccurate project plans and frequent slippages. It can also lead to inaccurate cost estimates, which can cause steep cost deviations between estimated and actual cost values. There are many techniques that you can use to accurately estimate effort, such as: a) Source lines of Code (SLOC) b) Function Point (FP) c) Constructive Cost Model (COCOMO) These are quantitative estimation techniques because they rely on the use of formulae to calculate effort. In addition to quantitative estimation techniques, there is a human-based technique known as: d) Delphi technique This technique is based on soft skills and relies more on human factors, such as collecting information during group discussions. Software Project Management (CS615) 229 © Copyright Virtual University of Pakistan a) SLOC- Technique At the beginning of a software project, it is important to determine the size of the project. The project size helps determine the resources, effort, and duration of the project. There are many techniques to calculate the size of a software project. You can calculate the size by using a directly measurable technique, the project's size and complexity, leading to more accurate estimates and efficient management. The tools we discussed—PERT, CPM, Timeline Charts, and Gantt Charts—are all effective methods to support these activities. In the next session, we will go deeper into how these tools can be applied to real-world software projects and explore their use in detail. Thank you for attending, and I look forward to our next lecture! 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/15
  • 571. SLOC technique. It is defined as the source lines of code that are delivered as part of the product. The effort spent on creating the source lines of code is expressed in relation to thousand lines of code (KLOC). The SLOC technique is an objective method of estimating the size because there are no multiple ways of calculating the lines of code. Therefore, the effort estimate is close to being accurate. This technique includes the calculation of lines of code, documentation of pages, inputs, outputs, and components of a software program. Components are again of multiple types, such as reports, screens, and files. The SLOC technique is also used to directly calculate the effort to be spent on a project. Following figure is a simple example of counting source lines of code. The code displayed here contains four lines of code. If (emp_code=1200) Print (“Welcome to the Inventory database.”); Else Print (“Access denied to the Inventory databases.”); – Counting SLOC You can use the SLOC tech (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. – Counting SLOC You can use the SLOC technique to estimate the effort required for a project when the programming language and the technology to be used are predefined. In addition to the programming language and technology, the 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/15
  • 572. complexity and effort required to write a program should be easily predictable. The use of the SLOC technique requires that the technology or language remain unchanged throughout the project. Generally, you can use the SLOC technique when you are using third-generation languages, such as FORTRAN or COBOL. While counting the source lines of code, there are some general considerations that you need to keep in mind. However, these can vary in every organization. Software Project Management (CS615) 230 © Copyright Virtual University of Pakistan The general considerations include the following: • Only the delivered lines of code are included in SLOC calculation. For example, test drivers and other support software are not part of the number of lines developed for a project. • Only the source lines of code written only by the development team as counted. This excludes the code created by applications generators. • Only declaration statements are counted as source lines of code. This excludes comments inserted to improve the readability of programs. – Disadvantages of Using SLOC Despite being accurate in providing figures to calculate the effort required for a project, the SLOC technique has a drawback. The SLOC technique is language-dependent. The effort required to calculate source lines of code may not be the same for all languages. For example, to conceive and write 8 lines of code that accomplish a task in the assembly language may require 15 minutes. However, you may need only five minutes to complete the same lines of code if it is written in Visual Basic. b) FP Technique The FP technique is a direct indicator of the functionality of a software application from the user's perspective. This is the most popular technique used to estimate the size of a software project. This fact is further supported by a quote of Capers Jones, 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/15
  • 573. chairman of Software Productivity Research, Inc. in Burlington, Massachusetts, on page 1 of Computer Finance brought out in November 1997. He quotes 80% of the Fortune 500, are using function points, at least somewhere in their application development organizations. You use the FP technique to estimate the total size of a project. The total size of a project is estimated as a single FP value. After calculating the total size of a project in FP, you divide the total FP into the different phases of the SDLC. This way, you can determine how much effort per FP is required in that particular phase. For example, the testing phase is planned for 20 FP of work. The project managers, based on their past project experience, determine the amount of effort in man/person months required in the testing phase. Software Project Management (CS615) 231 © Copyright Virtual University of Pakistan Function Points Unadjusted Data Function Points Unadjusted Transaction Function Points Internal Files External Interfaces User Inputs User Outputs User Inquiries Similarly, you can express the cost required to complete FP of work for a particular phase. At the end of a project, you can also express the number of defects reported in terms of per FP for a phase. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/15
  • 574. Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation Lecture #30: Software Project Estimation 6. Estimation 6.4 Estimation – Tools Welcome back to Lecture #30. We will now dive deeper into the Source Lines of Code (SLOC) technique and introduce the Function Point (FP) technique as methods for measuring effort in software projects. 6.4.3 Counting SLOC 6.4.3 Counting SLOC 6.4.3 Counting SLOC 6.4.3 Counting SLOC 6.4.3 Counting SLOC a) SLOC Technique The Source Lines of Code (SLOC) technique is a method used to estimate the effort required for a software project by counting the lines of code that will be written. Key Considerations for Counting SLOC: Key Considerations for Counting SLOC: Key Considerations for Counting SLOC: Key Considerations for Counting SLOC: Key Considerations for Counting SLOC: Disadvantages of SLOC: Disadvantages of SLOC: Disadvantages of SLOC: Disadvantages of SLOC: Disadvantages of SLOC: 6.4.4 Function Point (FP) Technique 6.4.4 Function Point (FP) Technique 6.4.4 Function Point (FP) Technique 6.4.4 Function Point (FP) Technique 6.4.4 Function Point (FP) Technique The Function Point (FP) technique is another method for estimating the size and effort of a software project. Unlike SLOC, which measures lines of code, FP focuses on the functionality delivered to the user. b) FP Technique Using FP to Estimate Project Size: Using FP to Estimate Project Size: Using FP to Estimate Project Size: Using FP to Estimate Project Size: Using FP to Estimate Project Size: Applying FP in Different Phases: Applying FP in Different Phases: Applying FP in Different Phases: Applying FP in Different Phases: Applying FP in Different Phases: Delivered Lines of Code: Only the code that will be delivered as part of the final product is counted. This means that any code used solely for testing or support, such as test drivers, is not included. 1 Example: If your project includes writing 1,000 lines of code for the main application and 200 lines for testing, only the 1,000 lines for the main application would be counted in the SLOC estimate. 2 Code Written by the Development Team: Only the code directly written by your development team is included. Code that is automatically generated by tools or applications is not counted. 3 Example: If you use a code generator that produces 500 lines of code, and your team writes 800 lines, only the 800 lines manually written by your team will be considered. 4 Declaration Statements Only: Comments and non-executable parts of the code are not counted. Only the actual instructions that perform operations are included. 5 Example: If a section of your code contains 50 lines, with 10 lines being comments, only 40 lines would be counted in the SLOC calculation. 6 Language Dependency: The amount of effort required to write a certain number of lines can vary significantly depending on the programming language. Example: Writing 8 lines of code in assembly language might take 15 minutes due to its complexity, whereas writing the same functionality in Visual Basic might only take 5 minutes. Explanation: The FP technique assesses the complexity and functionality of a software project by evaluating its various components, such as inputs, outputs, and interfaces. The total size of the project is expressed as a single FP value. Example: Consider an inventory management system that involves several inputs (forms for entering product data), outputs (inventory reports), and interfaces (connections to external databases). The FP technique would assign values to each of these components to calculate the overall project size. 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/15
  • 575. – Features of Function Points The total size of a software project is expressed in total function points. It is independent of the computer language, development methodology, technology, or capability of the project team developing the software project. The specific user functionality of the application is evaluated in terms of relation to what is delivered by the application and, not how it is delivered. Only userrequested and user-defined components are counted. To calculate FP for a project, some major components are required. The major components and their relationships are represented in following figure. Figure: Function Points Components and their Relationship You can calculate the function point estimates for a project or a particular phase by following four steps: 1. Identify the unadjusted function points. 2. Calculate total GSC s. 3. Calculate Value Adjustment Factor (VAF) 4. Apply a formula to calculate Adjusted FP (AFP) Expressing Effort and Cost in FP: Expressing Effort and Cost in FP: Expressing Effort and Cost in FP: Expressing Effort and Cost in FP: Expressing Effort and Cost in FP: Conclusion Conclusion Conclusion Conclusion Conclusion Both SLOC and FP are valuable techniques for measuring effort in software projects, but they approach the problem from different angles. SLOC is more focused on the quantity of code, making it suitable for projects where the technology is consistent and predictable. On the other hand, FP emphasizes the functionality provided to the user, making it more adaptable to different types of projects and languages. In the next session, we will explore other effort estimation techniques and discuss how to choose the right method based on the specific needs of your project. Thank you for your attention, and see you in the next lecture! Explanation: Once the total FP value is determined, it can be broken down into different phases of the Software Development Life Cycle (SDLC) to estimate the effort required for each phase. Example: If the testing phase is estimated to involve 20 FP of work, project managers can use historical data to determine that, based on past projects, the testing phase typically requires 2 person-months of effort per FP. Therefore, the total effort for testing would be estimated at 40 person-months. Explanation: FP values can also be used to estimate the cost required for each phase of the project. Additionally, at the end of the project, the number of defects can be reported in terms of FP to assess quality. Example: If the testing phase of your project has a cost of $1,000 per FP, and it requires 20 FP of work, the estimated cost for the testing phase would be $20,000. After completion, if 10 defects are reported in the 20 FP of work, this would be expressed as 0.5 defects per FP. 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 12/15
  • 576. Software Project Management (CS615) 232 © Copyright Virtual University of Pakistan – Advantages of Using Function Points Function points are language-and technology-independent. Therefore, you can use them to estimate any kind of project. They can also be used to estimate the effort, cost, and schedules of projects that use the Prototyping and Spiral models because such projects have uncertain user and project requirements. In addition, you can use function points as a project estimation technique when you anticipate changes in the middle of a project. These changes may disturb the estimates if, you had used SLOC to estimate the effort, cost, or size of a project. The FP estimation uses a subjective and holistic approach for project estimation. Consequently, the estimates calculated by using the FP are unlikely to be incorrect. – Disadvantages of Using Function Points Estimation by using FP generally uses data from past projects for assigning weights to GSC s and the information domain values. To be able to do this realistically, it is important for the organization to have developed similar projects in the past. The organization should also be prepared with adequate data and tools for FP estimation of the new project. In addition, FP provides a vague estimation. This characteristic of FP does not usually provide precise or approximate estimates of the effort, cost and size of a project. Consequently, at the end of a project, deviations from the estimated to the actual, values of each of the factors maybe quite extreme. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 13/15
  • 577. Let's continue with our lecture by discussing Function Points (FP) in more detail, using the diagram you provided as a reference. Function Points (FP) Overview Function Points (FP) Overview Function Points (FP) Overview Function Points (FP) Overview Function Points (FP) Overview Function Points are a way to measure the functionality provided by a software system from the user’s perspective. They help us understand the size of the software project in terms of the functionality it will deliver, rather than the lines of code it will require. Major Components of Function Points Major Components of Function Points Major Components of Function Points Major Components of Function Points Major Components of Function Points In the diagram you provided, we see the components involved in calculating Function Points. These are divided into two main categories: Steps to Calculate Function Points Steps to Calculate Function Points Steps to Calculate Function Points Steps to Calculate Function Points Steps to Calculate Function Points Advantages of Using Function Points Advantages of Using Function Points Advantages of Using Function Points Advantages of Using Function Points Advantages of Using Function Points Unadjusted Data Function Points 1 Internal Files: These represent the data maintained within the system, such as databases or data structures that the system uses. 2 External Interfaces: These are the interactions between the system and external entities like other systems or data files that the system accesses but does not maintain. 3 Unadjusted Transaction Function Points 4 User Inputs: These are the various forms of data or commands that the user provides to the system. 5 User Outputs: These represent the reports or data that the system produces for the user. 6 User Inquiries: These are the interactive inputs and outputs that involve a dialogue between the user and the system, such as searching for data in the system. 7 Identify the Unadjusted Function Points: Start by identifying all the components mentioned in the diagram—Internal Files, External Interfaces, User Inputs, User Outputs, and User Inquiries. Count how many of each exist in the system. 1 Calculate Total GSCs (General System Characteristics): These are factors that adjust the function points based on the complexity of the system, such as performance requirements, transaction rates, and data communications. 2 Calculate the Value Adjustment Factor (VAF): This is a multiplier derived from the GSCs that adjusts the unadjusted function points to better reflect the complexity and specific requirements of the project. 3 Apply a Formula to Calculate Adjusted FP (AFP): The adjusted FP is calculated using the formula: Adjusted FP (AFP) = Unadjusted FP × (0.65 + 0.01 × Total GSC) Adjusted FP (AFP) = Unadjusted FP × (0.65 + 0.01 × Total GSC) 4 Language and Technology Independence: Function Points do not depend on the programming language or technology used, making them versatile for different types of projects. Flexibility with Project Changes: FP can accommodate changes in project requirements, which makes them particularly useful for projects following iterative models like Spiral or Prototyping. 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 14/15
  • 578. From ChatGPT, designed with FancyGPT Disadvantages of Using Function Points Disadvantages of Using Function Points Disadvantages of Using Function Points Disadvantages of Using Function Points Disadvantages of Using Function Points Conclusion Conclusion Conclusion Conclusion Conclusion Function Points provide a structured way to measure software size and effort, focusing on the user-facing functionality rather than just the lines of code. While they offer flexibility and are independent of technology, they require solid historical data to be effective and might not always yield precise estimates. In the next session, we will compare FP with other estimation techniques to help you understand when and how to use them effectively. Feel free to ask any questions or if you need further clarification on any of these concepts. Holistic Estimation: Since FP looks at the functionality delivered, the estimation tends to be more comprehensive and less prone to major errors compared to code-based metrics like SLOC. Dependence on Past Data: To estimate Function Points accurately, organizations need historical data from similar projects. Without this, the estimation can be less reliable. Vague Estimations: FP provides a general estimate that may not be as precise as other methods. This can lead to deviations between estimated and actual effort, cost, or project size. 20/08/2024, 10:42 FancyGPT - cs615 lecture 30 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 15/15
  • 579. cs615 lecture 31 cs615 lecture 31 cs615 lecture 31 cs615 lecture 31 cs615 lecture 31 LECTURE # 31 6. ESTIMATION 6.5 Estimation – Tools iii. Measuring effort for a project c) Constructive Cost Model (COCOMO) The COCOMO technique is another popular estimation technique. Dr: Barry Boehm propounded this technique in 1981. COCOMO uses cost driver attributes to calculate the effort and duration of a project. The COCOMO technique has three levels of implementation. With each level, the complexity of the model increases. The levels of the COCOMO technique are: i. Basic ii. Intermediate iii. Advanced i. Basic COCOMO The basic COCOMO technique estimates the effort and cost of a software project by using only the lines of code. You, use basic COCOMO when you need a rough estimate of effort, such as during maintenance projects. This is because in such projects, a majority of the work is already completed. Estimating the effort in the
  • 580. basic COCOMO technique involves three steps. 1. Estimating the total delivered lines of code 2. Determining the effort constants based on the type of the project 3. Substituting values for lines of code and effort constant in a formula You have already seen how the total delivered lines of code are estimated. The next step in the COCOMO model is to determine the type of the project being developed. The basic COCOMO technique considers three types of projects to calculate effort. – Organic – Embedded – Semidetached Organic projects have sufficient and defined objectives. The organizations that undertake organic projects have ample experience in development and use small development teams. These are simple business and financial applications; such as a banking system and inventory system. Software Project Management (CS615) 234 © Copyright Virtual University of Pakistan Embedded projects have stringent and specialized hardware, software, and human resources requirements. Organizations usually have less experience in developing such projects. Examples of such projects include real- time operating systems (RTOS), industrial automation systems, and sophisticated space and aviation
  • 581. systems. Semidetached projects are a combination of the preceding two types of software projects. A new operating system and a database management system (DBMS) are examples of such projects. The last step in calculating effort by using the COCOMO technique is to substitute the values of lines of code and effort constants in the following formula: Ej = a1 * (KLOC)a2 In the formula, Ei is the effort for a project. The effort constants, al and a2 depend on the type of project being developed. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. ii. Intermediate COCOMO Calculation of effort by using the intermediate
  • 582. COCOMO technique involves an additional step of calculating the effort adjustment factor (EAF). The effort adjustment factor is calculated by assigning ratings to 15 cost driver attributes. These cost driver attributes relate to the various aspects of a software project, such as project, product, personnel, and computer attributes. Using the intermediate COCOMO technique, you can accurately estimate effort and cost required for a project. Accurate estimates are very helpful to start new development projects. Calculating the effort by using the intermediate COCOMO technique is a threestep process: 1. Estimate the initial development effort by using SLOC. To do this, you use the following formula: Ei = a1 * (KLOC)a2 In the formula the initial development effort, KLOC refers to 1,000 lines of code. The constant values a1 and a2 differ with every project. 2. The second step is to determine the relevant cost driver attributes that affect your project intensively. This provides you with the value for EAF. Software Project Management (CS615) 235 © Copyright Virtual University of Pakistan Table 1 summarizes 15 commonly used projects, personnel, and product-related cost driver attributes. The values for each cost driver under each rating are filled
  • 583. in by an organization based on past experience. Table 1: Cost Driver Attributes Rating Cost Drivers Negligible Low Average High Very high Extremely critical Analyst Capability (ACAP) Programmer Capability (PCAP) Programming Language Experience (LEXP) Virtual Machine Experience(VEXP) Required Software Reliability (RELY) Database Size (DATA) Software Product Complexity (CPLX) Execution Time Constraint (TIME) Main Storage Constraint (STOR) Computer Turnaround Time (TURN) Virtual Machine Volatility (VIRT) Use of Software Tools (TOOL) Modern Programming Practices (MODP) Required Development Schedule (SCED) 3. Finally, you calculate the actual effort by multiplying the weighted cost driver attributes with the initial effort estimate. Typically, the
  • 584. val1,les that rate each cost driver attribute range from 0.9 through 1.4. For example, if software reliability (RELY) is of prime importance according to the requirements specifications, it is provided a rating of high or a value of 1.4. Similarly, if the time to execute a software program is of negligible importance, you assign a rating of low or a value of 0.9. For software attributes that are of mediocre importance, you can assign a value between 0.9 and 1.4. Software Project Management (CS615) 236 © Copyright Virtual University of Pakistan Usually, in organizations, the average rating is assigned a static value of 1.0. To calculate the estimated effort using the intermediate COCOMO technique, you use the formula: E = EAF * Ei Consider an example for using the intermediate COCOMO technique to calculate the estimated total effort of a project life cycle. In a customized insurance project, there are four modules. The total effort estimate of the modules is 3.0 KLOC. The management has identified four cost driver attributes with the respective multiplying factors that might affect the project most. In this situation, the values of al and a2 are 3.2 and 1.05, respectively, because the insurance project is an
  • 585. organic project. Therefore, you apply the following formula to calculate the initial effort estimate. Ei = a1 (KLOC)a2 Ei =3.2 * 31.05 Ei = 3.2 * 3.16 Ei = 10.11 The values assigned to the cost driver attributes that are applicable to a particular software application are displayed in Table 2. According to the table, the time to execute a software program is of high importance. Therefore, the attribute TIME is assigned a value of 1.35. In contrast, the software application does not require a very high analyst involvement. Therefore, the value assigned to ACAP is very low or 0.95. Using the same logic, the values for other cost driver attributes are assigned. Table 2: Applicable Cost Driver Attributes Applicable cost driver attributes Rating Multiplying factors CPLX High 1.2 TIME Very high 1.35 ACAP Low .95 MODP Average 1.00 Referring to Table 7.9, EAP can be calculated as, EAF = 1.2 * 1.35 * 0.95 * 1.0 EAF = 1.53 After obtaining the values for the variables Ei and EAF, you can substitute these values in the formula to calculate the total effort. E = EAF * Ei E = 1.53 * 10.11
  • 586. Software Project Management (CS615) 237 © Copyright Virtual University of Pakistan E = 15.5 person months (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Estimation – Tools: Intermediate COCOMO Estimation – Tools: Intermediate COCOMO Estimation – Tools: Intermediate COCOMO Estimation – Tools: Intermediate COCOMO Estimation – Tools: Intermediate COCOMO Intermediate COCOMO Intermediate COCOMO Intermediate COCOMO Intermediate COCOMO Intermediate COCOMO The Intermediate COCOMO model provides a more accurate estimation by incorporating an additional step to account for various factors that can influence the project. This involves calculating the Effort Adjustment Factor (EAF), which is derived by evaluating 15 cost driver attributes related to the project, product, personnel, and computing environment. Example: Let's walk through the process of using the Intermediate COCOMO technique for estimating the effort required for a software project, specifically a customized insurance system with four modules. Step 1: Estimating Initial Development Effort Step 1: Estimating Initial Development Effort Step 1: Estimating Initial Development Effort Step 1: Estimating Initial Development Effort Step 1: Estimating Initial Development Effort The first step is to estimate the initial effort based on the lines of code. Suppose the total size of the project is estimated to be 3,000 lines of code (3 KLOC). The project is classified as an organic project, which is a straightforward project with well-understood requirements. For organic projects, typical effort constants are:
  • 587. Using the formula: 𝐸𝑖 = 𝑎1 × (KLOC) 𝑎2 Ei​= a1​× (KLOC)a2​ Substitute the values: 𝐸𝑖 = 3.2 × (3)1.05 = 3.2 × 3.16 = 10.11 person-months Ei​= 3.2 × (3)1.05 = 3.2 × 3.16 = 10.11 person-months So, the initial estimated effort is 10.11 person-months. Step 2: Determining the Effort Adjustment Factor (EAF) Step 2: Determining the Effort Adjustment Factor (EAF) Step 2: Determining the Effort Adjustment Factor (EAF) Step 2: Determining the Effort Adjustment Factor (EAF) Step 2: Determining the Effort Adjustment Factor (EAF) Next, you need to adjust this estimate by calculating the Effort Adjustment Factor (EAF). This factor is determined by evaluating the 15 cost driver attributes, which affect the effort required. Each attribute is rated based on its impact on the project, with ratings typically ranging from 0.9 to 1.4. For this insurance project, let’s focus on four key cost driver attributes: The EAF is calculated by multiplying these factors: 𝐸𝐴𝐹 = 1.2 × 1.35 × 0.95 × 1.0 = 1.53 EAF = 1.2 × 1.35 × 0.95 × 1.0 = 1.53 So, the Effort Adjustment Factor is 1.53. Step 3: Calculating the Total Effort Step 3: Calculating the Total Effort Step 3: Calculating the Total Effort Step 3: Calculating the Total Effort Step 3: Calculating the Total Effort Finally, you calculate the total effort by multiplying the initial effort estimate by the EAF: 𝐸 = 𝐸𝐴𝐹 × 𝐸𝑖 E = EAF × Ei​ Substitute the values: 𝐸 = 1.53 × 10.11 = 15.5 person-months 𝑎1 = 3.2a1​= 3.2 𝑎2 = 1.05a2​= 1.05 CPLX (Software Product Complexity) is rated High with a multiplying factor of 1.2. TIME (Execution Time Constraint) is rated Very High with a multiplying factor of 1.35. ACAP (Analyst Capability) is rated Low with a multiplying factor of 0.95. MODP (Modern Programming Practices) is rated Average with a multiplying factor of 1.0.
  • 588. iii. Advanced COCOMO The advanced COCOll10 technique uses the steps of the intermediate COCOMO technique. In addition, it uses costs driver attributes assigned to each phase of the SDLC such as analysis and design. • Applicability of COCOMO COCOMO is flexible and capable of using SLOC, FP, and even object points. Object points are measurable code sections in an object-oriented programming language, such as C++, Ada, and Java. You can use COCOMO when the size of a project is extensive and the requirements of the project are vague. In contrast, SLOC and FP can be used for projects where either the requirements are more or less known or developers possess the relevant experience in developing projects. COCOMO is suitable for complex and sophisticated projects that are expected to operate within intensive hardware, software, and E = 1.53 × 10.11 = 15.5 person-months Thus, the estimated effort required for the insurance project is 15.5 person- months. This example shows how the Intermediate COCOMO technique refines the estimation process by considering multiple factors that can influence a project. By adjusting the initial effort with the EAF, the estimate becomes more accurate, which is crucial for planning and managing new development projects.
  • 589. personnel constraints. Generally, you can use COCOMO when the software development environment is new to an organization. In addition, you can use COCOMO when you do not have baseline data about past projects. However, you need complete data about your current project to assign weight age to each cost driver attribute. You can use FP or SLOC techniques when you have enough past project data to assign accurate weight age to the 14 GSC s and the various information domain value elements. d) Delphi Technique The Delphi technique is a Human-based estimation technique. Human-based estimation techniques use human experience and analytical skills to estimate the size, productivity, and effort required for a project. This is a trusted technique and is widely used in many established organizations to facilitate practical and reasonable estimation. The rationale of using the Delphi technique is that when many experts independently arrive at the same estimate on the basis of similar assumptions, the estimate is likely to be correct. The Delphi technique has eight basic steps: 1. Identify the terms that need to perform the estimation activity. In an estimation activity meeting, three distinct groups of people need
  • 590. to be present. Software Project Management (CS615) 238 © Copyright Virtual University of Pakistan • Estimation experts: They usually consist of groups of five or six experienced project managers. The estimation values provided by the project managers are based on past project history and their knowledge. However, only those project managers should b~ invited for estimation whose experience of a past project matches that of the current project. Otherwise, estimation values may turn out to be far from realistic. • Estimation coordinator: An estimation coordinator is very similar to a moderator in a usual meeting. The coordinator facilitates the meeting and ensures that the goals of the meeting are fully achieved. • Author: An author is similar to a recorder of minutes in a meeting. 2. The author presents the project details including clients’ needs and system requirements to the group of experts. The author also describes the expectations from the group. The author and experts jointly identify the tasks that need to be estimated. They also identify the valid assumptions that they need to consider while estimating. For example, while estimating the effort needed to create a high-level design, they can assume that the SRS
  • 591. document is approved by the client. 3. The author and experts arrive at a consensus that any estimation with a specific variance value will not be accepted. For example, they may decide that any variance above 25 percent will not be accepted as an estimation value for computing the project effort or the productivity (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 4. The coordinator prepares a list of tasks jointly decided by the team and distributes the list to all experts. These tasks comprise a project plan. 5. The experts independently make their estimates for each task. After recording their estimates, they hand over their estimates to the coordinator. This is a critical
  • 592. step. While making estimates, no discussions or consultations are permitted because a mutual discussion may influence the estimation logic of the fellow experts. The coordinator and the author jointly ensure this. 6. The coordinator prepares a summary of estimates for each task in a table as represented in Table 7.10. After calculating the percentage of variance, the coordinator marks each task as accepted or not accepted based on the agreed accepted value. 7. The coordinator hands over the summary to the group of experts and the author. The group of experts and the author discuss tasks and assumptions where the percentage of variance is more than the acceptable level. The maximum and minimum estimates of tasks are not disclosed or discussed. For example, in Table 7.10, the group and the coordinator do not accept the high-level design task because it exceeds the agreed variance value of 25%. Therefore, the team would discuss this task to estimate its maximum and minimum effort afresh. To resolve Software Project Management (CS615) Figure 1: Steps of the Delphi Technique © Copyright Virtual University of Pakistan the high percentage of the variance value, some tasks may be broken down further or combined. This activity of breaking down tasks into smaller levels
  • 593. involves fresh estimates for those tasks at the smaller levels. 8. Revert to step 5 and repeat the steps. You do this until all tasks are assigned estimates that have an acceptable percentage of variance value. Figure 7.4. summarizes the steps of the Delphi technique in the form of a flowchart. Identify the teams that will estimate. Present project details to the expert group. Finalize the acceptable variance value. Prepare a list of tasks. Estimate done by the expert group Prepare a summary of estimates for each task. Discuss tasks and assumptions for not acceptable estimates. Repeat steps until all estimates are finalized. Software Project Management (CS615) 240 © Copyright Virtual University of Pakistan The Delphi technique is a simple and subjective method of estimation. However, it is a very effective method because most of the estimates are tried and tested. You can use this method if the project is small or if you have the data and expertise that can enable unambiguous estimates. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in
  • 594. this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. important note3: this prompt is in coninuation to previous prompt or answer. Here is a continuation of the lecture with simple, beginner-level examples for the Delphi Technique, based on the content you provided: Delphi Technique - Detailed Example Delphi Technique - Detailed Example Delphi Technique - Detailed Example Delphi Technique - Detailed Example Delphi Technique - Detailed Example The Delphi Technique is a structured, human-based method for estimating the effort required to complete tasks in a project. Below is a step-by-step example, aligned with the flowchart and descriptions you provided: Identify the Teams that Will Estimate: 1 Example: The project manager forms an estimation team that includes six experienced software engineers who have previously worked on similar projects. These engineers will independently estimate the effort needed for each task in the project. 2 Present Project Details to the Expert Group: 3
  • 595. Example: The project manager and the author present the project details to the expert group. For instance, if the project is about developing an online shopping platform, they explain the requirements, such as user registration, product catalog, and payment processing. The experts are also informed about the client's expectations and project goals. 4 Finalize the Acceptable Variance Value: 5 Example: The team agrees that any estimate with more than a 25% difference between the highest and lowest values will need further discussion. For example, if one expert estimates a task will take 100 hours and another estimates it will take 140 hours, the variance exceeds 25%, so the task would not be accepted as-is. 6 Prepare a List of Tasks: 7 Example: The team, led by the coordinator, prepares a detailed list of tasks required to complete the project. For the online shopping platform, tasks could include Designing the User Interface, Developing the Product Catalog Module, Implementing Payment Gateway Integration, etc. 8 Estimate Done by the Expert Group: 9 Example: Each expert independently estimates the time and effort required for each task. For instance, one expert might estimate that designing the user interface will take 50 hours, while another might estimate 60 hours. These estimates are submitted to the coordinator without any discussion among the experts. 10 Prepare a Summary of Estimates for Each Task: 11 Example: The coordinator compiles all the estimates for each task into a summary table. For example, if estimates for the user interface design task range from 50 to 60 hours, the variance is calculated. If it falls within the 25% acceptable range, the estimate is marked as accepted. 12 Discuss Tasks and Assumptions for Not Acceptable Estimates: 13 Example: If the estimates for a task, such as integrating the payment gateway, vary too much (e.g., 100 hours vs. 150 hours), the team discusses why this is the case. They might break down the task into smaller components, such as Payment Gateway API Integration and Payment Security Testing, and then re-estimate each component. 14
  • 596. From ChatGPT, designed with FancyGPT This step-by-step example helps illustrate how the Delphi Technique is applied in a software project to estimate tasks, ensuring accuracy and consensus among experts. Repeat Steps Until All Estimates Are Finalized: 15 Example: The process of independent estimation, summarizing, and discussing continues until all tasks have estimates that fall within the acceptable variance range. The final list of estimates is then used to plan and schedule the project. 16
  • 597. cs615 lecture 32 cs615 lecture 32 cs615 lecture 32 cs615 lecture 32 cs615 lecture 32 LECTURE # 32 7. Work Breakdown Structure 7.1 WBS Preview i. Salient features Large, complex projects are organized and comprehended by breaking them into progressively smaller pieces until they are a collection of defined work packages that may include a number of tasks. A $1,000,000,000 project is simply a lot of $50,000 projects joined together. Work breakdown structure (WBS) is a technique to decompose the project for the purpose of management and control. It provides the framework for organizing and managing the work. A project may be divided into subprojects. Subprojects are subdivided into smaller, more manageable work components (work packages) at the lowest level. The work packages may be further decomposed to project activities. It provides the framework for organizing and managing the work. A project may be divided into subprojects. Subprojects are subdivided into smaller, more manageable work components (work packages) at the lowest level. The work packages may be further decomposed to project activities. The WBS is commonly used at the beginning of a project for defining project scope, organizing Gantt schedules and estimating costs. It lives on, throughout the project, in the project schedule and often is the main path for reporting project costs. WBS includes activities like management, procurement, installation, software development etc. Many of the WBS development tasks are derived from the development method that will be used, and from the design and architecture of the 20/08/2024, 10:15 FancyGPT - cs615 lecture 32 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/9
  • 598. system. WBS is related to planning and scheduling a project It is a functional decomposition of the tasks of the project. Software Project Management (CS615) 242 © Copyright Virtual University of Pakistan It starts with the end objective required and successively subdividing it into manageable components in terms of size and complexity of: – Program, – Project, – System, – Subsystem, – Components, – tasks, subtasks, and – work elements The WBS is first and foremost a technical data gathering structure, developed so that the achievement in technical progress can be measured and analyzed against a formal baseline plan. The WBS aids the customer in understanding the status of the project as time elapses. The WBS aids the customer's customer in understanding the status of the project. All managers, internal and external need to use the planning and status information within the WBS structure to: – Aid in the adjustment to the current program paths and – For maximizing the attainment of short term and long term goals (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Certainly! Let's break down the key points from the lecture on the Work Breakdown Structure (WBS) using simple, beginner-friendly examples. 7. Work Breakdown Structure (WBS) 7. Work Breakdown Structure (WBS) 7. Work Breakdown Structure (WBS) 7. Work Breakdown Structure (WBS) 7. Work Breakdown Structure (WBS) 7.1 WBS Preview 7.1 WBS Preview 7.1 WBS Preview 7.1 WBS Preview 7.1 WBS Preview i. Salient Features 20/08/2024, 10:15 FancyGPT - cs615 lecture 32 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/9
  • 599. Large, Complex Projects: Imagine you have a project worth $1,000,000,000. Managing this entire amount at once would be overwhelming. So, you break it down into smaller, more manageable parts, like handling $50,000 at a time. Each of these smaller parts is treated as a separate work package. Definition of WBS: The WBS is a method to break down a project into smaller, more manageable parts, allowing better control and management. This helps in understanding how to approach the project step by step. Subprojects and Work Packages: A big project can be split into smaller subprojects. Each subproject can then be broken down further into work packages. A work package is the smallest part of the project that can be managed individually. These work packages can be further broken down into specific tasks or activities. Purpose of WBS: The WBS is usually created at the beginning of a project. It helps in defining the scope of the project, organizing schedules (like using Gantt charts), and estimating costs. It continues to be useful throughout the project for tracking progress and costs. Example Activities in WBS: WBS can include different types of activities, such as: Management: Overseeing the entire project. Procurement: Acquiring necessary resources or materials. Installation: Setting up equipment or systems. Software Development: Writing and testing software. Development Method Influence: The way you develop your WBS often depends on the method you're using for the project and the design of the system you're working on. WBS in Planning and Scheduling: WBS is directly related to how you plan and schedule a project. It's about breaking down the project into smaller tasks to make it easier to manage. Functional Decomposition: WBS is a functional decomposition, meaning it's a way to break down the project by its functions or tasks. For example, you start with the main goal and then break it down into: Program: The overall objective. Project: A specific part of the program. System: A collection of components working together. Subsystem: A smaller part of the system. Components: Individual parts of the subsystem. Tasks: Specific actions required to complete the components. Subtasks: Smaller actions within a task. Work Elements: The smallest units of work. Technical Data Gathering: The WBS is used to gather technical data so that you can measure and analyze how the project is progressing against the original plan. Customer Understanding: The WBS helps customers (and their customers) understand the progress of the project over time. 20/08/2024, 10:15 FancyGPT - cs615 lecture 32 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/9
  • 600. ii. WBS-What is it? WBS is a definition of a project in terms of its work or a deliverable-oriented grouping of project elements that organizes and defines the total scope of the project. Each descending level represents an increasingly detailed definition of the project’s work. It’s an outline of the work of the project, not the work itself, created by those doing the work – that may include all functional stakeholders. iii. WBS- What it contains? – Maps all contractual obligations (SOW) regarding deliverables – Details project objectives – Detailed enough to meet performance (measurable) objectives – Contains built-in WBS and Project Plan review and update Software Project Management (CS615) 243 © Copyright Virtual University of Pakistan iv. WBS- When is it produced? The WBS is produced following the development of the scope statement, before the schedule. It is a “bridging” document between the Scope and Schedule. (what and when) v. Uses of WBS – Defines 100% of the scope and can communicate the scope of the project without the presence of the scope statement or document. – Communicates effectively to all stakeholders – Defines and clarifies – Boundaries (Life cycle of the project – not the product) – Deliverables – Refines Scope Defines scope in project management language (perhaps down to work package level which may lead to development of project schedule) These examples aim to simplify the concepts so that even someone new to project management can understand how a WBS functions and why it's essential in managing complex projects. Manager Use: Managers use the WBS to adjust the project as needed and to ensure that both short- term and long-term goals are met. 20/08/2024, 10:15 FancyGPT - cs615 lecture 32 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/9
  • 601. It’s not a single document that can be mistaken for the project plan, schedule or scope statement (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Sure! Let's go through the concepts of the Work Breakdown Structure (WBS) from the lecture, using simple, beginner-friendly examples. 7.1 WBS Preview (continued) 7.1 WBS Preview (continued) 7.1 WBS Preview (continued) 7.1 WBS Preview (continued) 7.1 WBS Preview (continued) ii. WBS - What is it? iii. WBS - What it Contains iv. WBS - When is it Produced? Definition: The WBS defines a project in terms of the work that needs to be done. It's like a list that groups all the project elements based on what needs to be delivered at the end. This list organizes and defines everything that the project involves, covering the entire scope. Detailed Levels: The WBS is organized into different levels. The higher levels give a broad overview of the project, while the lower levels go into more detail about specific tasks or components. As you move down the levels, the tasks are described in more detail. Outline of Work: The WBS outlines what work needs to be done for the project, but it’s not the actual work itself. The outline is usually created by the people who will be doing the work. This can include everyone involved in the project, such as engineers, designers, or managers. Contractual Obligations (SOW): The WBS includes everything that the project has promised to deliver, based on the Statement of Work (SOW). The SOW is a document that lists all the deliverables or outputs the project is expected to provide. Project Objectives: It also details the goals and objectives of the project, ensuring everyone knows what the project aims to achieve. Performance Objectives: The WBS is detailed enough to allow the project’s performance to be measured. This means it breaks down tasks so specifically that you can track if each part is meeting its goals. Review and Update: The WBS includes plans for reviewing and updating the structure as the project progresses. This ensures that the WBS remains accurate and relevant throughout the project. Timing: The WBS is created after the project's scope has been defined but before the project 20/08/2024, 10:15 FancyGPT - cs615 lecture 32 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/9
  • 602. 7.2 WBS- A Mandatory Management Tool i. WBS as a Project Management Tool A WBS is a valuable management tool that is used throughout all life-cycle phases to: a. Manage Risk It helps in managing risk by providing insight into technical aspects of program management. b. Manage Costs A WBS can be used to help make program management decisions. For example, if the costs of an element in the WBS are too high, the WBS can be used to identify possible tradeoffs. Identifying and analyzing tradeoffs can help the manager decide how best to stay within budget. c. Assign Work The WBS is also useful for determining an acquisition strategy and/or assigning v. Uses of WBS These examples simplify the concepts to help beginners understand the purpose, contents, and uses of the WBS in project management. schedule is made. It acts as a bridge between understanding what the project is (scope) and planning when everything will be done (schedule). Defines 100% of the Scope: The WBS can define the entire scope of the project. Even if you don’t have a scope statement or document, the WBS alone can communicate what the project involves. Effective Communication: The WBS helps in communicating with all stakeholders, ensuring everyone understands what the project includes. Clarifies Boundaries: It clarifies the boundaries of the project, which includes the project’s lifecycle but not the final product itself. For example, it covers everything that needs to happen to complete the project, but it doesn’t detail how the product will be used after the project ends. Details Deliverables: The WBS defines all the deliverables that the project needs to produce. Refines Scope: It helps refine the project’s scope by breaking it down into more manageable parts, possibly down to the level of individual work packages. This breakdown helps in developing the project schedule later on. Not a Single Document: The WBS is not just one document like a project plan, schedule, or scope statement. It’s a structure that helps in organizing and managing the entire project, covering all aspects of the work that needs to be done. 20/08/2024, 10:15 FancyGPT - cs615 lecture 32 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/9
  • 603. work. The information contained in the WBS can help a Program Manager Software Project Management (CS615) 244 © Copyright Virtual University of Pakistan develop a statement of work that describes what products or services are to be delivered. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 7.2 WBS- A Mandatory Management Tool d. Schedule and Track activities A schedule of key events can be developed for each element in the WBS. Completion of these key events is then tracked. – Schedule and Track activities – The work breakdown structure defines all tasks to be performed during the development of the project. This will include tasks from such project categories as: ƒ Software development ƒ Installation ƒ Maintenance ƒ Management ƒ Training ƒ Procurement ƒ Documentation e. Align with Terms of Reference and scope of project – At all times, any, work being performed by a member of the software project team must be part of a WBS task: No member of the team should ever perform any task that does not appear in the WBS list of tasks. – The WBS is essentially a management tool that provides the ability to assign 20/08/2024, 10:15 FancyGPT - cs615 lecture 32 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/9
  • 604. well-define tasks to members of the development team. – It is through the WBS that progress is monitored as tasks are completed and potential problems are discovered. – New tasks that were overlooked are identified, and estimates are revised based on the actual resources used for completed tasks. f. Report Expense – The WBS is also a budgetary tool that provides a means of charging each development activity to the appropriate section in the project budget. – This is one of the basic methods for planning and monitoring project expenditure. – There are mainly computerized utilities available to support the maintenance of the WBS. – These utilities run both on small PC type computers and large mainframes. Software Project Management (CS615) 245 © Copyright Virtual University of Pakistan – WBS utilities are often available as part of a manager's general planning utility, and provide other scheduling and monitoring features, such as PERT analysis and report generation. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Continuing with the lecture on the Work Breakdown Structure (WBS) as a mandatory management tool, here are simple, beginner-level examples for each point. 7.2 WBS - A Mandatory Management Tool (continued) 7.2 WBS - A Mandatory Management Tool (continued) 7.2 WBS - A Mandatory Management Tool (continued) 7.2 WBS - A Mandatory Management Tool (continued) 7.2 WBS - A Mandatory Management Tool (continued) d. Schedule and Track Activities Example: When managing a project, you can create a schedule for each task or component in the WBS. For instance, if your project includes software development, installation, and training, each of these tasks would have a timeline. You would then track the progress to ensure each task is completed on time. For example, you might track when the software coding should start and finish, when the installation should happen, and when training sessions are scheduled. The WBS helps in keeping everything on track by 20/08/2024, 10:15 FancyGPT - cs615 lecture 32 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/9
  • 605. From ChatGPT, designed with FancyGPT e. Align with Terms of Reference and Scope of Project f. Report Expense These examples show how the WBS is crucial for scheduling and tracking activities, ensuring all work aligns with the project’s scope, and managing the project’s budget effectively. defining all tasks, including software development, installation, maintenance, management, training, procurement, and documentation. Example: In a project, every task that team members work on should be listed in the WBS. For example, if someone on the software team is writing code for a new feature, this task must be in the WBS. If a task is not in the WBS, it should not be done, as it might not align with the project’s scope or objectives. The WBS allows the project manager to monitor progress, see which tasks are completed, and identify any potential problems early. If new tasks are needed that were initially overlooked, they are added to the WBS, and resource estimates are updated accordingly. Example: The WBS is also used to manage the project’s budget. Each task or activity is linked to a specific part of the budget. For example, if you’re spending money on software development, the costs are charged to the part of the budget allocated for development activities. This helps in planning and monitoring how much money is being spent on different parts of the project. Many project management tools, like specialized software, can help maintain the WBS, track expenses, and generate reports. These tools often include features like PERT (Program Evaluation Review Technique) analysis and scheduling, which further help in managing the project efficiently. 20/08/2024, 10:15 FancyGPT - cs615 lecture 32 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/9
  • 606. cs615 lecture 33 cs615 lecture 33 cs615 lecture 33 cs615 lecture 33 cs615 lecture 33 LECTURE # 33 7. Work Breakdown Structure 7.3 WBS- A Mandatory Management Tool i. The WBS as a project management tool g) Mapping WBS for Cost Management In a product-oriented WBS, functional categories of work may form cost accounts within a WBS element. Cost account managers are responsible for a functional area’s contribution to a WBS element. Cost accounts from several departments or functions may combine into one WBS element. Internal department planning for a cost account will be made up of individual work packages. A work package will typically have its own budget and schedule. Work packages should be small enough to be executed by individuals or small groups in a single department, and they should be of relatively short schedule duration. A small project might define a maximum work package size as two weeks of effort. Larger projects will assemble larger work packages that can be appropriately managed and controlled. The project manager will have to decide to what degree employment of various details of WBS implementation will benefit the efficient management of the project. On a very small project, a formal WBS may serve no useful purpose, but it can become valuable if project size or complexity start to increase. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. 20/08/2024, 10:16 FancyGPT - cs615 lecture 33 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/5
  • 607. As an organization’s project management environment matures, or as larger size Let's break down the concepts mentioned in your lecture with simple, beginner-level examples. WBS as a Project Management Tool WBS as a Project Management Tool WBS as a Project Management Tool WBS as a Project Management Tool WBS as a Project Management Tool Mapping WBS for Cost Management Mapping WBS for Cost Management Mapping WBS for Cost Management Mapping WBS for Cost Management Mapping WBS for Cost Management These examples should help you understand how a Work Breakdown Structure (WBS) functions as a project management tool, especially in the context of cost management. Cost Accounts in a WBS: 1 Example: Imagine you're managing a project to build a new website. The project has several WBS elements, such as Design, Development, and Testing. Each of these WBS elements could have cost accounts tied to them. For example, the Design WBS element might have cost accounts for Graphic Design and UI/UX Design, with different managers responsible for each. 2 Cost Account Managers: 3 Example: If the Development WBS element has cost accounts for Frontend Development and Backend Development, the managers for these areas are responsible for ensuring their respective parts stay within budget and meet the project's needs. 4 Combining Cost Accounts into a WBS Element: 5 Example: If you have a WBS element called Testing, cost accounts from different departments—like Manual Testing and Automated Testing—might combine under this single WBS element. This helps manage and track costs more efficiently. 6 Internal Department Planning for a Cost Account: 7 Example: For the Frontend Development cost account, the department might plan out work packages such as Develop Homepage and Create Navigation Bar. Each of these work packages would have its own budget and schedule. 8 Work Packages: 9 Example: A work package like Develop Homepage could be assigned to a small team of developers and given a budget of $5,000 and a two-week deadline. This makes it easy to manage and track progress. 10 Small Work Packages: 11 Example: In a small project, a work package could be as simple as Design Logo, which might take one designer five days to complete. In a larger project, a work package might be Develop User Authentication System, which could involve multiple developers and take four weeks. 12 Deciding the Level of Detail in WBS: 13 Example: For a small project like designing a single webpage, a detailed WBS might not be necessary. But for a larger project, like developing a full e-commerce site, a detailed WBS becomes crucial for tracking progress, managing costs, and ensuring that the project stays on schedule. 14 20/08/2024, 10:16 FancyGPT - cs615 lecture 33 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/5
  • 608. and complexity are encountered, application of the WBS concept can evolve from an ad hoc list of tasks, to time-phased activity lists, task lists clustered by project deliverables and services, or an end-product focused WBS fed by cost accounts and work packages. If you are using MS-Project or a similar project management software application, you may encounter the WBS as a vertical list with indents to show structure. This will be compatible with the Gantt View data entry screens. While some software packages provide a separate WBS view, you could prepare your WBS in the vertical format using a word processor, and then cut and paste your WBS into your project management software package. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's break down the concepts and text provided with simple, beginner-level examples. WBS Evolution as Project Management Matures WBS Evolution as Project Management Matures WBS Evolution as Project Management Matures WBS Evolution as Project Management Matures WBS Evolution as Project Management Matures Ad Hoc List of Tasks: 1 Example: In the early stages of a small project, you might simply write down a list of tasks that need to be completed, like Design Homepage, Develop Backend, and Test Application. This list isn't organized in any particular way—just a collection of tasks. 2 Time-Phased Activity Lists: 3 Example: As your project grows or becomes more complex, you might start organizing tasks by when they need to be done. For example, you could have a list for Week 1 that includes Design Homepage and Week 2 for Develop Backend. This helps in tracking the progress over time. 4 Task Lists Clustered by Project Deliverables: 5 Example: Instead of just listing tasks by time, you might start grouping them by what they produce. For instance, all tasks related to creating the User Interface could be grouped together, like Design Homepage and Design User Dashboard. This helps in managing tasks related to specific parts of the project. 6 End-Product Focused WBS Fed by Cost Accounts and Work Packages: 7 20/08/2024, 10:16 FancyGPT - cs615 lecture 33 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/5
  • 609. WORD OF CAUTION • The WBS is a useful tool provided it is constantly updated. • It should be updated periodically together with the project development plan and the project schedule. • It is reasonable to expect the WBS list to have tasks added, modified or even Using WBS in Project Management Software Using WBS in Project Management Software Using WBS in Project Management Software Using WBS in Project Management Software Using WBS in Project Management Software Interpreting the Image Interpreting the Image Interpreting the Image Interpreting the Image Interpreting the Image The image you provided shows a matrix that likely represents the relationship between different departments (e.g., Info. Systems, Purchasing, Testing, etc.) and project elements (e.g., Hardware, Software, Systems Engineering, Training). This type of matrix is helpful when assigning work packages to different departments while tracking their contribution to the overall project. These examples and explanations should give you a clearer understanding of how the WBS concept evolves and how it is used in project management software. Example: In a more mature project management environment, your WBS might focus on the final product, such as Complete Website. Under this, you'd have different WBS elements like Frontend Development, Backend Development, and Testing. Each of these elements would be linked to cost accounts (budgets) and work packages (smaller tasks like Develop Login Page). 8 WBS as a Vertical List with Indents: 1 Example: In MS-Project, you might see a WBS as a list that looks like this: markdown 1. Complete Website 1.1 Frontend Development 1.1.1 Design Homepage 1.1.2 Develop Homepage 1.2 Backend Development 1.2.1 Develop API 1.2.2 Integrate Database Here, the indentations show the structure of the WBS, with tasks nested under larger elements. This format aligns with how Gantt charts display tasks. 2 WBS View in Software: 3 Example: Some project management software offers a dedicated WBS view where you can see the breakdown of work visually. However, even if your software doesn’t have this feature, you can create a WBS in a word processor or spreadsheet, then transfer it to your project management software. 4 Departments (left column) like Info. Systems, Purchasing, and Testing are responsible for various tasks in the project. Project Elements (top row) like Hardware, Software, Systems Engineering, and Training are the main areas of focus. The matrix structure helps in mapping out which department is responsible for which project element. This structure can be used to organize and manage the project's resources effectively. 20/08/2024, 10:16 FancyGPT - cs615 lecture 33 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/5
  • 610. From ChatGPT, designed with FancyGPT removed as project development progresses. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's go through the points you provided with simple, beginner-level examples: Word of Caution Regarding WBS Word of Caution Regarding WBS Word of Caution Regarding WBS Word of Caution Regarding WBS Word of Caution Regarding WBS These examples illustrate why it's important to keep the WBS updated throughout the project lifecycle. By doing so, you ensure that the project plan remains accurate and relevant as work progresses. WBS Needs to be Constantly Updated: 1 Example: Imagine you’re managing a project to develop a new mobile app. Initially, your WBS includes tasks like Design UI and Develop Backend. As the project moves forward, you realize you also need a User Testing phase. You would update your WBS to include this new task. If you don’t update the WBS, your project plan could become outdated, leading to confusion or missed tasks. 2 Periodic Updates with Project Development Plan and Schedule: 3 Example: Suppose your project was initially planned to be completed in six months. However, during development, you face some delays, and the project timeline extends to eight months. You should update the WBS along with the project schedule to reflect these changes. This ensures that everyone involved has the most current information and can plan their work accordingly. 4 Tasks Might be Added, Modified, or Removed: 5 Example: Let’s say you originally planned a task called Develop Login System. Later, you decide to use a third-party authentication service instead of building it from scratch. In this case, you would remove Develop Login System from your WBS and add a new task like Integrate Third-Party Authentication. As the project progresses, you may also find some tasks need to be split into smaller ones, or combined, based on the evolving needs of the project. 6 20/08/2024, 10:16 FancyGPT - cs615 lecture 33 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/5
  • 611. cs615 lecuture 34 cs615 lecuture 34 cs615 lecuture 34 cs615 lecuture 34 cs615 lecuture 34 LECTURE # 34 7. Work Breakdown Structure 7.4 WBS- A Mandatory Management Tool h) Characteristics of a High-Quality WBS a) Review and signoff from top to bottom b) Includes logical flow and is hierarchical in nature c) Clear and concise d) Provides ability to roll-up information to higher levels e) Receives 100% team buy-in f) Should have at least 2 levels: Level 1 defines 100% of the service/product/result; Level 2 defines the deliverables in terms of work (groupings) g) Project Management (and sub-contract management) at Level 2. h) The deliverables in the WBS must match the scope or contract (WBS should not contain work that is not defined in the scope – Scope should not describe work not contained in the WBS) i) All deliverables should be accounted for regardless of responsibility j) Every WBS element should be clearly defined – or should be clarified in the WBS Dictionary k) Features – The WBS should contains 100% of the work defined by the scope or contract – Development of WBS should involve the entire project team – Should be deliverable-oriented – Should captures all deliverables (Internal, External, Interim) in terms of work to be completed l) Usefulness Software Project Management (CS615) 249 © Copyright Virtual University of Pakistan – Should define the context of the project and clarifies the work – Should communicates project scope to all stakeholders in terms of the work to be completed – Is “in sync” with the scope statement and project schedule – Implies and allows for continual improvement/update of the 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/10
  • 612. WBS to maintain current-ness and “vitality” within the project m) WBS Is Not – A single document that substitutes for the project schedule or project plan – The project schedule – A listing of tasks or activities (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's break down the characteristics of a high-quality Work Breakdown Structure (WBS) with simple, beginner-level examples. a) Review and Signoff from Top to Bottom a) Review and Signoff from Top to Bottom a) Review and Signoff from Top to Bottom a) Review and Signoff from Top to Bottom a) Review and Signoff from Top to Bottom Example: Imagine you're creating a WBS for a software project. Once you've completed it, you need to have it reviewed by everyone involved in the project, from team members to project managers. Only after everyone agrees that it’s accurate and complete, should you consider it final. b) Includes Logical Flow and is Hierarchical in Nature b) Includes Logical Flow and is Hierarchical in Nature b) Includes Logical Flow and is Hierarchical in Nature b) Includes Logical Flow and is Hierarchical in Nature b) Includes Logical Flow and is Hierarchical in Nature Example: Your WBS might start with a broad category, like Develop Software Application at the top (Level 1). Under that, you could have categories like User Interface Design, Backend Development, and Testing (Level 2). This structure helps to break down the work into more manageable pieces. c) Clear and Concise c) Clear and Concise c) Clear and Concise c) Clear and Concise c) Clear and Concise Example: If you have a task in your WBS called Write Code, it's too vague. Instead, you should break it down into smaller tasks like Develop Login Module or Create User Profile Page, which are more specific and easier to understand. d) Provides Ability to Roll-up Information to Higher Levels d) Provides Ability to Roll-up Information to Higher Levels d) Provides Ability to Roll-up Information to Higher Levels d) Provides Ability to Roll-up Information to Higher Levels d) Provides Ability to Roll-up Information to Higher Levels Example: If you have tasks like Design Login Screen, Develop Login Functionality, and Test Login Module, all of these can be rolled up under a higher-level category called Login Module in your WBS. This allows you to see the overall progress of the Login Module without getting lost in the details. e) Receives 100% Team Buy-in e) Receives 100% Team Buy-in e) Receives 100% Team Buy-in e) Receives 100% Team Buy-in e) Receives 100% Team Buy-in Example: Before finalizing the WBS, you should have a meeting where everyone involved in the project agrees on the tasks and structure. This ensures that everyone is on the same page and committed to the plan. 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/10
  • 613. f) Should Have at Least 2 Levels: Level 1 Defines 100% of f) Should Have at Least 2 Levels: Level 1 Defines 100% of f) Should Have at Least 2 Levels: Level 1 Defines 100% of f) Should Have at Least 2 Levels: Level 1 Defines 100% of f) Should Have at Least 2 Levels: Level 1 Defines 100% of the Service/Product/Result; Level 2 Defines the the Service/Product/Result; Level 2 Defines the the Service/Product/Result; Level 2 Defines the the Service/Product/Result; Level 2 Defines the the Service/Product/Result; Level 2 Defines the Deliverables in Terms of Work (Groupings) Deliverables in Terms of Work (Groupings) Deliverables in Terms of Work (Groupings) Deliverables in Terms of Work (Groupings) Deliverables in Terms of Work (Groupings) Example: In a WBS for developing a website, Level 1 might be Website Development. Level 2 could include Frontend Development, Backend Development, and Content Creation. This structure ensures that all work needed to develop the website is covered. g) Project Management (and Sub-contract Management) at g) Project Management (and Sub-contract Management) at g) Project Management (and Sub-contract Management) at g) Project Management (and Sub-contract Management) at g) Project Management (and Sub-contract Management) at Level 2 Level 2 Level 2 Level 2 Level 2 Example: If your project involves hiring a subcontractor to handle a specific task, like graphic design, this would appear at Level 2 of your WBS under a category like Sub-contract Management. This allows you to manage these activities just like other project tasks. h) The Deliverables in the WBS Must Match the Scope or h) The Deliverables in the WBS Must Match the Scope or h) The Deliverables in the WBS Must Match the Scope or h) The Deliverables in the WBS Must Match the Scope or h) The Deliverables in the WBS Must Match the Scope or Contract Contract Contract Contract Contract Example: If your project scope includes creating a mobile app, then your WBS should have tasks related to mobile app development. It shouldn't include unrelated tasks like Develop Desktop Software, unless those are also part of the agreed scope. i) All Deliverables Should Be Accounted for Regardless of i) All Deliverables Should Be Accounted for Regardless of i) All Deliverables Should Be Accounted for Regardless of i) All Deliverables Should Be Accounted for Regardless of i) All Deliverables Should Be Accounted for Regardless of Responsibility Responsibility Responsibility Responsibility Responsibility Example: Even if a part of the project is being handled by a third party, like a different team or an external contractor, their tasks should still appear in the WBS. For instance, if a vendor is responsible for creating a database, that task should be in the WBS. j) Every WBS Element Should Be Clearly Defined – or j) Every WBS Element Should Be Clearly Defined – or j) Every WBS Element Should Be Clearly Defined – or j) Every WBS Element Should Be Clearly Defined – or j) Every WBS Element Should Be Clearly Defined – or Should Be Clarified in the WBS Dictionary Should Be Clarified in the WBS Dictionary Should Be Clarified in the WBS Dictionary Should Be Clarified in the WBS Dictionary Should Be Clarified in the WBS Dictionary Example: If you have a task in your WBS called Setup Server, you need to define what exactly this entails. Does it include installing software? Configuring security settings? If any part of a task is unclear, you should provide a definition in the WBS Dictionary. k) Features of a High-Quality WBS k) Features of a High-Quality WBS k) Features of a High-Quality WBS k) Features of a High-Quality WBS k) Features of a High-Quality WBS l) Usefulness of a WBS l) Usefulness of a WBS l) Usefulness of a WBS l) Usefulness of a WBS l) Usefulness of a WBS Contains 100% of the Work Defined by the Scope or Contract Example: If your contract says you need to deliver a functioning website, your WBS should include all tasks necessary to build that website, such as design, coding, and testing. Involves the Entire Project Team Example: When creating the WBS, get input from everyone on the project team to make sure all tasks are included. Deliverable-Oriented Example: Focus on what needs to be delivered, like Completed Homepage or User Login Feature, rather than on activities like Work on Homepage. Captures All Deliverables (Internal, External, Interim) Example: If you have milestones like Initial Design Draft (interim) or Final Website (external), these should all be listed in your WBS. Defines the Context of the Project and Clarifies the Work Example: Your WBS should make it clear what the project is about and what needs to be done, like Develop E-commerce Website with Payment Gateway. 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/10
  • 614. i) Types of WBS The two types of Work Breakdown Structures are: a) Program Work Breakdown Structures b) Contract Work Breakdown Structures a) Contract WBS A Contract WBS extends the Program WBS to a lower level in order to provide management and cost information to the Government. It includes all the elements for products (e.g., hardware, software, data, or services) that are the responsibility of the contractor. It must be consistent with the Program WBS. Software Project Management (CS615) 250 © Copyright Virtual University of Pakistan – Contract WBS: Contractor's Responsibility Contractors may extend the work breakdown structure to whatever level they feel is necessary to manage the program. Contractors also use the Contract WBS to define work packages. Work packages are: Discrete portions of the project that can be charged to a single m) WBS Is Not m) WBS Is Not m) WBS Is Not m) WBS Is Not m) WBS Is Not These examples aim to make each point clear and understandable, focusing on what each characteristic means and how it applies in a practical sense. Communicates Project Scope to All Stakeholders Example: The WBS can be shared with clients and team members to show exactly what will be done, like Create Product Catalog Page. In Sync with the Scope Statement and Project Schedule Example: If your project scope says you need to build a website in 3 months, your WBS should include tasks that fit within this timeline. Allows for Continual Improvement/Update Example: If new requirements are added, your WBS should be updated to reflect these changes, like adding Mobile Optimization as a new task. A Single Document that Substitutes for the Project Schedule or Project Plan Example: Your WBS is not a timeline; it's a breakdown of work. You’ll need a separate schedule to show when each task should be done. The Project Schedule Example: While your WBS shows what needs to be done, the project schedule will show when these tasks should be completed, like Complete User Interface Design by Week 3. A Listing of Tasks or Activities Example: Your WBS should focus on deliverables, like Deliver Completed User Interface Design, not just on listing activities like Design UI. 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/10
  • 615. organization. Building blocks for program management and cost reporting. Remember that a Contract WBS: • Is prepared and maintained by each contractor working on different portions of the program. • Includes the number of levels thought sufficient by the contractor to manage the program. • Must be updated if changes are made to the Program WBS. b) Program WBS A Program WBS is defined as the work breakdown that covers the acquisition of a specific defense materiel item and is related to contractual effort. A Program WBS is: • Tailored to each specific program. • Prepared and maintained by the Government. • Provides a basis for developing the Contract WBS. – Program WBS Levels Software Project Management (CS615) 251 © Copyright Virtual University of Pakistan Typically, a Program WBS consists of the upper three levels. WBS Level 1: The entire defense materiel item. WBS Level 2: Major elements of the defense materiel item, which are subordinate to Level 1. WBS Level 3: Elements subordinate to Level 2 elements. (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's break down the types of Work Breakdown Structures (WBS) and their characteristics with simple, beginner-level examples based on the content you've provided. i) Types of WBS i) Types of WBS i) Types of WBS i) Types of WBS i) Types of WBS There are two main types of Work Breakdown Structures: a) Contract WBS a) Contract WBS a) Contract WBS a) Contract WBS a) Contract WBS Program Work Breakdown Structures (Program WBS) 1 Contract Work Breakdown Structures (Contract WBS) 2 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/10
  • 616. A Contract WBS is used by contractors to manage specific parts of a project. It extends the Program WBS to include more detailed information, especially for management and cost reporting. Here's how it works: Example: Imagine you're working as a contractor to build a radar system as part of a larger defense project. The Program WBS might include a high-level task like Develop Radar System. As a contractor, you would break this down further into more detailed tasks like Design Radar Receiver, Build Transmitter, and Assemble Antenna. This detailed breakdown is your Contract WBS. Key Points: Key Points: Key Points: Key Points: Key Points: b) Program WBS b) Program WBS b) Program WBS b) Program WBS b) Program WBS A Program WBS is created by the government or the main project owner. It outlines the overall project and includes the major components needed to complete it. Example: Continuing with the defense project example, the Program WBS might list Develop Fire Control System as a major task (Level 1). This task could be further divided into Radar System, Platform Integration, and Spare Parts (Level 2). The Radar System might then be broken down further into components like Receiver, Transmitter, and Antenna (Level 3). Key Points: Key Points: Key Points: Key Points: Key Points: Program WBS Levels: Program WBS Levels: Program WBS Levels: Program WBS Levels: Program WBS Levels: These examples should provide a clear understanding of the differences between Program and Contract WBS, and how they are used in project management. Contractor's Responsibility: The contractor (you) is responsible for extending the WBS to manage your specific tasks within the project. Work Packages: In your Contract WBS, you might create work packages like Build Radar Receiver, which is a task that can be assigned to a specific team or organization. Prepared and Maintained by Contractors: You would be responsible for maintaining and updating this WBS as needed. Consistency with Program WBS: Your detailed Contract WBS must align with the broader Program WBS, ensuring that all work is coordinated. Prepared and Maintained by the Government: The government (or the main project owner) creates and maintains this WBS. Tailored to Each Specific Program: The WBS is customized for each specific project, depending on what needs to be delivered. Provides Basis for Contract WBS: The Program WBS provides the foundation that contractors will use to create their detailed Contract WBS. WBS Level 1: Represents the entire defense materiel item, like Complete Fire Control System. WBS Level 2: Includes major elements under Level 1, such as Radar System or Platform Integration. WBS Level 3: Further breaks down Level 2 elements, like Receiver, Transmitter, and Antenna under Radar System. 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/10
  • 617. j) Sample WBS Design Engineering Project Management Documentation Training BPR Software System Software Project Web based Classroom Hands-on What About? – Requirements – Prototyping – Testing – User Acceptance – Life-cycle Management – Warranty Sample 1: A Product WBS Software Project Management (CS615) 252 © Copyright Virtual University of Pakistan WBS Sample 2: System Development Projects Project Hardware 1.1 Software 1.2 System Engr 1.3 Project Mgt 1.4 System Test 1.5 Data Mgt 1.6 1.1.2 1.2.2 1.1.2.1 1.1.2.1.1 Level 5 Level 1 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/10
  • 618. Level 2 Level 3 Level 4 Software Project Management (CS615) 253 © Copyright Virtual University of Pakistan WBS Sample 3: Software/Hardware System Development READING REFERENCE: For detailed reading refer to: (i) Chapter No. 6 entitled “How to handle large projects: Divide and Conquer” of “Software Project management – A Practitioner Approach by E. M. BENNATAN. (ii) Chapter 5 entitled Software Project Planning” of: SE–A Practitioner Approach by Roger S. Pressman. (iii) Chapter 7 entitled “Software Project Estimation: Tools and Techniques by NIIT (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Let's break down the concepts shown in the images and text with simple, beginner-level examples. j) Sample WBS j) Sample WBS j) Sample WBS j) Sample WBS j) Sample WBS 1. Sample 1: A Product WBS 1. Sample 1: A Product WBS 1. Sample 1: A Product WBS 1. Sample 1: A Product WBS 1. Sample 1: A Product WBS This sample shows a Work Breakdown Structure (WBS) for a software project. The WBS is organized into different categories that break down the overall project into more manageable parts. Example Breakdown: Software Project: This is the overall project you’re working on. Design Engineering: This part includes all the tasks related to designing the software, like creating blueprints and defining system architecture. Software System: This includes tasks related to developing the actual software, such as coding and testing. Documentation: This part covers all the necessary documentation, like user manuals and technical guides. Training Business Process Reengineering (BPR): This includes tasks related to training users on the software and possibly restructuring business processes to accommodate the new software. Web-based: Training provided online. 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/10
  • 619. What About? These are additional aspects to consider that may need to be included in the WBS: 2. Sample 2: System Development Projects 2. Sample 2: System Development Projects 2. Sample 2: System Development Projects 2. Sample 2: System Development Projects 2. Sample 2: System Development Projects This WBS example is focused on developing a system, which may include both hardware and software components. Example Breakdown: Level Breakdown: 3. Sample 3: Software/Hardware System Development 3. Sample 3: Software/Hardware System Development 3. Sample 3: Software/Hardware System Development 3. Sample 3: Software/Hardware System Development 3. Sample 3: Software/Hardware System Development This sample WBS represents a system that includes both software and hardware components. The levels of the WBS are shown to indicate how detailed the breakdown can become. These examples aim to clarify how a WBS organizes the tasks in a project, breaking them down from the overall project (Level 1) to the smallest tasks (Level 5). The samples provided are specific to different types of projects, like software development and system development, and show how to structure work to ensure all tasks are covered. Classroom: In-person training sessions. Hands-on: Practical, hands-on training sessions where users interact directly with the software. Project Management: This involves overseeing the entire project, making sure everything stays on track. Requirements: Defining what the software needs to do. Prototyping: Creating an early model of the software to test ideas. Testing: Ensuring the software works as expected. User Acceptance: Getting approval from the users that the software meets their needs. Life-cycle Management: Managing the software throughout its entire life, including updates and maintenance. Warranty: Providing support or fixing issues after the software is delivered. Project: This is the entire system development project. Hardware (1.1): Tasks related to developing the physical components of the system. Software (1.2): Tasks related to developing the software that will run on the hardware. System Engineering (1.3): This involves the integration of hardware and software to ensure they work together properly. Project Management (1.4): Overseeing the entire system development process. System Testing (1.5): Testing the system as a whole to ensure it meets all requirements. Data Management (1.6): Handling data storage, retrieval, and security within the system. Level 1: The overall project. Level 2: Major components of the project like hardware and software. Level 3: Subcomponents under each major component. Level 4: Further breakdown of subcomponents. Level 5: The most detailed level, where individual tasks or work packages are defined. 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/10
  • 620. From ChatGPT, designed with FancyGPT 20/08/2024, 10:22 FancyGPT - cs615 lecuture 34 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/10
  • 621. cs615 lecture 35 cs615 lecture 35 cs615 lecture 35 cs615 lecture 35 cs615 lecture 35 LECTURE # 35 7. Work Breakdown Structure 7.5 WBS- A Mandatory Management Tool iv. Sample WBS Sample 1: These two graphics illustrate approaching the WBS as a parts list or as a process list Software Project Management (CS615) 255 © Copyright Virtual University of Pakistan Sample 2: WBS of Manufacturing of a Mountain Bike Software Project Management (CS615) Sample:3 Work Breakdown Structure of Aircraft System 256 © Copyright Virtual University of Pakistan Software Project Management (CS615) 257 © Copyright Virtual University of Pakistan The list of activities is often called a Work Breakdown Structure (WBS). The goal is to integrate the WBS, the schedule, and the budget into a written plan. The WBS reflects activities associated with overall project management, requirements, design, implementation, transition management, testing, training, installation, and maintenance. The project manager is responsible for defining all top level tasks associated with a project and then further decomposing them as planning continues. An activities list is typically shown in one of two ways. It can be shown as an outline or it can be graphically presented. Two samples of an activities list (WBS) are shown below. 1.0 MANAGEMENT 1.1 Plan Project 1.1.1 Develop Project Plan 1.1.2 Update Project Plan 1.2 Track Project 1.2.1 Prepare status reports 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 1/33
  • 622. 1.2.2 Collect/analyze project metrics 1.3 Perform Quality Activities 1.3.1 Prepare QA Plan 1.3.2 Conduct Reviews 1.3.3 Conduct Audits 1.4 Perform Configuration Management 1.4.1 Prepare CM Plan 1.4.2 Develop Project Library 1.4.3 Manage Change Board 1.4.4 Maintain Configuration Items (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Lecture #35: Work Breakdown Structure (WBS) - A Lecture #35: Work Breakdown Structure (WBS) - A Lecture #35: Work Breakdown Structure (WBS) - A Lecture #35: Work Breakdown Structure (WBS) - A Lecture #35: Work Breakdown Structure (WBS) - A Mandatory Management Tool Mandatory Management Tool Mandatory Management Tool Mandatory Management Tool Mandatory Management Tool 7. Work Breakdown Structure (WBS) 7. Work Breakdown Structure (WBS) 7. Work Breakdown Structure (WBS) 7. Work Breakdown Structure (WBS) 7. Work Breakdown Structure (WBS) The Work Breakdown Structure (WBS) is an essential project management tool used to break down a project into smaller, more manageable components. It helps in organizing the work needed to complete a project by defining and grouping the project's discrete work elements in a way that helps project managers and teams understand the structure of their work. 7.5 WBS - A Mandatory Management Tool 7.5 WBS - A Mandatory Management Tool 7.5 WBS - A Mandatory Management Tool 7.5 WBS - A Mandatory Management Tool 7.5 WBS - A Mandatory Management Tool The WBS is mandatory because it provides a clear framework that helps project managers plan, execute, and control the project. It allows for a detailed understanding of all tasks involved, ensuring that nothing is overlooked. This structure is also crucial for estimating costs, scheduling resources, and monitoring progress. iv. Sample WBS iv. Sample WBS iv. Sample WBS iv. Sample WBS iv. Sample WBS Let's go through some beginner-level examples of WBS to understand how it can be applied in different scenarios. Sample 1: Approaching the WBS as a Parts List or a Process List Sample 1: Approaching the WBS as a Parts List or a Process List Sample 1: Approaching the WBS as a Parts List or a Process List Sample 1: Approaching the WBS as a Parts List or a Process List Sample 1: Approaching the WBS as a Parts List or a Process List When creating a WBS, you can approach it in two ways: as a parts list or as a process list. These two approaches allow project managers to decide how best to represent the project's structure based on what makes more sense for their specific needs. Sample 2: WBS of Manufacturing a Mountain Bike Sample 2: WBS of Manufacturing a Mountain Bike Sample 2: WBS of Manufacturing a Mountain Bike Sample 2: WBS of Manufacturing a Mountain Bike Sample 2: WBS of Manufacturing a Mountain Bike In this example, let's break down the manufacturing process of a mountain bike: Parts List Approach: This method focuses on breaking down the project into its physical components. For example, if you're managing a software development project, the parts might include the software application itself, the user interface, the database, and the testing environment. 1 Process List Approach: This method focuses on breaking down the project into its processes or activities. In the same software development project, the processes might include requirement gathering, system design, coding, testing, and deployment. 2 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 2/33
  • 623. This WBS helps in organizing the work needed to manufacture a mountain bike, ensuring that every component and process is accounted for. Sample 3: WBS of Aircraft System Sample 3: WBS of Aircraft System Sample 3: WBS of Aircraft System Sample 3: WBS of Aircraft System Sample 3: WBS of Aircraft System Now, let's break down the development of an aircraft system: This WBS ensures that all aspects of aircraft system development are methodically planned and executed. Frame Production 1 1.1 Design Frame 2 1.2 Cut Frame Materials 3 1.3 Weld Frame Parts 4 Wheel Assembly 5 2.1 Design Wheels 6 2.2 Select Wheel Materials 7 2.3 Assemble Wheels 8 Component Assembly 9 3.1 Install Brakes 10 3.2 Install Gears 11 3.3 Install Chain 12 Final Assembly 13 4.1 Attach Wheels to Frame 14 4.2 Install Handlebar and Seat 15 4.3 Test Assembled Bike 16 System Design 1 1.1 Define System Requirements 2 1.2 Develop System Architecture 3 1.3 Create System Prototypes 4 Engine Development 5 2.1 Design Engine Components 6 2.2 Manufacture Engine Parts 7 2.3 Test Engine Performance 8 Avionics Development 9 3.1 Design Avionics Systems 10 3.2 Develop Avionics Software 11 3.3 Integrate Avionics with Aircraft 12 Testing and Validation 13 4.1 Conduct Ground Tests 14 4.2 Conduct Flight Tests 15 4.3 Validate System Performance 16 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 3/33
  • 624. 2.0 DESIGN 2.1 Prepare Preliminary Design 2.1.1 Develop Enterprise Architecture 2.1.2 Prepare Data Flow Diagrams 2.1.3 Prepare Logical Data Model 2.2 Prepare Detailed Design Integrating WBS with Schedule and Budget Integrating WBS with Schedule and Budget Integrating WBS with Schedule and Budget Integrating WBS with Schedule and Budget Integrating WBS with Schedule and Budget The list of activities within a WBS is not just a collection of tasks; it is a tool that integrates with the project’s schedule and budget. The project manager uses the WBS to: Example of an Activities List in a WBS Example of an Activities List in a WBS Example of an Activities List in a WBS Example of an Activities List in a WBS Example of an Activities List in a WBS Here’s a simplified example of an activities list for managing a software project: This list outlines the major management activities that must be performed in the software project. The project manager would further break down these tasks into more detailed steps as planning progresses. Summary Summary Summary Summary Summary The WBS is a vital tool in project management that helps break down a project into manageable parts or processes. It is used to organize the work, estimate costs, schedule tasks, and monitor progress. By integrating the WBS with the project’s schedule and budget, project managers can ensure that all aspects of the project are planned, executed, and controlled effectively. Schedule Tasks: Each task in the WBS is assigned a timeline, helping to create a project schedule. Budget Estimation: By understanding the tasks and resources needed, the project manager can estimate costs and allocate the budget accordingly. Monitoring Progress: As tasks are completed, the WBS helps track progress and ensure the project stays on schedule and within budget. Management 1 1.1 Plan Project 2 1.1.1 Develop Project Plan 3 1.1.2 Update Project Plan 4 1.2 Track Project 5 1.2.1 Prepare Status Reports 6 1.2.2 Collect/Analyze Project Metrics 7 1.3 Perform Quality Activities 8 1.3.1 Prepare QA Plan 9 1.3.2 Conduct Reviews 10 1.3.3 Conduct Audits 11 1.4 Perform Configuration Management 12 1.4.1 Prepare CM Plan 13 1.4.2 Develop Project Library 14 1.4.3 Manage Change Board 15 1.4.4 Maintain Configuration Items 16 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 4/33
  • 625. 2.2.1 Prepare Physical Data Model 2.2.2 Prepare Data Dictionary 2.3 Document Design 2.3.1 Develop Design Specification 2.4 Review Design Software Project Management (CS615) 258 © Copyright Virtual University of Pakistan 3.0 DEVELOPMENT/INTEGRATION 3.1 Develop Software 3.1.1 Develop Server Application 3.1.2 Develop User Interface 3.1.3 Develop XYZ Interface 3.2 Procure Hardware 3.2.1 Procure Server 3.2.2 Procure Workstations 3.3 Procure Software Packages 3.3.1 Procure Database 3.3.2 Procure User Interface Building Tool 3.3.3 Procure Operating System 3.4 Perform Integration Testing 3.5 Convert Data 3.5.1 Develop Conversion Plan 3.6 Develop User Manual 3.7 Transition Management 4.0 ACCEPTANCE TESTING 4.1 Plan Acceptance Test 4.2 Conduct Acceptance Test 4.3 Develop Test Report 5.0 INSTALLATION 5.1 Develop Installation Plan 5.2 Site Preparation 5.3 Install at Locations 5.3.1 Headquarters 5.3.2 Site 1 6.0 MAINTENANCE 6.1 Hardware Maintenance 6.2 Software Maintenance Software Project Management (CS615) 259 © Copyright Virtual University of Pakistan Sample 4: Sometimes, instead of depicting the WBS as an outline, it is shown graphically, as below: WBS Work Breakdown Schedule (WBS) Management Plan Project 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 5/33
  • 626. Track Project Develop Project Plan Update Project Plan Prepare status report Collect/analyze project metrics Perform Quality Activities Prepare QA Plan Conduct Reviews Perform CM Prepare CM Plan Develop Project Library Conduct Audits Manage Change Board Maintain Configuration Items Design Prepare Preliminary Design Prepare Detailed Design Develop Enterprise Architecture Prepare Data Flow Diagrams Prepare Physical Data Model Prepare Data Dictionary Document Design Develop Design Specification Review Design Prepare Logical Data Model Development/ Integration Develop Software Procure Hardware Develop Server Application Develop User Interface Procure Server 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 6/33
  • 627. Procure Workstations Procure Software Packages Procure Databases Perform Integration Testing Develop XYZ Interface Procure User Interface Building Tool Procure Operating System Convert Data Develop Conversation Plan Develop User Manual Acceptance Testing Plan Acceptance Test Conduct Acceptance Test Develop Test Report Installation Develop Installation Plan Site Preparation Maintenance Hardware Maintenance Software Maintenance Install at Locations Headquarters Site One Transition Management Software Project Management (CS615) 260 © Copyright Virtual University of Pakistan Sample 4: Chart WBS (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 7/33
  • 628. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Sample 4: Chart WBS Sample WBS - Outline Example-1 0.0 Retail Web Site 1.0 Project Management 2.0 Requirements Gathering 3.0 Analysis Design 4.0 Site Software Development 4.1 HTML Design and Creation 4.2 Backend Software 4.2.1 Database Implementation 4.2.2 Middleware Development 4.2.3 Security Subsystems 4.2.4 Catalog Engine 4.2.5 Transaction Processing 4.3 Graphics and Interface 4.4 Content Creation 5.0 Testing and Production Retail Web Site Project Managemen Requiremen ts Design and Analysis Site Software Development HTML Design Backend Software Graphics and Interface Content Creation Database Implementat 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 8/33
  • 629. Security Subsystems Catalog Engine 3. 0 1.0 2. 0 Transaction Processing 4. 0 5.0 4. 1 4. 2 4.2.1 4.2.2 4.2.3 4.2.4 4.3 4.4 0 0 Software Project Management (CS615) 261 © Copyright Virtual University of Pakistan Sample WBS - Outline Example-2 1.10 MANAGEMENT 1.1 Plan Project 1.1.1 Develop Project Plan 1.1.2 Update Project Plan 1.2 Track Project 1.2.1 Prepare status reports 1.2.2 Collect/analyze project metrics 1.3 Perform Quality Activities 1.3.1 Prepare QA Plan 1.3.2 Conduct Reviews 1.3.3 Conduct Audits 1.4 Perform Configuration Management 1.4.1 Prepare CM Plan 1.4.2 Develop Project Library 1.4.3 Manage Change Board 1.4.4 Maintain Configuration Items 2.0 DESIGN 2.1 Prepare Preliminary Design 2.1.1 Develop Enterprise Architecture 2.1.2 Prepare Data Flow Diagrams 2.1.3 Prepare Logical Data Model 2.2 Prepare Detailed Design 2.2.1 Prepare Physical Data Model 2.2.2 Prepare Data Dictionary 2.3 Document Design 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 9/33
  • 630. 2.3.1 Develop Design Specification 2.4 Review Design 3.0 DEVELOPMENT/INTEGRATION 3.1 Develop Software 3.1.1 Develop Server Application 3.1.2 Develop User Interface 3.1.3 Develop XYZ Interface 3.2 Procure Hardware 3.2.1 Procure Server 3.2.2 Procure Workstations 3.3 Procure Software Packages 3.3.1 Procure Database 3.3.2 Procure User Interface Building Tool 3.3.3 Procure Operating System 3.4 Perform Integration Testing 3.5 Convert Data Software Project Management (CS615) 262 © Copyright Virtual University of Pakistan 3.5.1 Develop Conversion Plan 3.6 Develop User Manual 3.7 Transition Management 4.0 ACCEPTANCE TESTING 4.1 Plan Acceptance Test 4.2 Conduct Acceptance Test 4.3 Develop Test Report 5.0 INSTALLATION 5.1 Develop Installation Plan 5.2 Site Preparation 5.3 Install at Locations 5.3.1 Headquarters 5.3.2 Site 1 6.0 MAINTENANCE 6.1 Hardware Maintenance 6.2 Software Maintenance (my prompt is that give me simple beginner level examples of all the topics or text above given by me in this prompt) Important Note1: do not use analogies. Important Note2: in this new chat all the topics are part of a lecture given by one lecturer so keep in mind in that and give coherent examples. Lecture #37: Additional Work Breakdown Structure (WBS) Lecture #37: Additional Work Breakdown Structure (WBS) Lecture #37: Additional Work Breakdown Structure (WBS) Lecture #37: Additional Work Breakdown Structure (WBS) Lecture #37: Additional Work Breakdown Structure (WBS) Examples Examples Examples Examples Examples In today's lecture, we will explore more examples of Work Breakdown Structure (WBS), specifically focusing on two sample outlines. These examples will demonstrate how to break 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 10/33
  • 631. down a project into manageable tasks, ensuring that all aspects are thoroughly planned and organized. Sample WBS - Outline Example 1: Sample WBS - Outline Example 1: Sample WBS - Outline Example 1: Sample WBS - Outline Example 1: Sample WBS - Outline Example 1: Retail Website Development Retail Website Development Retail Website Development Retail Website Development Retail Website Development This example breaks down the development of a retail website into its core components. 0.0 Retail Website 0.0 Retail Website 0.0 Retail Website 0.0 Retail Website 0.0 Retail Website This is the top-level summary representing the entire project. 1.0 Project Management 1.0 Project Management 1.0 Project Management 1.0 Project Management 1.0 Project Management This section includes all the activities related to managing the project. 2.0 Requirements Gathering 2.0 Requirements Gathering 2.0 Requirements Gathering 2.0 Requirements Gathering 2.0 Requirements Gathering This involves collecting and documenting all the requirements needed for the website, such as functionality, user interface design, and security needs. 3.0 Analysis Design 3.0 Analysis Design 3.0 Analysis Design 3.0 Analysis Design 3.0 Analysis Design Here, the project team analyzes the requirements and creates detailed design plans, including wireframes and system architecture. 4.0 Site Software Development 4.0 Site Software Development 4.0 Site Software Development 4.0 Site Software Development 4.0 Site Software Development This phase covers the actual creation of the website. 5.0 Testing and Production 5.0 Testing and Production 5.0 Testing and Production 5.0 Testing and Production 5.0 Testing and Production This phase involves testing the website to ensure it functions correctly and then launching it for public use. Sample WBS - Outline Example 2: Sample WBS - Outline Example 2: Sample WBS - Outline Example 2: Sample WBS - Outline Example 2: Sample WBS - Outline Example 2: Software Development Project Software Development Project Software Development Project Software Development Project Software Development Project This example breaks down a general software development project into detailed tasks. 1.0 Management 1.0 Management 1.0 Management 1.0 Management 1.0 Management This phase includes all activities related to planning, tracking, and maintaining the quality of the project. 4.1 HTML Design and Creation: This involves designing and coding the website's front- end using HTML. 4.2 Backend Software: This includes everything related to the server-side of the website. 4.2.1 Database Implementation: Set up and configure the database where all the site’s data will be stored. 4.2.2 Middleware Development: Create the software that connects the front- end with the backend, enabling them to communicate. 4.2.3 Security Subsystems: Develop and implement security features to protect the website and its data. 4.2.4 Catalog Engine: Build the system that manages the product catalog, including product listings and categories. 4.2.5 Transaction Processing: Develop the systems that handle customer transactions, including payment processing. 4.3 Graphics and Interface: Design and integrate the visual elements and user interface components of the website. 4.4 Content Creation: Develop the text, images, videos, and other content that will be featured on the website. 1.1 Plan Project: This includes the initial planning activities. 1.1.1 Develop Project Plan: Create a detailed plan that outlines the project’s goals, tasks, resources, and timeline. 20/08/2024, 16:28 FancyGPT - cs615 lecture 35 chrome-extension://meonalmakdjaojaoipfhahcfccoecegk/chats.html# 11/33
  • 632. 2.0 Design 2.0 Design 2.0 Design 2.0 Design 2.0 Design This phase involves creating the system design. 1.1.2 Update Project Plan: Regularly update the plan to reflect changes in the project scope or timeline. 1.2 Track Pr