Software Process Management: Course Code: SE-603

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 22

Software Process

Management
Course Code: SE-603
Teacher: Farzeen Ashfaq
Credit Hours: 2+1
Engineering versus Programming
Engineers follow procedures, methods, standards to "assure" more predictable
results.
No guarantee of quality.
Performance and cost are more predictable.
Measurable.
Verifiable.
Repeatable.
How many Programmers
does it take to change a light bulb?
?
How many Programmers
does it take to change a light bulb?
None.
A defective light bulb is a hardware problem.
How many Software Engineers
does it take to change a light bulb?
How many Software Engineers
does it take to change a light bulb?
Six.
Analyst to write the specification.
Architect to design a light-bulb changing procedure.
Developer to change the light bulb.
Tester to test it.
Documenter to write RUP project reports.
Auditor to verify that the process was followed.
What is a Software Process?
A process is a method for doing or producing something.
A software process is a method for producing software.

"Producing software" includes Managing the project involves


 specification  obtaining resources
 design  measuring
 construction  tracking
 documentation  reviews
 transition  analyzing results and acting
on them
 maintenance
 improvement
Do You Have a Process?
Everyone who develops software uses a process.
Process may not be formal.
You may even be aware of it (not "defined").
It changes every time you develop a new application.
Exercise 1
Identify a process you use repeatedly in your daily life.
Why do you follow this process?
Are there any advantages to using a process?
Have you improved your process?
Do We Need a Formal Process?
Teams can be effective without a formal software process!
Teams can have “jack-of-all-trades” programmers who understand the business of the
organization.

Excellent, motivated developers take initiative and build the software without consensus or
planning.

A highly capable development manager may be willing to put in an enormous effort.

Motivated developers put in extra time to get the project done.


Problems with an Implicit Process
What are problems of this approach (implicit process)?
Problems with an Implicit Process
1. Depends a lot on motivated, talented individuals.
what happens if your best programmer/architect quits?
2. Not repeatable or predictable.
if you can't predict how long the next project will take, then how can you bid
(estimate cost)?
3. Stress / burn-out.
Too much pressure on team.
Uncertainty and O.T. lead to frustration, burn-out.
No slack time for HR development.
Another Problem...
1. We learn programming on small projects.
2. We develop an implicit process that works well...
we get "A"s in our courses!
Obviously, we are great "software engineers"!

Problem:
our implicit process doesn't scale to large problems.
Why a Defined Process?
More Effective
less time spent on planning, estimates, decisions
Predictable
Repeatable (related to predictability)
Trackable (measuring predictability)
Maintainable
Quality
Capability Improvement
use what you learn from past experience
Creating a Defined Process
Meta-thinking
thinking about what you know / do

Humans are the only animal that consciously changes his behavior
"learn from experience"
improvement - creative thinking & insight
4 key factors in development speed
1. People
– ability, knowledge, skills, motivation
2. Process
– Customer focus
– QA, risk management, lifecycle planning, revision control, ...
3. Product
– Size and characteristics, phasing
4. Technology
– Product or software development environment
– Tools
The Role of Process
People Technology

Methods

The Desired Product


The Role of Process
People Technology

"the glue that binds


Methods
[guides] people, Process
methods, and
technology to create a
product."

The Desired Product


The Role of Process (2)
People Technology

Roles: Methods
Task Task

Activities: Analysis Design Implement Test

Use Case
Artifacts:
Desired Product
Description ...
Prerequisite...
Main Scenaria
1.....
.....
2.....
3.....
Extensions: ...

Communicate: Measurements, Milestones, Documents


What is Project Management
Project management encompasses all the activities needed to plan and execute a
project:
Deciding what needs to be done
Estimating costs
Ensuring there are suitable people to undertake the project
Defining responsibilities
Scheduling
Making arrangements for the work
continued ...
What is Project Management
Directing
Being a technical leader
Reviewing and approving decisions made by others
Building morale and supporting staff
Monitoring and controlling
Co-ordinating the work with managers of other projects
Reporting
Continually striving to improve the process
What is a Software Process?
The software process is a set of actions required to efficiently transform a user's
need into an effective software solution.
In simple words, process is how the work is done. The main reason for defining the
software process is to improve the way the work is done.
By thinking about the process in an orderly way, it is possible to anticipate problems
and devise ways to either prevent or resolve these. Many software organisations find
difficulty in defining and controlling this process, which is where these have the
greatest potential for improvement.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy