Archive for the 'Projektijuhtimine' Category

Feb 27 2010

Veel IT-st ja kommunikatsioonist

Published by Targo under Projektijuhtimine

science_communication

Jätkuks eelmisele artiklile rääkisin SMITis eelmise aasta lõpupoole veel IT ja kommunikatsiooni teemal, refereerin erinevaid noppeid siin.

Fiasko näide: FBI Virtual Case File System

FBI infosüsteemist on ka varem juttu olnud, kuid meenutan põhilisi fakte:

  • Projekt kestis 2000-2005
  • Osa kolmeosalisest (riistvara, tarkvara ja arvutivõrk) projektist Trilogy
  • Trilogy planeeritud maksumus $380M, tegelikult kulus üle $600M, sellest tarkvarale $170M – kõik maksumaksja raha (võrdle Eesti eelarvetega!)
  • Riistvara ja võrgu hange õnnestusid üldjoontes (kuigi teatava ülekuluga)
  • Tarkvaraprojekt katkestati viie aasta möödumise järel

Miks projekt ebaõnnestus? Põhjustena on mainitud:

  • Puudulik spetsifitseerimine
  • Korduvad spetsifikatsioonimuudatused
  • Korduvad juhtkonnavahetused
  • Mikromanageerimine
  • Brooks’i seadus – hilinevale projektile inimeste lisamine suurendab hilinemist
  • Tarnija ei kutsunud klienti korrale
  • Klient sekkus “kuidas” küsimustesse, selle asemel, et piirduda “mida-ga”

Paneme tähele, et ükski ebaõnnestumise põhjustest polnud tehnoloogiline, kõigi puhul oli tegemist kommunikatsiooniprobleemidega!

Tulemuseks oli, et 11. septembril 2001 saatsid FBI agendid kahtlusaluste fotosid ja muud materjali endiselt faksi või kirja teel kuna puudusid piisavalt turvalised, heakskiidetud ja põhisüsteemiga liidestatud e-maili saatmise võimalused. Arvestades veel asjaolu, et juba ammu enne projekti algust olid FBI süsteemid lootusetult vananenud, oleks efektiivsem IT ehk üldse rünnakuid vältida aidanud ning maailm oleks tänapäeval hoopis teistsugune.

Möödarääkimise näide: erinevad edukriteeriumid

Tänapäeval on popp rääkida, kuidas IT-ettevõtted pakuvad teenust. Aga mida see tähendab? Vaatleme üht teist teenust: reisilennundust.

airline_ad

Nägin kunagi lennufirmade juhtide arvamusküsitlust, kus nad leidsid, et teenusekvaliteedil pole viga midagi, tuues argumentidena:

  • Inimesed saavad (üldjuhul) punktist A punkti B
  • Lennukid ei kuku (tavaliselt) alla
  • (Liiga palju) lende ei katkestata

Ja ongi kõik korras!?

flying_coach

Tegelikus elus olen mina ilmselt üks miljonitest ja miljonitest inimestest, kes lendamist vihkavad. Minu (üldse mitte ülinõudlikud) edukriteeriumid on hoopiski:

  • Lend on mugav (sealhulgas ka lennueelne ja -järgne kogemus!)
  • Ma ei kannata liigset kahju (lennud ei hiline, minu pagas ei lähe kaduma)
  • Teenus on terviklik (praegu pean lennujaama, lennuki, pagasi, lennujaamatranspordi jne osas eri inimetega sekeldama)

Viimasele aspektile on mõned nišitegutsejad ka pihta saanud. Nt Virgin pakub täisteenust koduuksest koduukseni ja saab selle eest ka oluliselt kõrgemat hinda küsida.

Samamoodi on tarkvaraturul tellija jaoks tohutu piin tegeleda eraldi riistvara, hostingu ja tarkvara pakkujatega selle asemel, et ühest ja samast kohast täisteenust saada.

Telefonimängu näide

telephone_game

Kommentaarid on vist liigsed, me kõik oleme sarnases situatsioonis olnud.

telephone_game2

Või siis mustema huumoriga näide. Aga eks sedagi ole piisavalt juhtunud, et projektist on mingid inimesed lahkunud ja seejärel “eit teadis, aga eit suri ära”.

Prioriteetide näide: erinevad soovid

See kolmnurk on ilmselt kõigile tuttav:

time_scope_quality

Teooria ütleb, et meil pole võimalik kõiki kolme tippu korraga fikseerida, kusagile peab jääma mingi vabadusaste. Tegelikkuses aga nõuab tellija, et kõik peab nui neljaks fikseeritud olema.

Ja tulemuseks on, et:

  • Kui kõik on prioriteet siis tegelikult pole ükski asi prioriteet
  • Antakse järele aspektis, mis on raskemini mõõdetav, ehk siis kvaliteedis.

Komplitseeriva asjaoluna on meil tihti mitmed huvigrupid, igaüks tirimas projekti erinevas suunas.

swan-and-pike-and-crab

Positiivsem näide: Microsoft Office

Office’i divisjon Microsoftis kasutab ülaltoodud probleemide vältimiseks üsnagi drakoonilist prioritiseerimist:

  • Tähtaeg on kuningas
  • Järgmise Office’i versiooni tähtajad võivad olla 2 aastat ette fikseeritud
  • Mitukümmend allüksust elab sama rütmi järgi (planeerimine, analüüs, disain, koodikirjutamine, stabiliseerimine, beeta, release)
  • Kui tähtaja ja kvaliteedi kriteeriume mingis etapis ei saavutata, jäetakse vastav feature lihtsalt tootest välja

Muidugi ei pea iga tarkvara just niiviisi tegema, aga vähemalt on siin ranged reeglid, mille järgi tegutseda ja edu saavutada.

Microsofti DNAs on üldse väga tähtsal kohal idee sellest, et “teeme asjad ära”. Mul endal on mälestuseks näiteks selline jurakas:

shipit

Iga valminud ja turule läinud toote eest, mille tegemisel inimene osaleb, saab ta vastava märgi. Lihtne värk, aga märgiks sellest, kuidas igal sammul rõhutatakse tulemuseni jõudmist.

3 responses so far

Jun 30 2009

Mida Juku ei õpi, seda Juhan ei tea

Sellekevadine Tartu Ülikooli projektijuhtimise kursuse epopöa on vähemalt minu jaoks selleks korraks otsa saanud ja kõik eksamitööd parandatud.

Kokkuvõttena torkavad üliõpilaste töödes silma mitmed ühised jooned, millest mõned, kui neid päris elus rakendada, rohkem või vähem eepiliste projektifeilidega lõppeks (neil, kes korralikult loengus käisid, läheb muidugi paremini :) )

