Kako je z vzgajanjem programerjev razvijalcev v domačih podjetjih? Se vam zdi, da je za vzgojo specializiranih kadrov ustrezno poskrbljeno?
Podjetja se zaradi omejitev na trgu včasih odločajo tudi za neoptimalne rešitve, ki v večini primerov vodijo do programskih rešitev, ki ne zadovoljujejo naročnika. Cena razvoja je vedno bolj konkurenčna, zato se podjetja odločajo za izvedbo s cenejšim, manj izkušenim kadrom. Temu so podvržena predvsem IT-podjetja z velikim številom programerjev. Navadno se zgodi »hierarhična paraliza«, kjer vodje skupin ali vodje razvoja znotraj kompleksnega projekta ne poznajo navad in dobrih strani ključnih razvijalcev ali razvijalcev, ki so postavljeni na ključno mesto. Zato ključne dele rešitev razvijejo razvijalci s pomanjkljivim znanjem, kar je recept za katastrofo ob produkcijskem času.

Zdi se, da državne izobraževalne ustanove ne sledijo tempu razvoja IT-rešitev? Kje vse lahko (bodoči) programerji pridobijo ustrezna znanja?
Formalne izobraževalne ustanove nikoli niso sledile tempu razvoja rešitev IT, a na področju računalništva temu niti niso namenjene. Uspešno sledijo krovnim znanostim, ki so bistveno pomembnejše za razumevanje naprednih tehnologij od načina njihove uporabe. Fakulteta za računalništvo v Ljubljani nauči ljudi pravilnega razmišljanja, ne uporabljanja specifičnih tehnologij. Veliki teoretični premiki se v računalništvu z vidika osnovnih algoritmov, niso zgodili že kar nekaj časa. Vsekakor pa vsako leto pridobimo platformo, ki postane dostopna za komercialne rešitve prav zaradi napredka tehnologije. Množica teoretičnih osnov šele v zadnjih letih prihaja v množično realizacijo zaradi povečanja računske moči sistemov in naprednejših pristopov k znanim in teoretično že rešenim problemom.

Bili ste eden izmed organizatorjev konference Bleeding Edge, najnaprednejšega dogodka za razvijalce in IT-strokovnjake pri nas. Kako je stroka sprejela dogodek ta dogodek? Menite, da bi moralo biti takih dogodkov več?
Analiza konference je zopet pokazala izjemno zadovoljstvo udeležencev, kar pomeni, da je bil dogodek odlično sprejet. Glede na usmeritev konference in zahtevno občinstvo je Bleeding Edge ponudil vsebine in rešitve na robu tudi letos. Slovenija ima okoli 5000 aktivnih razvijalcev programske opreme, od tega jih morda desetina deluje z zadnjimi tehnologijmi. Konferenčna oblika zato zadošča, vsekakor pa bi se bilo smiselno o razvojnih usmeritvah in modernih arhitekturah pogovarjati na vseh večjih IT-dogodkih. Problem večjih dogodkov pa je, da na njih govorijo predvsem komercialisti, ne inženirji.

Kako podjetje prepozna kakovostnega programerja?
Kakovostni programer pozna in razume teoretične koncepte. Kakovostni programer se hitro uči. Programer, ki pozna specifično moderno tehnologijo do podrobnosti iz zadnjega projekta, ni nujno dober programer.

Kaj za podjetje pomeni razvoj lastnih rešitev?
Lastno rešitev zmorejo izdelati samo samozavestna podjetja. Vzrokov je več – verjeti je treba v usmeritev in perspektivnost rešitve, predvsem pa v ljudi, razvojni tim. Resna rešitev vedno zori nekaj let, kar pomeni, da je potreben razvojni kapital, navadno razmeroma velik. Uspeh ni zagotovljen, ambiciozni projekti lahko pokopljejo tudi večja podjetja. Kljub tržnemu uspehu pa lastna rešitev pomeni dolgoročno investicijo, ki jo je treba vzdrževati, saj naročnikov nikoli ni mogoče pustiti brez podpore. Z vidika razvoja programske opreme so zato posebej rakasti tisti projekti, ki stežka pokrijejo razvojne stroške in zahtevajo dolgoročno vzdrževanje.

Po drugi strani uspešne lastne rešitve prinašajo visoko stabilnost podjetja in predstavljajo največji kapital. Smešno je, da se v Sloveniji valorizacija podjetja večkrat odvija na podlagi izvedenih projektov s tujimi izdelki in integracijami kot lastnimi. Večkrat imajo lastni izdelki v Sloveniji faktor pomembnosti manjši od ena. Vzrok za to sta predvsem dva: takšni izdelki so se večkrat »izkazali« s slabo kakovostjo in majhen trg, ki prinaša tudi manjše možnosti za širok nabor namestitev.

