Archive for May, 2010

May 20 2010

Teenusearendus vs tootearendus 2

Published by Targo under Raha, SharePoint

Jätkuks eelmisele samateemalisele sissekandele.

Tootearenduse ajagraafikutest

Tootearenduse puhul on meil tüüpiliselt võimalik oma ajagraafikutes paindlikumad olla ja rohkem ise kuupäevi seada. See aga loob suure kiusatuse võtta endale suhtumine, et asi on valmis siis, kui ta on valmis.

Siin tekib meil kaks probleemi:

Esiteks projektikolmnurga põhimõte, mille kohaselt erinevad uued võimalused võtavad meilt ka ekstra aega ja raha (või kui me katsume aja ja raha fikseerituna hoida, siis kahandavad kvaliteeti).

Teiseks ei kasva aja ja rahakulu võimaluste hulga kasvades mitte lineaarselt, vaid kiiremini, kuna projekti keerukus suureneb ja projekti otseselt mitte edasiviivatele tegevustele kulub rohkem aega.

Konkreetselt Microsofti hiljutisest ajaloost leiame kaks näidet, mis selle sündroomi erinevaid aspekte illustreerivad:

Negatiivne näide: Windows Vista (arendus kestis mai 2001-november 2006). Longhorn/Vista projekt oli algul mõeldud suhteliselt väikese sammuna pärast Windows XP-d. Siis aga hakkas toimuma “projektiosmoos”, igasugused lisaideed ja võimalused “imendusid” järjest projektile juurde. Vt näiteid selle tagajärjel kokku pandud fantasmagooriast Paul Thurrotti väga illustratiivsest ülevaatest. WinFS, Avalon/WinPF, Indigo/WinCF ja Monad/PowerShell on vaid üksikud markantsemad näited, mis oleksid pidanud Vistasse naha ja karvadega integreeritud olema.

Pauli tsiteerides:

In late August 2005, Microsoft was still developing Windows Vista as it did previous Windows versions: New features were being added on the fly, and would continue to be added right up through the release candidate stages.

Uh-oh. Lõppkokkuvõte on meile kõigile teada. Vista sai valmis oluliselt hiljem ja oluliselt väiksemate võimalustega, kui oli alguses planeeritud (ja mitu aastat enne valmimist ka inimestele demotud!), rääkimata ulgumisest ja hammaste kiristamisest, mida mõned muudatused kasutajates indutseerisid.

Positiivne näide: Microsoft Office. Office 2010 RTM versiooninumber on 14.0.4760.1000. Kuigi Office’i versiooninumbritega on mõningast trikitamist sooritatud, pole maailmas just palju tarkvarapakette, mis sellise arvuni oleks jõudnud, ning Office’i väljalasked on juba üle kahe dekaadi küllaltki kellavärgina toiminud.

Office’i puhul fikseeritakse esimese asjana valmissaamise kuupäev. Näiteks Office XP puhul öeldi üle kahe aasta ette ära, et ship date on 3/2/1 (2.märts 2001 USA kuupäevastiili järgi) ja nii ka juhtus (Wikipedia artikkel näitab poodidesse jõudmise ehk launchi kuupäeva). Sarnaselt on fikseeritud ka beetade jt oluliste sündmuste ajad. Alati muidugi päris õigeks ajaks ei saa, aga üldiselt on hilinemised mõõdetavad mõnede kuudega. Kui mõni feature pole vastavaks ajaks piisavalt valmis, jäetakse ta lihtsalt sellest release’ist välja ja järgmine kord proovitakse uuesti.

Kui ma SharePointi Portal Serveri tiimiga ühinesin, oli just alanud kõige esimese SharePointi versiooni loomine (isegi see polnud veel teada, et seda just SharePointiks hakatakse hüüdma). Mitmesugused inimesed (mina sealhulgas) fantaseerisid kokku kõikvõimalikke võimalusi, mis tootes peaks kindlasti olemas olema. Meie õnneks lõikas toote juhtkond enamiku sellest värgist halastamatult plaanist välja, keskendudes vaid võimalustele, mille osas olid olemas kõige kindlamad ja konkreetsemad potentsiaalsete klientide soovid.  Tol hetkel paljud (mina sealhulgas) seda küll ei adunud ning vandusid tulist kurja, et keegi ei hakka sihukest toodet iialgi ostma. Lohutuseks oli vähemalt asjaolu, et tuleb ka teine versioon, kuhu need featured kindlasti sisse saavad.