Eksamil tuli kirjutada järgmist (kõik punktid olid enne teada):

  • Mingi tarkvaraprojekti kirjeldus
  • Projekti etapid
  • Projekti tehnoloogilised osad
  • Projekti kalkulatsioonid
  • Meeskonnamudel
  • Ja lõpuks üks suur tabel kirjeldamaks, kes, mida ja miks projekti vältel teeb.

Esimese asjana jäi paljudele segaseks, millised kulud ühe projekti või ettevõtte juhtimisega kaasnevad. See tähelepanek ei ole isegi mitte tarkvaraspetsiifiline, aga rakenduks ka suvalisele muule projektile.

Erilist äramärkimist vajab siin see, et paljud ei tea, millised on tegelikult Eesti maksud. Mitmed tulid tulu-, aga mitte sotsiaalmaksu peale, mitmed eeldasid aga lihtsalt, et projekt täpselt nii palju maksabki, kui palju raha nemad koju viivad. Oleks elu vaid nii lihtne :)

Loengus oli toodud arvutus, mille järgi kujuneb programmeerimistöö tunnihind järgmistest komponentidest:

  • Tehniliste töötajate netopalk.
  • Tulu-, töötuskindlustuse ja sotsiaalmaks - Eesti ettevõtete tegelik palgakulu oli kuni viimase ajani 1,71*netopalk, aga maksud kipuvad viimasel ajal ebastabiilsed olema.
  • Kontorikulud. Siia alla kuuluvad suurima kuluna mittetehniliste töötajate (juhtkond, raamatupidamine, müügipersonal, IT tugi, ilus tüdruk ees lauas jne jne) palgakulud ja teiseks üür, elekter, riistvara amortisatsioon jne. Kontorikulud kõiguvad ettevõttest ettevõttesse muidugi suuresti, aga võiks arvestada viiekohalise summaga iga tehnilise töötaja kohta kuus.
  • Puhkuste ja haigepäevade tasu, kus väärtust ei toodeta, aga palgakulu jookseb edasi.
  • Tööaja sisene ebaefektiivsus. Kui mingi asi võtab 10 tundi programmeerimist, siis ei tähenda see sugugi mitte kümmet tööl istutavat tundi. 70% efektiivsus on enamasti super tulemus, enamik organisatsioone jääb oluliselt alla selle.
  • Ettevõtte kasumimarginaal.

Konkreetsed arvud võib igaüks siia nüüd ise asendada ja kokku korrutada – tulemuseks on nii mõnegi inimese jaoks ehmatamapanevalt suured käärid. Nende asjaolude mittearvessevõtmine oleks päris elus nii mõnegi särasilmse firma pankrotti viinud.

Teiseks, kui midagi kirjutad, siis tunne oma lugejaskonda.

Mitte ilmaasjata ei tulnud küsimustes projekti struktuuri mitu korda kirjeldada:

  • Üks neist vaadetest on kliendile (kes tahab lihtsalt lühidalt ja konkreetselt teada, mida ja mis ajaks ta saab)
  • Teine on juhtivale tehnilisele personalile (kes tahab teada, milliseid metoodikaid ja tehnoloogiaid me kasutame)
  • Kolmas on projekti igapäevastele osalistele (kes tahavad teada, mida mingil päeval plaanitakse teha)

Ja last but not least, tuleb arvestada õppejõuga, kes selle kõik läbi vaatab, et kas inimene on kursusest ka midagi kõrva taha pannud või imes kogu jutu lihtsalt pastakast välja :)

Paljudes töödes oli näha suhtumist: mina olen vinge programmeerija, progemine on ainus asi, mis loeb, tean kõike kõige paremini ja ei pea teistele midagi selgitama. Bzzzt, selline suhtumine seab inimese karjäärile üldjuhul olulise tõkke, rääkimata olukordadest, kus projekt hävib seetõttu, et kliendile jäid asjad segaseks.

Ja lõpuks: sõbrad, õppige kirjutama.

  • Ärge kirjutage poole lehekülje pikkusi lõike, neid ei viitsi ükski klient lugeda.
  • Vaadake, et professionaalne tekst annaks edasi võimalikult palju konkreetseid detaile.
  • Kasutage teksti ilmestamiseks jooniseid või kasvõi bullet pointe, et oleks võimalik ühe pilguga haarata, millest jutt käib.

Ja korrektne on kirjutada standardne, kontseptsioon, stsenaarium ja mõttetu, vastasel korral arvab iga haritum klient, et te olete lohakad ja kirjutate koodi ka üle jala.

Kokkuvõttes oli tegemist aga vähemalt minu enda jaoks hinnalise kogemusega, loodetavasti said ka kuulajad oma filosoofilisele potentsiaalile lisa. Ülaltoodud kaebustest hoolimata olid mitmed tööd täitsa head ja nende autorid (te teate, kes te olete :) ) võtan ma vajadusel kindlasti oma kampa.

6 responses so far

May 01 2009

Tarkvaraprojekti lõpuleviimine

Selle kevade projektijuhtimise loengute viimased materjalid!

Slaidid leiate siit. Audiosalvestus (r-click->save as): 1. osa, 2. osa, 3. osa, 4.osa.

Seekordses loengus pärinevad mõned slaidid originaalis minu võimekatelt töökaaslastelt Siim Puskailt ja Andre Krullilt.

 Eelnevalt on juttu olnud mitmesugustest projektijuhtimise aspektidest – riskid, nõuded, inimesed.

Täna räägime viimasest väga olulisest aspektist – see on raha.

Ja siis võtame selle kõik kokku.

 

Rahal on ühiskonnal küllaltki oluline kultuuriline roll, mis kajastub ka näiteks paberrahade disainis.

 

Mõned rahad pole siiski selgelt kunstipäraselt kõige õnnestunumad.

 

Ameerika vabadussammas lõunas puhkamas!   
Mõnel pool arvatakse, et mõistus peitub habemes.

Selline etteulatuv habe jäi paraku ainult Aasia moeks.

Lõpuks pani see tüüp asjad paika.

Teistes kohtades leitakse jälle, et raha peal võiks olla võimalikult hirmuäratavad inimesed.

Kui kätte saan, tapan ära!

See on juba päris jube.

Siis on olemas rahad, mis näevad välja nagu värvipimeduse testid.

Või siis palavikuhallutsinatsioonid.

Diktatuuride rahadel on tihti sarnased jooned. Suur Vend jälgib!

Lihtne inimene (nagu meie!) suundumas kusagile, püstol käes. Tõenäoliselt tapma mõnda teist lihtsat inimest nagu meie, aga kes on meie silmis tehtud vaenlaseks või vaenlase käsilaseks.

Saddamil kasvab mingi asi pea seest välja, aga keegi ei julgenud talle seda ilmselt öelda.

