Ei koodareissa ole vikaa. Suomalaiset ja jopa intialaiset kyllä vääntää sovellukset kohdilleen kun joku tekee hyvät määritellyt ja arkkitehtuurin.
Ei, vaan kumpi tahansa voi pilata projektin. Pieleen mennyt suunnittelu tai osaamattomat koodarit.
Intia on täynnä osaamattomia koodareita, ja esim. Nokialla yleinen tilanne oli, että joku juttu ensin suunniteltiin suomalaisten toimesta, ja sitten intialaisten käskettiin koodata se. Takaisin tuli hirveä buginen roska ja suomalaisten piti käyttää about yhtä paljon aikaa sen korjaamiseen kuin mitä olisi mennyt sen alunperinkin koodaamiseen suomessa. Ja sitten projektit myöhästeli.
Vaikka olisikin hyvät tekijät niin järjestään tämä tärkeä suunnitteluvaihe ohitetaan nopeasti. Tähän päälle kun lisätään täysin kädettömät projektin vetäjät niin pskaa pukkaa.
Yleensä yhtään isompaa softaprojektia ei
koskaan voi suunnitella "kerrasta oikein". Toteutusvaiheessa huomataan
aina ongelmia alkuperäisen suunnitelman kanssa, ja valitettavasti myös määrittelyt muuttuu.
Suunnittelun pitää olla tarpeeksi joustava, että sitä pystytään ratkaisevilta osilta muuttamaan siinä vaiheessa kun alkuperäisen suunnittelun ongelmia löytyy. Ja jotta ne löytyy mahdollisimman nopeasti, mahdollisimman aikaisessa vaiheessa nimenomaan PITÄÄ alkaa koodaamaan koodista jotain protoversiota.
Ja jos yritetään vain "ensin suunnitella kunnolla ajan kanssa ja sitten vasta toteuttaa" päädytään todennäköisesti overengineeramaan asioita pahasti, ja se overengineeraus vaan tarkoittaa sitä että toteutuskin hidastuu kun koodia tarvii kirjoittaa enemmän ja siinä on tilaa paljon suuremmalle määrälle bugeja.
Esimerkki liian aikaisin lukkoon lyödystä suunnittelusta on esim. nokia 6600-puhelimen java-virtuaalikone:
Sun oli kehittänyt uutta kääntävää java-virtuaalikonetta(cldc HI) MIDP-javalle. Nokia valitsi tämän 1.0-version 6600een.
Tämän virtuaalikoneen 1.0-versio oli kuitenkin todella buginen. Samaan aikaan Sun kehitti siitä 1.1-versiota jossa korjasi bugeja, ja toisaalta nokia korjasi itse samoja bugeja että sai sen toimimaan 6600ssa siedettävästi.
Kun 6600 saatiin lopulta ulos, virtuaalikoneen 1.1-versio (jossa melkein kaikki bugit oli saatu korjattua) oli ollut jo kuukausia ulkona, mutta nokialla oli luurissaan 1.0-versio, josta nokia oli korjannut n. puolet niistä bugeista, mitä 1.1-versiossa oli korjattu.
Virtuaalikonetta ei "voitu" vaihtaa 1.1-versioon koska nokia oli PÄÄTTÄNYT laittaa puhelimeen 1.0-version ja tämä oli kirjoitettu suunnitteludokumenttiin. Ja suunnitelmaa ei voitu enää muuttaa , vaikka hyvin tiedettiin että 1.0-versio oli täysin buginen paska ja 1.1 korjaa sen ongelmat.