340 likes | 564 Views
Programų sistemų inžinerija. Saulius Ragaišis , VU MIF saulius.ragaisis@mif.vu.lt. Projektas PKP Branda. Projektas, laimėjęs Lietuvos valstybinio mokslo ir studijų fondo konkursą pagal programą "Aukštųjų technologijų plėtros programa“.
E N D
Programų sistemų inžinerija Saulius Ragaišis, VU MIF saulius.ragaisis@mif.vu.lt
Projektas PKP Branda • Projektas, laimėjęs Lietuvos valstybinio mokslo ir studijų fondo konkursą pagal programą "Aukštųjų technologijų plėtros programa“. • Programos tikslas – didinti Lietuvos pramonės tarptautinį konkurencingumą. • Projektų vertinimo kriterijai: • numatoma projekto ekonominė nauda, įtaka tos aukštųjų technologijų srities pažangai, gamybos apimčių ir eksporto augimo bei kitų rodiklių prasme; • ...
Projektas PKP Branda (2003-2005 m.) Pilnas pavadinimas: Brandaus programų kūrimo proceso įdiegimo metodikos ir instrumentinių priemonių sukūrimas. Santrumpa: PKP Branda. Vykdytojai: Vilniaus universitetas, Kauno technologijos universitetas, AB "Alna“, UAB "Sintagma“. Pagrindinis projekto tikslas: sudaryti prielaidas Lietuvos informacinių technologijų įmonėms eksportuoti programinius produktus bei paslaugas, suteikiant joms metodines ir instrumentines priemones, padedančias vertinti, apibrėžti ir įdiegti brandų (kokybišką) programų kūrimo procesą, leisiantį kurti aukštesnės kokybės programinius produktus ir paslaugas ir kurį galima būtų sertifikuoti pagal tarptautiniu mastu pripažįstamus standartus, tokiu būdu skleidžiant informaciją užsienyje apie Lietuvos įmonių pasiektą kokybės lygį.
Pagrindiniai projekto rezultatai • Metodiniai: programų kūrimo procesų modelis ir brandaus programų kūrimo proceso įdiegimo metodika. • Technologiniai: sukurtos brandaus programų kūrimo proceso įdiegimo ir palaikymo instrumentinės priemonės. • Moksliniai: projekto moksliniai rezultatai paskelbti 10 straipsnių, padaryti 27 pranešimai mokslinėse konferencijose. • Sklaida: surengti 2 seminarų ciklai asociacijos “Infobalt” vykdomo projekto “Outsource 2 Lithuania” dalyviams. • Vykdant projektą, realiai įgyvendintas akademinių institucijų ir gamybinių įmonių bendradarbiavimas. • Projekto rezultatai viešai prieinami: www.mif.vu.lt/se/Branda/
Programų kūrimo proceso modelis Projekto PKP Branda vykdymo laikotarpiu įvyko esminė evoliucija programų kūrimo proceso vertinimo ir gerinimo standartizacijoje: procesų gebėjimo vertinimui turi būti naudojamas dvidimensinis modelis, tenkinantis ISO/IEC 15504-2 reikalavimus procesų gebėjimo vertinimo modeliui. Pagrindinis reikalavimas naudojamam vertinimo modeliui yra gebėjimo dimensijoje apimti ištisinę sritį, pradedant pirmuoju lygiu, o procesų dimensijoje apimti bent vieną vertinamą procesą. Projekto eigoje buvo sukurtos 3 programų kūrimo procesų modelio versijos. Programų kūrimo procesų modelio PKP Branda versija 3 atitinka procesų dimensiją ISO/IEC 12207:2002 ir tenkina ISO/IEC 15504-2 reikalavimus procesų gebėjimo vertinimo modeliui (ji artima pavyzdiniam programų kūrimo proceso vertinimo modeliui ISO/IEC 15504-5, kuris buvo išleistas vėliau).
Brandaus programų kūrimo proceso įdiegimo metodika Brandaus programų kūrimo proceso įdiegimo metodika „Branda” siekia suderinti ir perimti teigiamus bruožus dviejų pagrindinių programų kūrimo proceso vertinimo ir gerinimo modelių: • CMM, CMMI • SPICE, ISO/IEC 15504 CMM, CMMI pateikia standartinį programų kūrimo proceso gerinimo kelią, tenkinantį 80% įmonių, ir apibrėžia pagrindinius etapus tame gerinimo kelyje, vadinamus brandos lygiais. Brandos lygiai turi labai didelę marketinginę vertę, dėl kurios įmonės netgi dalinai aukoja pagrindinį tikslą – proceso gerinimą. SPICE, ISO/IEC 15504 įgalina individualizuoti ir fiksuoti įmonės programų kūrimo proceso vertinimo ir gerinimo veiklą, nustatyti programų kūrimo vardinių procesų gebėjimo detalų profilį ir detalius gerinimo žingsnius. Tačiau modelis nepateikia įmonės proceso gerinimo gairių.
Situacija Lietuvoje Daugumos Lietuvos informacinių technologijų įmonių programų kūrimo procesas yra nebrandus, chaotiškas ir neprognozuojamas, vykdomi projektai nuolatos slegiami artėjančių terminų...
„Aksioma” Vienintelis realus brandaus programų kūrimo proceso diegimo kelias yra nuolatinis įmonės proceso gerinimas.
Kokybės sudedamosios dalys Žmonės Technologijos Procesas
Proceso gerinimo pagrindiniai principai • Didieji programų kūrimo proceso pakeitimai turi prasidėti nuo aukščiausio lygmens vadovybės • Visi turi būti įtraukti • Efektyvūs pakeitimai reikalauja tikslų ir esamo proceso žinojimo • Pakeitimai turi būti nuolatiniai • Proceso pakeitimai nebus išlaikyti be nuolatinių pastangų • Programų proceso gerinimui reikalingos investicijos
Klaidingos nuostatos apie procesą • Projektas pradedamas, kai žinomi tikslūs reikalavimai • Jei praėjo testavimą, tai nėra klaidų • Programų kokybės negalima išmatuoti • Problemų prigimtis – techninė • Reikia geresnių žmonių • Programų kūrimo valdymas yra kitoks
Pasipriešinimo proceso keitimui priežastys • Profesionalai mano, kad problemos yra techniškai išsprendžiamos • Vadybininkai nesupranta problemų esmės ir mano, kad problemos yra techninės • Nusistatymas prieš taisykles, ypač „svetimas”
Proceso keitimo strategija • „Atšildymas” - Čempionai, Sponsoriai, Agentai • Pakeitimas - Planavimas, Įgyvendinimas, Paskleidimas • „Užšaldymas” - Užtikrinti, kad pasiekimai bus išlaikyti organizacijoje
Pagrindiniai proceso gerinimo žingsniai 1. Poreikių ir tikslų identifikavimas(Examine Organization’s Needs) 2. Proceso gerinimo inicijavimas(Initiate Process Improvement) 3. Proceso vertinimas(Perform Process Assessment) 4. Vertinimo rezultatų analizė ir veiksmų plano sudarymas(Analyze Results and Derive Action Plan) 5. Gerinimo veiksmų įgyvendinimas(Implement Improvement Actions) 6. Proceso pakeitimų analizė(Confirm the Improvement) 7. Pagerinto proceso įtvirtinimas(Sustain Improvement Gain) 8. Proceso vykdymo stebėjimas(Monitor Performance)
Poreikių ir tikslų identifikavimas • organizacijos poreikių ir verslo tikslų analizė • identifikavimas proceso gerinimo poreikio ir ko bus siekiama • galimos proceso gerinimo priežastys:- užsakovų nepasitenkinimas dėl projektų vėlavimo- kokybės problemos dėl defektų pateiktuose projektuose- per dideli kaštai- noras pagerinti resursų naudojimąir kt. • šis žingsnis kiekvienoje gerinimo ciklo iteracijoje nebūtinas, bet organizacijos poreikiai ir verslo tikslai gali keistis, todėl laikas nuo laiko jie turėtų būti peržiūrėti ir prireikus atnaujinti
Proceso gerinimo inicijavimas • atskiras projektas, kurio tikslas yra atlikti proceso gerinimo ciklo iteraciją; projekto įgyvendinimui būtina:- paskirti reikalingus resursus- sudaryti projekto planą • atliekant proceso gerinimą pirmą kartą:• susipažinimas su naudojamu proceso modeliu;• pradinis einamojo organizacijos proceso apibrėžimas – tipinių organizacijos projektų gyvavimo ciklo modelis, nurodant:- vykdomus procesus, jų bazines praktikas, - naudojamus ir sukuriamus darbo produktus bei jų charakteristikas (aprašymus)
Proceso vertinimas Vertinimo apimties nustatymas: - kam bus taikoma (visai organizacijai, padaliniui) - kokie procesai ir iki kurio gebėjimo lygio bus vertinami Lietuvoje yra aktualu visų pirma gerinti programinės įrangos gyvavimo ciklo pagrindinius (inžinerinius) procesus. Kad programinės įrangos kūrimo inžineriniai procesai galėtų pasiekti antrą gebėjimo lygį, yra būtina, kad jų atlikimą paremtų organizacinių procesų ir pagalbinių procesų kategorijų procesai.
Minimalus „bendras” vertinamų procesų rinkinys Neįtraukti inžineriniai procesai: ENG.2 Sistemos reikalavimų analizė ENG.3 Sistemos architektūros projektavimas ENG.9 Sistemos integravimas ENG.10 Sistemos testavimas
Naudojama vertinimo modelio gebėjimo dimensija Daugumos Lietuvos IT įmonių tiksliniu procesų gebėjimo profiliu artimiausių 2-3 metų laikotarpiui yra: inžinerinių procesų antras gebėjimo lygis ir pagalbinių bei organizacinių procesų pirmas gebėjimo lygis.
Vertinimo rezultatų analizė ir veiksmų plano sudarymas Vertinimo rezultatas – procesų gebėjimo profilis. Pagal organizacijos poreikius ir verslo tikslus bei faktinį procesų gebėjimo profilį sudaromas tikslinis procesų gebėjimo profilis, nurodant reikiamus procesus ir siekiamas jų gebėjimo atributų reikšmes. Veiksmų plano sudarymo pagrindiniai principai:- siekiant proceso 1-o gebėjimo lygio, remiamasi proceso modelyje šiam procesui apibrėžtomis bazinėmis praktikomis ir darbo produktais - siekiant 2-o ir aukštesnio gebėjimo lygio, remiamasi proceso modelyje su siekiamo gebėjimo lygio atributais asocijuotais procesais Veiksmų plane nurodoma ne tik gerinimo veiksmų seka, bet ir apibrėžiamos proceso efektyvumo metrikos nustatytų gerinimo tikslų pasiekimui matuoti bei siekiami atitinkamų metrikų įvertinimai.
Gerinimo veiksmų įgyvendinimas • vadovybės pritarimas veiksmų plano įgyvendinimui • pakeitimai turi būti palaipsniniai, evoliuciniai • gali būti inicijuoti keli lygiagretūs proceso gerinimo projektai • taikymas ne kritiniuose projektuose • pakeisto proceso efektyvumo matavimai • turi būti „renkamos”kylančios problemos • vykdymas kaip „normalaus” projekto (pagal planą)
Proceso pakeitimų analizė Pakeisto programų kūrimo proceso efektyvumo analizė. Analizės metu nustatoma, ar proceso gerinimo iteracijos tikslai pasiekti (t.y. ar atitinkami efektyvumo metrikų įvertinimai atitinka veiksmų plane nustatytus tų metrikų įvertinimus), įvertintas pašalinis poveikis. Jei gerinimo tikslai pasiekti nebuvo, tai analizuojamos priežastys, atliekamas proceso vertinimas, nustatomi nauji, gal būt mažesni (ne tokie ambicingi) gerinimo tikslai, ir sudaromas naujas veiksmų planas, tiems tikslams pasiekti.
Pagerinto proceso įtvirtinimas Jei gerinimo veiksmai buvo sėkmingai įdiegti ir nustatyti gerinimo tikslai pasiekti, tai turi būti atliekamos įdiegtų gerinimo veiksmų įtvirtinimo veiklos, kurios užtikrintų jog pasiektas proceso lygis nebūtų prarastas ir gerinimo veiksmai „prigis” organizacijoje: naujo proceso institucionalizavimas.
Proceso vykdymo stebėjimas Programų kūrimo proceso vykdymas turi būti nuolat stebimas, jo efektyvumas matuojamas, keliami nauji gerinimo tikslai ir inicijuojami nauji proceso gerinimo projektai. Turi būti surinkta patirtis iš proceso gerinimo projekto dalyvių ir asmenų, kuriuos palietė proceso pakeitimai.
Metodikos apibendrinimas Sukurta brandaus programų kūrimo proceso įdiegimo metodika: • Suderinama su ISO/IEC 15504:2003-2005 • Suderinama su ISO/IEC 12207:2002 amd1 ir ISO/IEC 12207:2004 amd2 • Išbandyta įmonėse AB „Alna” ir UAB „Sintagma” • Sudaryti tipiniai Lietuvos IT įmonių projektų vykdymo modeliai • Nustatyta atitinkamybė tarp CMMI brandos lygių ir ISO/IEC 15504 procesų gebėjimo profilių
Brandaus programų kūrimo proceso įdiegimo ir palaikymo instrumentinės priemonės PKP Branda projekto metu sukurtos programų kūrimo proceso vertinimo ir gerinimo palaikymo instrumentinės priemonės. Jas galima išbandyti: proin.ktu.lt/pkp/pkbm/ Instrumentinės priemonės turi apimti: - Modelio medžiagos pateikimo priemones; - Organizacijos proceso apibrėžimo ir pavaizdavimo priemones; - Proceso nuolatinio matavimo duomenų surinkimo priemones; - Proceso vertinimo priemones; - Apsikeitimo proceso vertinimo duomenimis priemones; - Apmokymo priemones.
Projekto informacija Svečiui prieinama informacija Kalbos pasirinkimas Atverti prisijungimo puslapį Pradinis sistemos puslapis
Trečias žingsnis: atliekamas greitasis vertinimas įrašant reikšmes procesų atributams Paspaudus mygtuką Atnaujinti išsaugomi daryti keitimai Puslapio vertinimas iliustracija
Esminis funkcionalumas • Naudodamiesi instrumentinėmis priemonėmis naudotojai gali: • 1. Pasirinktoje vietoje ir tinkamu laiku įvesti į sistemą vertinimų duomenis. • 2. Naudotis nutolusia modelio informacijos teikimo paslauga, gaunant aktualią modelio medžiagą, atnaujinamą modelio kūrėjų. • 3. Pagal įvestus vertinimų duomenis atlikti analizę, esant poreikiui analizuoti skirtingus vertinimus. • 4. Lanksčiai kurti ataskaitas, įtraukiant pasirenkamus vertinimų komponentus ir išsaugoti jas ofiso programų formatais. • Kurti savo programinę aplinką, naudojant išplėtimo API. • Sukurtos brandaus programų kūrimo proceso diegimo ir palaikymo instrumentinės priemonės turi pranašumų prieš žinomus komercinius ir atvirojo kodo analogus, kurios gali būti išvystytos į konkurencingą programų kūrimo industrijoje įrankį.