Mõned rahad on lihtsalt mõistetamatud. Mis see on, kas äraraiutud haarmetega kaheksajalg?

Mida kauem ma seda vaatan, seda ebamugavamalt ma ennast tunnen.

 

http://www.targotennisberg.com/tarkvara/2008/05/31/miks-mulle-meeldib-raha/

Iga projekt taandub lõpuks rahale!

 

Tihti loetakse kokku ainult arenduse aeg.

Ei tohi unustada ka teiste inimeste aega sinna juurde liita.

Igaühel oma tunnihind!

 

Kes on seda reklaami näinud?

 

http://www.youtube.com/watch?v=at_f98qOGY0

 

http://www.youtube.com/watch?v=WOsylvrwo3I

 

http://www.youtube.com/watch?v=jAasManZ6IA

Minu enda ajahaldus :)

No responses yet

Apr 01 2009

Meeskonnajuhtimine

Kolmas osa Projektijuhtimise loengutest.

Slaidid on siin. Audiosalvestus: 1. osa, 2. osa, 3. osa, 4.osa (right-click -> Save As).

Seekordses loengus pärinevad mõned slaidid minu taipliku kolleegi Ivo Mägi sulest.

Räägin teile kõigepealt ühe loo.

Üks kõige ohtlikumaid olukordi inimese jaoks on lahing sõjas. Piirkond on täis suurt kuumust, ohtlikke aineid, ülehelikiirusega ringi lendavaid metallitükke jne.

Samas, kõige olulisem mõjutaja inimese elus on enesealalhoiuinstinkt. Seega, kui sõduritel on vaja näiteks üle mingi lagendiku rünnaku joosta, on see nende jaoks kõige loomuvastasem asi maailmas.

Sellegipoolest, kui antakse vastav käsk, siis sõdurid tõusevad püsti ja jooksevad üle selle lagendiku.

 

Miks?

 

Peamiselt sellepärast, et neisse on pikkade ja raskete õppuste kestel sisse drillitud absoluutne sõnakuulamine. Nad teavad, et käsk on vanem kui meie ja et nende enda elu pole suures plaanis oluline. USA merejalaväelastel pole lubatud kasutada sõna “mina”.

Põhiväljaõppe käigus õpivad sõdurid oma ülemust kartma rohkem kui surma. Sest ülemus on suur ja hirmus (nagu mina). Ülemus ütleb, et jookse ja sõdur jookseb. Ütleb, et lama ja sõdur lamab. Ütleb, et lenda ja sõdur vehib kõigest hingest kätega, et lendu tõusta.

 

Paljudele tsiviilelu organisatsioonijuhtidele meeldiks oma organisatsiooni samamoodi juhtida. Et aina käsuta ja kõik kohe teevadki nii, isegi kui see nende isiklikele huvidele või enesealalhoiule vastu käib.

Paljud proovivadki nii teha. Paraku küll mitte väga edukalt. Sõjaväes pole sõduril kusagile pääsu – kui ta jalga laseb, siis püütakse ta kinni, pannakse vangi või lastakse maha. Tsiviilelus saadetakse nõme ülemus aga varem või hiljem pikalt või siis lihtsalt ignoreeritakse teda.

 

See suhtumine on tegelikult väga levinud, mul on endal ka tihti kiusatus olnud karmi käsutamise abil probleeme lahendada. Ja kui ma kunagi oma vennale rääkisin, et minu  tiimi liikmete töö tulemused ei vasta alati päris sellele nagu ma soovisin, oli tema esimeseks reaktsiooniks: kas sa nende suhtes mingeid sanktsioone ei saa rakendada?

Vabandust, vennas, see asi pole paraku nii lihtne.

 

Kui ma selle habeme ära võtan, siis mina olen endiselt mina.

Tänane loeng on eelkõige inimeste juhtimisest. Suure tõenäosusega te kõik ei hakka oma karjääri jooksul inimesi juhtima, aga üsna kindel on, et keegi hakkab teid ennast juhtima ja siis on hea teada

 

Kui paljud siin ruumis on suitsetajad? Kas see, et ma seda pilti näitan, paneb teid suitsetamist maha jätma?

 

Hoiatava näite sellest, kuidas väline halvaga ähvardamine ei aita, leiame tegelikult meditsiinist. Südameoperatsioonil käinud inimesi hoiatatakse üldjuhul, et kui nad oma eluviise (olgu siis liigse söömise, joomise, suitsetamise vms osas) ei muuda, siis nad surevad varsti ära. Kui paljud inimesed aga tegelikult ennast parandavad? Selgub, et 2 aastat pärast operatsiooni on 90% patsientidest tagasi endiste harjumuste juures!

 

 

 

Aga kõigepealt sellest, keda meil üldse ühte projekti vaja on. Järgmised slaidid olid mul juba esimeses loengus ka, aga kordamine kulub ära.

 

http://www.targotennisberg.com/tarkvara/2008/03/02/staarid/

Audiosalvestuse 1. osa lõpp.

http://www.targotennisberg.com/tarkvara/2008/09/24/arendajate-arengust/

Uus arendaja tuleb projekti, ta ei kata veel oma ruudukest täielikult ära.

 

Teised arendajad, analüütikud, testijad peavad teda abistama.

 

 

Aja möödudes saab abi vajajast abi andja, inimese kompetents kasvab.

http://www.targotennisberg.com/tarkvara/2009/01/15/tagasiside-andmisest-ja-saamisest/

 

Lugu seitsmest ahvist. Kuulake audiosalvestust J

 

http://www.targotennisberg.com/tarkvara/2008/06/06/eduka-projekti-retsept/

Audiosalvestuse 2. osa lõpp.

 

http://www.targotennisberg.com/tarkvara/2008/02/25/programmeerija-produktiivsus-i/

Audiosalvestuse 3. osa lõpp.

No responses yet

Mar 07 2009

Vajadused ja nõuded

Teine osa Projektijuhtimise loengutest.

Siit leiate slaidid. Audiosalvestus: 1. osa, 2. osa, 3. osa.

 Tänane loeng on suurel määral analüüsist. Aga isegi kui te ise olete ainult projektijuht ja analüüsiga ei tegele, peaksite ikkagi teadma, mis toimub ja kuidas on õige asju teha.

 Räägin teile kõigepealt ühe loo.

 

Kui ma veel ise vaene üliõpilane olin, kärutasin vahel maailmas ringi häälega. Üldiselt lahe kogemus, sest rahvas, kes hääletajaid peale võtab, on üldiselt väga kenad inimesed.

