Tereall,
Alari palvel (sorry, et enne ei jo`udnud, kiired ajad) taas mo`nda 
Microsofti elu ja olu ko"o"gipoolest.
Ko~igepealt paari so`naga sellest, mis rahvast siin on ja mida keegi 
teeb. Mingi produkti vahetu valmistamisega tegeleb kolme sorti inimesi, 
Program Managerid (PM), Developerid ja Testerid. PM-id on umbes nagu 
analyytikud, peamiseks ylesandeks on neil spetsifikatsioonide 
koostamine. Developeride asi on va"lja mo`elda arhitektuuriline 
lahendus ja ka vastav kood valmis kirjutada. Ja testijad siis 
testivad. Kogu sellel kambal on miski ylemus, kes kogu produkti ja"rele 
vaatab, Administrative Assistant, kellelt ko`ikvo`imalike 
olmeprobleemide puhul abi saab, laboris miskid administraatorid etc. 
Natuke ko~rval seisab suur kari User Educationi (UE) eest vastutajaid, 
nemad tegelevad help-failide kirjutamise, Usability Testingu, mingit 
otsa pidi produktide lokaliseerimise (konkreetsesse keelde to~lkimise) 
ylevaatamise ja muu sihukesega. Ja ilmselt on olemas veel hirmus hulk 
muid tegelasi, kellega mina tavaliselt kokku ei puutu, kui just 
probleeme ei ole, juristid, raamatupidajad, personalirahvas, va"rbajad 
jne jne.
Microsoftil on muidu olemas va"ga konkreetne struktuur, kogu personal 
on puusse aetud, ilusti on selge, kes kellele aru annab. Kui minu 
juurest seda puud mo"o"d ronimist alustada, siis satuvad ette 
ja"rgmised inimesed:
 Mina - Software Design Engineer, va"a"nan mitmesugust kasutajaliidese 
koodi ja omandan Windowsi API kavalusi. Alluvaid 0
 2) Jay Hoover - Development Lead, va"a"nab suht wizardlikku koodi ja 
vastutab peaaegu kogu kasutajaliidese developmendi eest. Alluvaid 4
 Sankrant Sanu - Development Manager, enam eriti koodi ei va"a"na, 