SPS 2001 sai siiski valmis ning mõned inimesed isegi ostsid seda.

SPS ver 2 puhul sooritati sama harjutus, suur hulk asju jäid plaanist välja, aga inimesed ostsid ka SharePoint Portal Server 2003 litsentse ja isegi oluliselt suuremal hulgal kui 2001 omi. Sama asi kordus ka 2007 ja 2010 puhul.

Huvitav on siin aga asjaolu, et mõned featured, mis juba esimesest versioonist välja jäid, on sealt endiselt väljas! Ja mitte midagi hirmsat pole sellest juhtunud, vastupidi, SharePoint on Microsofti ajaloos kõige kiiremini kasvanud käibega (kuude arv nullist miljardini) toode.

Ehk siis jutu moraal: kui me arvame, et me teame täpselt, mis meie tootes peab olemas olema, siis me suure tõenäosusega eksime – ajagraafikute õhkulaskmisest ja feature creep‘ist oluliselt parem variant on põhiasjad korda saada ning seejärel klientide tagasisidet kuulata, mis neile järgmiseks kõige-kõige olulisem on.

Järgneb…

PS Minu Wordpressi ReCaptcha plugin muutus hiljuti üleagressiivseks ning liigitas kõik viimase paari kuu kommentaarid spämmikasti, mida ma pahaaimamatult tühjendanud olen. Mõned kommentaarid läksid nüüd ilmselt kaduma – vabandan.

No responses yet

May 14 2010

Tarkvaraprojekti meeskonnad

2010 kevade projektijuhtimise kursuse kuues loeng. Originaalslaidid siin. Audiosalvestus.

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

2 responses so far

May 12 2010

Teenusearendus vs tootearendus

Published by Targo under Hea kood, Raha

mass_production

Olen praeguseks oma professionaalses elus sattunud osalema mitmesugustes projektides alates super-spetsiifilistest ühele kliendile optimiseeritud süsteemidest kuni super-üldistatud masstoodeteni.

Mis neil tegelikult vahet on?

Tarkvaraprojekti iseloomustavad kõige põhilisemad põhiparameetrid on:

  • Kasutajate arv K
  • Programmeerijate arv P

Toon lihtsuse mõttes sisse tähise ϰ = K/P (kreeka täht KAPA = Kasutajate Arv jagatud Programmeerijate Arvuga)

Finantsiliselt kehtib üldjuhul reegel, et suur ϰ => suur $, vaadake kasvõi Bill Gatesi. Sellepärast ongi peaaegu iga teenusearendaja kinnisideeks teha oma rätsepatööst “toode” ning liikuda tagumiktundide müügilt tiražeerimisele.

Samas tähendab suurem ϰ ka suuremat vigade parandamise kulu, iga täiendus või parandus tuleb viia palju suurema hulga inimesteni, kellel see omakorda mingeid probleeme või destabiliseerimist võib esile kutsuda.

Seega, mida suurem ϰ, seda kõrgem peab olema toote kvaliteet:

  • Läheb vaja paremaid programmeerijaid ja analüütikuid

Nt Microsofti tootearendusdivisjonid võtavad tööle ehk 2% inimestest, kes sinna oma CV-sid saadavad. Sellepärast on neil ka vaja piisavalt häid inimesi nagu tolmuimejaga mujalt maailmast kokku tõmmata. Vt ka staaride teemat.

  • Läheb vaja rohkem testimist

teenusearendus_rollid

ms_tootearendus_rollid

Diagrammid illustreerivad arendustsükli jooksul kulutatavaid inimtunde – kui projekt on “valmis”, lisandub sellele muidugi ka väline testimine.

Teema jätkub edaspidi…

No responses yet

May 10 2010

Inimesed ja juhtimine

Viies osa 2010 kevade projektijuhtimise loengutest. Audiosalvestus.

Originaalslaidid siin.

Slide1

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.

Slide1

Slide1

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!

 

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

Slide1

2 responses so far

May 05 2010

Miks Microsoft ei leiutanud Twitterit või Youtube’i

Published by Targo under Innovatsioon, Raha, Tehnoloogia

innovation