Sekka sattus muidugi ka igasuguseid imeinimesi. Oli näiteks üks tegelane, kes ise ka ei teadnud, kuidas täpselt oma sihtkohta jõuda, tema meetodiks oli lihtsalt kohalike käest juhiseid küsida. Mina ei olnud kahjuks kohalik ja eriti aidata ei osanud. Kohalikku keelt ei tundnud me ka keegi ja nii juht seletaski inimestega käte ja jalgade abil. Ise oli ta küllaltki joviaalses tujus ja valis küsimiseks ka rahvast, kelle adekvaatsus minu meelest kõvasti soovida jättis, aga kes olin mina, et teda selle eest kritiseerida, eks.

Ja nii me tiirutasime ja tiirutasime, kuni lõpuks kulus mõnekümne kilomeetri läbimiseks mitu tundi.

Sel ajal oli mul küll teine elustiil ja rohkem aega kui praegu, nii et viivitusest polnud väga hullu, aga mõnes teises olukorras oleks see küll harja punaseks ajanud.

 

Tegelikult on meil siin ilmne analoogia tarkvarategemisega. Me võime tarkvaraprojekti ka läbi viia selliselt, et teeme natuke midagi, siis küsime suvaliselt inimeselt instruktsioone, siis teeme jälle natuke, küsime mõnelt teiselt inimeselt jne. Mis te arvate, milliseid ajahinnanguid me sellise meetodi kasutamise korral saame anda?

 

Või siis võime hankida endale kaardi.

 Ma olen ise suur kaartide ja kaarditarkvara fänn, katsun alati võimalikult suurt navigeerimisvõimekust omada, kui kusagil käin või sõidan.

Tänapäeval on selleks head võimalused, veebis ja GPS seadmetes olevad kaardid ütlevad meile minuti täpsusega, kuhu me mis ajaks jõuame.

 

Ja tarkvara on ka parem teha, kui meil on täpne instruktsioon ees, et nüüd teeme seda ja siis toda. Ajahinnangutest rääkimata.

 

Tegelikus elus juhtub aga, et meie tarkvara valmistamise instruktsioonid on pigem sellised. Natuke parem kui turbanis vanamehelt saadud instruktsioonid, aga mitte väga.

Ja ajahinnangud on ka muidugi vastavad.

 

Tänane loeng ongi sellest, kuidas oma kaart võimalikult täpseks saada.

 

 

Definitsioonide erisus on peamine segaduse ja kommunikatsiooniprobleemide allikas tarkvaraprojektis.

Definitsioonid tuleb algusest peale paika panna.

 Lõpliku spetsifikatsiooni sisu on tihti tracetav tagasi ärireegliteni

 

 Tarkvara võib olla nt veebisait või pihuarvutite süsteem vms asi

baba-interface

 Näide: tehnoloogiline kitsendus, et me tohime kasutada ainult vaba tarkvara. projekt tehti .neti peale. 

 

Kui mõni neist osadest jääb alguses kirjeldamata, ei pääse me sellest ikkagi – lõpuks tuleb ta lisada ja see võib tähendada olulist projekti ümbertegemise kulu.

 1.Paneme paika mingi konkreetse eesmärgi

2.Esitame küsimuse, “kuidas me teame, kas me oleme eesmärgile jõudmas”
3.Konstrueerime vastava mõõdiku

 

Paljude mõõdikute lähteandmed saa ajaarvestussüsteemidest.

Kunagi ma arvasin, et ajaarvestussüsteemid on kuradist, sest programmeerijaid ei tohi hinnata selle põhjal, kui palju aega nad projektile kulutavad.

Aga ajaarvestussüsteemi primaarseks eesmärgiks pole mitte see, kui palju inimene aega kulutab ja kui kaua ta kontoris istub, vaid hoopis see, millele me organisatsioonina oma ressursid kulutame.

Antud juhul oleks mõõdikuks see, et taskidel, mis on ajaarvestussüsteemis, on olemas ka vastavad väljad selle jaoks, mis sorti hooldusega on tegemist.

 

Äärmiselt oluline tähelepanek: Neid mõõdikuid ei tohi kasutada inimeste töötulemuste hindamiseks!

 

Olen tihti näinud spetsifikatsioone, mis on lihtsalt üks laam teksti lehekülg lehekülje järel.

Et kui juhtub A, siis kirje B peab liikuma asukohta C.

Välja arvatud juhul kui on täiskuuneljapäev, siis tuleb kirjest D lahutada 15% ja liigutada ta asukohta E

Siis tuleb meil veel liita kokku kirjed F ja G ning saata nad teise süsteemi.

Ja siis kaob kilpkonnaonu vee alla ja mullid tõusevad pinnale. Ja mullid teevad ai-tummer-ker-kommer-ker.

Ja esimese lehekülje lõpuks jäävad kõik lugejad magama.

No responses yet

Feb 23 2009

Tarkvaraprojekti alustamine

Loen Tartu Ülikoolis sel kevadsemestril Neeme Vooluga kahasse Projektijuhtimise ainet. Pidasin just oma esimese loengu ja siin on ka materjalid.

Originaalslaidid saab leida siit.

Olin nii lahke, et tegin loengust ka audiosalvestuse. 1. osa 2. osa 3. osa 4. osa
Vahepeal unustasin diktofoni sisse vajutada, nii et osa jutust on ilmselt puudu. Tulge teinekord loengusse korralikult :)

Loeng põhines osaliselt ühel minu varasemal ettekandel, aga lisasin ja täiendasin oluliselt materjali.

 

Räägin teile kõigepealt ühe loo.

 

Juba antiikajal tegid inimesed vaatlusi ümbritsevate protsesside kohta.

Taignat sai muuta leivaks, savi tellisteks, puid söeks, rasva seebiks.

Mõistagi tekkis neil ka küsimus, et miks ei saaks näiteks raud muutuda kullaks?

Tuhanded alkeemikud nägid selle probleemi kallal sajandite jooksul vaeva. Kuna neil aga puudus arusaam sellest, millest erinevad ained ja materjalid tegelikult koosnevad ning kuidas nende omavaheline vastasmõju tegelikult töötab, ei saanud nende lähenemine ka kuigi süsteemne ja teaduslik olla.

Nad kuumutasid ja aurutasid, filtreerisid ja kondenseerisid, segasid kokku kõikvõimalikke aineid ning kirjeldasid oma tulemusi müstilises, allegoorilises keeles, et “asjasse pühendamata” inimesed millestki aru ei saaks.

Sagedased koostisosad olid näiteks väävel ja elavhõbe, usuti, et kui neid vaid õiges vahekorras lisada, saab nende abil kõike teha.

Ja alkeemikud kallasid ühest purgist väävlit ja teisest elavhõbedat ning laususid veel nõiasõnu peale – habbada-habbada-habbada.

Inimestel on siiski süüa ka vaja ja alkeemikud pakkusid tihti oma teenuseid kuningatele ja vürstidele, et viimased nende eksperimente rahastaks.

