Introduction to Software
Process
Malik Nabeel Ahmed Awan, PhD
How many Programmers
2
does it take to change a light bulb?
Programmer - None: A defective light bulb is a hardware
problem.
Engineer - 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?
3
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?
4
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
5
Example – 1
Identifya 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?
Example – 2
What process "procedures" or "activities" did you use in any of your
previous project?
Process Disadvantages
6
• overhead
• diminish sense of spontaneity or creativity
• may be the wrong process for the job
What is the Most Common Software Process?
7
1. "Code and fix"
2. ad hoc (chaos)
My Software Process
• Long used process …
1. think about the problem
2. start coding
3. as code grows, I realize that I need to restructure parts of
it.
• modify previous code to support new, improved structure.
• goto step 2.
Do We Need a Formal Process?
8
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
9
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...
10
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?
11
More Effective
less time spent on planning, estimates, decisions
Predictable
Repeatable (related to predictability)
Trackable (measuring predictability)
Maintainability
Quality
Capability Improvement
use what you learn from past experience
Creating a Defined Process
12
Meta-thinking
thinking about what you know / do
Humans are the only animal that consciously changes his behavior
"learnfrom experience"
improvement - creative thinking & insight
4 key factors in software development speed
13
People
– ability, knowledge, skills, motivation
Process
– Customer focus
– QA, risk management, lifecycle planning, revision control, ...
Product
– Size and characteristics, phasing
Technology
– Product or software development environment
– Tools
The Role of Process
14
People Technology
Methods
The Desired Product
The Role of Process
15
People Technology
"the glue that binds
Methods
[guides] people, Process
methods, and
technology to create
a product."
The Desired Product
The Role of Process
16
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
17
THANK YOU