Kirjutasin kunagi IBMi teemal, kuidas nad oma kunagise liidripositsiooni kaotasid, aga tegelikult kehtivad samad seaduspärad ka peaaegu kõigi teiste ettevõtete ning tööstusharude puhul.

Clayton Christensen toob oma raamatutes välja järgmise diagrammi:

disruptive innovations

Tehnoloogiline areng toimub siin järgmiste etappide kaupa:

  1. Turul on ettevõtted, mis parandavad pidevalt oma tooteid vastavalt kasutajate soovidele (vasakpoolne “säilitava innovatsiooni” nool). Nad ei tee mitte midagi valesti, vastupidi! Need ettevõtted kuulavad väga hoolega oma kliente, leiutavad oma valdkonnas uusi tehnoloogiaid ja teevad üldse kõiki häid asju, millest me äriraamatutest lugeda võime.
  2. Nende toodete võimekus muutub piisavalt täielikuks, et keskmine kasutaja ei saa uutest täiendustest enam erilist kasu. Mõtleme kasvõi palju aastaid kestnud kurtmisele, et “mis mul sellest uuest MS Office’i versioonist abi on”.
  3. Mingil hetkel tuleb turule samas valdkonnas, aga teistel põhimõtetel töötav toode, mis ei rahulda peamiste tarbijate vajadusi, aga on näiteks oluliselt odavam, lihtsam kasutada vms. Esialgu jääb see vaid kitsasse nišši.
  4. Uus toode täieneb, kuni ta on järjest suurema hulga kasutajate jaoks “piisavalt hea” ning vana toode marginaliseerub äkitselt.
  5. Ring algab otsast peale.

Näiteid taolistest murrangutest, nii minevikus toimunutest kui praegu käimasolevatest:

  • Digitaalfotograafia vs “klassikaline” ehk keemiline fotograafia. Oli aeg, kus digitaalfotograafia kvaliteet oli oluliselt halvem, aga praeguseks on pigem klassikaline film nišitooteks tõrjutud.
  • Peronaalarvutid vs superarvutid. Varased personaalarvutid ei saanud spetsialiseeritud superarvutitele lähedalegi, aga praegu on järjest vähem organisatsioone, kellele enam tavalistest arvutitest ei piisaks.
  • Tulirelvad vs vibud ja nooled. Kõva inglise vibumees oli efektiivsem kui esialgse musketiga relvastatud vastane, aga tulirelvaga treenimine oli lihtsam ning odavam.
  • Aurulaevad vs purjelaevad. Algul olid aurulaevad aeglasemad ja neid kasutati ainult vähese tuulega sisevetel.
  • Telefon vs telegraaf. Telefoni sai algul kasutada vaid kohalike kõnede tarvis.
  • Paber vs pärgament. Pärgament on palju kvaliteetsem, kuid ka palju kallim.
  • Kiirrongid vs lennukid. Olenevalt elanikkonna tihedusest võib pakkuda suuremat mugavust ning kättesaadavust.
  • Eralennukid vs Concorde. Concorde loodi eliidile, kelle aeg oli kulla hinnaga. Siis aga said eralennukid piisavalt odavaks ning kättesaadavaks, et nende kasutusmugavus kaalus üles Concorde’i suurema kiiruse.
  • Laserprinterid vs trükikojad. Mitte nii võimsad, aga väikeste koguste trükkimiseks täiesti piisavad.
  • Plastik vs metall. Eriti algusaegadel nõrgem ja vähem vastupidav, kuid odavam.
  • Raketid vs suurtükid. Algul ebatäpsed, kuid lihtsamad kasutada – praeguseks efektiivsemad ja laiemas kasutuses.
  • Kodukino vs päriskino.
  • Süntesaatorid vs klaverid.
  • Downloaditav muusika vs CD-d
  • Mobiiltelefonid vs tavatelefonid
  • VoIP vs GSM
  • Elektroonilised postkaardid vs paberpostkaardid
  • Mehitamata droonid vs mehitatud sõjalennukid
  • Ultraheli vs MRI ja arvutitomograafia
  • Internetipoed vs tavalised poed
  • LCD vs CRT. Esimesed LCD-d olid oluliselt kehvema kvaliteediga kui CRT-d.
  • Sinu lemmikinternetitehnoloogia vs MS Windows+MS Office
  • jne jne.