Ahnusel on suured silmad ja seetõttu maksiski nii mõnigi võimukandja alkeemikule heldelt, vähemalt esialgu. Pikapeale sai kuninga kannatus muidugi otsa ja ta hakkas konkreetseid tulemusi nõudma.

Kui muidu enam ennast välja keerutada ei õnnestunud, läks nii mõnigi alkeemik lõpuks võltsimise teed ning seadis üles demonstratsiooni, kus kullakangid olid algul näiteks tinaga kaetud, tina sulatati pealt ära ja nähtavale tuli kuld.

Kui nad aga sellega vahele jäid, oli karistus tavaliselt karm. Tihti rakendati sama karistust, mis valeraha tegijate puhul, ehk kallati õnnetule alkeemikule sulatina kurku.

Väga, väga ebameeldiv.

 

Aeg läks edasi. Matemaatikal oli tegelikult juba antiikajast saadik päris korralik ja range teaduslik põhi all olnud. Renessansi ajal tegi Galilei oma katseid, talle järgnesid Torricelli, Blaise Pascal ja Robert Hooke ja füüsika sai endale samasuguse range põhja.

Lõpuks jõudsid Robert Boyle, Lavoisier, Lomonossov ja Mendelejev ka keemiale range põhja loomiseni ja alkeemikute aeg oli lõppenud.

Sarnaselt juhtuvad revolutsioonid ka teistes teadustes, nad käivad alguses läbi oma “alkeemia faasi”, kus keegi täpselt ei tea, mida ta teeb. Vähehaaval saadakse asjad korda ja meil tekivad konkreetsed seadused, reeglid ja valemid.

Infotehnoloogia vallas käib tarkvaraprojektide juhtimise praktika käib praegu täpselt nagu alkeemia. Projektijuhid teavad, et tarkvara tegemiseks on vaja raha ja programmeerijatele meeldivad kohvijoogid. Ja nii nad lisavadki projektile erinevates vahekordades raha ning kofeiini, täpselt nagu vana aja alkeemikud lisasid erinevatele ainetele väävlit ja elavhõbedat. Ja siis lähevad kliendi juurde ja teevad kliendile habbada-habbada-habbada.

 

Ja nagu alkeemikute puhulgi, on üsna tõenäoline, et ilma teaduslikuma lähenemiseta lasete te üsna palju projekte kas põhja või viite kuidagi katse-eksituse teel lõpule.

Kui te seda piisavalt palju teete, siis lähevad teie projektiliikmed, ülemused ja kliendid samamoodi närvi nagu keskaegsed kuningad ja nendes tekib soov teid mingil väga ebameeldival viisil hukata.

 

Praeguse loengusarja eesmärk on teid sellest hullust saatusest päästa, ehk et keegi ei tuleks teile sulatinaga kallale.

 

See, et te kõik olete tulnud kuulama loengut projektijuhtimisest, ei tähenda veel, et te saate tingimata projektijuhiks, aga suure tõenäosusega hakkate te mitmesugustes tarkvaraprojektides mingis rollis osalema. Võib-olla tellija, võib-olla täitja poolel, vahest programmeerijana, vahest analüütikuna, vahest suure ülemusena.

Sellegipoolest, kuna projektijuhid on projektides kesksel kohal, puutute te nendega kindlasti kokku ja siis on väga hea, kui teil on olemas mingid praktilised nõuded, mida neilt projektijuhtidelt soovida ja kui nad sellega hakkama ei saa, siis saate ise esile astuda ja vajalikud asjad ära teha.

FBI näide: Projektiga tegelejad rajasid süsteemi lähtudes tavaliste kontoritöötajate kogemustest, inimestel on tööjaam, kohtvõrk, andmed jooksevad kõik andmebaasist jne. Ainult et FBI agendid ei ole tavalised kontoritöötajad, nad liiguvad “objektidel” ringi ja neil on vaja andmeid kaasa võtta ning ka offline’is sisestada. Ja keegi ei tulnud ka selle peale enne, kui süsteemi juurutama hakati. Kui palju võtab aega olemasolevale süsteemile turvaliste offline-võimaluste juurdepookimine, võib igaüks ise nuputada, kuid antud projekt katkestati (selle ja paljude, paljude muude probleemide tõttu) pärast 170 miljoni dollari maksumaksja raha kulutamist. Kui vajadused oleks tuvastatud õigeaegselt, oleks kogu süsteemi loodud hoopis teistel alustel ning tohutu hulk aega oleks jäänud raiskamata.

Projektijuhi roll on tihti arusaamatuste ja segaduse allikaks.

Juhtkonna stereotüüp: klient ja programmeerija ei tohi kokku saada, projektijuht kaitseb neid teineteise eest

Tehniku stereotüüp: projektijuht on mingi pintsaklipslane, kes tegelikult asjadest midagi ei tea ja keda asjadest eemal hoida

Olen ise kuulnud programmeerijat halvustavalt mainimas “projektijuhtide invasiooni Eesti tarkvaramaastikul”. Probleem jällegi selles, et kui näiteks programmeerija töö on ka praktikas viidud küllaltki teaduslikele alustele, siis projektijuhid on tihti endiselt alkeemikud. Tegelikult on ka projektijuhtidel olemas täiesti teaduslikud reeglid, kuidas üht projekti edukalt lõpuni viia, täpselt nagu meil on olemas reeglid selleks, kuidas võrrandisüsteemi lahendada.

Iga risk mõjutab potentsiaalselt meie lõpptähtaega.

Riskid on potentsiaalselt vahetatavad aja vastu – projektiplaani saab lisada aega riski maandamiseks.

Alternatiivina saame riskifaktori lahendada enne projekti algust.

 Lugege lihtsalt neid teste ja mõelge, mida teha, et teie projekt mõnesse sellisesse auku ei kukuks.

Teadmiste omandamisel 70:20:10 suhe: 70% töö käigus omandatav, 20% raamatute lugemine jm iseseisev töö, 10% formaalsed koolitused, sealhulgas praegu siin loengus istumine! Selleks, et reaalselt mõni projekt ära teha, läheb teil tarvis palju rohkem teadmisi, kui see praegune loengukursus teile anda suudab -> lugege kindlasti oluliselt juurde, kursuse kodulehel on soovitatavat lugemismaterjali.

 

Aga kui te kunagi peaks minuga koos mõnd projekti tegema ja seal projektijuhina tegutsema, siis ma kindlasti eeldan, et te olete Software Project Survival Guide’i või mõne muu ekvivalentse raamatu läbi lugenud, muidu ei võta ma teid tõsiselt.

 

Need siin on näited, mitte täielik nimistu!

Kes loeb Dilbertit? Lugege kindlasti, kasvõi selleks, et ise mitte samasuguseid jamasid korraldada.

