Projektide alustamine
description
Transcript of Projektide alustamine
![Page 1: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/1.jpg)
![Page 2: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/2.jpg)
Projektide alustamine
Targo TennisbergArendusjuht ja isehakanud guru
http://www.targotennisberg.com/tarkvara
Oktoober 2008
![Page 3: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/3.jpg)
Projektijuhtide roll
Projektijuhid pole mitte lihtsalt selleks, et klienti ja programmeerijat teineteise eest kaitstaTarkvaraprojekt sisaldab põhimõtteliselt tundmatust
Muutuvad tehnoloogiad, kliendid, vahendid jneTundmatus -> ebakindlus -> risk -> vajadus riske hallataLõputult asju, mis võivad puusse minna
Peamine ülesanne enne projekti algust on riskide identifitseerimine ja maandamine
Vahe tähtajas ja eelarves lõppeva projekti ning “tahtsime parimat, aga välja tuli nagu alati” projekti vahelEnamik riske õnneks kontrollitav vastavate kontrollküsimuste nimistute abil
![Page 4: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/4.jpg)
Riskihaldus
Risk pole iseenesest midagi hirmsatRiski teadvustamine ja vastavate meetmete kasutamine on pool võitu
Riskihaldus peaks olema formaliseeritudMiinimumvariandis lihtsalt mingisse dokumenti kirja panna
Osalistel võimalik riske teadvustada
Struktuurne mehhanism probleemide ennetamiseksRiskide tõsidusega arvestamine aitab meil keskenduda õigele probleemile
Aitab arvutada õige suurusega projektilõtkuRiskide dokumenteerimine projektist projekti aitab vältida vigade kordamistVaja hoida värsket nimistut “meie top 10 riski”
![Page 5: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/5.jpg)
Projektiriskide testid
Pea igas tarkvaraarenduse / projektijuhtimise käsiraamatus on mõni test/nimistu
Lugege raamatuid Software Project Survival Guide, Steve McConnellPractical Project Initiation, Karl Wiegers
http://www.targotennisberg.com/tarkvara/survival_test.html (Steve McConnelli ainetel)http://www.targotennisberg.com/tarkvara/2008/06/06/eduka-projekti-retsept Joeli test
http://www.joelonsoftware.com/articles/fog0000000043.html
Enne projekti alustamist tuleb mõelda, kuidas neist testidest hiljem kuiva nahaga pääseda
![Page 6: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/6.jpg)
Tüüpriskid - juhtimine
Ebapiisav planeerimine ja ülesannete identifitseerimineProjektistaatuse ebapiisav läbipaistvusEbaselge projektijuhtimise ja otsuste tegemise struktuurAntud ebarealistlikud lubadusedEbarealistlike ootustega juhtkond või kliendidIsiksuste konfliktid personali hulgas
![Page 7: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/7.jpg)
Tüüpriskid - nõuded
Selge projektivisiooni puudumineNõuetealase kokkuleppe puudumineKliendi (ja kasutaja) puudulik osalus nõuete defineerimiselPrioritiseerimata nõudedEbaselgete nõuetega uus turgKiiresti muutuvad nõudedEbaefektiivne nõuete muutmise protsessNõuete muutmiste tagajärgede ebapiisav hindamine
![Page 8: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/8.jpg)
Tüüpriskid – puudulikud teadmised
Puudulik koolitusPuudulik arusaam meetoditest, vahenditest ja tehnoloogiastVähene arusaam ärilisest rakendusvallastUued tehnoloogiad või arendusmeetodidEbaefektiivne või halvasti dokumenteeritud arendusprotsess (või ignoreeritakse seda üldse)Tehnilised lähenemised, mis ei pruugi töötada
![Page 9: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/9.jpg)
Tüüpriskid – sõltuvused / liidestus
Kliendi omaloodud andmestruktuurid v –hoidladSisemised või välised allhankijadKomponentide vahelised sõltuvusedVastavate kogemustega inimeste olemasoluKomponentide taaskasutus ühest projektist teise
![Page 10: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/10.jpg)
Tüüpriskid - allhankimine
Tellija nõuded on ebaselged, valed või mittetäielikudTellija ei vasta allhankija küsimustele täielikult ja operatiivseltAllhankijal puuduvad asjakohased tarkvaraarendus- ja juhtimisprotsessidAllhankija ei tarni tähtajaks piisava kvaliteediga komponenteAllhankija ostetakse üles kellegi teise poolt, satub finantsraskustesse või lõpetab tegevuse
![Page 11: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/11.jpg)
Tüüpriskid – allhankimine 2
Allhankija annab ebarealistlikke lubadusi, et hanget saadaAllhankija ei anna projekti staatusest täpset ja operatiivset infotLepingus kirjeldatud projektiskoobi üle puhkevad vaidlusedKui allhankija asub teises riigis, võivad tekkida probleemid impordi/ekspordiseadustegaKommunikatsioon, materjalide edastamine ja edasi-tagasi sõitmine aeglustavad projekti käiku
![Page 12: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/12.jpg)
Projekti edu tagamise sammud
Eelnevalt oli juttu sellest, mis võib valesti minna, mida me saame teha, et läheks hästi?1. Defineerida ärilised eesmärgid2. Identifitseerida osapooled ja nende huvid3. Identifitseerida ja prioritiseerida projekti kitsendused4. Koguda nõuded5. Tuletada projekti edukriteeriumid6. Projekti skoop täpselt piiritleda7. Luua kirjalik projektiplaan8. Luua operatiivsete kokkulepete struktuur kliendiga9. Defineerida ja katta vastutusalad10. Defineerida projektis kasutatavad protsessid11. Luua vajalik tehniline infrastruktuur
![Page 13: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/13.jpg)
Ärilised eesmärgid
Puuduvad hämmastavalt paljudes projektidesTeeme midagi, aga keegi ei tea, miks
Peavad olema selged kõigile projekti osalistele (konsensus)SMART – Specific, Measurable, Achievable, Relevant, Time-specificNäiteid:
Saavutada X kuuga Y regioonis Z% turuosaJõuda X kuuga kasumisseTöödelda X transaktsiooni päevas Y täpsusegaRahuldada valitsuse määruses nr X toodud nõudedVähendada kasutajate teenindamiseks kuluvat aega X tunni võrra Y% juhtudest
Meie situatsioonis on eesmärgid tihti nõuete kujul (eriti riigihangetel)
Sellegipoolest oluline ärilisi eemärke mõistaKlient ei pruugi teada, mida ta tegelikult tahab
![Page 14: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/14.jpg)
Osalised ja nende huvid
Osalised on kõik, keda projekt mõjutab või kes mõjutavad projektiSisemiste osaliste näiteid:
Projektijuht, analüütikud, sponsor juhtkonnast, arendajad, testijad, IT, sisemised partnerid, omanikud, marketing, tootmine, finants, juristid, müük
Väliste osaliste näiteid:Kasutajad (otsesed ja kaudsed), tellijad, valitsuse nõuete seadjad, audiitorid, standardiorganisatsioonid, allhankijad, materjalide tarnijad, seonduvate toodete haldajad ja kasutajad, äripartnerid, avalikkus
Osalistel on soovid, eelkujundatud suhtumised, võidulävi ja piirangud, mis tuleb identifitseerida
Võivad projekti käigus muutuda – tähtsamate osalistega tuleb suhelda läbi kogu projekti
![Page 15: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/15.jpg)
Osalised ja nende huvid 2
Tuleb defineerida, kuidas me lahendame osalistevahelisi huvide konflikte
Näiteid: konsensus, erinevate kaaludega hääletamine, üks inimene on diktaator, komitee otsustab mingi analüüsi põhjalPeamine on, et me mõistame ja järgime otsustusreegleid
Kõige olulisem osaline on projekti sponsorSponsor maksab meie laste leiva eestIlma sponsorita projekt tavaliselt hävibSponsorlust tuleb hoida kogu projekti jooksul!
Tähtsamad osalised peavad olema ühel nõul järgmistes punktides:
AjakavaRessursidSkoopNõutav kvaliteet
![Page 16: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/16.jpg)
Projekti piirangud/paindlikkus
Tarkvaratootmises on alati ebakindluse aspektPaindlikkuse telgedel 1=projekti täielik ebaõnnestumine, kui piirangute piires ei tulda toimeIlma mingi paindlikkuseta projektid (väga väikese pindalaga viisnurk) ebaõnnestuvad tavaliselt
Vaja teada, mida esimesena ohverdada kui häda käesOluline tähtsamate osalistega läbi rääkida
Tähtajast mõeldakse tihti kui fikseeritud suurusestEnamasti tegelikult teatud paindlikkus
![Page 17: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/17.jpg)
Nõuded
Milleks meile nõuded?Kui me ei tea, mis on meie vajadused, siis me ei tea, millal me valmis oleme Täpsemad nõuded -> projekti tähtaja parem ennustatavus -> $$
3 nõuete tasetÄrilised
Rahuldavad ärilisi vajadusi (vt eespool)
KasutajanõudedKirjeldavad, mida peab kasutaja saama produktiga teha
FunktsionaalsedSüsteemi kirjeldus erinevates tingimustes
Kõik peavad olema kirjeldatud!
![Page 18: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/18.jpg)
Nõuded
Otsest funktsionaalsust mittepuudutavad nõudedJõudlus
Milline on maksimaalne samaaegne kasutajate arv?Milline on keskmine ühe kasutaja poolt teostatavate operatsioonide arv minutis?Millised on eeldatavad andmemahud põhitabelites? Milline on andmete hulga kasv päevas/kuus/aastas põhitabelites?Millised on enamkasutatavad operatsioonid?Millise ajaga peavad olema teostatud enamkasutatavad/tavalised operatsioonid arvestades ülaltoodud operatsioonide arve ja andmemahte?
Käideldavus: Mis on tegelik maksimaalne lubatud downtime?Kuidas mõõdame SLAle (service level agreement) vastavust? Kuidas teostatakse vigade parandust toodangus ning millised on reageerimisajad?
![Page 19: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/19.jpg)
Projekti edukriteeriumid (xkcd)
![Page 20: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/20.jpg)
Projekti edukriteeriumid
Tehnilised mõõdikud, mis on tuletatud ärilistest eesmärkidestArendajatele ei saa seada eesmärgiks “saavutada 40% turuosa”
Projektijuhtimise ülesanne on tõlkida ärilised eesmärgid tehnilisteks
Eesmärgid peavad olemaRealistlikudKvantifitseeritudBinaarselt kontrollitavad (jah/ei)
NäiteidProjekti maksumus on X% piires ettenähtud eelarvest ja tähtajastDefektide arv on <XVeebisait kannatab välja X üheaegset kasutajat keskmise viitega Y sekunditPärast koodi kliendile üleandmist ei esine üle X ärikriitilise veaKogu 1. prioriteedi funktsionaalsus antakse üle X tähtajaks
Eesmärke peab olema mõistlik hulk – tuleb prioritiseerida
![Page 21: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/21.jpg)
Skoop
Skoobikirjeldus on leping tellija ning projektimeeskonna vahel, mis kirjeldab:
Mida projektis tehakseJa ka seda, mida seal ei tehta
Piir peab olema selgelt paigasSoovitavaid muudatusi lihtne testida, kas nad on ühel või teisel pool piiri
Eriti tähtis juhul, kui projekt on vaid väike osa suurest visioonist
Uued ja uued visiooni osad “imenduvad” projekti
Skoopi hea kirjeldada kontekstidiagrammiga
Piiritleb süsteemi sisendid ja väljundid
![Page 22: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/22.jpg)
Kontekstidiagrammi näide
![Page 23: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/23.jpg)
Projektiplaan
Sagelilevinud arvamus, et igasugused plaanid ja dokumendid on mõttetu ajaraiskamine
“Hakkame parem ometi koodi kirjutama”
Plaani kirjutamine on tegelikult lihtneVõib kasutada mõnd olemasolevat plaanipõhja ja valida sealt relevantsed kohad
http://www.slideshare.net/ahmedhasan/ieee-1058-1998-software-project-management-plan/IEEE standard – väga põhjalik
Raske osa on tegelik planeerimine Kirjaliku plaani vajadus sunnib meid selle kohe ära tegemaMillalgi tuleb need küsimused niikuinii vastata ja hiljem on ajakulu palju suurem
![Page 24: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/24.jpg)
Projektiplaani osad
Kõrgtaseme ajagraafikPeamiste ülesannete kirjeldusPersonal, eelave ja muud ressursidRollid ja vastutusaladKuidas vajalikke inimesi leida ja koolitadaEeldused, sõltuvused ja riskidPeamiste komponentide kirjeldused ja tähtajadIdentifitseeritud tarkvara loomise metoodika Projekti monitoorimise protsessi kirjeldusKogutavad ja analüüsitavad mõõdikudSuhted allhankijatega
![Page 25: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/25.jpg)
Kokkulepped kliendiga
Tihedad tarnedKiire tagasiside tarnetele Tarnete paigaldusprotsess (kes paigaldab, kes ehitab, kuidas propageeritakse andmestruktuur ja andmed, etc)Tarne vastuvõtukriteeriumidKiire arendusse minevate tööde kinnitamise protsess Skoobimuudatuste haldamise protsess (funktsionaalsuse vahetamine, lisarahastus, vms)
![Page 26: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/26.jpg)
Kokkulepped kliendiga 2
Ligipääsud nende sisevõrgu ressurssideleTestkeskkond (rakendusserver, andmebaas): vähemalt logidIntegreeritavad süsteemid (AD, ERPid, vms)Taaskasutatav infoarhitektuur (kliendid, arved, kasutajad, tooted vms)
Tarnitava dokumentatsiooni nimekiri ja sisukirjeldusKes koolitab lõppkasutajaid? Ligipääs rakenduse lõppkasutajatele töö monitoorimiseks ja tagasiside saamiseks (motiveeritud inimesed)Kokkulepped kasutatavate tehnoloogiate ja teekide osas (ka siis kui kliendil on “ükskõik” tuleb “jah” sõna kätte saada)Kuupäevad, mil saame ligipääsu asjadele millest meie projekt sõltub
Kui klient neid ei pea, siis me ei garanteeri enam oma tähtaegu
![Page 27: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/27.jpg)
Vastutusalad projektis
Allpool näiteid mitmesugustest projekti tegevustestIgal tegevusel peab olema konkreetne vastutajaVastutaja peab teadma, milliste valdkondade eest ta vastutab Iga tegevus peab kajastuma projekti graafikus
TehnilisedKõrgtaseme arhitektuurTehniline (detailne) disainKoodikirjutamineDetailsete etapiviisiliste ajagraafikute koostamineInstallatsiooniprogrammi loomineVanast süsteemist andmete konverteerimineIntegreerimine (projekti omavahelised komponendid ja liidestused teiste süsteemidega)Testimine (sh funktsionaalne, suitsu-, integratsiooni-, jõudluse ja koormustestimine)DokumenteeriminePlaanide, hinnangute, arhitektuuri, disaini, etapiplaanide, koodi, testimisplaanide ülevaatusedÜlevaatuste ja testimise käigus leitud vigade parandamineVersioonikontrollisüsteemi haldamineEhitusskriptide haldamineVanade projektide toetamineHädaolukordade lahendamine
![Page 28: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/28.jpg)
Vastutusalad projektis
MittetehnilisedÜldine (tehniline ja mittetehniline) koordineerimineRiskihaldusProjektiplaani koostamine ja värskendamineProjektigraafiku jälgimineTellijaga suhtlemineLõppkasutajaga suhtlemineEtapitulemuste demonstreerimine juhtkonnale, tellijale ja kasutajateleNõuete muudatustega tegelemineMuudatuste mõju hindamine (tehnilise meeskonna poolt)Testijate küsimustele vastamineDokumenteerijate küsimustele vastamineTehnilise meeskonna koolitamineProjekti hiljem toetavate inimeste koolitamineEtapitulemuste üleandmine
![Page 29: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/29.jpg)
Protsessid projektis
Kvaliteedi tagamise protsessTehnilised ülevaatused (spetsifikatsioon, arhitektuur, kood)VeahaldusTestimismetoodika ja –põhjalikkus
Unit testingFunktsionaalne testimineIntegratsiooni testimine
Kvaliteedi tagamiseks eraldatud pädevad inimesedMitte lihtsalt kõige noorem ja vähemkogenum projekti liige
Muudatuste tegemise protsessMillise suurusega muudatusi on võimalik/lubatud tehaKes ütleb lõpliku sõna muudatuste tegemise osas
KommunikatsiooniplaanLihtne tabel: asjaosalised, kommunikatsiooniaeg ja –viisNäiteid: projekti sponsor, emailida iga 2 nädala tagant, juhtiv arendaja, koosolek igal teisipäeval, tellija esindaja, helistada esmaspäeviti ja neljapäeviti
![Page 30: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/30.jpg)
Projekti infrastruktuur ja vahendid
Enne tööleasumist tuleb planeerida ja üles seadaVersioonihalduse repositooriumÜlesannete haldus (ChangeLogic, TFS)EhitusskriptidNightly build system (kui ei kasutata ChangeLogicut)Testkeskkond (rakendusserverid, andmebaasid, muu)
KujundusTellida vajalik kujundusLõigata lahti taaskasutatavateks elementideks
![Page 31: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/31.jpg)
Kokkuvõte
Tegevusi on paljuPaljud võimalik delegeerida, aga nad peavad tehtud saamaTegevustele tuleb planeerida vastav aeg ja inimressurssTegemata tööd tuleb millalgi ikka ära teha, aga arvatavasti kallima hinnaga
![Page 32: Projektide alustamine](https://reader035.fdocuments.net/reader035/viewer/2022062314/568146f8550346895db43049/html5/thumbnails/32.jpg)
Thank You. Questions?