Prosessforbedring

Kapittel 26 – Prosessforbedring
Carl-Fredrik Sørensen
http://www.youtube.com/watch?v=eMnZ-9mvH34&feature=share&list=PL8FC9429CCC6F8BC1
http://www.youtube.com/watch?v=rcJ-Lh15x8I&feature=share&list=PL8FC9429CCC6F8BC1
CMM video: http://www.youtube.com/watch?v=skfXDHfNUTI
The simple story about SPI
Devel
oper
Software
system
• Software
specification
• Software
development
• Software
validation
• Software
evolution
2
User
?
Prosess
ekspert
Innhold
•
•
•
•
•
3
Prosessforbedrings-prosessen
Prosess målinger
Prosess analyse
Prosess endring
CMMI prosessforbedrings-rammeverk
Prosessforbedring (SPI)
• Mål:
– Forbedre produktkvalitet
– Redusere kostnader
– Minske tid på programvareutvikling
• Må forstå eksisterende prosesser og kunne endre
prosessene for å oppnå målene.
4
Tilnærming til forbedring
• Prosessmodenhet – fokuserer forbedring av prosess og
prosjektstyring, og introdusere god praksis for
‘80
programvareutvikling.
– Nivå på prosessmodenhet reflekterer hvilket omfang gode
teknisk- og styringspraksiser har blitt tatt inn i organisatoriske
programvareutviklingsprosesser.
• Smidig tilnærming fokuserer på iterativ utvikling og
reduksjon av administrasjon.
‘90
– Primære karakteristikker er raske leveranser av funksjonalitet og
være mottakelig for endringer i kundekrav.
5
5
2020 – 2050
• A View of 20th and 21st Century Software Engineering,
Barry Boehm, University of Southern California,
UniversityPark Campus, Los Angeles,
[email protected]
• http://goo.gl/g2BDT
6
Prosess- og produktkvalitet
• Nært relatert! Produktkvalitet avhenger av
utviklingsprosessen.
• En god prosess er normalt påkrevd for å lage et godt
produkt.
• For industrielt fremstilte varer: prosessen er viktigste
faktor for kvalitet.
• For design-baserte aktiviteter: andre faktorer er involvert,
spesielt dyktighet til designere.
7
Factors affecting software product
quality
small projects
manufactured goods
design-based activities
For large projects
For small projects
In all cases
8
Startup Engineering
Balaji S. Srinivasan and Vijay S. Pande
Learn the engineering skills needed to build a technology startup from the ground up.
https://www.coursera.org/course/startup
Not syllabus, just something I would sign up for if I were you 
8
Kvalitetsfaktorer
• For store prosjekter med ‘gjennomsnittlig’ dyktighet på
utviklere, er produktkvaliteten bestemt av
utviklingsprosessen.
• For små prosjekter, er dyktigheten til utviklere
hovedfaktoren for produktkvalitet.
• Utviklingsteknologien er spesielt viktig for små
prosjekter.
• Uansett prosjekt, hvis en urealistisk tidsplan er pålagt, så
lider produktkvaliteten.
9
Prosessforbedrings-prosess
• Finnes ingen ‘ideell’ eller ‘standard’ programvareprosess
som passer for alle organisasjoner eller alle
programvareprodukter av en spesiell type.
– Sjelden vellykket forbedring å endre til en prosess benyttet andre
steder.
– Må alltid ta hensyn til lokale forhold og kultur for hvordan denne
blir påvirket av endringsforslag.
• Alle selskaper må utvikle sin egen prosess basert på
–
–
–
–
10
Størrelse
Bakgrunn og ferdigheter i staben
Kunde og markedskrav
Organisasjonskultur
Forbedringsattributter
• Velge hvilke aspekter av prosessen som ønskes
forbedret.
• Mål kan være å forbedre programvarekvalitet, kan da
ønske introdusere nye prosessaktivitet for å endre på
utvikling eller testing.
• Kan være interessert å forbedre et attributt i selve
prosessen, f.eks. utviklingstid. Må da bestemme hvilke
attributter som er viktigst for selskapet.
11
Prosessattributer
Process
characteristic
Key issues
Understandability To what extent is the process explicitly defined and how easy is it to
understand the process definition? Chapter 2 Software Processes
12
Standardization
To what extent is the process based on a standard generic process?
This may be important for some customers who require
conformance with a set of defined process standards. To what extent
is the same process used in all parts of a company? Chapter 24
Quality
Visibility
Do the process activities culminate in clear results, so that the
progress of the process is externally visible? Chapter 23 Project
Management
Measurability
Does the process include data collection or other activities that allow
process or product characteristics to be measured? Chapter 24
Quality and 26
Supportability
To what extent can software tools be used to support the process
activities? Chapter 25 CM
Prosessattributter
Process
characteristic
Key issues
Acceptability
Is the defined process acceptable to and usable by the engineers
responsible for producing the software product?
Reliability
Is the process designed in such a way that process errors are avoided
or trapped before they result in product errors?
Robustness
Can the process continue in spite of unexpected problems?
Maintainability
Can the process evolve to reflect changing organizational requirements
or identified process improvements?
Rapidity
How fast can the process of delivering a system from a given
specification be completed?
Prosessstabilitet
13
Kapittel 26 – Prosessforbedring
Carl-Fredrik Sørensen
Steg i prosessforbedring
• Prosessmåling
– Attributter av nåværende prosess blir målt. Utgangspunkt for å
vurdere forbedringer.
• Prosessanalyse
– Nåværende prosess blir vurdert der flaskehalser og svakheter
blir identifisert.
• Prosessendring
– Introdusere endringer til prosessen som er blitt identifisert
gjennom analysen.
15
The process improvement cycle
?
16
Prosess
ekspert
16
Prosessmålinger
• Kvantitative data bør samles inn hvor mulig
– Kan være vanskelig dersom organisasjoner ikke har klart
definerte prosesstandarder. En prosess må kanskje være
definert før målinger er mulig.
• Prosessmålinger bør brukes til å vurdere
prosessforbedringer
– Målinger bør ikke drive forbedringer. Driver for forbedringer bør
være organisatoriske mål.
17
Prosessmetrikk
• Tidsforbruk for ferdigstillelse av prosessaktiviteter
– F.eks. Kalendertid eller forbrukt tid til å ferdigstille en aktivitet
eller prosess.
• Resursser påkrevd for prosesser eller aktiviteter
– F.eks. Totalt forbruk tid i persondager.
• Antall forekomster av en spesifikk hendelse
– F.eks. Antall oppdagede defekter/feil.
18
Kapittel 26 – GQM
Carl-Fredrik Sørensen
Goal-Question-Metric Paradigm (GQM)
• Goals
– Hva ønsker organisasjonen å oppnå? Hensikten med
prosessforbedring er å tilfredstille disse målene.
• Questions
– Spørsmål om usikre områder knyttet til målene. Behov for
prosesskunnskap for å utlede disse.
• Metrics
– Målinger som skal samles for å svare på spørsmålene.
20
GQM spørsmål
• GQM paradigmen blir benyttet i prosessforbedring for å
hjelpe til med å svare på tre kritiske spørsmål:
– Hvorfor introduseres prosessforbedring?
– Hvilken informasjon er det behov for, for å hjelpe til å identifisere
og vurdere forbedringer?
– Hvilke prosess og produktmålinger er påkrevd for å sørge for
denne informasjonen?
21
The GQM paradigm
22
Kapittel 26 – Prosessanalyse og endring
Carl-Fredrik Sørensen
Measure
Prosessanalyse
Change
Analyse
• Studiet av eksisterende prosesser for å forstå
sammenhengene mellom deler av prosessen og
sammenligne disse til andre prosesser..
• Prosessanalyse og prosessmåling er sammenflettet.
– Utføre noe analyse for å vite hva som skal måles.
– Ved måling utvikles en dypere forståelse av den målte
prosessen.
24
Hensikt med prosessanalyse
• Forstå aktivitetene involvert i prosessen og relasjoner
mellom disse.
• Forstå sammenhengene mellom prosessaktiviteter og
målingene som er blitt foretatt.
• Relatere spesifikke prosess(er) som analyseres til
sammenlignbare prosesser andre steder i
organisasjonen, eller ifht. en idealisert prosess av
samme type.
25
Teknikker for prosessanalyse
• Publiserte prosessmodeller og prosesstandarder
– Best å starte en prosessanalyse med en eksisterende modell.
Denne kan utvides eller endres.
• Spørreskjemaer og intervjuer
– Må designes varsomt. Deltakere kan fortelle hva de tror man
ønsker å høre.
• Etnografisk analyse
– Involverer å samle prosesskunnskap gjennom observasjon.
Passer best for dybdeanalyse av prosessfragmenter framfor
forståelse av hele prosessen.
26
Aspekter av prosessanalyse
Process
aspect
Adoption and
standardization
Software
engineering
practice
Organizational
constraints
27
Questions
Is the process documented and standardized across the
organization? If not, does this mean that any measurements
made are specific only to a single process instance? If processes
are not standardized, then changes to one process may not be
transferable to comparable processes elsewhere in the company.
Are there known, good software engineering practices that are
not included in the process? Why are they not included? Does the
lack of these practices affect product characteristics, such as the
number of defects in a delivered software system?
What are the organizational constraints that affect the process
design and the ways that the process is performed? For example,
if the process involves dealing with classified material, there may
be activities in the process to check that classified information is
not included in any material due to be released to external
organizations. Organizational constraints may mean that possible
process changes cannot be made.
Aspekter av prosessanalyse
Process aspect
Questions
Communications
How are communications managed in the process? How do
communication issues relate to the process measurements that have
been made? Communication problems are a major issue in many
processes and communication bottlenecks are often the reasons for
project delays.
Is the process reflective (i.e., do the actors involved in the process
explicitly think about and discuss the process and how it might be
improved)? Are there mechanisms through which process actors can
propose process improvements?
How do people joining a development team learn about the software
processes used? Does the company have process manuals and
process training programs?
What aspects of the process are and aren’t supported by software
tools? For unsupported areas, are there tools that could be deployed
cost-effectively to provide support? For supported areas, are the tools
effective and efficient? Are better tools available?
Introspection
Learning
Tool support
28
Prosessmodeller
• En god måte å fokusere oppmerksomhet på aktiviteter i
en prosess og overføring av informasjon mellom disse
aktivitetene.
• Prosessmodeller trenger ikke å være formelle eller
komplette – hensikten er å stimulere diskusjon enn å
detaljert dokumentasjon.
• Modellorienterte spørsmål kan bli benyttet til forståelsen
f.eks..
– Hvilke aktiviteter gjøres i praksis, men er ikke vist i modellen?
– Er det aktiviteter i modellen som er ineffektive?
29
Prosessunntak
• Programvareprosesser er komplekse og
prosessmodeller er ikke effektivt i stand til å håndtere
unntak:
– Nøkkelpersonell er syk rett før en kritisk revisjon;
– Sikkerhetsbrudd som gjør at ekstern kommunikasjon er umulig
for flere dager;
– Reorganisering i organisasjonen;
– Behov for å respondere på en uventet forespørsel om nye
forslag.
• Slike situasjoner kan medføre at modellen kortsluttes
hvor man prøver å håndtere avviket.
30
Prosessendring
• Involverer å gjøre endringer i eksisterende prosesser.
• Dette kan være:
–
–
–
–
Introdusere ny praksiser, metoder og metoder;
Endre rekkefølge på prosessaktiviteter;
Introdusere eller fjerne leveranser;
Introdusere nye roller eller ansvarsområder.
• Endring bør være drevet av målbare målsetninger.
31
Prosessen for prosessendring
32
Steg i prosessendring
• Identifisere forbedring
– Benytter resultater fra prosessanalysen for å identifisere måter å
håndtere kvalitetsproblemer, flaskehalser eller
kostineffektiviteter.
• Prioritere forbedring
– Umulig å introdusere alle mulige endringer, må bestemme hvilke
som er mest viktig.
• Introdusere prosessendring
– Implementere nye prosedyrer, metoder og verktøy og integrere
disse med andre prosessaktiviteter.
33
Steg i prosessendring
• Trening i prosessendringen
– Umulig å få full effekt av endring uten trening. Involverte må
forstå endringene og hvordan utføre nye eller endrede
prosesser.
• Finjustere endringer
– Sjelden at foreslåtte endringer er effektiv fra start. Viktig å ha en
justeringsfase for å oppdage små problemer og forslag til
prosessen kan bli foreslått og introdusert.
34
Problemer i prosessendring
• Motstand mot endringer
– Vanlig med motstand med argumenter hvorfor ting ikke vil
fungerer, eller at det aktivt gjøres
utsettelser/sabotasje/mistolkning på endringer og effekten av
disse.
• Endringspersistens
– Introduksjon til endringer som etter en tid blir forkastet og
prosesser går tilbake til tidligere tilstand.
35
Kapittel 26 – CMMI
Carl-Fredrik Sørensen
CMM video: http://www.youtube.com/watch?v=skfXDHfNUTI
CMMI Rammeverk for prosessforbedring
• http://www.sei.cmu.edu/cmmi
• CMMI-rammeverket er nåværende tilstand på arbeid på
prosessvurdering og forbedring som startet av Software
Engineering Institute på 1980-taller.
• SEI’s misjon er å promotere overføring av
programvareteknologi, spesielt til kontraktører til US
defence kontraktører.
• Har hatt en tung medvirkning til prosessforbedring
– Capability Maturity Model, introdusert tidlig i 1990-tallet.
– Revised maturity framework (CMMI) introdusert i 2001.
37
SEI capability maturity model – CMM
• Initial – Initiell
– Stort sett ukontrollert (Essentially uncontrolled)
• Repeatable – Repeterbar
– Prosedyrer for produktstyring definert og brukt
• Defined – Definert
– Prosedyrer for prosesstyring og strategier definert og brukt
• Managed – Styrt
– Strategier for kvalitetsstyring definert og brukt
• Optimising – Optimaliserende
– Strategier for prosessforbedring definert og brukt
38
Vurdering av prosess-kapabilitet
• Formål å vurdere i hvilket omfang prosesser i en
organisasjon følger beste praksis.
• Ved å tilby en måte å gjøre vurderinger, så er det mulig
identifisere svake områder som kan forbedres.
• Det finnes flere prosessvurderings og
forbedringsmodeller, men SEI har vært mest
innflytelsesrik.
39
CMMI-modellen
• En integrert kapabilitetsmodell som inkluderer vurdering
av kapabiliteter for programvare og systems engineering.
• Har to instanser
– Nivådelt hvor modellen er uttrykt gjennom kapabilitetsnivåer;
– Kontinuerlig hvor en kapabilitetsrangering blir beregnet.
40
CMMI modellkomponenter
• Prosessområder
– 22 prosessområder som er relevant for identifisering av
prosesskapabilitet og forbedring. Disse er inndelt i fire grupper.
• Mål
– Mål er beskrivelser av ønskede tilstander i en organisasjon.
Hvert prosessområde har assosierte mål.
• Praksiser
– Praksiser er måter å oppnå et mål – disse er rådgivende slik at
andre fremgangsmåter kan benyttes for å oppnå et mål.
41
Prosessområder i CMMI
Category
Process area
Process management
Organizational process definition (OPD)
Book Ch 2
Organizational process focus (OPF)
Organizational training (OT)
Organizational process performance (OPP)
Organizational innovation and deployment
(OID)
Project management
Project planning (PP)
Project monitoring and control (PMC)
Supplier agreement management (SAM)
Integrated project management (IPM)
Risk management (RSKM)
Quantitative project management (QPM)
42
Book Part 4
Prosessområder i CMMI
Category
Process area
Engineering
Requirements management (REQM)
Requirements development (RD)
Technical solution (TS)
Book Part 1
Product integration (PI)
Verification (VER)
Validation (VAL)
Support
Configuration management (CM)
Process and product quality management (PPQA)
Measurement and analysis (MA)
Decision analysis and resolution (DAR)
Causal analysis and resolution (CAR)
43
Book Part 4
Mål og assosierte praksiser i CMMI
Goal
The requirements are analyzed and
validated, and a definition of the
required functionality is developed.
Associated practices
Analyze derived requirements systematically to ensure that
they are necessary and sufficient.
Validate requirements to ensure that the resulting product will
perform as intended in the user’s environment, using multiple
techniques as appropriate.
Root causes of defects and other
problems are systematically
determined.
Select the critical defects and other problems for analysis.
Perform causal analysis of selected defects and other
problems and propose actions to address them.
The process is institutionalized as a
defined process.
44
Establish and maintain an organizational policy for planning
and performing the requirements development process.
Eksempler på mål i CMMI –
prosessområder
Man har et system for å sette i gang tiltak når resultater ikke er som forventet (avvik)
Goal
Process area
Corrective actions are managed to closure Project monitoring and control (specific
when the project’s performance or results goal)
deviate significantly from the plan.
Actual performance and progress of the Project monitoring and control (specific
project are monitored against the project goal)
plan.
The requirements are analyzed and Requirements development (specific goal)
validated, and a definition of the required
functionality is developed.
Root causes of defects and other problems Causal analysis and resolution (specific
are systematically determined.
goal)
The process is institutionalized as a defined Generic goal
process.
45
CMMI vurdering
• Undersøker prosessene benyttet i organisasjonen og
vurderer modenhet i hvert prosessområde.
• Basert på en 6-punktsskala:
–
–
–
–
–
–
46
Not performed;
Performed;
Managed;
Defined;
Quantitatively managed;
Optimizing.
The CMMI staged maturity model
Prosessområde (managed)
Kravstyring;
Prosjektplanlegging;
Prosjektmonitorering og kontroll;
Styring av leverandørkontrakter;
Måling og analyse;
Prosess- og produktskvalitetssikring.
Each maturity level has process areas and goals.
47
47
Institusjonelle praksiser
• Institusjoner som opererer på styrt/”managed” nivå. Bør
ha praksiser som er rettet mot standardisering.
– Etablere og vedlikeholde politikk for utføring av
prosjektstyringsprosessen;
– Sørge for tilstrekkelige ressurser for å utføre
prosjektstyringsprosessen;
– Overvåke og kontrollere prosjektplanleggingsprosessen;
– Revidere aktivitetene, status og resultater fra
prosjektplanleggingsprosessen.
48
Den kontinuerlige CMMI-modellen
• Finkornet model om betrakter individuelle eller grupper
av praksiser og vurdere bruken av disse.
• Modenhetsvurderinger er ikke en enkelt verdi, men et
sett av verdier som viser organisasjonens modenhet i
hvert område.
• CMMI rangerer hvert prosessområde fra nivå 1 til 5.
• Fordel er at organisasjoner kan velge prosessområder
for forbedring ifht. lokale behov.
49
A process capability profile
50
50
Kap. 26 – Mer om prosessforbedring
Carl-Fredrik Sørensen
Motstand mot endringer
• Project managers often resist process change because
any innovation has unknown risks associated with it.
– Project managers are judged according to whether or not their
project produces software on time and to budget. They may
prefer an inefficient but predictable process to an improved
process that has organizational benefits, but which has shortterm risks associated with it.
• Engineers may resist the introduction of new processes
for similar reasons, or because they see these
processes as threatening their professionalism.
– That is, they may feel that the new pre-defined process gives
them less discretion and does not recognize the value of their
skills and experience.
52
Endringspersistens
• The problem of changes being introduced then
subsequently discarded is a common one.
– Changes may be proposed by an ‘evangelist’ who believes
strongly that the changes will lead to improvement. He or she
may work hard to ensure the changes are effective and the new
process is accepted.
– If the ‘evangelist’ leaves, then the people involved may therefore
simply revert to the previous ways of doing things.
• Change institutionalization is important
– This means that process change is not dependent on individuals
but that the changes become part of standard practice in the
company, with company-wide support and training.
53
Den nivådelte CMMI-modellen
• Sammenlignbar med programvare CMM.
• Hvert modenhetsnivå har prosessområder og mål.
Prosessområdet assosiert med styrt nivå inkluderer
f.eks. :
–
–
–
–
–
–
54
Kravstyring;
Prosjektplanlegging;
Prosjektmonitorering og kontroll;
Styring av leverandørkontrakter;
Måling og analyse;
Prosess- og produktskvalitetssikring.
Key points
• The goals of process improvement are higher product quality,
reduced process costs and faster delivery of software.
• The principal approaches to process improvement are agile
approaches, geared to reducing process overheads, and maturitybased approaches based on better process management and the
use of good software engineering practice.
• The process improvement cycle involves process measurement,
process analysis and modeling, and process change.
• Measurement should be used to answer specific questions about
the software process used. These questions should be based on
organizational improvement goals.
55
Key points
• The CMMI process maturity model is an integrated
process improvement model that supports both staged
and continuous process improvement.
• Process improvement in the CMMI model is based on
reaching a set of goals related to good software
engineering practice and describing, standardizing and
controlling the practices used to achieve these goals.
• The CMMI model includes recommended practices that
may be used, but these are not obligatory.
56