Audiosalvestuse 1. osa lõpp.

 

Riske pole kunagi võimalik täielikult välistada, aga neid saab oluliselt maandada kasutades vastavaid “filtreid”.

 Kui kliendi ärilised eesmärgid jäävad täitmata, on nad lõpuks ikka õnnetud. Isegi kui teostaja oma raha kätte saab, võib projekti lugeda ebaõnnestunuks, kui keegi seda tegelikult kasutama ei hakka.

 

Loe lähemalt, Practical Project Initiation, lk 42-43

Huvide näiteid: juhtkond tahab suuremat käivet, andmesisestajad tahavad vähem käsitsitööd -> vähem vigu, müügiagendid tahavad kiiremat ligipääsu andmetele

Eelkujundatud suhtumiste näiteid: Andmesisestajad kardavad, et peavad mingitele uutele koolitustele minema, süsadminid arvavad, et ainult Solaris on õige asi

Võiduläve näiteid: Juhtkond tahab, et meie veebisait pakuks rohkem võimalusi kui konkurentide oma. Andmesisestajad tahavad automaatset veaparandust, andmebaasi administraatorid tahavad 3x suuremat andmebaasimahtu

Piirangute näiteid: juhtkonna eelarve on max 4 miljonit, andmesisestajatel on vanad arvutid ja uus kood peab nendel jooksma, samuti pole neil eelarves raha koolituseks

Sponsor on see, kelle käes on rahakott. Tema maksab nii reatöötaja laste leiva kui ka peadirektori Ferrari eest.

 Ma olen üsna kindel, et enamikul teist tuleb kunagi ühel või teisel viisil sellises situatsioonis olla.

 Nõuded tegelikult omaette pikk teema, sestap siin kaetud lühidalt.

 Millal me loeme projekti edukalt lõpetatuks?

 Aga kes loeb XKCD-d? Ma võtan teid oma kampa!

Audiosalvestuse 2. osa lõpp.
 

 

 

 Tuletame meelde seda 24 kuu vs 6 kuu juhtumit eespool.

ˇ

 Mida teha, kui sulle ikkagi survet avaldatakse, et asjad peavad saama kiiremini ära tehtud?

Audiosalvestuse 3. osa lõpp.

 

Enne, kui me edasi läheme,. arutame, miks järgnevad asjad meile üldse vajalikud on.

Ebaproduktiivne tegevus = haigused, vanade vigade parandamine, koodi ümber kirjutamine aruanded, pausid jne.

 

Arvatakse, et protsess on ka samasugune ebaproduktiivne tegevus.

Millalgi tuleb protsess niikuinii lisada ja see hakkab palju rohkem aega võtma. Samuti hakkab rohkem aega kuluma muudele tegevustele, mis otseselt projekti edasi ei vii.

Protsess võtab alguses aega, aga hiljem saavad osalised asja käppa.

 Kommunikatsiooniplaani mõte on selles, et keegi ei unune ära ega teki situatsiooni, kus mitme kuu ärel teatatakse, et asjad ei kõlba kusagile ja tuleb ringi teha.

Näide: kui meil on olemas nõuete kogumise abivahend, siis see ei tähenda, et meil oleks äkitselt olemas ka adekvaatsed nõuded!

Nõuete saamiseks tuleb endiselt vaeva näha!

 

 

 

Aga kui te need asjad kõik ära teete, võib juhtuda, et teil õnnestub tõepoolest kulda teha.

Soovin edu.

No responses yet

Jan 05 2009

Peresõbralike ajagraafikute koostamine

Hulkuvate Kasside Riiklik Inspektsioon tellis tarkvarafirmalt Joostes Marss täiendusi oma andmeregistrile. Ülesandepüstitus oli küllaltki selge ja põhjalik ning projektijuht Joosep küsis programmeerija Priidult, kui kaua asjaga läheb. Neli nädalat, vastas Priit, Joosep pani igaks juhuks puhvri mõttes veel nädala otsa ning teatas klient Kustavile, et viie nädala pärast saab asja kätte.

Priit hakkas asjaga hoolega pihta, Joosep käis regulaarselt pärimas, kuidas läheb, ja üldiselt asi sujus. Nagu programmeerimise puhul ikka ette tuleb, tekkis ka siin ootamatuid viivitusi, kuid viienda nädala lõpuks teatas Priit siiski, et kood on valmis.

Joosep helistas Kustavile, et asjad on korras, aga arvas seejärel, et vaatab ise ka siiski funktsionaalsust. Tulemused tõstsid tal ihukarvad püsti – enamvähem iga viie kliki järel rakendus crashis ja praktiliselt ühtki kasutusjuhtu polnud võimalik algusest lõpuni läbi käia.

Joosep tormas kõva kisaga Priidu juurde, et mis toimub. Aset leidis järgmine kahekõne.

Joosep: Mis bl*#¤% selle koodiga toimub??
Priit: Kood sai just valmis ja kogu funktsionaalsus on teostatud.
Joosep: No aga miks see crashib siis, jo*#¤ma*#¤% ?!?
Priit: No aga keegi pole ju seda testinud, loomulik ju, et koodis pole kõik asjad kohe päris õiged.
Joosep: Kas sa ise ei testinud siis oma asja?
Priit: Testimiseks polnud aega ette nähtud, ise küsisid, et kui kaua teostamisega läheb, mitte testimisega. Ja üldse oled ise üks hu*”%¤% !!

Oops.

Asi lõppes sellega, et Joosep istus ise järgmise paari nädala hilisõhtud töö juures ja testis erinevaid stsenaariume ning käis ka Priidul piitsaga kannul. Mõlemad olid stressis ja magamata, Kustav õiendas iga päev, et mis ikkagi toimub, pidi ju valmis olema, ning kui projekt lõpuks üle anti, tekkis seal ikkagi probleeme, sest testimine polnud nii põhjalik, kui vaja oleks olnud.

Lisaks süüdistasid Joosep ja Priit pidevalt ka teineteist asja nässukeeramise eest, Joosep leidis, et Priidu tulemus ei oleks tohtinud selline olla, Priit omakorda, et kõik on Joosepi süü selle pärast, et projektigraafikusse ei arvestatud testimise ja vigade parandamise aega.

Milles siis tegelikult asi? Minu isiklikus kogemuses ei hävi projektigraafikud mitte niivõrd sellepärast, et hinnangud oleksid ebatäpsed, kui sellepärast, et mingid tegevused unustatakse lihtsalt graafikusse lisamata.

