Quo vadis TalTech IT süsteemide arendus, ehk Naatan Nohik osales ümarlaual.
Härra Nohikul avanes võimalus osaleda arutelul, kus võeti teemaks TalTech IT süsteemide arenduse õppekava ja milline võiks ta tulevikus välja näha. Küpsiseid ei pakutud, ainult porgandilaadseid tooteid, mida osalejad nukra näoga nosisid, silmis igatsus.
Ümarlaua isikkoosseis oli muljetavaldav. Terve ruum täis akadeemikuid ja muidu tarku inimesi, nende hulgas elu keerdkäikude ja hetkeliste nõrkushetkede tulemusel täiesti arusaamatutel põhjustel ka Naatan Nohik.
Teemapüstitus oli lihtne: millised peaks olema õppekava läbinud tudengi oskused 4-5 aasta pärast.
Seltskond jagati 3-4 liikmelisteks gruppideks ja anti karm käsk kirja panna 10 oskust, mis peaks lõpetanul olema.
Diskussioon kulges ilusasti, tehti ettepanekud, vaieldi, argumenteeriti. Peale üritust kummitas Naatani peas lõputu tsüklina: Küsimus ei ole, mida peaks lõpetanu oskama, vaid keda peaks TalTech IT süsteemide arenduse õppekaval koolitama? Fundamentaalne vahe.
On teada-tuntud tõde, et tänapäeva protsessorid on nii kiired, et suudavad paari tunniga isegi lõputu tsükli lõpuni teha. Nii ka seekord. Alljärgneva väljundi haudus välja.
Liiguks ajatelge mööda mitukümmend aastat tagasi, siis kui Naatan oli veel noor poiss ja tarkvara arendus esoteerika. Kui programmeerimiseks pidi reaalselt teadma, mis arvutis toimub ja seda, et tegelikult võrguviide ei ole 0, vaid võttis ikka üsna mitu sekundit aega, et paarkümmend baiti ühest kohast teise liigutada. Tol ajal oli programmeerijaks saamise üks eeldus laiapõhjaline alusteadmiste pagas, et üldse midagi luua. Kui tänapäeval on stack trace ja väga head silurid, siis tol ajal täitis nende aset lakooniline fraas arvutilt: Segmentation fault. Core dumped.
Ajad on muutunud. IT kui selline on tormilise kiirusega arenenud suht kosmosesse, kõik mainitud eeldused ja tõed enam paika ei pea. Tavaprogrammeerija tegelikult ei pea enam süvitsi tundma arvutite ehitust, võrguliiklust füüsilisel tasandil, ei pea muretsema, kuidas kokku hoida paar kilobaiti mälu.
Tavaline programmeerimine on muutunud piisavalt lihtsaks, et selle õpetamine võiks liikuda kõrghariduse tasemelt kutsehariduse tasemele. Lihtsalt programmeerimist saab vabalt õpetada juba kutsekoolides. Eredad näited on järjest enam kandepinda koguvad programmeerimise kiirkoolitused[1][2]. Kiirkursused laovad vundamendi, edasi on juba inimese enda teha, kas ta liigub edasi spetsialisti, tippspetsialisti tasemele. Või rahuldub vaikselt nurgas pingi nühkimise ja koodi nugistamisega.
Selles valguses, kuhu paigutub TalTech ja IT süsteemide arendus? Kas peaks looma kõrvale kutsekooli, mis koodijüngreid koolitab? Polegi tulevikku, paneme õppekava kinni?
Kindlasti mitte. Arhitektid. Rollidest ja nende vastutusaladest IT maailmas on kirjutatud palju, ainuüksi viited neile raamatutele, artiklitele, arvamustele hõivaks N+1 korda rohkem ruumi kui käesolev postitus võimaldaks[3]. Kõikides neis üllitistes asetub siiski kesksele kohale üks roll: arhitekt.
Arhitekt positsioon, mis tegelikult punub kokku, tõlgib, vahendab ja joonistab üles, mida tegelikult tegema peaks.
Arhitekt haldab suurt pilti.
Arhitekti ülesanne on:
- ära kuulata kas äripool või väljund süsteemianalüütikult, vaadata peale olemasolevale taristule ja tarkvarale ning joonistada see klots suurel paberil õigesse kohta.
- kohati olla ka progressi pidur, kes ütleb arendajale: "Ei, me ei võta seda uut keelt/raamistikku/teeki/platvormi kasutusele, me teame sellest liiga vähe, meil ei ole kedagi, kes seda haldaks ja suurde pilti ta ei sobi."
- aegajalt öelda äripoolele/tellijale: Jah, loomulikult me saame selle soovi täita, aga selle maksumus on XXXX EUR. Miks selline sõnastus? Sest äripoolele ei meeldi sõna "ei". Äripoolele tuleb öelda "Jah, aga .. " ning siis nendele mõistetavas keeles selgitada. Naatanile on elu näidanud, et ainuke keel, mida äripool vabalt valdab on rahakeel.
- .... (seda loetelu saab tegelikult jätkata, aga hoiame ruumi kokku)
Vaadates ülaltoodut, hakkab vaikselt välja kooruma, kuhu käesolev kirjatükk sihib. Rolli kanda olevatest ülesannetest karjub kõva häälega välja kõrge üldise baasharituse taseme nõue. Tugev t keskel põhjusega.
- Arhitekt peab orienteeruma tehnoloogias. Nii riistvaras kui tarkvaras.
- Arhitekt peab suutma ennast arusaadavalt väljendada. Nii suuliselt kui kirjalikult.
- Arhitekt peab suutma formuleerida konkreetseid ülesandeid ülimalt hägusest sisendist, erinevat 'keelt' rääkivatele inimestele.
- Arhitekt peab kohati suutma juhtida inimesi selliselt, et viimased ametit maha ei paneks, samas säilitades autoriteetsuse.
Keda peaks siis TalTech IT süsteemide arenduse õppekaval koolitama?
Arvasite ära. Tulevasi arhitekte. Mitte arendajaid, arhitekte. Andma võimalikult laiapõhjalise baashariduse, millest kujuneb baasharitus, et arhitekt saaks oma tööd korralikult teha.
Miljoni dollari küsimus. Kas praegune õppekava juba seda ei tee? Kuna Naatan on 'mitme mütsiga mees', ehk siis tegelikult ka antud õppekava tudeng, võib vastata julgelt: jah. Praegune õppekava annab väga hea eelduse olla tulevikus ülihea arhitekt. Iseasi kui palju praegused tudengid sellest aru saavad ja ellu kaasa võtavad.
Võiks ju jaurata, et juhtimisalaseid oskusi võiks õpetada ja psühholoogiat ja projektijuhtimist ja .... .
3 aastat on padulühike aeg. Kõike ei jõua ja valikuid tuleb teha. Kindlasti tuleb jooksvalt üle vaadata, kas me peaks õpetama keelt A või platvormi B. A ja B on 'kulumaterjalid', mis muutuvad ajas. Õppekava ise peaks tuginema neljal sambal:
- Valdkonna üldteadmised (mis on 0 ja mis on 1, kuidas protsessor töötab, kuidas andmed saavad ühest masinast teise). Need on ajas suht vähe muutuvad. Matemaatika on matemaatika ja füüsika on füüsika. Arvuti ehitus on ka suht sama juba pikalt.
- Programmeerimisoskus üldiselt. Ehk siis oskus kirja panna suvalist elusituatsiooni nö. programmina: samm sammuline kirjeldus, kuidas probleemi lahendada. Vahet pole, mis keeles, kas C, Java, pseudokeel või inglise keel.
- Pehmed oskused (suhtlemine, eneseväljendus, algteadmised inimeste juhtimisest)
- Kulumaterjal, ehk siis teadmised, oskused, mis muutuvad ajas üsna kiiresti (hetkel 'popid' olevad programmeerimiskeeled või raamistikud, töövahendid jne).
[1] https://kood.tech/
[2] https://juunika.ee/it-koolitused/programmeerimine-algajatele-java-python-koolitus/
[3] https://www.google.com/search?q=roles+in+it+system+development
Kommentaarid
Postita kommentaar