See http://www.rational.com/products/whitepapers/100420.jsp for a good introduction. (Much more is here).
Organized around six "best practices":
Not surprisingly, Rational (now IBM) has tools you can buy to do these things!
Famous graph of how software is developed:
Cycles and Phases and Iterations, oh my!
Software development lifecycle is broken into cycles. But cycles just correspond to generations of product. One generation of a product is one cycle.
Each cycle has four phases (with well-defined endpoint milestones):
Iterative development within the four phases:
Static Process Structure:
Six core engineering workflows:
Three core supporting workflows:
US Gov't wanted some way to evaluate their contractor's practices
CMM == Capability Maturity Model
A 5-level model of an organization's development process maturity:
Each level has key process areas -- which define it:
CMM is (was?) an industry -- companies pay for licenecd CMM assessors to come in and evaluate them and assess their level.
Mostly just bean-counting the activities (independent of the results of those activities).
CMM is being replaced by CMMI == Capability Maturity Model Integration
More focussed on results of process than the process activities.
A large (?) collection of many ideas
Multiple models -- basic software engineering, SE + systems engineering, SE+SS + integrated process and product development, SE+SS+IPPD + supplier sourcing.
Continuous and staged versions: staged is a predefined ladder of process activities for an organization to follow for improvement. Continuous allows custom selection of process areas. Staging essentially maps to CMM 5-level model?
Example: SE-Continuous is 645pp! (staged is 639pp)
Measure organizations in the areas, but do not reduce to a single level
PSP first introduced by Watts Humphrey in mid-90's as a course supplement.
Goal was to get developers to measure what they do.
(From http://www.sei.cmu.edu/tsp/)
Personal Software Process: Measuring time and quality
Measure time and activities, predict (plan) time and activities, manage time and activities.
Measuring defects, finding defects, predicting defects.
Team Software Process: Team-based work planning and tracking (quantitatively)
TSP divides activities in four phases: requirements, design, implementation, test.
But says project can begin or end on any phase, phases can overlap, be launched and re-launched, etc.
Based on quantitative data gathering and statistical inference.
Sigma == standard deviation
6Sigma == 3.4 defects per opportunity??
http://software.isixsigma.com/
http://www3.gartner.com/4_decision_tools/measurement/measure_it_articles/2002_10/six_sig.jsp
ISO 9001 (9000-3): http://www.praxiom.com/iso-9000-3.htm
ISO 12207: http://www.acm.org/tsc/lifecycle.html
http://www.standishgroup.com/sample_research/PDFpages/chaos1999.pdf
http://www.standishgroup.com/sample_research/PDFpages/extreme_chaos.pdf