PLAN ACT DO CHECK

advertisement
PLAN
INF5180
ACT
Produkt og prosessforbedring
i systemutvikling
DEL 7
”Bruk av CMM”
DO
Geir Amsjø
geirams@ifi.uio.no
CHECK
Innhold
Bakgrunn
Struktur og definisjon
Nivå for nivå
CMM Evaluering
CMM brukt i kontinuerlig prosessforbedring
Dokumentasjon
Fremtiden - CMMI
INF5180
2
1
Bakgrunn
DoD bestemte seg i 80-årene å gjøre noe med alle de feilslåtte og
dyre programvareprosjektene sine.
• Ada løste ikke problemene (som mange trodde)
• Evalueringer viste at det var et ledelsesproblem.
Watts Humphrey gikk fra IBM til SEI og begynte utviklingen av CMM
i 1986
Managing the Software Process av W. Humphrey kom i 1989
Versjon 1.1 kom i 1993 – er fremdeles den mest brukte modellen
INF5180
3
Slogan fra SEI
“The Capability Maturity Model for Software (CMM) is a
framework that describes the elements of an effective
software process.
The CMM describes an evolutionary path
from an ad hoc, chaotic process,
to a mature disciplined process”
INF5180
4
2
Programvarebransjen...?
Estimeringsproblemer
• Budsjett overskrides
• Tidsfrister overskrides
Kvalitetsproblemer
• Sliter med feilretting (fremfor
utvikling)
• Sliter med misfornøyde
kunder
Har ingen veldefinert prosess
• Starter ”fra scratch” i hvert
prosjekt
• God praksis ofres under stress
Suksessfaktorer
• Helter
• Overtid
• Brannslukking
INF5180
5
En utfordring!
Software System
Software Engineering Process
Test
Coverage
• Kvalitet kan ikke testes inn i etterkant, men må bygges inn
fra starten av.
• Jo høyere kvalitetskrav, desto større krav til prosessen.
• Prosessen kan ikke gi forutsigbart resultat med mindre det er
kultur for det på individuellt nivå.
"The quality of a system is highly influenced by the quality of the
process used to acquire, develop, and maintain it." (W.Humphrey)
INF5180
6
3
Hvordan gjenta god praksis?
”Kvalitets
modeller”
Metode,
Prosess
Prosjekter
CMM, ISO,
Bootstrap ...
Basert på:
RUP, XP,
DSDM,
MSF....
Modenhets/kvalitets-modeller gir støtte til
• å evaluere behov og forbedring
• organisasjonsendring
• kulturendring
• kunnskapsutvikling
• målinger
Mye god praksis er beskrevet i ferdige
utviklingsmodeller. Men man må velge
riktig og tilpasse til egne behov
Læring og identifisering av god praksis
foregår i prosjektene. Oppdater prosessmodellen
etter hvert prosjekt!
INF5180
7
CMM scope
SW - CMM
INF5180
8
4
Prosjekt og modenhet
”Umodne” organisasjoner
”Modne” organisasjoner
Prosjektleder opplever:
Må starte fra scratch
Vanskelig å få oversikt
Overraskelser
Konstant endringshåndtering
Overtid!
Ta igjen det tapte – fra dag 1
Dårlig nattesøvn...
Prosjektleder opplever:
Kommer til dekket bord
Endringer er normalt
Overtid, men kun i perioder
Estimatene holder
Yrkesstolthet! Sover godt!
Kunden opplever:
Upålitelige løfter
Dårlig kvalitet
Forventningene ikke innfridd
Kunden opplever:
Estimatene holder
God kvalitet
Forventningene blir innfridd
INF5180
9
Linjeledelse og modenhet (2)
”Umodne” organisasjoner
”Modne” organisasjoner
Linjeledelsen opplever:
Løfter vanskelig å innfri
Prosjektene kommer ikke i gang
Ressursene ikke tilgjengelige
Nøkkelpersoner brukes i økende
grad til vedlikehold og feilretting
Får ikke tatt ut effekten av
prosjektene
Strategisk planlegging nesten
umulig
Linjeledelsen opplever:
Lett å planlegge
Løfter innfris
God ressursallokering blir
mulig
Strategier blir gjennomført
Tjener penger!
INF5180
10
5
Det er menneskelig å feile
Overvurderer egne ferdigheter
• ”Alle” menn er over gjennomsnittelig gode sjåfører...
• Undersøkelse på Simula viser lignende tendens for utviklere
Vi estimerer ”internt”
• Glemmer å se på prosjektet fra utsiden.
⌫Hvilke erfaringer finnes ved lignende prosjekter?
⌫Er det i det hele tatt gjort lignende før?
Vi ”glemmer” å håndtere risiko
Sannsynlighet
• Lite lystbetont aktivitet
• ”Ikke vær så negativ da”
Referanse:
Magne Jørgensen et.al.(2003) ”Better sure than safe?
Overconfidence in judgment based software
development effort prediction intervals”
Mål
INF5180
Tidsforbruk
11
Key Process Areas (KPAs)
Level
Key Process Areas
Optimizing (5) Defect prevention
Technology change management
Process change management
Characteristics
Continous process
improvement
Managed (4)
Quantitative process management
Software quality management
Product and process
quality
Defined (3)
Organisational process focus
Organisational process definition
Integrated software management
Software product engineering
Intergroup coordination
Training program
Peer reviews
Defined engineering
process
Repeatable (2) Requirements management
Project management
and commitment
process
Initial (1)
Heroes
Software
Software
Software
Software
Software
project planning
project tracking
subcontract management
quality assurance
configuration management
INF5180
12
6
In
Out
Level 4
In
Out
Probability
Level 3
In
Out
Probability
Level 2
In
Out
Level 1
Out
In
Probability
Level 5
Probability
Probability
Hva skjer i prosjektene?
INF5180
target
target
target
target
target
13
CMM Hovedstruktur
Practices
Maturity Levels
Key Process Area
Goals
Practices
Goals
Practices
Key Process Area
Goals
Practices
Practices
INF5180
14
7
Evaluering mot CMM
For å tilfredsstille en KPA gjelder det å vise at man gjør det man sier (implementasjon)
I tillegg man må i tillegg vise at det er sannsynlig at dette er varig (institusjonalisering)
Goal
Commitment
Ability
Institusjonalisering
Activities
Measurement
Verification
Implementasjon
INF5180
15
CMM nivå 2
5. Optimizing
4. Managed
3. Defined
2. Repeatable
1. Initial
Requirements management
Software project planning
Software project tracking and oversight
Software subcontract management
Software quality assurance
Software configuration management
INF5180
16
8
En repeterbar prosess...
Grunnleggende prosjektstyring etablert
Prosjekter planlegges og følges opp
Endringer i planene håndteres under kontroll
Man klarer å identifiserer god praksis
Gjensidige avtaler inngås
Suksessprosjekter kan gjentas under stabile forhold
INF5180
17
Hvordan klatre til nivå 2
Fokuser på prosjektene – ett og ett
Sats på opplæring av prosjektledere
Implementer noen ytterst få og enkle målinger
Bruk Kvalitetssikringsfunksjonen til institusjonalisering
Sett i verk kontrollpunkter ved hovedmilepæler
Inngå forpliktende, gjensidige avtaler!
INF5180
18
9
Requirement Management
Goals:
1. System requirements allocated to software are controlled to
establish a baseline for software engineering and
management use.
2. Software plans, products, and activities are kept consistent
with the system requirements allocated to software.
customer
software
project
INF5180
19
Requirement Management - Practices
1
2
3
4
5
6
7
8
9
10
11
12
The project follows a written organizational policy for managing the system
requirements allocated to software.
For each project, responsibility is established for analyzing the system requirements and
allocating them to hardware, software, and other system components.
The allocated requirements are documented.
Adequate resources and funding are provided for managing the allocated requirements.
Members of the software engineering group and other software related groups are
trained to perform their requirements management activities.
The software engineering group reviews the allocated requirements before they are
incorporated into the software project.
The software engineering group uses the allocated requirements as the basis for
software plans, work products, and activities.
Changes to allocated requirements are reviewed and incorporated into the software
project.
Measurements are made and used to determine the status of the activities for managing
the allocated requirements.
The activities for managing the allocated requirements are reviewed with senior
management on a periodic basis.
The activities for managing the allocated requirements are reviewed with the project
manager on both a periodic and event-driven basis.
The software quality assurance group reviews and/or audits the activities and work
products for managing the allocated requirements and reports the results.
INF5180
CO1
AB1
AB2
AB3
AB4
AC1
AC2
AC3
ME1
VE1
VE2
VE3
20
10
Software Project Planning
Goals:
1. Software estimates are documented for use in planning and
tracking the software project.
2. Software project activities and commitments are planned and
documented.
3. Affected groups and individuals agree to their commitments
related to the software project.
INF5180
21
Software Project Tracking and Oversight
Goals:
1. Actual results and performance are tracked against the software
plans.
2. Corrective actions is taken and managed to closure when actual
results and performance deviate significantly from the software
plans.
3. Changes to software commitments are agreed to by the affected
groups and individuals.
INF5180
22
11
Software Subcontract Management
Goals:
1. The prime contractor selects qualified software subcontractors.
2. The prime contractor and the software subcontractor agree to their
commitments to each other.
3. The prime contractor and the software subcontractor maintain
ongoing communications.
4. The prime contractor tracks the software subcontractor’s actual
results and performance against its commitments.
INF5180
23
Software Configuration Management
Goals:
1. Software Configuration Management activities are planned.
2. Selected software work products are identified, controlled and
available.
3. Changes to identified software work products are controlled.
4. Affected groups and individuals are informed of the status and
content of software baselines.
INF5180
24
12
Software Quality Assurance
Goals:
1. Software quality assurance activities are planned.
2. Adherence of software products and activities to the applicable
standards, procedures and requirements is verified objectively.
3. Affected groups and individuals are informed of software quality
assurance activities and results.
4. Noncompliance issues that cannot be resolved within the software
project are addressed by senior management.
INF5180
25
Nivå 3
Optimizing
Managed
Defined
Organization process focus
Organization process definition
Integrated software management
Software product engineering
Intergroup coordination
Training program
Peer review
Repeatable
Initial
INF5180
26
13
Hva er defined ?
Standard utviklingsprosess er
• veldefinert på organisasjonsnivå
• i bruk i vid forstand
• danner basis for all læring og lagring av erfaringer (best practice)
Organisasjonen viser tydelig at prosessen skal brukes
•
•
•
•
•
•
oppretter prosessgrupper (”SEPG”)
sørger for erfaringsmekanismer (”de-briefing”, PMA, etc)
knytter erfaringsdata til prosessen
tilbyr opplæring i prosessen
og knytter teknisk opplæring til prosessen
definerer tydelige grensesnitt mellom grupper
INF5180
27
Ansvar på nivå 3
Organisasjonen
•
•
•
•
Hovedansvar for endringer
Etablering av standard prosessrammeverk
Koordinering av forbedringsarbeid
Koordinering av opplæring
Prosjektene
• Gjør tilpasninger av standard prosess mot prosjektets behov
(prosessinstans)
• Koordinerer avhengigheter og grensesnitt med andre involverte
grupper
Individene
• Benytter prosessen i det daglige arbeid
• Følger opp opplæring ved behov
INF5180
28
14
Organisation Process Focus
Goals:
1. Software process development and improvement activities are
coordinated across the organization.
2. The strengths and weaknesses of the software processes used are
identified relative to a process standard.
3. Organization-level process development and improvement activities
are planned.
INF5180
29
Organisation Process Definition
Goals:
1. A standard software process for the organization is developed and
maintained.
2. Information related to the use of the organization’s standard
software process by the software projects is collected, reviewed
and made available.
INF5180
30
15
Integrated Software Management
Goals:
1. The project’s defined software process is a tailored version of the
organization’s standard software process.
2. The project is planned and managed according to the project’s
defined software process.
INF5180
31
Software Product Engineering
Goals:
1. The software engineering tasks are defined, integrated, and
consistently performed to produce the software.
2. Software work products are kept consistent with each other.
INF5180
32
16
Intergroup Coordination
Goals:
1. The customer’s requirements are agreed to by all affected groups.
2. The commitments between the engineering groups are agreed to
by the affected groups.
3. The engineering groups identify, track and resolve intergroup
issues.
INF5180
33
Training Program
Goals:
1. Training activities are planned.
2. Training for developing the skills and knowledge needed to perform
software management and technical roles is provided.
3. Individuals in the software engineering group and software-related
groups receive the training necessary to perform their roles.
INF5180
34
17
Peer Review
Goals:
1. Peer review activities are planned.
2. Defects in the software work products are identified and removed.
INF5180
35
Nivå 4
Optimizing
Managed
Defined
Repeatable
Quantitative Process Management
Software Quality Assurance
Initial
INF5180
36
18
Hva er managed ?
Prosessen overvåkes gjennom målinger. Mange bruker statistisk
prosesskontroll (SPC) for å identifisere avvik som må sees nærmere
på.
Målsetninger er gjerne kvantitative og følges opp gjennom
målinger.
Special cause of process
variation (e.g. defect
prone module)
Control Chart
Upper performance boundary
Average process performance
Process performance
Lower performance boundary
INF5180
37
Quantitative Process Management
Goals:
1. The quantitative process management activities are planned.
2. The process performance of the project’s defined software process
is controlled quantitatively
3. The process capability of the organizations standard software
process is known in quantitative terms.
INF5180
38
19
Software Quality Management
Goals:
1. The project’s software quality management activities are planned.
2. Measureable goals for software product quality and their priorities
are defined.
3. Actual progress toward achieving the quality goals for the software
products is quantified and managed.
INF5180
39
Nivå 5
Optimizing
Managed
Defined
Repeatable
Defect prevention
Technology change management
Process change management
Initial
INF5180
40
20
Hva er optimized ?
Ytelsen i organisasjonen er kontinuerlig overvåket og forbedret.
Alternative prosesstrinn utvikles for ulike formål.
• Avveiing mellom tid, kost og kvalitet
• Kunden vil kunne velge prosessmodell i henhold til sine behov.
Ny teknologi og metodikk prøves ut i ufarlige omgivelser for å
undersøke om de kan bidra til ytterligere forbedring.
INF5180
41
Defect Prevention
Goals:
1. Defect prevention activities are planned.
2. Common causes of defects are sought out and identified.
3. Common causes of defects are prioritized and systematically
eliminated.
INF5180
42
21
Technology Change Management
Goals:
1. Incorporation of technology changes is planned.
2. New technologies are evaluated to determine their effect on quality
and productivity.
3. Appropriate new technologies are transferred into normal practice
across organization.
INF5180
43
Process Change Management
Goals:
1. Continuous process improvement is planned.
2. Participation in the organizations software process improvement
activities is organization-wide.
3. The organisations standard process and the project’s defined
software processes are improved continuously.
INF5180
44
22
Organisasjonsendringer
St
ab
ili
ty
Organization
Project
L1
Individual
L2 Management
establishes
process
discipline
L4
t
us
Tr
L3Organization
establishes
process
framework
Project
reduces
process
variation
L5 Individual
improves
personal
process
Ad hoc,
Inconsistent
undisciplined
process
INF5180
45
Kulturendringer
Level 5
Level 4
Level 3
Level 2
Level 1
Culture of empowerment and innovation
Culture of performance excellence
Culture of engineering
Culture of commitment
Imported culture
INF5180
46
23
Bruksområder
• CMM er en Evalueringsmodell for å fastslå modenheten til
programvareorganisasjoner
• CMM er et rammeverk for kontinuerlig forbedring av
utviklingsprosesser
• Modellen er designet slik at disse skal kunne brukes samtidig slik at
man gradvis kan jobbe mot øket modenhet og vise dette utad gjennom
formelle evalueringer (assessments)
Level 5:
Continuous
Optimizing
process
improvement
Level 4:
Managed
Process
control
Process
definition
Process
discipline
Level 3:
Defined
Level 2:
Repeatable
Level 1:
Initial
Change
management
Quantitative
management
Engineering
management
Project
management
INF5180
47
CMM Evaluering
En lang rekke modeller, skjemaer og formalismenivåer
Offisiell CBA IPI eller SCE
Light assessments
Ultra-light assessments
Kombinert opplæring og assessment (Q-Labs’ ”Focused Training”)
Basert på åpne intervjuer
Basert på lukkede/strukturerte intervjuer
Basert på spørreskjemaer
INF5180
48
24
CBA IPI – den offisielle SEI-modellen
Må involvere en SEI-godkjent
Lead Assessor
Krever detaljert gjennomgang av
de aktuelle KPA’ene
Koster > 200.000 NKR
For å bli godkjent Lead assessor
må man dokumentere:
• Pedagogisk erfaring og evner
• 10 års erfaring innen Software
Engineering og eller
prosjektledelse. Minst 2 av disse
årene i lederrolle
• Akademisk bakgrunn må være
”Avansert” (Siv.ing, Cand Scient
++) innen Software Engineering
• Må ha deltatt på minst 2 offisielle
CMM assessments de siste 24
månedene
INF5180
49
En enkel assessment-prosess *
1.
Awareness
Present CMM overview and discuss the CMM potential with
management team. Get commitment!
Define scope of assessment.
Define additional scope (outside CMM) if needed.
Define assessment team and ensure that the team gets full CMM
training.
Give one-day course on the CMM model to everybody
2.
3.
4.
Review and interviews
1.
2.
3.
4.
1.
Reporting
2.
3.
Document review
Decide on interview technique:
Questionnaire send-out
Individual
Group
Perform Inteviews
Summarise results
Make Findings report based on inteviews:
General, overall findings
KPA specific findings
Quick-win candidates
Discuss findings in assessment team
Present findings to everybody:
Discuss findings
Resolve conflicts
*) Brukes bl.a. i Q-Labs
Improvement planning
INF5180
50
25
Prosessforbedring: IDEAL
SEI sin prosessforbedringsprosess:
INF5180
51
CMM og QIP
CMM er godt egnet til å brukes sammen med Quality Improvement
Paradigme på organisasjonsnivå
1. Gjennomfør en CMM-assessment.
2.
3.
4.
5.
6.
Kombiner resultatene med
forretningsmessige målsetninger og
identifiserte problemer.
Bruk ”Findings” fra assessmenten til
å sette forbedringsmål
Velg tiltak som antas å føre fram mot
målsetningene
Gjennomfør ett eller flere prosjekter med
de nye modellene, verktøyene og
metodene. Samle data underveis
Analyser erfaringene fra prosjektene
Oppdater standard prosessmodell og
erfaringsdatabase
INF5180
52
26
CMM som veikart
Det er ikke vanskelig å komme frem til en lang liste med gode
forslag til forbedringer. (Hvem har vel ikke vært med på ”GAPanalyse” og brainstorming rundt sterke og svake sider.)
Langt vanskeligere er det å prioritere det viktigste og å lage en
realistisk fremdriftsplan.
Det aller vanskeligste er å håndtrere de nødvendige endringene i
organisasjonen - arbeidsmåte og ikke minst kultur.
Hit vil jeg
Dette er veien dit
Her er jeg
INF5180
53
Ulike anvendelser av CMM
De aller fleste som bruker CMM i dag bruker den internt som et
forbedringsrammeverk – dvs at de ikke har til hensikt å utnytte
markedsverdien gjennom en CBA IPI eller SCAMPI.
De mest aktive CMM-profilene (Mark Paulk og Bill Curtis) advarer i
dag sterkt mot å følge modellen blindt. Bruk modellen med sunn
fornuft, paret med forståelse av egne behov og problemområder.
Modelløs SPI
(f.eks. GQM)
CMM brukt veiledende
(kombinert med GQM/QIP el.l.)
INF5180
”Hard-core CMM”
(CBA IPI)
54
27
Bruk sunn fornuft...
Mark Paulk, SEI:
Common Sense
Process Discipline
Mindless
Bureaucracy
INF5180
55
Virker det ? (I)
INF5180
56
28
Over/Under Percentage
Virker det ? (II)
140%
Results: Boeing Effort Estimation
.
.
.. ..... ............... .....
.. .. .. ..
. . . .. ... . . . ... .. .. .............
.
.
..
. . . .. .. .. ..... .
.
. . .... .. .....
... . .
. .... .. ... .... ..... .. ..
. . .... . .. ... ..
.. . . . .. . .... .
. . .. ... ... .. . . . .
.. .. .
-140%
Without Historical. Data
With Historical Data
Variance between + 20% to - 145% Variance between - 20% to + 20%
0%
(Mostly Level 1 & 2)
(Level 3)
(Based on 120 projects in Boeing Information Systems)
Reference: John D. Vu. “Software Process Improvement Journey:From Level 1 to Level 5.”
7th SEPG Conference, San Jose, March 1997.
INF5180
57
Status og utbredelse
Offisielle SEI-assessments utført fra 1998 til August 2002:
•
•
•
•
1124 organisasjonsenheter
388 selskaper
5538 prosjekter
42,3 % utenfor USA
Se http://www.sei.cmu.edu/sema/profile.html (oppdateres halvårlig)
INF5180
58
29
Modenhetsprofil
INF5180
59
Andre Rammeverk i ”familien”
INF5180
60
30
CMMI er ”redningen” (?)
CMMI Design spesifikasjon:
Integrere ulike modeller, eliminere inkonsistens, redusere
duplisering
Redusere kostnadene ved å implementere modell-basert
prosessforbedring
Være klargjørende og øke forståelsen ved
• felles terminologi
• konsistent stil
• uniforme strukturregler
• ha en del felles komponenter
Sikre konsistens med ISO 15504 (SPICE)
Ikke overraskende: CMMI har blitt et langt mer
omfattende og komplisert regime enn SW-CMM
INF5180
61
Overgangen fra SW-CMM til CMMI
Assessment metodene CBA IPI og SCE erstattes av SCAMPI
”To assist Capability Maturity Model® for Software (SW-CMM®) users
upgrading to the CMMI® Product Suite, the SEI has announced it will
support the use of the Standard CMMI Appraisal Method for Process
Improvement (SCAMPISM) for appraising organizations using the SWCMM starting December 1, 2003.
Support for performing SCAMPI appraisals with the SW-CMM will
expire with the sunsetting of the SW-CMM on December 31, 2005. ”
INF5180
62
31
Satse på CMMI?
SEI viser tydelig at de er ”fully committed” til
CMMI blant annet ved å åpent planlegge
utfasing av SW-CMM.
Markedet er imidlertid avventende, især de som
kun utvikler programvare. Mange roper etter
SW-CMM v2.0 (som finnes i Draft versjon, men
som ble stoppet og i stedet integrert i CMMI)
INF5180
63
Referanser
Artikler om CMM fra SEI:
http://www.sei.cmu.edu/cmm/cmm.articles.html
Offisiell CMMI hjemmeside:
http://www.sei.cmu.edu/cmmi/cmmi.html
Sun-setting of SW-CMM:
http://www.sei.cmu.edu/cmmi/adoption/sunset.html
INF5180
64
32
Download