Oluline tähelepanek on, et praktiliselt alati süüakse vana tegija turult pea täielikult välja. Näiteks IBM ei tooda enam personaalarvuteid. Miks?

Esiteks: kui meil on tegemist end turul sisseseadnud ettevõttega, on tema käive ja kasum tavaliselt küllaltki kõrged, investoritele on aga vaja kasvu. Väikesel internetifirmal on lihtne igal aastal mitukümmend protsenti käivet kasvatada, aga võtame näiteks Microsofti, mille käive läheneb 60 miljardile dollarile aastas. Et saavutada kahekohalist protsendikasvu, peaks Microsoft endale haarama või kusagilt tekitama uue kümnemiljardilise turu, selliseid aga lihtsalt ei eksisteeri naljalt. Ainuke kindel (aga radikaalseid uuendusi vältiv) kasvumootor on võimalikult hästi olemasolevat turgu teenida ning sellega satumegi ülalkirjeldatud olukorda.

Microsoftis on väga palju väga nutikaid inimesi, kes on kindlasti suutelised Youtube’e või Twittereid leiutama, kuid vastavad turud on (vähemalt esialgu) kaugelt liiga väikesed ning ebahuvitavad. Tegelikult toimub vastupidine: põhisuuna jaoks ebasobivad mõtted juuritakse pigem välja! Siis aga mööduvad aastad ning uute tehnoloogiate darvinistlikust konkurentsist kerkib esile mõni, kellest lähtuvale ohule on äkitselt lootusetult hilja reageerida.

Teiseks: edukas ettevõte on tüüpiliselt harjunud toimima olukorras, kus tegevust planeeritakse hoolega. Iga edukas juht teab, et oma turu tundmine on võtmetähendusega, ning keskendab oma tähelepanu sellele, et võimalikult hästi mõista oma kliente, konkurente ning muid faktoreid. Murrangulised tehnoloogiad hakkavad aga tüüpiliselt tegutsema turul, mida praegu üldse ei eksisteerigi, seega pole juhil ka võimalik seda turgu analüüsida ega midagi planeerida! Me kõik teame juhtumeid, kus üht või teist uut tehnoloogiat on taevani kiidetud, kuidas sellest saab kogu maailma tulevik, aga paari aasta pärast ei pole sellest enam kippu ega kõppu kuulda. Sellised näited muudavad iga juhi ettevaatlikuks, kuni taas kerkib esile tehnoloogia, mis osutub ikkagi edukaks, ja hammustab meid tagumikust.

Kolmandaks: suures ettevõttes toimivad tootmisprotsessid pole niisama lihtsalt allapoole skaleeritavad, et väikeses nišis edukalt tegutseda. Sama tootmisviis, mis tagab edu olemasoleval turul, on uuel turul hoopis takistuseks.

Neljandaks (kõige olulisem faktor): ”vanade” firmade kliendid pole muutusest huvitatud. Uus tehnoloogia on esialgu kehvem kui olemasolev ja miks peaks klient halvemale variandile üle minema? Ja nii monopoliseeritaksegi ettevõtte parim ressurss olemasolevate kasumlike klientide teenimiseks, mis takistab meil sisseharjunud rajalt kõrvale astumist.

man_dog

Kui me arvame, et kõik need fenomenid leiavad aset ainult kusagil kaugel, siis eksime – täpselt sama efekt leiab igapäevaselt aset ka Eesti tarkvaraturul. Nimesid nimetamata teame me kõik kohalikul turul tegutsevaid ettevõtteid, mis pakuvad nö täisteenust: suure meeskonnaga tehtavat analüüsi, disaini, programmeerimist ja juurutamist. Neil kõigil tekib mingi miinimumlävi, millest odavamaid projekte ei hakata isegi mitte kaaluma.

Samas noolivad nende turuosa altpoolt pidevalt “Tarkpeade butiik” ning “OÜ Mees & Koer” tüüpi tegutsejad, kes on võimelised sama ülesannet mitte küll nii täielikult, kuid see-eest mitu korda odavamalt või kiiremini lahendama. Mingil hetkel hakkavad aga ka nemad muretsema selle pärast, kuidas oma olemasolevaid kliente võimalikult täielikult õnnelikuks teha, värbavad hulga uusi inimesi ning sama tsükkel jätkub – igaüks avaldab pidevat survet endast toiduahelas kõrgemal paiknejatele.

No responses yet