Software Process in the Real World

Download Report

Transcript Software Process in the Real World

Software Process In The Real World
Chris Platner
Questions…
Why Should I Care?
What is Software Process?
How is it used in the ‘Real World’?



2
23-Apr-2003
Why Should I Care?
Why Should I Care?
if (you_write_software)
{
you_have_a_software_process = TRUE;
}
4
23-Apr-2003
Do You Know Enough?
For any software project, you must know at least the
following:




Where are the files going to be stored?
Will you complete the design first, then code, or use some
iterative approach?
How will you handle defects?

Once more people are added, a whole host of
coordination issues arise

… but, will this really make me a better software
developer?
5
23-Apr-2003
You don’t have time to fit it all in
6

time + people + features + quality = 3.0

Example: .95 + .9 + .75 + .4 = 3.0
23-Apr-2003
Can You Communicate?
Most software is developed by teams, where individuals
must communicate in a technical manner.
Fun Exercise


7
23-Apr-2003
What is Software Process?
What is Software Process?
A way for successfully getting work done
A way to avoid fears and mitigate risks
A way to (hopefully) feel good about what you do



9
23-Apr-2003
What is Software Process?

Questions that software process should answer:

Low-Level




When is the next build of the product?
How do we handle defects?
When do we branch our code?
How do we communicate




High-Level



10
With developers in other divisions?
Amongst ourselves
Must we have status meetings?
When is it time to ship the product?
How and when do we communicate with other internal departments,
like sales, marketing, technical support?
What artifacts are important to keep for future reference?
23-Apr-2003
Risks

What is the most damage that failure of our product
could cause?





Loss of comfort
Loss of discretionary money
Loss of essential money
Loss of life
Each of these requires a different amount of process,
because extra work may need to be done to reduce the
chance of loss.

11
(Risks are from Alistair Cockburn’s Crystal Methodologies)
23-Apr-2003
Fears

What if people can’t or won’t communicate?
What if code gets too messy to be maintained?
What if the system architecture deteriorates into a big
ball of mud?
...

“All methodologies are based on fear.” Kent Beck



12
23-Apr-2003
Outside of the Software Process

Business Issues and Processes




Development Issues


What customers should we target (market segments)?
Idea generation (new product ideas)
Market windows
What language should be used?
People Issues

13
Who will be on my team?
23-Apr-2003
Software Processes







Waterfall
Capabilities Maturity Model (CMM)
Extreme Programming (XP)
Crystal
SCRUM
Open Source
Others…
14
23-Apr-2003
Waterfall

A Linear Development Methodology



Advantages



Each of the steps performed in order, with minimal feedback between each step:
Requirements, Analysis, Design, Implementation, Test, Maintenance
Even though it has a lot of disadvantages, it is still
Emphasis on planning
Sometimes used on fixed-price contracts where estimates must be given up
front.
Disadvantages



15
Requires knowing all the requirements up front, with no allowance for change.
Problems with phases are often caught too late, such as requirements problems
detected during coding.
Don’t use it!
23-Apr-2003
Capabilities Maturity Model (CMM)


From the Software Engineering Institute at Carnegie Mellon
Really a process framework that encompasses 5 levels of process maturity





16
Initial: Ad hoc, chaotic - Success depends on heroics.
Repeatable: Basic cost, schedule, and functionality tracking. Can repeat earlier
successes on projects with similar applications.
Defined: Software process for management and engineering activities is
documented, standardized, and integrated into a standard software process for
the organization. All projects use an approved, tailored version of the
organization's standard software process for developing and maintaining
software.
Managed: Detailed measures of the software process and product quality are
collected. Both the software process and products are quantitatively understood
and controlled.
Optimizing: Continuous process improvement is enabled by quantitative
feedback from the process and from piloting innovative ideas and technologies
23-Apr-2003
Capabilities Maturity Model (CMM)

Focuses on 18 Key Process Areas (KPAs)



Advantages



Repeatable (Level 2): Requirements Management, Software Project Planning, Software
Project Tracking and Oversight, Software Subcontract Management, Software Quality
Assurance, Software Configuration Management
Defined (Level 3): Organization Process Focus, Organization Process Definition, Training
Program, Integrated Software Management, Software Product Engineering, Inter-group
Coordination, Peer Reviews
Respected in the industry
Tailorable to each business and project
Drawbacks


Tends to involve more ceremony (more writing, etc.)
Assumes the rate of change in many areas is low


17
Requirements, schedule pressure, quality, etc.
See http://www.sei.cmu.edu for more information
23-Apr-2003
Extreme Programming (XP)

Grew out of experiences at Chrysler (Kent Beck, et al)