Iidseks vaidluste allikaks on siin, et kes peaks tegelikult hoolt kandma, et kõik tegevused oleks arvesse võetud? Programmeerijad sõimavad enamasti projektijuhte, samas õppis Joosep Audentese koolis rahvusvahelist ärijuhtimist ja kuigi ta saab hästi hakkama kliendisuhtluse ja raha lugemisega, on temalt mõneti utoopiline loota, et ta täpselt teaks, mida kõike üks tarkvaraarendaja peab tegema, et asi valmis saaks. Seda enam, et “valmis” võib tegelikult erinevate inimeste jaoks tähendada väga erinevaid asju, näiteks:

  • Funktsionaalsus on koodiridadena olemas
  • Keegi on rakenduse peamised kasutajajuhud läbi käinud
  • Programmeerija on rakendusele kirjutanud unit testid ja need töötavad
  • Testija on mingi testimisplaani alusel kontrollinud, et funktsionaalsus töötab
  • Tellija on formaalse kava alusel kontrollinud mitmesuguste nõuete täidetust

Jutu peamine moraal kõigile tarkvaraprojektides osalejaile on:

  • Täpsustada, mida nimetatakse valmis olekuks, kuna see on olenevalt inimese taustast ja ametist väga suuresti vaataja silmades
  • Teha vahet lubaduste (commitmentide), ligikaudsete esmärkide ja tõenäosuslike ajahinnangute vahel ning iga mainitava kuupäeva puhul täpsustada, millega on tegemist.

Konkreetselt programmeerijad on mitmel korral mulle kurtnud, et nende ajagraafikud on ebarealistlikud, sest ei võta kõiki tegevusi arvesse. Peamine nõu, mida ma neile olen andnud, on:

  • Tavaliselt on ebarealistlik oodata, et projektijuht ise kõiki tehnilisi tegevusi meeles jõuab pidada ja nende kohta eraldi ajahinnanguid küsida. Seega peaks programmeerija tõusma oma positsioonilt natuke kõrgemale ja ise järele mõtlema, mis on tegelikult projekti õnnestumiseks vaja teha.
  • Selle asemel, et keskenduda oma ajahinnangute kitsale definitsioonile ja anda ainult koodikirjutamiseks kuluv aeg, eelda, et niikuinii tuleb sul teha hulk muid asju nagu unit testide kirjutamine, komponenditestimine, süsteemitestimine, vigade parandamine jne. Kui on teada, et keegi teine mingi osa nendest tegevustest enda kanda võtab, on väga hea, aga üldiselt seda ei juhtu ja vaikimisi on parem need kohe hinnangutena kirja panna. Mõte siis selles, et lõpuks tuleb need tegevused niikuinii ära teha, iseasi, kas ületundidena või mingil mõistlikul ajal.
  • Kuus kuud hiljem ei mäleta üldjuhul keegi, kui kaua see asi tegelikult aega võttis, küll aga mäletavad inimesed hästi, kas 1) tähtajad pidasid 2) kui hästi tulemus toimis. Töötasin kord koos ühe arendajaga, kelle ajahinnangud alati väga kõrged tundusid. Kui teda aga lähemalt üle kuulata, tuli välja, et tegelikult oli ta graafikusse lisanud ka väga täpsed ja detailsed ajahinnangud sellele, kui palju teste ta ise tahab kirjutada, kui palju võtab aega funktsionaalsuse testijale üleandmine ja tutvustamine, potentsiaalsete vigade parandamine jne. Ja tulemuseks oli, et kuigi ta lõpetas oma lõigu nominaalselt teistest hiljem, oli ta projekti testimis- ja stabiliseerimisfaasi lõpuks teistest ees ning tema kood töötas palju paremini kui kellelgi teisel. NB! See ei tähenda, et kõik võiks lihtsalt oma ajahinnanguid hakata kahega korrutama, vaid seda, et inimesel tuleb tõesti hoolikalt järele mõelda, kui palju nendele ekstra tegevustele kulub ja neid detailselt hinnata!
  • Vahel väidavad ülemused või kliendid, et testimine pole oluline, või et selle eest niikuinii ei maksta. Ma arvan, et selline seisukoht on tihti tingitud valdkonna puudulikust tundmisest. Kui keegi tõesti ütleb, et ärme neid lisategevusi graafikusse pane, siis ma soovitan nad enda jaoks sellegipoolest kirja panna ning lihtsalt “koodikirjutamisele” juurde liita. Elu on näidanud, et lõpuks tuleb sellised tegevused nii või teisiti ära teha ja kuna shit flows downhill, näidatakse pärast ikka näpuga progeja peale, et tema tegi halvasti.

5 responses so far

Nov 01 2008

Projektide alustamine

Published by Targo under Ettekanded, Projektijuhtimine

beginning.jpg

Pidasin hiljuti Webmedias ettekande sellest, mida tuleks teha tarkvaraprojekti alguses, enne kui me tegelikult ridagi koodi kirjutame.

Panen oma materjalid siia ka, ehk on kellelegi abiks. PowerPointi formaadis slaidid on siin.

Slide1.gif

Slide2.gif

Slide3.gif

Slide4.gif

Slide5.gif

Slide6.gif

Slide7.gif

Slide8.gif

Slide9.gif

Slide10.gif

Slide11.gif

Slide12.gif

Slide13.gif

Slide14.gif

Slide15.gif

Slide16.gif

Slide17.gif

Slide18.gif

Slide19.gif

Slide20.gif

Slide21.gif

Slide22.gif

Slide23.gif

Slide24.gif

Slide25.gif

Slide26.gif

Slide27.gif

Slide28.gif

Slide29.gif

Slide30.gif

Slide31.GIF

Slide32.GIF

4 responses so far

Oct 10 2008

Tarkvaraprojekti ellujäämise test

Published by Targo under Projektijuhtimine

breaking_point.jpg

Me kõik teame, et tarkvaraprojektides tuleb ette igasuguseid raskusi. Samas on põgusa pealevaatamisega küllaltki keeruline hinnata, millised probleemid meil tegelikult esinevad. Võtsin seega taaskord appi Steve McConnelli ja panin kirja lihtsa testi, millega hinnata, kas projektil läheb hästi, mitte nii hästi või oleks osalistel kohe aeg hakata uut töökohta otsima.

Aga siin siis test.

5 responses so far

Jul 23 2008

Puugid puuri!

Published by Targo under Projektijuhtimine, Põhialused

bug.jpg

Paljud lugejad mäletavad ehk 1990. aastate esimest poolt, kus iga endast lugupidav eestlane oma isikliku panga asutas. Mingil hetkel avastasid pankurid aga, et lihtsalt kilekottidega sularaha ühest kohast teise tarimisest ei piisa, ja algas buum Eesti IT-maastikul. Tarkvarafirma Joostes Marss oli tol vanal heal ajal loomisjärgus ning tegi suuremaid ja väiksemaid projekte Ahja Kommertspangale.

phone_rage.jpg