Gama System, kjer vi razvijate svoje rešitve, poleg modernega razvoja rešitev ponuja tudi napredne rešitve s področja elektronskega poslovanja in elektronskih dokumentov. Ponujate akreditirane, torej pravno veljavne rešitve. Kako pomembno je to dejstvo pri naročnikih?
Naročniki najbolje razumejo izzive, povezane z uporabo elektronskega poslovanja, sploh glede vpeljave elektronskih dokumentov. Tisti, ki danes vpeljujejo elektronsko poslovanje v svoja podjetja, pred tem temeljito preučijo trg in se odločajo za kredibilne ponudnike. Vpeljava elektronskega poslovanja spreminja kulturo in maksimira odzivnost podjetja, kar je v današnjem času največja konkurenčna prednost. Pravna veljavnost sistemov za poslovanje danes pomeni osnovno zahtevo vsakega resnega podjetja, ki se ne želi utopiti v papirju.

Kaj pa ko podjetja zahtevajo rešitve, ki jim bodo pisane na kožo, torej take, ki jih je treba razviti glede na zahteve uporabnika – se v tem primeru močno poveča kompleksnost teh, čas izdelave, ne nazadnje tudi cena?
Dobre rešitve so prilagodljive in povezljive. Trg razvoja in razvojnih tehnologij se v zadnjih petih letih močno osredotoča na generičnost razvitih funkcionalnosti, kar pomeni, da je mogoče tudi specifične rešitve razumeti kot večkrat uporabne. Vsi ponudniki se trudijo posamezno generično funkcionalnost razviti enkrat in jo večkrat uporabiti. Zato se razmišljanje o pisanju na kožo v resnici večkrat prevede v sestavljanje generičnih kock iz ogrodja, ki ga ima podjetje. Tudi pri rešitvah na ključ.

Kompleksnost zato raste predvsem zaradi omenjenega razloga. Izvajanje generične kode, ki je uporabna v več disjunktnih področjih, raste eksponentno, vendar s stališča cene izzveni skozi število uporab. Rešitve na ključ zato v splošnem pomenu niso kompleksne, njihova cena pa je odvisna od vnovične uporabe obstoječih komponent in objektnih modelov. Nižja ko je, višja je cena.

Kateri so glavni elementi, ki jih mora programska rešitev vsebovati, da jo lahko označimo za moderno?
Zame je moderna rešitev arhitekturno lepa, čista in performančno skalabilna. Lahko razumljiva in smiselna. Prijazna za preprostega uporabnika in dovolj sposobna za naprednega uporabnika. Moderna rešitev zna v vsakem uporabniku najti svojega oboževalca in v vsakem strokovnjaku svojega občudovalca.

Podjetja imajo mnogo rešitev, ki so zastarele in zanje pomenijo črne škatle. Kako naj se podjetje odloči, kdaj je čas za menjavo?Čas za menjavo rešitve nastopi takoj, ko podjetje ne razume njenega načina delovanja, ne glede na pravilnost rezultatov. Rešitve, ki tičijo v podjetjih in jih razumejo samo ponudniki, dolgoročno ne morejo biti sprejemljive, saj pomenijo pogajalsko prednost za nasprotnega partnerja in brezizhoden problem za naročnika. Tukaj ne govorimo o podrobnostih, pač pa o stopnji zaupanja zaradi (ne)poznavanja delovanja, ki lahko nastopi zaradi zastarele tehnologije, zastarelega razmišljanja ponudnika ali obojega. Črne, zaprašene, nedokumentirane škatle se vedno mečejo v smeti.

