<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Targo tarkvara &#187; Programmeerijad</title>
	<atom:link href="http://www.targotennisberg.com/tarkvara/category/programmeerijad/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.targotennisberg.com/tarkvara</link>
	<description>Tarkvarast, tarkvaraprojektidest, tarkvaratööstusest ja muust seonduvast</description>
	<lastBuildDate>Thu, 15 Jul 2010 15:02:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Kelleks saada</title>
		<link>http://www.targotennisberg.com/tarkvara/2010/07/06/kelleks-saada/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=kelleks-saada</link>
		<comments>http://www.targotennisberg.com/tarkvara/2010/07/06/kelleks-saada/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 12:19:08 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Programmeerijad]]></category>
		<category><![CDATA[Põhialused]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=608</guid>
		<description><![CDATA[Tööd ei karda me juhhei,
ametid on kõigil meil!
Rääkisin ühe tuttavaga teemal, mida on võimalik IT-s karjääri poolest üldse peale hakata. Enda üllatuseks leidsin, et ükski IT-d õpetav Eesti kool ei loetle just kuigi põhjalikult võimalusi ja ameteid, millega pärast nende stuudiumi lõpetamist on võimalik tegeleda, ja samuti ei kujuta ka paljud tudengid ette, mida nad [...]]]></description>
			<content:encoded><![CDATA[<p><em>Tööd ei karda me juhhei,<br />
ametid on kõigil meil!</em></p>
<p>Rääkisin ühe tuttavaga teemal, mida on võimalik IT-s karjääri poolest üldse peale hakata. Enda üllatuseks leidsin, et ükski IT-d õpetav Eesti kool ei loetle just kuigi põhjalikult võimalusi ja ameteid, millega pärast nende stuudiumi lõpetamist on võimalik tegeleda, ja samuti ei kujuta ka paljud tudengid ette, mida nad täpsemalt pärast kooli tegema hakkavad. Hakkasin neid seetõttu ise kirja panema ja mõningase mõtlemise järel jõudsin järgmise tabelini (kliki, et suurendada):</p>
<p><a href="http://www.targotennisberg.com/tarkvara/ametid"><img class="alignnone size-full wp-image-610" title="ametid_thumb" src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2010/07/ametid_thumb.png" alt="" width="493" height="545" /></a></p>
<p>Siin on ära toodud üksteisest ülesannete sisu poolest erinevad ametid, mille täiskohaga pidajaid ma ise näinud olen, ja kus tarkvaraalasest (päris tervet IT-d+arvutiteadust ei oleks jõudnud ühte tabelisse kirja panna) haridusest kasu oleks. Grupeering on mõneti meelevaldne ja mõnes situatsioonis liigitataks ameteid ehk teisiti. Siiski läheb praktiliselt igas tarkvaraprojektis peaaegu kõiki ka vaja, kuigi olenevalt projekti suurusest võib mõnele neist kuluda 0,1% ühemehefirma omaniku ajast kuni tervete meeskondadeni. Nt Microsoftis on tiim, kes päevast päeva lihtsalt jooksutab igapäevaste Office&#8217;i <em>build</em>ide suitsuteste. Testid käivad automaatselt, kuid sellegipoolest on vaja, et keegi kontrolliks, et kõik sujub, koordineeriks parandusi, saadaks vastavaid teavitusi jne.</p>
<p>Peale nende on muidugi veel musttuhat spetsiifilisemat varianti, üks huvitavamaid ametinimetusi, mida ma olen kohanud, oli <em>Emulation Ninja</em> Microsofti XBoxi divisjonis, aga need on üldjuhul teisendid tabelis toodud ametitest.</p>
<p>Kuna aga need ametid erinevad mitte ainult tehnoloogia, vaid ka sisu poolest, oleks väga hea, kui ülikoolid mõistaksid nende olemasolu ja annaksid ka spetsiifilisemaid teadmisi, kuidas ühes või teises hakkama saada. Igaüks neist vääriks eraldi loengukursust, kardetavasti utoopia, aga unistada ju võib.</p>
<p>Veel: siit ei järeldu, et ma pooldaksin mingit superkitsast spetsialiseerumist. Minu peamine point on, et nende tegevusalade olemasolu tuleb teadvustada ning ennast nende läbiviimiseks korralikult ette valmistada, kuid õige professionaal võiks vallata päris paljusid selle tabeli lahtritest. Inimene on ikkagi generalist, <a href="http://elise.com/quotes/a/heinlein_-_specialization_is_for_insects.php">spetsialiseerumine on putukatele</a> <img src='http://www.targotennisberg.com/tarkvara/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2010/07/06/kelleks-saada/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Kuidas kirjutada CV-d</title>
		<link>http://www.targotennisberg.com/tarkvara/2010/03/01/kuidas-kirjutada-cv-d/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=kuidas-kirjutada-cv-d</link>
		<comments>http://www.targotennisberg.com/tarkvara/2010/03/01/kuidas-kirjutada-cv-d/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 22:39:26 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Juhtimine]]></category>
		<category><![CDATA[Programmeerijad]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=432</guid>
		<description><![CDATA[
Mult on vahetevahel küsitud nõu, kuidas efektiivsemat CV-d kirjutada. Internetis on selle kohta küll üsna palju materjali, aga kuna minu lauale jõuavad vahel ikka päris traagilised kirjutised, ütlen sõna sekka.
Esimene küsimus on tegelikult, kas meil on üldse CV-d vaja? Minu meelest on nii värbamisel kui töölesaamisel oluliselt, oluliselt parem variant CV-d mitte kasutada. Nagu Toots [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2010/03/cv-mistakes.jpg"><img class="alignnone size-full wp-image-433" title="cv-mistakes" src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2010/03/cv-mistakes.jpg" alt="cv-mistakes" width="450" height="299" /></a></p>
<p>Mult on vahetevahel küsitud nõu, kuidas efektiivsemat CV-d kirjutada. Internetis on selle kohta küll üsna palju materjali, aga kuna minu lauale jõuavad vahel ikka päris traagilised kirjutised, ütlen sõna sekka.</p>
<p>Esimene küsimus on tegelikult, kas meil on üldse CV-d vaja? Minu meelest on nii värbamisel kui töölesaamisel oluliselt, oluliselt parem variant CV-d mitte kasutada. Nagu Toots ütles, parim soovitus mehele on mees ise. Ehk siis, kui tegemist on inimesega, kelle teod räägivad iseenda eest (on näiteks valmistanud või kirjutanud midagi, millest kõik teavad), milleks talle siis veel CV? Väga abiks on siin muidugi ka võimalikult laia sotsiaalse võrgustiku (vana kooli mõttes, mitte tingimata rate.ee) omamine, et saaksid õigel ajal õiges kohas olla.</p>
<p>Kui me esimesele küsimusele vastates siiski leiame, et meil piisavalt tuntust ei ole, tuleb järgmiseks uurida ühtteist selle ettevõtte kohta, kuhu me tahame pääseda. On muidugi ka geneerilisi CV-sid, mida spämmitakse tuhandesse eri kohta, et ehk näkkab, need on kergesti äratuntavad ning jäetakse enamasti kõrvale.</p>
<p>Kõige olulisem asi ettevõtte kohta on see, kas seal värbavad inimesi teised tehnikud või on tegemist 100% HR funktsiooniga (mingi osalus on HRil muidugi alati, oluline on see, kes otsuseid teeb). Esimene variant on üldiselt palju parem, teist liiki firmad soovitan ma madalamaks prioriteediks võtta.</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2010/03/dilbert_hiring.jpg"><img class="alignnone size-full wp-image-434" title="dilbert_hiring" src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2010/03/dilbert_hiring.jpg" alt="dilbert_hiring" width="400" height="176" /></a></p>
<p>Kui HRile silmajäämiseks tuleb enamasti õigeid <em>buzzworde </em>teada, siis tehnikute osas on kuldreegliks: <strong>kui sa ise kedagi tööle võtaksid, siis mis laadi inimest sa tahaksid? </strong>See mõtlemine aitab enamasti sobivust kontrollida. Vaata, mis on selle ettevõtte või organisatsiooni ning tema juhtkonna põhiväärtused, mõtle, kas sa jagad neid, ning too nad seejärel enda juures esile.</p>
<p>Näiteks mulle isiklikult jäävad silma need, kes demonstreerivad:</p>
<ul>
<li>Taiplikkust</li>
<li>Pealehakkamist</li>
<li><em>Passionit</em></li>
<li>Võimet asju ära teha</li>
<li>Koostööoskust</li>
</ul>
<p>Kui mainid oma CVs mitmesuguseid üritusi või projekte, mida oled algatanud ja korraldanud, siis see on hea, kuna näitab <strong>pealehakkamist</strong>.</p>
<p>Kui kirjutad projektidest, milles oled osalenud, too kindlasti välja, mis oli sinu isiklik panus sellesse. Millega sa hakkama said? See näitab <strong>asjade ära tegemise võimet</strong>.</p>
<p>Kas tegeled tööväliselt mingite lahedate tehnoloogiliste asjadega? Proged ehk midagi või ehitad roboteid? See näitab <strong>taiplikkust ja <em>passionit</em></strong>.</p>
<p>Kui sul on kogemusi suuremas tiimis koos töötamise alal, siis seda peaks ka mainima, sealhulgas oma rolli tiimis. Et siin projektis oli 3 progejat ja mina tegin neile tehnilist disaini, see ütleb ühtteist <strong>koostöövõime </strong>kohta. Paljud programmeerijad on üksikud hundid, omaette teevad asjad ära, aga suures projektis ei saa teistega koos töötatud.</p>
<p>See oli nüüd minu isiklik vaatenurk, aga metaõppetund on alati järele uurida, kes antud ettevõttes värbamisega tegeleb, mis on nende metoodika ja väärtused, mille alusel nad inimesi hindavad, ning seejärel natuke kodutööd teha.</p>
<p>Ja <em>last but not least </em>- korrektsus on alati abiks, enamik komavigu ei tekita päris sellist piinlikkust nagu ülaloleval pildil, aga lohaka mulje jätavad ikka.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2010/03/01/kuidas-kirjutada-cv-d/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Peresõbralike ajagraafikute koostamine</title>
		<link>http://www.targotennisberg.com/tarkvara/2009/01/05/peresobralike-ajagraafikute-koostamine/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=peresobralike-ajagraafikute-koostamine</link>
		<comments>http://www.targotennisberg.com/tarkvara/2009/01/05/peresobralike-ajagraafikute-koostamine/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 14:05:21 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Joostes Marss]]></category>
		<category><![CDATA[Programmeerijad]]></category>
		<category><![CDATA[Projektijuhtimine]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=236</guid>
		<description><![CDATA[
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, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/12/nuclear-test.jpg"><img class="alignnone size-thumbnail wp-image-255" title="nuclear-test" src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/12/nuclear-test-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>Hulkuvate Kasside Riiklik Inspektsioon tellis tarkvarafirmalt <strong>Joostes Marss</strong> täiendusi oma andmeregistrile. Ülesandepüstitus oli küllaltki selge ja põhjalik ning projektijuht <strong>Joosep </strong>küsis programmeerija <strong>Priidult</strong>, kui kaua asjaga läheb. Neli nädalat, vastas Priit, Joosep pani igaks juhuks puhvri mõttes veel nädala otsa ning teatas klient <strong>Kustavile</strong>, et viie nädala pärast saab asja kätte.</p>
<p>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.</p>
<p>Joosep helistas Kustavile, et asjad on korras, aga arvas seejärel, et vaatab ise ka siiski funktsionaalsust. Tulemused tõstsid tal ihukarvad püsti &#8211; enamvähem iga viie kliki järel rakendus crashis ja praktiliselt ühtki kasutusjuhtu polnud võimalik algusest lõpuni läbi käia.</p>
<p>Joosep tormas kõva kisaga Priidu juurde, et mis toimub. Aset leidis järgmine kahekõne.</p>
<p>Joosep: Mis bl*#¤% selle koodiga toimub??<br />
Priit: Kood sai just valmis ja kogu funktsionaalsus on teostatud.<br />
Joosep: No aga miks see crashib siis, jo*#¤ma*#¤% ?!?<br />
Priit: No aga keegi pole ju seda testinud, loomulik ju, et koodis pole kõik asjad kohe päris õiged.<br />
Joosep: Kas sa ise ei testinud siis oma asja?<br />
Priit: Testimiseks polnud aega ette nähtud, ise küsisid, et kui kaua teostamisega läheb, mitte testimisega. Ja üldse oled ise üks hu*&#8221;%¤% !!</p>
<p>Oops.</p>
<p>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.</p>
<p>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.</p>
<p>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 <strong>tegevused unustatakse lihtsalt graafikusse lisamata</strong>.</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/12/schedule.jpg"><img class="alignnone size-thumbnail wp-image-252" title="schedule" src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/12/schedule-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/12/nuclear-test.jpg"></a></p>
<p>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 &#8220;valmis&#8221; võib tegelikult erinevate inimeste jaoks tähendada väga erinevaid asju, näiteks:</p>
<ul>
<li>Funktsionaalsus on koodiridadena olemas</li>
<li>Keegi on rakenduse peamised kasutajajuhud läbi käinud</li>
<li>Programmeerija on rakendusele kirjutanud unit testid ja need töötavad</li>
<li>Testija on mingi testimisplaani alusel kontrollinud, et funktsionaalsus töötab</li>
<li>Tellija on formaalse kava alusel kontrollinud mitmesuguste nõuete täidetust</li>
</ul>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/12/mission_accomplished.jpg"><img class="alignnone size-full wp-image-256" title="mission_accomplished" src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/12/mission_accomplished.jpg" alt="" width="273" height="367" /></a></p>
<p>Jutu peamine moraal kõigile tarkvaraprojektides osalejaile on:</p>
<ul>
<li>Täpsustada, mida nimetatakse valmis olekuks, kuna see on olenevalt inimese taustast ja ametist väga suuresti vaataja silmades</li>
<li>Teha vahet lubaduste (<em>commitmentide</em>), ligikaudsete esmärkide ja tõenäosuslike ajahinnangute vahel ning iga mainitava kuupäeva puhul täpsustada, millega on tegemist.</li>
</ul>
<p>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:</p>
<ul>
<li>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.</li>
<li>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.</li>
<li>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!</li>
<li>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 &#8220;koodikirjutamisele&#8221; juurde liita. Elu on näidanud, et lõpuks tuleb sellised tegevused nii või teisiti ära teha ja kuna <em>shit flows downhill</em>, näidatakse pärast ikka näpuga progeja peale, et tema tegi halvasti.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2009/01/05/peresobralike-ajagraafikute-koostamine/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Arendajate arengust</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/09/24/arendajate-arengust/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=arendajate-arengust</link>
		<comments>http://www.targotennisberg.com/tarkvara/2008/09/24/arendajate-arengust/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 12:02:22 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Juhtimine]]></category>
		<category><![CDATA[Programmeerijad]]></category>
		<category><![CDATA[Põhialused]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=183</guid>
		<description><![CDATA[ 
On arenguvestluste aeg. Praegu on neljas aasta, mil see ülesanne minu ametijuhendis seisab, ja panen sel teemal lõpuks mõned kogutud mõtted kirja.
Tarkvara tellija seisukohalt näeb projekt välja umbes selline:

Ehk siis nad eeldavad, et saavad mingi raha eest kaetud ära erinevate valdkondade kompetentsi mingite tarkvarakomponentide osas. Erinevaid komponente võib teostada sama või erinevad inimesed, eeldame siinkohal [...]]]></description>
			<content:encoded><![CDATA[<p> <a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/evolution.jpg" title="evolution.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/evolution.thumbnail.jpg" alt="evolution.jpg" /></a></p>
<p>On arenguvestluste aeg. Praegu on neljas aasta, mil see ülesanne minu ametijuhendis seisab, ja panen sel teemal lõpuks mõned kogutud mõtted kirja.</p>
<p>Tarkvara tellija seisukohalt näeb projekt välja umbes selline:</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/tellija_vaade1.jpg" title="tellija_vaade1.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/tellija_vaade1.jpg" alt="tellija_vaade1.jpg" /></a><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/tellija_vaade.jpg" title="tellija_vaade.jpg"></a></p>
<p>Ehk siis nad eeldavad, et saavad mingi raha eest kaetud ära erinevate valdkondade kompetentsi mingite tarkvarakomponentide osas. Erinevaid komponente võib teostada sama või erinevad inimesed, eeldame siinkohal lihtsuse mõttes, et iga ruutu täidab erinev inimene.</p>
<p>Kui meil tuleb nüüd tööle ilma eelneva kogemuseta nooremarendaja, on tema kompetents tegelikult selline:</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/arendaja1.jpg" title="arendaja1.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/arendaja1.jpg" alt="arendaja1.jpg" /></a></p>
<p>Selge see, et tellijale selline valgete laikude jätmine ei meeldi, sellepärast aitavad meie uut arendajat üldjuhul kolleegid kõrvalruutudest, näiteks inimesed, kes seonduvaid komponente haldavad, annavad tehnilist nõu, analüütik hoiab asjal rohkem silma peal jne.</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/arendaja2.jpg" title="arendaja2.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/arendaja2.jpg" alt="arendaja2.jpg" /></a></p>
<p>Igal inimesel tekib mingi ala, mille raames ta projekti üldist käiku mõjutab. Ja kuna tellija maksab meile lõppkokkuvõttes kogu ruumi täitmise eest, on kasu, mida inimesed projektile toovad, otseselt seotud nende mõjuala suurusega. Teisisõnu, kui palju on teistel teda ümbritsevatel inimestel temast abi, võrreldes sellega, kui palju teised peavad teda järele aitama.</p>
<p>Tegelikus elus tuleb neid dimensioone veel juurde, näiteks saavad inimesed oma mõju avaldada projektijuhtimise ja kliendiga suhtlemise liinis, aga põhimõte jääb samaks.</p>
<p>Ja tavaliselt ei jää inimesed igaveseks ajaks abivajajaks, vaid arenevad nii kaugele, et täidavad oma valdkonna adekvaatselt ära ja hakkavad ise pigem teistele nõu andma:</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/areng.jpg" title="areng.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/areng.jpg" alt="areng.jpg" /></a></p>
<p>Mis on jutu moraal:</p>
<p>See mudel annab meile ka automaatselt meetodi inimeste tulemuste ja kasutoomise hindamiseks. Meil pole vaja lugeda koodiridu ega bugisid ega <em>function pointe</em> ega spetsifikatsioonilehekülgi ega laua taga istutud tunde. Kõik need mõõdikud illustreerivad vaid pisikest lõiku sellest, mida inimene tegelikult teeb, kui paljude teiste projektiosalistega ta suhtleb ja millist kasu ta neile saab tuua, rääkimata asjaolust, et need andmed on väga kergesti võltsitavad <img src='http://www.targotennisberg.com/tarkvara/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vaja on ainult vestelda kõnealuse inimese kaastöötajatega erinevatest dimensioonidest (arendaja puhul näiteks teised arendajad, tema lähim analüütik, testija, projektijuht, klient jne) ja küsida, millist kasu on inimene X teie vaatekohalt nii projektile kui ka teile endale toonud, ning me saamegi hea pildi sellest, kes on tegelikult väärtuslik, kes mitte.</p>
<p>Kokkuvõtlikud järeldused:</p>
<ol>
<li>Arendaja loomulik karjääriprotsess on, et ta vajab aja jooksul vähem kõrvalist abi ja hakkab järjest rohkem aitama teisi. Esimeseks sammuks on siin üldjuhul oma loomuliku ruudukese äratäitmine ning teiseks laienemine mõnda kõrvalasuvasse, vastavalt isiklikele huvidele ja projekti vajadustele.</li>
<li>Igal inimesel tuleb ette loomulik piir, millest alates ainult omaenda kitsas töövaldkonnas opereerimine pole piisav, et igal aastal palka juurde küsida, kuna ta on iseenese ruumi lihtsalt ära täitnud. Samas on igas projektis alati küllaga valgeid laike, mille täitmisega rohkem kasu tuua.</li>
<li>Ja kõige olulisemana minu isiklik põhireegel arenguvestluste osas: <strong>inimese väärtus projektile on võrdeline talle töökaaslastelt osaks saava respektiga.</strong></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2008/09/24/arendajate-arengust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 aastat Vana Programmeerijat</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/09/17/10-aastat-vana-programmeerijat/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=10-aastat-vana-programmeerijat</link>
		<comments>http://www.targotennisberg.com/tarkvara/2008/09/17/10-aastat-vana-programmeerijat/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 09:09:42 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Isiklik]]></category>
		<category><![CDATA[Lugejate lemmikud]]></category>
		<category><![CDATA[Maad ja rahvad]]></category>
		<category><![CDATA[Programmeerijad]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=181</guid>
		<description><![CDATA[ 
Umbes kümme aastat tagasi oli mul kord kõrge palavik, mis takistas kooli või tööle minekut. Arvuti taha suutsin end siiki vedada ja kirjutasin teatava Kivirähu teksti põhjal üles Vana Programmeerija loo.
Kümne aasta juubeli puhul panin ta siia taas kirja. Nendele, kel huvi asja võõramaalastega jagada, tõlkisin selle millalgi ka inglise keelde.
Vana Programmeerija
Öösel toodi firmasse uus mees.
&#8220;Said [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/programmer.jpg" title="programmer.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/09/programmer.thumbnail.jpg" alt="programmer.jpg" /></a> </p>
<p>Umbes kümme aastat tagasi oli mul kord kõrge palavik, mis takistas kooli või tööle minekut. Arvuti taha suutsin end siiki vedada ja kirjutasin teatava <a href="http://et.wikipedia.org/wiki/Andrus_Kivir%C3%A4hk">Kivirähu</a> teksti põhjal üles Vana Programmeerija loo.</p>
<p>Kümne aasta juubeli puhul panin ta siia taas kirja. Nendele, kel huvi asja võõramaalastega jagada, tõlkisin selle millalgi ka <a href="http://www.targotennisberg.com/kirjad/theoldprogrammer.htm">inglise keelde</a>.</p>
<h3>Vana Programmeerija</h3>
<p>Öösel toodi firmasse uus mees.<br />
&#8220;Said su siis nõusse,&#8221; ütles üks programmeerija kaastundlikult. &#8220;Küllap jootsid su täis, nii nagu meid kõiki. Kes siis kaine peaga sellisesse firmasse tuleb!&#8221;<br />
&#8220;Kas tead, kuhu kadus too mees, kelle asemele sind värvati?&#8221; küsis teine kaastöötaja. &#8220;Projektijuht lõi ta maha. Lihtsalt lõi maha ja kõik. Palju mehi on tema rusika läbi oma otsa leidnud.&#8221;<br />
&#8220;Nii ongi õige!&#8221; ütles uus mees rahulikult. &#8220;Kus seda enne nähtud, et firmas ei tapeta! Mina olen vana häkker, olen kõik operatsioonisüsteemid ise läbi testinud ning iga kord on taplemist olnud. Vat vanasti, siis olid ikka mehed! Igaüks käis majas ringi, juhtmeots käes, ja kui sai, siis laskis voolu! Mina ainsana jäin hinge, lõpetasin edukalt projekti ja kauplesin end uude kohta. Jah, mina tunnen tarkvara tegemise kombeid!&#8221;<br />
Ja ta ronis magamiskotti ning jäi norinal magama.<br />
Hommikul tundis projektijuht uue mehe vastu huvi.<br />
&#8220;Kus ta on?&#8221; küsis ta analüütikult. &#8220;Tutvustan talle meie firma tavasid.&#8221;<br />
Analüütik läks näost punaseks ja lõi silmad maha.<br />
&#8220;Kuidas nüüd öelda&#8230; Istub jututoas&#8230; Ma küll ütlesin, aga&#8230;&#8221;<br />
&#8220;Mis!&#8221; röögatas projektijuht. &#8220;Laiskleb! Kas ta peab meie firmat laatsaretiks või! Tuhat nullpointerit! Näita, kus ta on!&#8221;<br />
Programmeerija vedeles tõesti jututoas ning haigutas aeg-ajalt magusalt.<br />
Projektijuhti nähes ta naeratas unelevalt.<br />
&#8220;Mõtlesin just sellest ajast, mil ma veel noor olin,&#8221; ütles ta. &#8220;Siis olid mehed selgest rauast. Mina isegi olen ju teab kui mitu korda haljast assemblerist bugisid rookinud. Ükskord juhtus sihuke ette, et hoia ja keela! Kolm korda tuli ringi kompileerida. Aga ma talle andsin!&#8221;<br />
&#8220;Mida!&#8221; käratas projektijuht. &#8220;Sa veel seletad, lurjus!&#8221;<br />
&#8220;Nonoh!&#8221;, ütles mees pahaselt. &#8220;Hoia oma pudrumulk vaos, kui sa häkkeriga kõneled. Ega ma oma juttu lõpetanud pole. Teinekord tuli andmebaasimootorit parandada &#8211; t erve kollektiiv läks selle pärast peast segi, aga siis leidis terav kirves kivi! &#8220;Noh, roju!&#8221; ütlesin ma talle. &#8220;Nüüd ma su jahvatan!&#8221; See oli ka üks kodeerimine, mida tänaseni meenutatakse.&#8221;<br />
Projektijuht kuulas ja läks raevust kollaseks.<br />
&#8220;Kas sa tead, kellega sa praegu räägid!&#8221; kisendas ta. &#8220;Sa räägid projektijuhi endaga!&#8221;<br />
&#8220;Mis projektijuht sina oled!&#8221; lõi vana programmeerija käega. &#8220;Selliseid projektijuhte on ennegi nähtud. Vaata vanasti, siis olid projektijuhid. Silmad olid teistel punnis, käisid trampides mööda koridori ja vandusid nii , et kõik masinad käigu pealt GPF-i andsid. Sinusuguseid keskkoolihäkkereid ei lastud uksest sissegi, nad tõid õnnetust kaasa. Mine parem oma tuppa ja küll mina siin asjad korda sean. Mina tunnen C++&#8217;i nagu oma pük se.&#8221;<br />
&#8220;Nii!&#8221; pöördus ta seejärel analüütiku poole. &#8220;Mitut CASE-vahendit te kasutate?&#8221;<br />
&#8220;Ühte,&#8221; vastas see hämmeldunult.<br />
Vana programmeerija vangutas pead.<br />
&#8220;Kus seda enne nähtud!&#8221; ütles ta. &#8220;CASE-vahendeid peab olema vähemalt seitse ja diagramme tuleb üle joonistada kaksteist korda päevas. Nii oli vanasti alati. Saada mehed joonistama!&#8221;<br />
&#8220;Mulle tundub, et&#8230;&#8221; alustas jahmunud projektijuht, aga vana programmeerija käskis tal pudrumulgu kinni pidada.<br />
Serveri kettaruumi kulutas vana programmeerija rohkem kui kõik ülejäänud kokku ja käskis finantsdirektoril seejärel uut riistvara muretsema minna.<br />
&#8220;Nii ei jätku meie rahadest kuigi kauaks,&#8221; söandas finantsdirektor poetada.<br />
&#8220;Firmas peabki vähe raha olema,&#8221; vastas vana programmeerija kindlalt. &#8220;Omal ajal, kui ma FreeBSD-ga tegelesin, ei saanud keegi seitse kuud sentigi palka. Mis teie siin ka üldse tarkvarategemisest teate.&#8221;<br />
&#8220;Mis firma tarkvara kasutatakse?&#8221; uuris ta seejärel analüütikult.<br />
&#8220;Microsofti,&#8221; vastas too.<br />
&#8220;See tuleb kohe maha kustutada,&#8221; ütles vana häkker. &#8220;Kus seda enne nähtud, et Microsofti tarkvara kasutatakse! See toob ju sulaselget õnnetust! Kõik vanad programmeerijad teavad, et Microsoftis pesitsevad kurjad vaimud. Ru ttu tarkvara ketastelt maha! Mul on meeles üks juhtum, kus kah keegi rumal projektijuht Microsofti tarkvara arvutitesse lasi installeerida. Sealt firmast ei pääsenud peale minu keegi eluga, operatsioonisüsteemidest ronisid aga deemonid välja ja käisid öösiti magamiskottidest meeste verd imemas.&#8221;<br />
Jubedusega kuulanud töötajad formateerisid kiiresti kõik kõvakettad üle.<br />
&#8220;Jeesus Maria!&#8221; hüüdis vapustatud projektijuht. &#8220;Nüüd meie tähtajad hävivad! Ma lähen hulluks!&#8221;<br />
&#8220;Tarkvaratootmisel peabki hulluks minema, siin teisiti ei saa,&#8221; nõustus vana häkker. &#8220;Meil läks omal ajal kogu kollektiiv hulluks.&#8221;<br />
&#8220;Projektijuht ägas ja pages oma tuppa varju.<br />
Vana programmeerija jalutas mööda ruume ning sattus viimaks süsopi manu.<br />
&#8220;Süsteem töötab valesti,&#8221; ütles ta pärast hetkelist mõtlemist.<br />
&#8220;Mul on siin graafiline abivahend, mis süsteemi jälgimisega tegeleb,&#8221; vastas süsop.<br />
Vana häkker vilistas.<br />
&#8220;See&#8217;p see on!&#8221; ütles ta. &#8220;Graafiline kasutajaliides! Kus seda enne nähtud on! Kellel oli vanasti graafiline kasutajaliides? Mitte kellelgi! Käsurida on kõik, mis häkkeril vaja läheb. Graafiline kasutajaliides on ainult eksitamiseks mõeldud.&#8221;<br />
Ta lükkas süsopi kõrvale, kustutas X-Windowsi ning läks tööst väsinuna uuesti puhkama.<br />
Siis anti teada peatsest voolukatkestusest. Projektijuht, kelle nägu reetis, et tema paar viimast tundi pole olnud kergete killast, väljus oma toast ja käskis tööd salvestada.<br />
&#8220;Rumalus!&#8221; leidis vana programmeerija. &#8220;Las aga olla! Pidage kõik oma pudrumulgud kinni, küll mina juba andmetega hakkama saan!&#8221;<br />
Siis tuligi voolukatkestus ja pooleliolevad tööd hävisid.<br />
õhtul pidid Microsofti esindajad, kellega firma koostööd tegi, tulema projekti seisu üle vaatama.<br />
Kuna süsop oma tööd teha ei saanud, ei saadud ka andmeid taastada ning Microsofti esindajad said kurjaks.<br />
&#8220;Nüüd me oleme pankrotis,&#8221; oigas juhtkond.<br />
&#8220;Firma peabki pankrotti minema,&#8221; õpetas vana programeerija, kes hetkekski rahu ei kaotanud. &#8220;Mis firma see on, mis pankrotti ei lähe?! Nii palju, kui mina olen töötanud, pole ükski firma pankrotistumata jäänud! Omal ajal&#8230;&#8221;<br />
Aga ta ei jõudnud lõpetada, sest enne seda jõudsid kohale Microsofti juristid, kes ta seal koos teiste töötajatega kinni võtsid ja Bill Gatesi enda ette toimetasid.<br />
Bill istus väärikalt troonil ja kohendas oma kandilisi prille.<br />
&#8220;Midagi halba teiega siin ei juhtu,&#8221; ütles ta. &#8220;Hakkate vaid minu produktide kallal kodeerijateks nagu kõik need, kes enne teid minu valdustesse sattusid. Nüüdsest olete mu sulased!&#8221;<br />
Tekkis hetkeline vaikus ja kohe seejärel oli kuulda vana programmeerija häält, kes Wordi patchis.<br />
&#8220;Kus seda enne nähtud, et Word PC peal jookseb!&#8221; pahandas ta. &#8220;Wordi koht on HP peal.&#8221;<br />
&#8220;Kas see pole mitte see vana programmeerija!&#8221; hüüatas Bill selge hirmuga. &#8220;Jälle siin!&#8221;<br />
&#8220;Mina ikka,&#8221; vastas häkker. &#8220;No miks su prillid küll kandilised on? Need on ju alati olnud ümmargused.&#8221;<br />
&#8220;Viige ta ruttu tagasi!&#8221; karjatas Bill. &#8220;Ruttu!&#8221;<br />
Ning juristid viisid vana programmeerija minema.<br />
Järgmisel päeval istus ta terminali taga ja mängis muda, kui sisse astusid kaks meest.<br />
&#8220;Vajame kogenud programmeerijat!&#8221; hõikas üks neist.<br />
&#8220;Siin ma olen,&#8221; vastas vana programmeerija ja läks meestega kaasa.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2008/09/17/10-aastat-vana-programmeerijat/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tarkvaraprojekti Maslow hierarhia</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/06/02/tarkvaraprojekti-maslow-hierarhia/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=tarkvaraprojekti-maslow-hierarhia</link>
		<comments>http://www.targotennisberg.com/tarkvara/2008/06/02/tarkvaraprojekti-maslow-hierarhia/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 09:23:43 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Juhtimine]]></category>
		<category><![CDATA[Programmeerijad]]></category>
		<category><![CDATA[Projektijuhtimine]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=123</guid>
		<description><![CDATA[
Mitmesuguste uuringute põhjal on leitud, et ligi pooli alustatud tarkvaraprojekte võib lugeda ebaõnnestunuks. Seega, kui lugejal on olnud tegemist mõne tarkvaraprojektiga, on suure tõenäosusega olemas ka kogemus mõne puusse läinud projektiga. Huvitav on aga jälgida, milliseid abinõusid selle puhul ette võetakse. Selgub näiteks, et inimesed on õnnetud ja rahulolematud, mida teha? Juhtkond korraldab neile kõva [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/06/car_cliff.jpg" title="car_cliff.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/06/car_cliff.thumbnail.jpg" alt="car_cliff.jpg" /></a></p>
<p><a href="http://www.it-cortex.com/Stat_Failure_Rate.htm">Mitmesuguste uuringute</a> põhjal on leitud, et ligi pooli alustatud tarkvaraprojekte võib lugeda ebaõnnestunuks. Seega, kui lugejal on olnud tegemist mõne tarkvaraprojektiga, on suure tõenäosusega olemas ka kogemus mõne puusse läinud projektiga. Huvitav on aga jälgida, milliseid abinõusid selle puhul ette võetakse. Selgub näiteks, et inimesed on õnnetud ja rahulolematud, mida teha? Juhtkond korraldab neile kõva peo, uskudes, et selle abil saab kõik korda, aga kas see oli tegelikult asi, mida vaja?</p>
<p>Steve McConnell laiendab oma suurepärases raamatus &#8220;Software Project Survival Guide&#8221; <a href="http://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs">Maslow hierarhia</a> ideed tarkvaraprojektidele.</p>
<p>Järgneval skeemil on klassikaline Maslow hierarhia inimeste kontekstis:</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/06/maslow_human1.gif" title="maslow_human1.gif"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/06/maslow_human1.gif" alt="maslow_human1.gif" /></a><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/06/maslow_human.gif" title="maslow_human.gif"></a></p>
<p>Laiendades sama ideed tarkvaraprojektile saame aga sellise diagrammi:</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/06/maslow_software1.gif" title="maslow_software1.gif"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/06/maslow_software1.gif" alt="maslow_software1.gif" /></a><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/06/maslow_software.gif" title="maslow_software.gif"></a></p>
<p>Ja nagu inimeste puhul, pole meil mõtet tegeleda hierarhia ülemiste osadega, kui alumised on rahuldamata. Oletame, et mul on paha tuju. Sõbrad kutsuvad mind kinno, et asja parandada, aga see ei muuda midagi, kui minu probleem on tekkinud hoopis sellest, et mul on kõht tühi! Samamoodi ei aita inimestele peo korraldamine, kui probleemiks on see, et tähtajad on ebarealistlikud ning inimesed peavad kogu aeg ületunde tegema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2008/06/02/tarkvaraprojekti-maslow-hierarhia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmeerijad ja rähnid</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/05/14/programmeerijad-ja-rahnid/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=programmeerijad-ja-rahnid</link>
		<comments>http://www.targotennisberg.com/tarkvara/2008/05/14/programmeerijad-ja-rahnid/#comments</comments>
		<pubDate>Wed, 14 May 2008 05:29:39 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Hea kood]]></category>
		<category><![CDATA[Lugejate lemmikud]]></category>
		<category><![CDATA[Programmeerijad]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=113</guid>
		<description><![CDATA[ 
Kui ehitajad ehitaksid maju samamoodi nagu programeerijad kirjutavad programme, siis esimene rähn hävitaks tsivilisatsiooni. &#8211; Murphy seaduste kogust
Leidsin riiulist mingi ehitusinseneridele mõeldud tehnilise taskuraamatu (pole aimugi, kuidas see sinna sai). Muuhulgas on seal palju tabeleid mitmesuguste materjalide omaduste kohta: tellised, teras, vineer, tihedus, kõvadus, tugevus. Arusaadav, et iga korralik insener peab omama ülevaadet, milliste materjalidega [...]]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/woodpecker.jpg" title="woodpecker.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/woodpecker.thumbnail.jpg" alt="woodpecker.jpg" /></a> <a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/building_collapse.jpg" title="building_collapse.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/building_collapse.thumbnail.jpg" alt="building_collapse.jpg" /></a></em></p>
<p><em>Kui ehitajad ehitaksid maju samamoodi nagu programeerijad kirjutavad programme, siis esimene rähn hävitaks tsivilisatsiooni.</em> &#8211; Murphy seaduste kogust</p>
<p>Leidsin riiulist mingi ehitusinseneridele mõeldud tehnilise taskuraamatu (pole aimugi, kuidas see sinna sai). Muuhulgas on seal palju tabeleid mitmesuguste materjalide omaduste kohta: tellised, teras, vineer, tihedus, kõvadus, tugevus. Arusaadav, et iga korralik insener peab omama ülevaadet, milliste materjalidega ta töötab, mis on nende tugevuspiirid ja muud tehnilised omadused. Seda enam on hämmastav, kui vähesed programmeerijad teavad, millest nad tegelikult oma programme kokku panevad. Rakendusprogrammeerija ei tea, mis toimub klassiteekide sees, mida ta kasutab. Teekide kirjutaja ei tea, mis toimub operatsioonisüsteemis. Süsteemprogrammeerija ei tea, mis toimub riistvaras. Kõige selle juures on imekspandav, et tarkvara üldse vahel töötab ja midagi mõistlikku teeb.</p>
<p>Kiire test: Kui sa oled C# programmeerija, siis kas sa tead, kui suur on mscorlib.dll? Kasutad XMLi? Kui suur on System.Xml.dll? (Java, C++ jne spetsialistid võivad mõelda oma põhiliste klassiteekide ja runtime&#8217;ide peale). Ei tea? Tegemist on umbes samasuguse probleemiga, kui ehitaja ei tea, kui palju kaalub tellis, sest iga kord kui keegi vastava rakenduse käima paneb, mõjutab laetud teekide hulk rakenduse mälutarvet ja sellega otseselt programmi jõudlust. Analoogiliselt, kui sa kasutad näiteks mingit stringitöötlusteeki, on hea teada, mis on nende operatsioonide tegelik ajaline keerukus, kui pilditöötlemisteeki, siis millised on selle sisemised andmestruktuurid, et saaks hinnata mäluvajadust jne.</p>
<p>Objekt-orienteeritud programmeerimine on väga hea asi, aga ebasoovitava kõrvalefektina on see veelgi süvendanud olukorda, kus inimesed:</p>
<ol>
<li>ei tea, mis klassiteegi sees toimub, sest kõik on ilusasti ära peidetud, pakendatud ja kapseldatud</li>
<li>ei oska ilma spetsiaalse teegita ise üldse ühtki probleemi lahendada</li>
</ol>
<p>Kord saadeti mind asja uurima suure, tähtsa ja rikka kliendi juurde, kes kurtis, et tema veebiserver ei skaleeru. Lasin nende avalehe profileerijast läbi ja leidsin tuhandeid <a href="http://msdn.microsoft.com/en-us/library/system.string.concat.aspx">String.Concat</a> väljakutseid. Selgus, et nad panevad suure hulga oma HTMList lihtsalt stringiliitmise teel kokku, mis on C# kasutades <a href="http://www.c-sharpcorner.com/UploadFile/mahesh/StringBuilderComp11232005235258PM/StringBuilderComp.aspx">muidugi rumal</a>. Tegemist on tüüpilise näitega, kus programmeerija ei tea, kuidas tema vahendid tegelikult töötavad.</p>
<p>Osaks minu tööülesannetest on aeg-ajalt potentsiaalsete töösoovijatega vestlemine (veel enne tegelikku intervjuud/katseid). Küsin sealhulgas nende käest lihtsaid tehnilisi küsimusi, et leida, kas on üldse mõtet edasi vestelda või on tegu mõlemapoolse ajaraiskamisega. Tuleb siis selline tegelane, küsin tema käest, et kui tal on programmis näiteks massiiv punaseid palle ja rohelisi palle, kuidas oleks kõige parem neid sorteerida, nii et punased pallid satuvad algusesse ja rohelised lõppu. Tema selle peale, et teeks <a href="http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx">ArrayListi</a> ja kasutaks siis selle Sort meetodit. Kas ta teab, kuidas Sort meetod töötab? Ei. Aga kui ta peaks ise sellise meetodi kirjutama? Vaikus. Bzzzzzt, järgmine, palun. Esiteks pole klassiteekides leiduvad üldotstarbelised sorteerimisalgoritmid antud ülesande puhul sugugi optimaalsed, teiseks pole mul midagi peale hakata inimesega, kes arvutiteaduse põhikontseptsioonidega hätta jääb (nagu ehitusinsener, kes füüsikaeksamil põrub). Aja- ning mäluvajaduse keerukusest ei jõudnud muidugi rääkima hakatagi.</p>
<p><em> <a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/matrix.jpg" title="matrix.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/matrix.thumbnail.jpg" alt="matrix.jpg" /></a></em></p>
<p><em>Uuri allikteksti, sula ühte koodiga</em> &#8211; Linus Torvalds</p>
<p>Inimesed küsivad mult vahel nõu programmeerimisõpikute kohta. Häid õpikuid on palju, aga minu meelest on hea programmeerija parimaks lektüüriks hea kood <img src='http://www.targotennisberg.com/tarkvara/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Mitmesuguste andekate inimestega koos töötamise järel olen oma Microsofti-kogemuse juures rõõmus võimaluse üle igasugust huvitavat koodi lugeda, Windows, Office, .Net Framework, kõigis neis on geniaalseid lahendusi, rääkimata asjade mõistmisest tulenevast rahuldusest ja teadmistest, mis võimaldavad mul oma tööd efektiivsemalt teha (ma ei räägi siin mingitest sala-APIdest, vaid lihtsalt algoritmide tasemel mõistmisest). Väljaspool Microsofti on loomulikult samuti tuhandeid võimalusi uurida, kuidas asjad töötavad, olgu siis Open/Shared Source&#8217;i maailmas või mujal, ja suureks vaheks hea programmeerija ning tipp-programmeerija vahel on tihti see, kui palju ta igasuguste vidinate uurimisele on aega kulutanud. Kui alliktekstid pole saadaval, uuri jõudluskarakteristikuid, profileeri klassiteeke jne, et aru saada, kuidas asjad töötavad.</p>
<p>Ja hoidu rähnide eest <img src='http://www.targotennisberg.com/tarkvara/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2008/05/14/programmeerijad-ja-rahnid/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Programmeerija kolm voorust: laiskus, kannatamatus ja edevus</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/05/09/programmeerija-kolm-voorust-laiskus-kannatamatus-ja-edevus/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=programmeerija-kolm-voorust-laiskus-kannatamatus-ja-edevus</link>
		<comments>http://www.targotennisberg.com/tarkvara/2008/05/09/programmeerija-kolm-voorust-laiskus-kannatamatus-ja-edevus/#comments</comments>
		<pubDate>Fri, 09 May 2008 05:47:42 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Hea kood]]></category>
		<category><![CDATA[Joostes Marss]]></category>
		<category><![CDATA[Programmeerijad]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=108</guid>
		<description><![CDATA[ 
We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.&#8221; &#8211; Larry Wall
Klassikalised kristlikud voorused on: mõistlikkus, mõõdukus, meelekindlus, õiglus, usk, lootus ja armastus. Samas, nii palju kui ma ka ei püüaks klassikalist vooruslikku elu elada, on vähemalt minu naise arvates mind märgatavalt paremini varustatud laiskuse, kannatamatuse ja edevusega. [...]]]></description>
			<content:encoded><![CDATA[<p><em><a title="virtue.jpg" href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/virtue.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/virtue.thumbnail.jpg" alt="virtue.jpg" /></a> </em></p>
<p><em>We will encourage you to develop the three great virtues of a programmer:</em> <em>laziness, impatience, and hubris</em>.&#8221; &#8211; Larry Wall</p>
<p><a href="http://kristlus.varstukk.edu.ee/kristlikkultuur/piibel/kristlikud-sFCmbolid/seitse-voorust.php">Klassikalised kristlikud voorused</a> on: mõistlikkus, mõõdukus, meelekindlus, õiglus, usk, lootus ja armastus. Samas, nii palju kui ma ka ei püüaks klassikalist vooruslikku elu elada, on vähemalt minu naise arvates mind märgatavalt paremini varustatud laiskuse, kannatamatuse ja edevusega. Kuna aga vähemalt professionaalses elus on viimased kolm mind kõvasti rohkem edasi aidanud kui esimesed seitse, siis tuleb ilmselt olukorrast võtta, mis võtta annab <img src='http://www.targotennisberg.com/tarkvara/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Siin ei tule asja muidugi nii mõista, et me neid kolme omadust kogu aeg ja igas situatsioonis peaksime kasutama, küll aga on nad meile suureks abiks oma igapäevase koodi kirjutamisel.</p>
<p><strong> <a title="laziness.jpg" href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/laziness.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/laziness.thumbnail.jpg" alt="laziness.jpg" /></a></strong></p>
<p><strong>Esimene voorus: laiskus</strong></p>
<p>Tarkvarafirmal <strong>Joostes Marss</strong> tuleb teha Hulkuvate Kasside Riiklikule Inspektsioonile statistiliste aruannete moodul, toomaks eraldi välja, kui palju erinevate ajaperioodide lõikes koeri ja kasse kaotatakse ja leitakse. Jagatakse siis ära: pooled aruanded <strong>Priidule</strong> ja pooled <strong>Pärtlile</strong>. Priit hakkab asjaga kohe hoolega pihta, kirjutab ühe lehekülje keerulist andmebaasikoodi teise järel. Ajaperioodide arvestamisel on teatavasti palju erijuhtumeid, teha päringut näiteks juuni viimasest pühapäevast 5. septembrini pole triviaalne ja Priidu kood koosneb lõpuks suurest hulgast if-then-else klauslitest, igaühe sees omakorda keeruline arvutus. Priit muudkui kirjutab, möödub päev ja teine, projektijuht <strong>Joosep </strong>küsib, kuidas läheb, Priit näitab suurt hulka koodi ja seletab pikalt, kui keerulise ülesandega ikka tegemist on, ja kuidas tal veel kolm korda nii palju koodi tuleb kirjutada, enne kui asi valmis. Kuna koodihulgast on ilmselgelt näha, et asjad edenevad, siis Joosep rahuneb natuke.</p>
<p>Pärtel ei tee samal ajal pealtnäha suurt midagi, nokitseb asja kallal, sirgeldab ühtteist paberile, lõpuks teeb siiski kompilaatori ka lahti. Joosep on mures ja küsib Pärtli käest, et näe, Priidul juba nii palju koodi valmis, mida sina teed? Pärtel vastu, et pole hullu, küll saab. Ja teatab õhtul, et temal on kõik valmis. Joosep ei usu, sest koodi pole pealtnäha nagu ollagi, aga näeb siis, et tõepoolest, kõik töötab, kiiresti ja korralikult. Pärtel ei viitsinud palju koodi kirjutada ja tekitas lihtsalt <a href="http://en.wikipedia.org/wiki/Denormalization">denormaliseeritud</a> vahetabeli, kuhu enne aruannete koostamist andmed kopeeritakse, ja mille pealt päringute tegemine on selge, lihtne ja lühike.</p>
<p>Tegelikult on laiskus arvutitega lahutamatult seotud. Kuna arvuti on loodud selleks, et inimese eest töö ära teha, poleks virk inimene kunagi sellise leiutise peale tulnud. Hea programmeerija püüab teha kõik, et omaenda vaeva võimalikult vähendada. Las arvuti töötab, tema on rauast. Ma ise pean konkreetset kooditoksimist küllaltki tüütuks ega viitsi sellega palju vaeva näha, selle asemel püüan nuputada, kuidas võimalikult vähese arvu ridadega hakkama saada või üleüldse mõnd olemasolevat komponenti kohandada. Selline nuputamine on palju huvitavam ja inimesele kohasem ning rahuldust pakkuvam tegevus, rääkimata sellest, et tähtajad saavad kiiremini valmis ja ka tulemus on enamasti kvaliteetsem (vigade hulk kipub kasvama koos koodi hulgaga).</p>
<p>Laiskus soodustab veel mitmeid häid harjumusi nagu</p>
<ul>
<li>korduvate tegevuste jaoks spetsiaalsete utiliitide kirjutamine</li>
<li>koodi hoolikam testimine ja debugimine (sest <a href="http://www.targotennisberg.com/tarkvara/?p=7">tarkvara</a> <a href="http://www.targotennisberg.com/tarkvara/?p=8">põhiteoreemi</a> järgi kulub meil testimata ja debugimata koodi peale rohkem aega)</li>
<li>selge ja lihtsa koodi kirjutamine, selle kommenteerimine ja dokumenteerimine (et hoida kokku aega, mis muidu kuluks teiste inimeste aitamisele ja rumalatele küsimustele vastamisele)</li>
<li>taaskasutatavusele optimiseerimine, et me ei peaks sama koodi mitu korda kirjutama</li>
<li>jne</li>
</ul>
<p><strong> <a title="impatience.jpg" href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/impatience.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/impatience.thumbnail.jpg" alt="impatience.jpg" /></a></strong></p>
<p><strong>Teine voorus: kannatamatus</strong></p>
<p>Ma arvan, et inimeste kannatamatus on asjaolu, mis on otseselt põhjustanud <a href="http://en.wikipedia.org/wiki/Moore%27s_law">Moore&#8217;i seaduse</a> ja palju muud lahedat.</p>
<p>Kannatamatusega saab mõõta näiteks selliseid asju:</p>
<ul>
<li>Mitu korda ma pean sama koodi uuesti kirjutama, enne kui ma selle jaoks uuestikasutatava mooduli teen?</li>
<li>Mitu korda ma viitsin oma programmi testides samu liigutusi teha kuni ma sagedasemate operatsioonide jaoks lühema ja intuitiivsema meetodi välja mõtlen?</li>
<li>Kui kaua ma jaksan mingi olemasoleva tarkvara järel oodata enne kui ma parema ja kiirema lahenduse välja mõtlen ja sellega palju raha teenin?</li>
<li>Kui kaua ma mõne inimese või teenuse järel ootan, enne kui ma asja ise kiiremini ja efektiivsemalt ära teen või veel parem, automaatse lahenduse leiutan?</li>
<li>Kas ma kannatan olukorda, kus inimesed minu tiimis kirjutavad tuhat rida koodi, kui hakkama saaks ka viiesajaga? Või korraldan ma neile koolituse, et nad parematest metoodikatest aimu saaksid?</li>
</ul>
<p> <a title="pimp.jpg" href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/pimp.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/05/pimp.thumbnail.jpg" alt="pimp.jpg" /></a></p>
<p><strong>Kolmas voorus: edevus</strong></p>
<p>Kui Pärtel oli oma aruanded ennetähtaegselt valmis saanud, ei jäänud ta siiski rahule sellega, et juba enne olemas olnud, valmis koodis käisid paljud aruanded liiga aeglaselt. Päringud olid kirjutatud täpselt kliendi tellimuse kohaselt, imiteerides protsesse, mida klient <strong>Kustavi</strong> alluvuses töötavad kontorirotid enne kas siis Exceli või ka paberi ja pliiatsi abil sooritasid. Selle tõttu kopeeriti ka andmeid liigselt ühest kohast teise, päringud käisid üle seitsmeteistkümne erineva tabeli korraga jne. Pärtel uuris veel natuke asja, kombineeris mõned tabelid kokku, lisas paar indeksit, kirjutas mõne stored procedure&#8217;id lihtsalt päringusse lahti jne. Järgmisel päeval ehmus Joosep, et kas kõik testandmed on ära kustutatud või milles asi, et aruanded järsku mitukümmend korda kiiremini toimivad. Pärtlile ei läinudki eriti korda, kas kliendi jaoks on oluline vahe, kas aruanne käib kümme sekundit või kümnendik sekundit, kuid tal oli võimalus näidata, kes on ettevõttes alfaprogrammeerija.</p>
<p><em>Hubris</em> ei tähenda küll päris täpselt edevust, aga mulle meeldib &#8220;edevus&#8221; tähendusväljana isegi rohkem. Tegemist on jõuga, mis paneb programmeerijat seatud ärilisi eesmärke ja tehnilisi nõudeid ületama, mis sunnib neid kirjutama eriti elegantset koodi, mis vastab headele tavadele ja standarditele, kuid teeb asju siiski efektiivsel ja isikupärasel moel. Tihti ei pane lõppkasutaja selliseid töövõite otseselt tähelegi, aga edevale programmeerijale on tähtis eelkõige kolleegide imetlus. Seetõttu katsub ta kirjutada koodi, mille kohta kellegil midagi norida ei oleks, mis on tarkvara kvaliteedi seisukohalt muidugi väga hea.</p>
<p>Lisaks koodi efektiivsusele avaldub edevus muidugi ka muudes asjaoludes:</p>
<ul>
<li>Kes saab oma töölõigu esimesena valmis?</li>
<li>Kelle koodis on kõige vähem vigu?</li>
<li>Kelle tehtud kasutajaliides on kõige uhkem?</li>
</ul>
<p>Kui edevat programmeerijat selliste asjade eest piisavalt tunnustada, kasvab produktiivsus mühinal, <a href="http://www.targotennisberg.com/tarkvara/?p=69">piitsa ja präänikut</a> ei lähe üldse vajagi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2008/05/09/programmeerija-kolm-voorust-laiskus-kannatamatus-ja-edevus/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Juhtimisviisid ja motivatsioon</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/04/08/juhtimisviisid-ja-motivatsioon/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=juhtimisviisid-ja-motivatsioon</link>
		<comments>http://www.targotennisberg.com/tarkvara/2008/04/08/juhtimisviisid-ja-motivatsioon/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 06:22:50 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Juhtimine]]></category>
		<category><![CDATA[Lugejate lemmikud]]></category>
		<category><![CDATA[Programmeerijad]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=69</guid>
		<description><![CDATA[
Motivatsiooni saame jagada positiivseks (me teeme midagi, et meiega midagi head juhtuks) ja negatiivseks (teeme midagi, et halb juhtumata jääks), samuti väliseks (keegi teine tahab, et me midagi teeks) ja sisemiseks (ise tahame seda teha).
Selle põhjal saame laias laastus neli liiki motivatsioonifaktoreid: kolm neist ei tööta ja üks töötab. Sellegipoolest kasutab 95% maailma ettevõtetest enamasti mingit [...]]]></description>
			<content:encoded><![CDATA[<p><a title="motivation.jpg" href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/motivation.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/motivation.jpg" alt="motivation.jpg" /></a></p>
<p>Motivatsiooni saame jagada positiivseks (me teeme midagi, et meiega midagi head juhtuks) ja negatiivseks (teeme midagi, et halb juhtumata jääks), samuti väliseks (keegi teine tahab, et me midagi teeks) ja sisemiseks (ise tahame seda teha).</p>
<p>Selle põhjal saame laias laastus neli liiki motivatsioonifaktoreid: kolm neist ei tööta ja üks töötab. Sellegipoolest kasutab 95% maailma ettevõtetest enamasti mingit kombinatsiooni kolmest mittetöötavast meetodist.</p>
<p>Kõige olulisem tähelepanek on, et väline motiveerimine üldjuhul ei tööta, ei hea ega halvaga, vaatleme seda mõnede näidete varal:</p>
<p><a title="military.jpg" href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/military.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/military.thumbnail.jpg" alt="military.jpg" /></a></p>
<p>Sõjaväes õpivad inimesed küllaltki kiiresti, et käsk on vanem kui meie ja käsule vastuhakkamisel on enamasti kurvad tagajärjed, olgu tegemist siis kuitahes rumala käsuga. Ka tsiviilelus juhib nii mõnigi organisatsioonijuht oma inimesi nagu sõdureid: &#8220;Teed sellepärast nõnda, et mina ütlen nii, muidu oled vallandatud! Ja jutul lõpp!!&#8221;</p>
<p>Programmeerijad, sindrinahad, arvavad aga enamasti, et nad teavad ise kõige paremini, kuidas asju teha (ja tihti teavadki), ja reageerivad seetõttu kamandamismeetodile lastes oma produktiivsuse allapoole igasugust arvestust. Teiseks eeldab kamandamismeetod arvestatavat mikromanageerimist, niipea kui piitsaplaksutataja silmapiirilt kaob, lastakse end jällegi lõdvaks ja ei tehta üldse midagi. Asi lõpeb sellega, et juht kurnab ennast ära, tehtud ei saa aga ikka midagi.</p>
<p>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!</p>
<p>Ühesõnaga, kui isegi surmaga ähvardamine ei aita, kui inimesel puudub tegelik sisemine soov midagi muuta, kui palju lootust on siis otsesel ülemusel?</p>
<p><a title="money2.jpg" href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/money2.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/money2.thumbnail.jpg" alt="money2.jpg" /></a></p>
<p>Teine viis, kuidas inimesi püütakse panna midagi tegema, on neid ühel või teisel viisil ära ostes, olgu tegemist siis raha, nänni, &#8220;kuu parima töötaja&#8221; tiitli või muude vahenditega.</p>
<p>Esimene probleem sellise lähenemise juures on, et tarkvaraprojekti juures on äärmiselt raske leida mingit lineaarset väärtust, mida mõõta ja seejärel rahasse ümber kantida. Kui premeerida näiteks koodiridade arvu, kirjutab programmeerija kas suure hulga kommentaare või formaadib koodi niiviisi, et see võimalikult pikk välja tuleks, või teeb otseselt sohki, lisades projektile hulga &#8220;võltskoodi&#8221;, mis tegelikult midagi ei tee.</p>
<p>Kui premeerida ennetähtaegset ülesannetega valmis saamist, &#8220;täidetakse&#8221; ülesanne ilma testimata ja muul viisil üle nurga lastes.</p>
<p>Kui premeerida vähest vigade arvu, teeb programmeerija testijaga diili, et vigu ei panda kirja ja statistikas näeb kõik ilus välja (kui me maksame testijale lisatasu selle järgi, kui palju vigu ta leiab, lähevad programmeerija ja testija tülli ning tiimitöö lendab vastu taevast).</p>
<p>Sõltumata sellest, millise meetodi me leiutame, on programmeerija üldjuhul piisavalt taiplik, et optimiseerida oma tulemust vastavalt sellele, mida me parajasti mõõdame, ning tulemus saab enamasti palju hullem, kui enne mõõtmisviisi sisseviimist.</p>
<p><a title="birdflight.jpg" href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/birdflight.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/birdflight.thumbnail.jpg" alt="birdflight.jpg" /></a></p>
<p>Peamine viga, mis mõlemal juhul tehakse, on see, et inimese sisemine motivatsioon asendatakse välisega. Kui ma tahan kirjutada head koodi sellepärast, et mulle meeldib hea tulemus, siis ma pingutan selle nimel, et kood tuleks võimalikult hea. Kui mulle selle eest aga raha pakutakse, siis hakkan ma mõtlema, et &#8220;ma pean kirjutama head koodi, et raha saada&#8221;. Väline motivaator on aga alati nõrgem kui sisemine ning paradoksaalsel kombel on mul äkitselt hoopiski vähem soovi oma tööd võimalikult hästi teha.</p>
<p>Kuidas sisemist motivatsiooni kasvatada? Kui ma teaksin sellele küsimusele täpset vastust, siis juhiksin praegu mõnd <a href="http://money.cnn.com/magazines/fortune/fortune500/2007/full_list/">Fortune 100</a> ettevõtet, aga arvamusi siiski:</p>
<p>On väga oluline, et töötaja jagaks ettevõtte identiteeti ja peaks ettevõtte eesmärke enda omadeks. Siinkohal on suureks abiks, kui ettevõttel on mingil viisil üllas või võimas visioon, millega inimestele meeldib ennast samastada. Miljonid väga andekad inimesed töötavad küllaltki väikese raha eest heategevates organisatsioonides, sest neile meeldib töötada õilsa eesmärgi nimel, isegi kui nad ise on lihtsalt raamatupidajad või itimehed, mitte ei jaga isiklikult nälgivatele lastele leiba.</p>
<p>Kommertsettevõttel on muidugi natuke raskem üllas olla, aga ka siin leiab hea tahtmise korral lahenduse. <a href="http://www.microsoft.com/about/default.mspx">Microsofti missioon</a> on aidata inimestel kogu maailmas oma tööd efektiivsemalt teha. Paljude teiste firmade missioon on Microsoft troonilt tõugata ja seeläbi &#8220;õiglus jalule seada&#8221; <img src='http://www.targotennisberg.com/tarkvara/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Teine identiteedi aspekt on seotud töötaja kolleegidega. Kui inimesed tunnevad end kokkukuuluvatena nagu perekond, on nad vastastikku lojaalsed ja üksteisele pühendunud. Kui minu töökaaslased on mulle olulised, pole mulle vaja mingit välist motivaatorit, et nende nimel ekstra pingutada ja ühise eesmärgi nimel asjad võimalikult hästi valmis teha.</p>
<p>Kolmandaks on vaja, et ettevõtte kultuuris väärtustatakse siiralt head tulemust. Meile kõigile meeldib, kui meid hinnatakse ja respekteeritakse, seda siis nii ülemuste kui ka kolleegide poolt. Kui programmeerija ülemuseks on aga endine müügimees, kes C-l ja Javal vahet ei tee, jääb see vajadus aga rahuldamata ning mingil hetkel langeb paratamatult ka motivatsioon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2008/04/08/juhtimisviisid-ja-motivatsioon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maad ja rahvad</title>
		<link>http://www.targotennisberg.com/tarkvara/2008/04/04/maad-ja-rahvad/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=maad-ja-rahvad</link>
		<comments>http://www.targotennisberg.com/tarkvara/2008/04/04/maad-ja-rahvad/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 03:01:30 +0000</pubDate>
		<dc:creator>Targo</dc:creator>
				<category><![CDATA[Maad ja rahvad]]></category>
		<category><![CDATA[Programmeerijad]]></category>

		<guid isPermaLink="false">http://www.targotennisberg.com/tarkvara/?p=61</guid>
		<description><![CDATA[ 
Üks olulisemaid asju, mille üle mul oma Microsofti-kogemuse juures hea meel on, on võimalus töötada koos väga erineva tausta ja päritoluga inimestega. Ainuüksi minu otseses alluvuses on olnud inimesi Hiinast (sh nii emamaalt, Taiwanist kui ka Hong Kongist), Indiast, Kanadast, Poolast, Slovakkiast, Türgist, USAst ja Venemaalt, lisaks kolleege kõikvõimalikest muudest kohtadest Soomest Botswanani. Konkreetselt arendajate osas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/world.jpg" title="world.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/world.thumbnail.jpg" alt="world.jpg" /></a> </p>
<p>Üks olulisemaid asju, mille üle mul oma Microsofti-kogemuse juures hea meel on, on võimalus töötada koos väga erineva tausta ja päritoluga inimestega. Ainuüksi minu otseses alluvuses on olnud inimesi Hiinast (sh nii emamaalt, Taiwanist kui ka Hong Kongist), Indiast, Kanadast, Poolast, Slovakkiast, Türgist, USAst ja Venemaalt, lisaks kolleege kõikvõimalikest muudest kohtadest Soomest Botswanani. Konkreetselt arendajate osas on ameeriklased Microsoftis muuseas suur vähemus ja mõnes divisjonis ei moodusta isegi mitte suurimat rahvusgruppi.</p>
<p>Selle juures on huvitav tähele panna, kuidas kellegi kultuuriline ja majanduslik taust on inimesi vorminud. Ühelt poolt võib igas keskkonnas kohata nii geeniusi kui ka luusereid, IQ ja töökuse monopoli pole ühelgi piirkonnal, aga sellegipoolest torkavad silma mõned iseärasused.</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/american.jpg" title="american.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/american.thumbnail.jpg" alt="american.jpg" /></a></p>
<p><strong>Ameeriklased </strong>elavad tugevate kapitalistlike traditsioonidega arenenud tööstusühiskonnas, kus valitseb tugev sisemine konkurents ettevõtete ja ka indiviidide vahel. Ettevõtete seas on tihti väga tugev spetsialiseeritus, igaüks on leidnud endale konkreetse kitsa turuniši, millelt oma kasumit saada. Ameerikasse kolides üllatas mind suuresti, kui palju siin ikkagi erinevaid kaupu ja teenuseid on võimalik saada, mis on kõik selle konkurentsi ja spetsialiseerumise tagajärg. Üksikisikute tasemel paistavad silma kaks aspekti: esiteks tohutu ettevõtlikkus &#8211; peaaegu kõigil minu ameeriklastest tuttavatel on kunagi olnud oma äri, nad plaanivad seda tulevikus luua või vähemalt unistavad sellest. Teiseks aspektiks on jällegi seesama spetsialiseeritus, Ameerikas kohtab väga palju inimesi, kes on mingi konkreetse eriala äärmiselt tugevad spetsialistid, kuid nad jäävad hätta, kui on tegemist millegagi, mis otseselt nende valdkonda ei puutu. Samuti toetub ameeriklane hädas palju konkreetse spetsialisti abile, selle asemel, et asju ise korda ajada, olgu tegemist siis elektriku, politseiniku või advokaadiga.</p>
<p><strong> <a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/sikh.jpg" title="sikh.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/sikh.thumbnail.jpg" alt="sikh.jpg" /></a></strong></p>
<p><strong>Indialaste </strong>puhul on oluline vahe, kas me räägime tüüpilisest väljarännanud IT-spetsialistist või inimesest Bombay tänavalt. Tohutu ülerahvastatuse tõttu on Indias lääne inimese jaoks kujuteldamatu konkurents ülikoolikohtadele ja headele ametipostidele. Kraadiõppesse pääseb vaid maksimumhinnetega ja isegi kõrgelt haritud inimesel pole enamasti muud valikut, kui töötada Ameerika firma tech suppordis ja kuulata redneckide virisemist, et miks nende modem ei tööta. Kui siia lisada veel takistused, mida USA immigratsiooniteenistus seab osadest riikidest sisserändajaile, saame kokku terve hulga sõelasid, millest tüüpiline Indiast pärit itimees on pidanud läbi saama. Sellega seoses järgivad nad tihti punktuaalselt igasuguseid tobedamaid ja vähemtobedamaid reegleid (ehk täidavad vene korraldusi saksa täpsusega), kuna nende kogemuse järgi võib reegli eiramine kaasa tuua rongist maha jäämise.</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/putin.jpg" title="putin.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/putin.thumbnail.jpg" alt="putin.jpg" /></a></p>
<p><strong>Idaeurooplased</strong> on tihti vastupidise mentaliteediga. 50 aastat kommunismiaega on neile õpetanud, et reeglid on juhuslikud ning suvalised (isegi kui nad vabamas ja loogilisemas ühiskonnas seda ei ole) ja neid võib enamasti eirata. Vahel on see halb, vahel hea, olenevalt sellest, kas tulemuseks on geniaalne innovatsioon või faux pas, mille tõttu teised peavad ületunde tegema.</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/yao.jpg" title="yao.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/yao.thumbnail.jpg" alt="yao.jpg" /></a></p>
<p><strong>Hiinlaste</strong> juures on huvitaval kombel esindatud jooned kõigist ülaltoodutest: suurrahva mentaliteedist tingitud mõningane teadmatus muu maailma osas, rahvaarvust tingitud tihe konkurents ja kommunistlikust riigikorrast tulenev teatav vajadus igapäevaelus vahel mõningast osavust kasutada.<br />
Samas on Hiina kultuurile lääne omaga võrreldes omane küllaltki tugev kollektivism. Kui Ameerikas on vanasõna, et varajane lind saab ussi kätte (early bird gets the worm), siis Hiinas on väidetavalt vanasõna, et varajane lind lastakse maha ehk siis hoopis teine suhtumine individuaalsesse initsiatiivi. Eriti Hiina filiaalidega asju ajades torkab silma, et inimesed võtavad vastu mingi otsuse ja siis kohalik ülemus räägib kõigi eest, võrreldes sellega, kuidas Euroopa või Ameerika filiaalis igaüks isiklikult esile püüab tikkuda.</p>
<p><a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/ilves.jpg" title="ilves.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/ilves.thumbnail.jpg" alt="ilves.jpg" /></a></p>
<p><strong>Eestlastel </strong>on idaeurooplaste alamliigina veel üks eripära: väikerahvana on Eestis põhimõtteline struktuurne puudus inimestest. Ühemiljonilise rahvaarvuga riigis tuleb ära täita needsamas võtmepositsioonid (olulised riigiametid, põhiliste majandusvaldkondade juhtivate ettevõtete direktorid jne), mis sajamiljoniliseski, aga sobivad kandidaadid tuleb leida palju väiksema seltskonna seast. Kuna igalühel polegi erilist soovi suur juht ja otsustaja olla, põrkavad rahvusvaheliste firmade esindajad Eesti filiaalidega tegeledes kokku nende jaoks kummalise probleemiga, kus keegi ei tahagi eriti ülemus olla ja teeb pigem oma tavalist tööd. Oma tavalises suurkorporatsiooni keskkonnas on nad harjunud pigem olukorraga, kus igale juhtivale kohale on kohe kümme kandidaati, kuna inimestel pole muud varianti silmapaistmiseks. Eestis on aga igal soovijal küllaltki lihtsalt võimalik saada kas seltskonnaajakirja veergudele, televisiooni, parlamenti või mõne top 100 ettevõtte juhikohale, mis enamiku inimeste ambitsioonid rahulikult ära maandab &#8211; kui mujal on tegemist tõsise ambitsiooniüleküllusega, siis Eestis selle puudusega.<br />
Samuti täidetakse Eestis sarnaseid ülesandeid tihti palju väiksema arvu inimestega, kui mujal ning igaüks peab tihti ära katma palju laiema vastutusala kui rahvarohkemas ühiskonnas tavaks. Kui Redmondis on Microsofti Office&#8217;i divisjonis terve eraldi tiim, mis tegeleb ainult build toolide ja skriptidega, siis Eestis teeb programmeerija ise kõik vajaliku muu töö kõrvalt ära. Seetõttu on eestlane itimehena tihti palju laiema profiiliga, kuid tal puudub tavaliselt sügavam eriteadmine oma valdkonnast. See tähelepanek ei kehti muidugi mitte ainult IT kohta, mulle tundub, et näiteks ameeriklasega võrreldes on eestlane ka üleüldiselt varmam avaldama amatöörlikku arvamust mõnel suvalisel poliitilisel või filosoofilisel teemal.</p>
<p> <a href="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/diversity.jpg" title="diversity.jpg"><img src="http://www.targotennisberg.com/tarkvara/wp-content/uploads/2008/04/diversity.thumbnail.jpg" alt="diversity.jpg" /></a></p>
<p>Mis on jutu moraal: Nagu alguses öeldud, ei mõjuta kultuurikeskkond kellegi oskust või võimet oma igapäevaseid tööülesandeid täita ja kõigist ülaltoodud statistilistest tähelepanekutest on palju erandeid. Siiski on hea, kui meeskonnas on esindatud erineva taustaga inimesed, kes lähenevad probleemile erinevalt ning suudavad näha midagi, mis teistel ehk tähele panemata jääb. See ei kehti muidugi mitte ainult rahvuse, vaid ka sotsiaalse või majandusliku päritolu, hobide, selle, kas tegemist on linna- või maainimesega jms kohta. Mida rohkemad on erinevad kogemused ja oskused meeskonnas esindatud, seda väiksem on risk ja seda tugevam lõpptulemus.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.targotennisberg.com/tarkvara/2008/04/04/maad-ja-rahvad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