Tihti lõppesid Ahja Kommertspanga IT-juhi Ilmari ja Joostes Marsi projektijuhi Joosepi vahelised vestlused aga mõlemapoolse ärritusega. Tüüpiline telefonikõne oli näiteks järgmine:
Ilmar: Kas bugid on ära parandatud?
Joosep: Mis bugid?
Ilmar: Need, millest ma kuu aega tagasi telefonis rääkisin!!
Joosep programmeerija Priidule: On ära parandatud või?
Priit: Midagi ma vist parandasin jah…
Joosep Ilmarile: Jah, on küll parandatud.
Ilmar: Millal kätte saab?
Joosep: Homme saadame.

Mõned päevad hiljem:
Ilmar: No aga ikka ei ole ju kõik ära parandatud!?!
Joosep: Mis siis veel?
Ilmar kirjeldab.
Joosep Priidule: Mis värk sellega on?
Priit: Aa, selle ma unustasin.
Joosep Ilmarile: Teisipäevaks saadame uue!

Kolmapäeval: 
Ilmar: Aga IKKA ei ole ju kõiki asju!!
Joosep: Aga see polegi bug, see on feature.
Ilmar hakkab karjuma, et tema on klient ja tema otsustab, mis on feature ja mis mitte.

Lõppkokkuvõttes võttis projekt kahe kuu asemel kaheksa, Priit logeles enamiku päevi niisama ja tegi vahele meeleheitlikke spurte, et probleeme kontrolli alla saada, kui Ilmarilt järjekordne kõne tuli. Ebaregulaarse rütmi tõttu läks ta tüdruksõbraga tülli ja kirjutas koodi sisse Ilmari aadressil ebatsensuurseid kommentaare.

 bugjail.jpg

Milles asi? Nagu ühes eelnevas, projektijuhtimisele pühendet jutus mainitud, on projekti õnnestumise tagamisel peamine osa korralikul kommunikatsioonil. Arvatavasti kõige olulisem asi, mida projekti käigus tuleb kirja panna ja millest kõik osalised peavad ülevaadet omama, on see, kui palju ja milliseid vigu (ehk buge või puuke) meil parajasti koodist on leitud.

Vigade andmebaasi pidamine on tegelikult väga lihtne asi, selleks on loodud suurel hulgal nii vabu kui kommertsprodukte, enamasti on puuduliku veahalduse põhjused suhtumises.

informationoverload.jpg

Vahel tuuakse vastuväiteks näiteks, et oh, me suudame niisama ka oma vigu meeles pidada. Absurdne. Ma pole veel näinud ühtki inimest, kes suudaks korraga meeles pidada rohkem kui kolme vea üksikasju. Võib ju ka öelda, et me parandame vead kohe nende ilmnemisel ära, aga seegi ei tööta, sest parandamine võtab vahel paratamatult kauem aega, kui meil hetkel käepärast on.

Tegelikult olen ma leidnud, et isegi väikeste projektide puhul, millega ma vahel ise oma lõbuks tegelen (ehk siis 1 inimene, 1000-25 000 rida koodi), on väga kasulik vead kohe avastamisel kirja panna (kui tegemist pole just asjaga, mis sama päeva jooksul valmis saab), sest hiljem on suur osa vajalikust kontekstuaalsest teadmisest  kadunud.

Igas veakirjelduses peavad kindlasti olemas olema järgmised komponendid:

  • Täielik info, kuidas viga reprodutseerida
  • Soovitud tulemus programmi käivitamisel
  • Tegelik tulemus
  • Kellele viga on omistatud (mitte ei eelda kõik inimesed, et keegi teine asja korda teeb)
  • Vea staatus (aktiivne, parandatud, kontrollitud/suletud)

Peale selle kasutavad erinevad organisatsioonid veel mitmeid väljasid, nagu

  • Tõsidus (oluline vahe, kas programm crashib või on mõni ikoon pikseli võrra paigast ära)
  • Prioriteet (erineb tõsidusest, vahel on avalehel oleva ikooni pikselid olulisemad kui kord 10 aasta jooksul juhtuv crash)
  • Vea parandamiseks kuluv hinnanguline aeg
  • Parandamise tähtaeg (kui meil on tegemist vahepealsete verstapostidega)
  • jne.

Kui vigade andmebaasi 100% kasutatakse, siis nende andmete põhjal saab projektijuht teha juba väga võimsaid päringuid, kui palju tööd on veel jäänud, kas programmeerijad jaksavad testijatega sammu pidada, milline on produkti üldine kvaliteet (s.t kas leitakse tõsisemaid või vähemtõsisemaid probleeme) jne. Samas ei tohi lisaväljadega üle pingutada, sest siis ei viitsi keegi neid enam täita. Ülaltoodud 5 välja on aga esmase tähtsusega. Kui vigade registreerimine muutub nii vaevanõudvaks, et inimesed seda enam ei tee, tuleb meil oma protsess alati optimiseerida sellele, et 100% vigadest saaks kirja pandud.

 insult.gif

Esineb ka psühholoogilist laadi vastuväiteid, näiteks võtavad mõned programmeerijad nende koodist vigade leidmist isiklikult ja peavad selle kirjapanemist veel eriti solvavaks. Ütle mulle lihtsalt, mis värk on, ja ma parandan asja ära, pole vaja midagi kirja panna, urisevad nad testijale. Siin saame teha kaks olulist tähelepanekut:

  • Kas on parem, et vea leiab meie testija või klient? Testija peaks olema programmeerija parim sõber ja programmeerija peaks teda igal viisil julgustama, et ta rohkem vigu saaks leida, sest sel viisil päästab testija programmeerija piinlikkusest, mis leiab aset, kui hoopis klient või mõni muu tähtis tegelane vea avastab ja programmeerijal tulekahju kustutamiseks ületunde tuleb teha.
  • Programmeerija produktiivsust ei tohi hinnata lihtsalt vigade arvu põhjal, sest see loob initsiatiivi mitmesuguseks sohitegemiseks ja lõpuks oleme lõhkise küna ees: vigade andmebaas valetab ja ka produktiivsust hindame ilmselt valesti.

Lisaks on vigade andmebaasil mitmeid sekundaarseid väärtusi, näiteks langeb ära vaidlus teemal, kas mingi asi on bug või feature, sest kõik on ilusasti kirja pandud ja kohe vea registreerimisel saab arutada, kas asjad peavad nii olema või ei.

Kokkuvõtteks võib öelda, et võrreldes projektiga, kus projektijuhtimisvahendid täielikult puuduvad, on vigade andmebaas ilmselt esimene asi, millest alustada, sest see annab lihtsa vaevaga kõige suuremat kasu. Lisalugemist muidu Joelilt.

No responses yet

Next »