peamiselt manageerib ja kamandab ko`iki developere meie grupis, va"ga 
va"ga sheff mees. Alluvaid 47 (vahetuid alluvaid 6)
 Jeff Teper - Product Unit Manager, hoiab silma peal tervel produktil, 
saja meetri pealt na"ha, et ha"rg. Alluvaid 123 (vahetuid 4)
 Paul Gross - Vice President, kunagine Borlandi R&D Senior Vice 
President, sai Microsoftilt yletuleku eest $1.5M signing bonusena peo 
peale. Alluvaid 1329 (vahetuid 7)
 Bob Muglia - Senior Vice President, kamandab kogu Business 
Productivity liini, mille hulka ka"ivad ka Office ja BackOffice. 
Alluvaid 5196 (vahetuid 10)
 Steve Ballmer - President, suur pullivend ja karismaatiline tegelane, 
keda firma yldkoosolekul Seattle'i Kingdome'is (kohalik korvpallihall) 
Bill Gatesist mrxa tormilisemalt tervitati. Kunagi tavatses ringi 
ka"ia, pesapallikurikas ka"es, ja sellega vastutulijaid klohmida. 
Alluvaid 53771 (vahetuid 14)
 Bill Gates - Chief Executive Officer (CEO), Maailma rikkaim mees, 
AltaVistaga otsides ja"a"b linkide arvult ainult natukene Bill 
Clintonist maha. Alluvaid 54467, vahetuid 6
Kuidas yks produkt valmib? Ko~igepealt panevad suured ylemused paika 
miski yldise arenguplaani, millistele valdkondadele yldse ro`huda. 
Yldkoosolekul (lasershow ja tantsuansambliga) ra"a"giti just mitmeid 
huvitavaid asju sellest, mis suunas firma edasi la"heb. Kunagine 
loosung, 'A PC [running MS software] at every home and on every desk' 
on teatavasti enamva"hem ta"idetud. Vo~in o"elda, et PC ei ole 
tulevikus enam A ja O (aga ei kao ka samas kusagile), paljud asjad 
hakkavad baseeruma vo`rgus, vo`luso~naks saab Service, na"iteks 
standardne autentimisservice, toodete kataloogi service 
shoppingusaitides jpt asjad, mis elavad kusagil serverites ja mille 
inimene samas Internet Explorerist drag'n'dropiga endale kusagile Visual 
Basicusse saab to`sta ja paari rea koodiga seda service'it kasutavaid 
rakendusi nikerdada. Yheso`naga la"heb elu va"ga huvitavaks, kui DoJ 
just asja enne kraavi ei lykka. 
Siis vo`etakse juba konkreetsed strateegilised suunad, a la Netscapele 
molli ja brauserite turg yle vo`tta. See produkt, mille kallal ma ise 
to"o"tan, pole veel avalikult va"lja kuulutatud (o~iget nimegi ei ole 
veel), nii et selle kohta ma ei saa o"elda, mis va"rk ta"pselt on.
Siis kirjutab mo`ni juhtivatest PM-idest Vision Document'i, kus 
o"eldakse, mida see produkt hakkab tegema, kes seda kasutama peaks jne. 
Ja"rgmiseks pannakse juba paika konkreetsed meeskonnad, mis igayks 
mingi jupiga tegelema hakkavad. Igas sellises tiimis on oma PM-id, 
developerid ja testijad. Nyyd kirjutavad PM-id igasuguste feature'de 
kohta Design Document'id, kus pannakse detailselt paika, kuidas vastav 
feature to"o"tab, millised on liidesed, igasugused erilised no`udmised 
jms. PM hoiab ka yleyldiselt silma peal, et ikka o`iget asja tehtaks 
ja teiste tiimidega integreerumine sujuks. Vastav developer mo`tleb 
asja yle ja kirjutab miski oma paberi, kuhu paneb kirja, kuidas seda 
asja vo`iks teha, s.h andmestruktuurid, kavalamad algoritmid, interface'id 
juhuks, kui keegi teine seda koodi kasutama/laiendama peaks jms ning saab 
hakata vaikselt koodi va"a"nama. Ja lo`puks teeb testija Test Plani, kuhu 
paneb yksikasjaliselt kirja ko`ik Test Case'id, mida tuleb kontrollida 
(tyypiet kontrollida, et selle nupu peale vajutamine to`esti tekitab 
andmebaasis sellise va"rgi). Ko`ik need dokumendid ka"ivad la"bi review, 
kus muu asjassepuutuv rahvas vaatab, mis va"rk on, ja norib ko`ige kallal, 
mis pa"he tuleb. Produkti ei tehta mitte korraga valmis, vaid etappide ehk 
Milestone'ide kaupa, muidu kaoks kontroll a"ra suure asja puhul. Iga etapi 
alguses seatakse ja"lle uued eesma"rgid, PM-id kirjutavad uued dokumendid 
ja tehakse ja"lle ring peale. Praegu on na"iteks ka"imas kolmas Milestone 
(M3), mina lylitusin asjasse M2 keskel. M1 lo~pus peaks valmis saama 
prototyyp, M2 lo~pus dogfood (et rahvas hakkab ise kasutama), M3 lo`pus 
tehniline beeta, M4 lo~pus Marketing Beta ja M5 on Release To Manufacturing 
(RTM), asi myyakse maha. Igas etapis va"a"natakse alguses mingi aeg koodi 
ja siis stabiliseeritakse. Stabilisatsiooniperioodil ka"ivad testijad ko`ik 
Test Case'id la"bi ja developerid parandavad ko`ik ilmsikstulnud bugid a"ra.
Yldine idee on see, et asjad vo`etakse ette suurelt ja lahendatakse yldjuhul 
seinast seina.
Mo~ni so~na huvitavamatest to"o"vahenditest. Va"ga vahva asi on RAID, see on 
sisuliselt andmebaasirakendus, kuhu pannakse kirja ko`ik bugid koos mitmete 
vajalike andmetega (kuidas ilmneb, kui to`sine, kes tegelema peab ja paljud 
muud asjad). Bugid on ko~ik asjad alates sellest, et spetsifikatsioon on 
segane vo`i mingi nupu peal on vale kiri, kuni Assertide, crashide ja 
selleni, et mo`ni operatsioon lihtsalt liiga aeglane on.
Va"ga tasemel on meil ka source controli systeem, toimib ka"surealt ja 
vo`imaldab igasuguseid kavalaid nippe. Samuti on sodi kompileerimiseks 
spetsiaalne build environment, mis ko`ike va"rki koos hoiab ja samuti 
ka"surealt toimib. Kellele ka"surida ei meeldi, saab alati Visual Studiot 
vastavalt kohandada, et mingi nupu alt o`ige asi ka"ima la"heks. 
Va"ga abx asi, mida Visual Studio vo`imaldab, on remote debugging, nii et 
mul on kood yhes masinas, aga asi ise jookseb teises masinas ja ei riku mul 
midagi a"ra.
Vahel on abx ka Network Monitor (on vist Win2000-ga by default kaasas), 
millega saab ja"lgida, et ikka o`ige sisuga paketid serverisse lendaksid.
Meie enda produkt to"o"tab HTTP-DAV protokolli peal, meil on vastav jubin, 
millega vahetult HTTP-DAV ka"ske saab kirjutada ja vaadata, kas ikka o`ige 
vastus tagasi tuleb, va"ga abx diagnostikavahend.
Isiklikust olust nii palju, et augusti Performance Review'l hinnati mind 3.5 
punktiga viiest (uue inimese jaoks va"idetavalt hea tulemus), pandi 17% 
palka juurde ja anti natuke preemiat. Siis olen saanud veel yhe masina 
juurde (kokku nyyd 3) ja ta"itsa oma toa.
Selline va"rk siis. Novembri lo`pus/detsembri alguses olen ehk korraks 
Eestis ja tulen vaatan, mis te teete seal.

Targo