kolmapäev, 31. märts 2010

KISS printsiip - natuke poolhuumorit

Programmeerimises on tuntud aksioom:
programmist vigade leidmine on 10 korda keerulisem, kui selle programmi algne kirjutamine.
Ja teine:
mittetrivialset veavaba programmi ei ole olemas.

Esimesest aksioomist saab teha implikatsiooni:
Iga programmeerija on võimeline suhteliselt kerge vaevaga tegema programmi, millest ta vigu ei leia.


Asja mõju reaalses elus?

Küsimus:
kaua selle programmi tegemine aega võtab?
vastus:
kaks päeva.

kolm aastat hiljem:
millal see üks oluline viga siis parandatud saab?

programmeerijal võttis programmi teostus kaks päeva - enne seda oli ta 10a õppinud ja kogemusi omandanud, järelikult, kui õppimine oleks lineaarne protsess, võtaks vajalike oskuste omandamine veel 90 aastat (ja see ei pruugiks tõsta IQd piisavaks).


See ei ole küll puhtalt ainult programmeerimise teema, vaid üldse insenerikunstide - muudes valdkondades paranevad vead tihti isereguleerumise käigus, näiteks ütled kellelegi mingi sõna valesti ja ta saab ikka õigesti aru -, ent tänu keerukusele (miljardid loogikalülitused vs. sada hammasratast) kalduvad just programmeerijad selliseid tendentse avastama ja formuleerima, uue aja projektijuhtimismetoodikaid välja töötama (seda juba üle 50 aasta).


Siit saab teha ka järelduse viletsate juhtide osas - tihtilugu juhivad inimesed, kes valdkonda süvitsi ei mõista (näiteks võib lausa sellist idiotismi leida, et ennast professionaalseks tarkvaraarendusjuhiks nimetav inimene arvab, et maht - aeg - ja keerukus on omavahel kuidagi seotud ja kaks päeva võttev programm ei saagi olla keeruline; sellistel on veel paarkümmend aastat areneda enne, kui nad tegelikult lihtsaid projekte võiks juhtida - eriti, kui nad vahepeal intensiivselt programmeerijakohal ei tööta). Ainult nende andmete põhjal ei tea ju isegi, kas programm tuleks uuesti kirjutada või nõudmisi muuta ...ja mõni väike konks nõudmistes võib tekitada või kaotada keerukuse. Programmeerija seletusi viletsale juhile vaadeldakse ühekülgselt ja kuna juht ei näe, kuidas selgituse detailid kokku klapivad, võib ta pidada neid vastuoluliseks ja üldse päris lolle otsuseid teha.


Ah et miks ma seda räägin? ...aga lihtsalt niisama :) Mõnele lugejale niisama ja mõnele vihjeks, et tema arvamused tarkvarast ei pruugi päris õiged olla - seda sa ju ei teadnud ja see on triviaalne tuhande teise triviaalse printsiibi kõrval, unusta üks ja ajad jama.





Siin on ka väike seos suuremate fiaskodega Eesti riiklikes tarkvaratellimustes ...lugege neid printsiipe, neist on pakse raamatuid, kus on iga printsiip mõnel leheküljel kerge vihjena ära toodud ;) Ja veel paksemaid, mida võib läbi lugeda hunnikus, et saada täpsem info. Ja lõpuks - inimeste kogemus, kes on selles valdkonnas aastakümneid töötanud, mida ükski raamat üle ei kaalu.

Kommentaare ei ole:

Postita kommentaar