18
The primary target was small teams in one location, coding to
requirements that may be changing
Many of the recommendations are familiar, but depend on highquality communication (face-to-face), rather than highoverhead modes (documents)
23-Apr-2003
Extreme Programming (XP)

XP Requirements

Team


Planning



19
Customer Stories, Release Planning, Iteration Planning (2 week
iterations), Small Releases, Simple Design, Automated
Customer/Acceptance tests
Development


The whole team must be small and be able to sit and work in a single
room with the customer
Test-Driven Development (automated unit tests), Continuous
Integration (multiple builds per day), Refactoring (design
improvement), Coding Standards
Collective Code Ownership, Pair Programming
See http://www.xprogramming.com,
http://www.extremeprogramming.org
23-Apr-2003
Extreme Programming (XP)

Advantages



Works great for small co-located teams
Teams using XP can be extremely productive, perhaps more so
than those using any other methodology
Drawbacks



20
QA departments see it as too light
No documentation artifacts after projects are done
Won’t work well for large teams, distributed teams, or teams
not willing to pair program
23-Apr-2003
Crystal


A family of methodologies designed by Alistair Cockburn
There are different methodologies for different sizes and
kinds of projects, each corresponding to a type of crystal:
Clear,Yellow, Orange, Red

Clear – 3-8 people in one office
Yellow – 8-20 people, same building
Orange – 25-40 people, same building

http://alistair.cockburn.us/


21
23-Apr-2003
SCRUM

Iterative, Incremental, Adaptive

Uses 3 to 8 time periods called Sprints that each last about a
month. Design and implementation tasks are broken up over
the sprints.
A short daily scrum meeting is held each morning to find out
what happened the day before, resolve blocking issues, and to
plan for the next day.
At the end of a sprint, there is a demo to show progress.

See http://www.controlchaos.com/


22
23-Apr-2003
Open Source Process



23
GNU.org – See http://www.gnu.org/prep/maintain.html
Mozilla.org – See http://www.mozilla.org/hacking/
‘The Cathedral and the Bazaar’
(http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar)
23-Apr-2003
What About…?


Agile Methodologies (http://www.agilealliance.org)
Personal Software Process (PSP) and Team Software
Process (TSP)


ISO 12207


From Watts Humphrey and the crew that developed the CMM.
Grew out of Department of Defense software standards - MILSTD-1679, DoD-STD-2167A, MIL-STD-498
Rational Unified Process (RUP)


24
From Grady Booch, Jim Rumbaugh, and Ivar Jacobson (‘The
Three Amigos’)
It is a process framework
23-Apr-2003
The Real World
Why Should I Care?

Do you like to code? The kind of process used affects the
amount of non-programming work you do.



You may find yourself in meetings and writing documents
For very large projects, the total output of debugged code can
be as low as 10 lines per day
Do you want projects you work on to be successful?

26
Making projects work requires management and software
process
23-Apr-2003
The Real World




Processes may not be strictly followed.
Different managers will like different processes
New processes may be enforced mid-project
An outspoken team member may hijack the process
27
23-Apr-2003
Fears and Risks Revisited








What if we lose key team members?
What if the defect insertion rate runs away?
What if management can’t see progress?
What if people can’t or won’t communicate?
What if code gets too messy to be maintained?
What if the system architecture deteriorates into a big
ball of mud?
What if management changes?
What if we’re working on the wrong solution?
28
23-Apr-2003
There Is Hope

Must we be shackled to process?

29
No! People are more important. (See Facts and Fallacies of
Software Engineering, Fact #1, by Robert L. Glass).
23-Apr-2003
References


The Mythical Man-Month, Fred Brooks, 1995 (anniversary
edition)
Fact and Fallacies of Software Engineering, Robert L. Glass, 2003




Dynamics of Software Development, Jim McCarthy, 1995
Extreme Programming Explained – Embrace Change, Kent Beck,
2000
Ruminations on C++, Andrew Koenig, Barbara Moo, 1997


Excellent discussion of why small projects are often successful, while
larger ones are not. Read all of chapter 2.
Agile Software Development, Alistair Cockburn, 2002

30
A reminder of what works and what doesn’t in software engineering.
Great introduction to agile development.
23-Apr-2003
References


Debugging the Development Process, Steve Maguire, 1994
Software Project Survival Guide, Steve McConnell, 1998



31
If you want to be a manager, or understand managers, Steve’s books
are must-have’s.
Rapid Development – Taming Wild Software Schedules, Steve
McConnell, 1996
Martin Fowler’s Writings – Many interesting articles on agile
methodologies. See http://www.martinfowler.com,
http://thoughtworks.com/library/newMethodology.pdf
23-Apr-2003
Q&A