projektide alustamine

32

Upload: abby

Post on 13-Jan-2016

55 views

Category:

Documents


5 download

DESCRIPTION

Projektide alustamine. Targo Tennisberg Arendusjuht ja isehakanud guru http://www.targotennisberg.com/tarkvara Oktoober 2008. Projektijuhtide roll. Projektijuhid pole mitte lihtsalt selleks, et klienti ja programmeerijat teineteise eest kaitsta - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Projektide alustamine
Page 2: Projektide alustamine

Projektide alustamine

Targo TennisbergArendusjuht ja isehakanud guru

http://www.targotennisberg.com/tarkvara

Oktoober 2008

Page 3: Projektide alustamine

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

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

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

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

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

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

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

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

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

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

Ä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

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

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

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

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

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

Projekti edukriteeriumid (xkcd)

Page 20: Projektide alustamine

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

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

Kontekstidiagrammi näide

Page 23: Projektide alustamine

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

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

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

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

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

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

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

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

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

Thank You. Questions?