Kako je z arhitekturnimi usmeritvami na področju programske opreme? Za kaj ste si programerji prizadevali v preteklosti, na čem je največji poudarek danes in kaj prinaša prihodnost?
Arhitektura rešitev je danes čedalje pomembnejša. Vzrok za to je predvsem ekonomski. Smiselne arhitekture omogočajo preprosto nadgradnjo funkcionalnosti, poceni skalabilnost in visoko hitrost reakcije glede na zahteve trga. Vedno bolj se usmerjamo v storitvene oblike, na vseh ravneh razvoja. Tako se tudi znotraj posameznih nivojev aplikacije vpeljujejo storitve, ki z nadrejenim in podrejenim nivojem komunicirajo v definirani in standardni obliki. Meje plasti so čedalje jasnejše, strožje. Zaradi rasti kompleksnosti vsak razvijalec brani svoj teritorij s programsko pogodbo, ki jo morajo spoštovati njegovi uporabniki. Arhitekti rešitev se zatekamo k vse večji možnosti disperzije in možnosti menjave notranjih delov rešitve.
Včasih je bilo programiranje izjemno težko delo. Danes je to obrtniška dejavnost. Programska orodja so preprosta, podpora za programerje je odlična, celo predobra. Tudi zaradi tega razvijalci ne razmišljajo več, ampak samo še programirajo in večkrat odmislijo robne scenarije ter predvsem uporabnika. Danes je naporno postaviti pravilno arhitekturo rešitve, ki bo sposobna zadovoljiti zahteve in omogočala absorpcijo napak razvijalca. Tudi intuitivnost, sploh v kompleksnih rešitvah, je velik problem. Tisti ponudniki, ki jim danes uspe ponuditi kompleksno funkcionalnost na uporabniško preprost način, bodo v prihodnosti zagotovo uspešni.

Zakaj veliko večjih podjetij trdi, da obstoječe rešitve performančno in po zanesljivosti ne zadovoljujejo uporabnikov?
Zato, ker večina velikih podjetij ne uporablja modernih rešitev, čeprav to nerada priznajo. Vpeljava nove rešitve v velik sistem pomeni uporabniški, tehnološki in stroškovni izziv. Dobre rešitve so drage danes in poceni jutri, večina odločevalcev pa gleda samo na tekoče fiskalno leto.
Obstoječe slabe rešitve so v večini primerov najdražje, saj od uporabnikov zahtevajo kompromise in dodatno delo. Povzročajo nezadovoljstvo pri uporabi, čakanje in nezanesljivost. Prehod na novo rešitev pa pomeni stres tako za odločevalce kot za uporabnike, in dokler ta stres ni večji od stresa uporabe, se podjetja ne odločijo za predčasno zamenjavo ali nadgradnjo rešitve.

Po najnovejših tujih rešitvah sodeč, vse večjo vlogo pri programski rešitvi prevzema uporabniški vmesnik, ki se končnim uporabnikom zdi celo pomembnejši od same funkcionalnosti. Spet drugim tak pristop lepšanja vmesnikov (prosojnost, zaobljeni gumbi, orodne vrstice z barvitimi ikonami ...) niti najmanj ni všeč. Kdo odloča o razvoju uporabniškega vmesnika in njegovi podobi?
Uporabniški vmesnik postaja pomemben predvsem zaradi naraščajoče kompleksnosti programske opreme. Industrija je prešla čez mejo sprejemljivega za večino uporabnikov. Problemi, ki jih danes rešuje poslovna programska oprema, so naporni predvsem zato, ker so spodaj ležeči procesi postali neobvladljivi in kompleksni. V večini primerov je bolj smiselno globalno redefinirati proces kot poenostavljati uporabniški vmesnik programske opreme do nezavesti. Kompleksne rešitve je izjemno težko podpreti s preprostimi uporabniškimi vmesniki, saj je nabor funkcionalnosti včasih preprosto previsok. Na tem področju se ponuja odlična poslovna priložnost.
Vsekakor pa intuitivni uporabniški vmesniki pomenijo prihodnost. Rešitve se vedno bolj osredotočajo nanje, saj pomenijo edini vizualni stik z uporabnikom. Uporabniki sprva hitreje sprejmejo na videz preprostejše vmesnike, vendar jih zaradi funkcionalnih omejitev tudi hitreje zavržejo.

Kaj pa varnostni vidik rešitev? Varnostni strokovnjaki vse pogosteje izpostavljajo, da kratki roki izdelave programske opreme vodijo do pomanjkljivega varnostnega preverjanja, manjša razvijalska podjetja pa recimo ne premorejo niti opreme niti znanja za kaj takega. Kako je s tem v Sloveniji?
Varnostni mehanizmi so se vedno zapostavljali, saj pomenijo dodaten strošek za ponudnike. Po drugi strani pa so razvojne platforme močno napredovale, tako da je danes bistveno težje narediti veliko neumnost kot pred nekaj leti. Slovenski ponudniki tukaj nismo niti boljši niti slabši od tujih. Velikokrat se izkaže, da se manjša podjetja odrežejo bolje od velikih, saj so podvržena manjšim razvojnim skupinam, tesnejšim komunikacijam in bolj osebnim odnosom, ki v varnostnem smislu večkrat prispevajo največ.

Moj mikro, November 2009 | Miran Varga