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
© Copyright 2024