Razvoj programske opreme je iz meseca v mesec večji izziv
Razvoj programske opreme nikdar ne zastane. Povzemamo raziskavo podjetja Coding Sans, ki je opravilo posnetek trenutnega stanja v tej industriji.
Razvoj programske opreme ima izjemen tempo. Orodje ali ogrodje, ki ga uporabljamo danes, bo morda že jutri zastarelo. Podjetje Coding Sans je spomladi opravilo zanimiv pregled trga in raziskavo ter izdalo publikacijo State of Software Development Report 2018 (brezplačno si jo lahko prenesete s strani www.codingsans.com/state-of-software-development-2018). V njej razkriva, kako tehnološka podjetja – od malih do velikih – iščejo, najemajo in ohranjajo talente, upravljajo razvoj programske opreme, eksperimentirajo z zunanjim izvajanjem razvoja programske opreme in zagotavljajo kakovost programske kode. Poročilo razkriva tudi najbolj priljubljene tehnologije in orodja za testiranje, nadzor nad različicami, vodenje projektov in komunikacijo med razvijalci. Oglejmo si ključne ugotovitve.
Upravljanje razvoja programske opreme in s tem povezani izzivi
Največji izziv sodobnih tehnoloških podjetij, ki se ukvarjajo z razvojem programske opreme, so, verjeli ali ne, zmogljivosti razvojnih ekip. Te so pod pritiskom, da nenehno snujejo nove različice in programe, a morajo hkrati tudi krpati starejše izdelke. Za vse našteto seveda potrebujejo programerje, zato je drugi največji izziv povezan s pomanjkanjem tega kadra, oziroma novačenjem teh ljudi in preprečevanjem, da bi (u)šli h konkurenci, ki jim (lahko) ponudi več denarja. Šele nato pridejo na vrsto izzivi, kot so določanje prioritet razvoja, deljenje znanja in najboljših praks znotraj ekipe programerjev in upravljanje časa.
Graf 1: Največji izzivi tehnoloških podjetij na področju razvoja programske opreme Vir: Coding Sans, 2018.
Še bolj pomenljivo je sporočilo, ki ga prinaša naslednji graf. V Coding Sans so anketo razdelili na dva dela – ločeno so anketirali razvijalce (programerje) in njihove šefe. Odgovori so se na nekaterih področjih močno razlikovali. Razlika je seveda nekoliko pričakovana, saj programer in direktor razvoja na posamezna področja pač gledata različno. Programerje skrbi predvsem to, kako bodo in ali bodo posamezno programsko kodo končali pravočasno, direktorji pa se ubadajo z mislijo, kje najti dodatne programerje, da bi bili kos vsem nalogam in pričakovanjem strank.
Graf 2: Največji izzivi programerjev in direktorjev Vir: Coding Sans, 2018.
Premalo razvijalcev? V Indiji jih je še nekaj ...
S pomanjkanjem programerjev se tehnološka podjetja ubadajo že vrsto let, naloga pa postaja čedalje zahtevnejša, saj se povpraševanje po razvijalcih programske opreme zelo povečuje – potrebujejo jih malone vsa tehnološka (in druga) podjetja. Anketirana ameriška podjetja so se podobno kot tamkajšnja proizvodna podjetja že odločila delo predati zunanjim izvajalcem – za delno ali popolno predajo razvoja programske opreme zunanjim izvajalcem se je odločilo že več kot pol (52,5 %) anketiranih podjetij.
JavaScript je močno premagal vse druge programske jezike
Ste se kdaj vprašali, katera orodja in programske jezike imajo razvijalci programske opreme najraje? Daleč najbolj razširjen je programski jezik javascript, saj ga uporabljajo kar trije od petih programerjev, vsak tretji uporablja javo, vsak četrti pa python in C#. Med bolj priljubljenimi je še PHP z dobrimi 20 odstotki uporabnikov, delež preostalih je znatno nižji.
Seveda je raziskovalce pri Coding Sans zanimalo tudi, katere nove programske jezike nameravajo podjetja začeti uporabljati v prihodnjem letu. Tu sta se nekaterim že sicer priljubljenim pridružila še jezika go (16,8 %) in typescript (14, 9%), več kot tretjina anketiranih pa je odgovorila, da nabora pri delu uporabljanih programskih jezikov v prihodnjih 12 mesecih ne nameravajo širiti.
Graf 3: Vprašanje: kateri novi programski jezik nameravate uporabiti v naslednjih 12 mesecih? Vir: Coding Sans, 2018.
Arzenal orodij programerjev je podoben mizi v avtomehanični delavnici
Pri Coding Sans so ugotovili, da razvijalci programske opreme uporabljajo celo vrsto programskih orodij, posebej na področju preizkušanja programske kode in vodenja projektov. Številni odgovori so snovalcem ankete dali kup dela s čiščenjem podatkov, pa še potem se je velik delež odgovorov uvrstil v kategorijo »drugo«, saj številna orodja niso dosegla praga 1 % za uvrstitev v graf.
Graf 4: Vprašanje: katera orodja uporabljate za upravljanje projektov?
Graf 5: Vprašanje: katera orodja uporabljate za komunikacijo v ekipi?
Graf 6: Vprašanje: katera orodja uporabljate za upravljanje nastavitev programske opreme (SCM)?
Kako podjetja izbirajo programerje?
Niste dokončali študija na računalniški ali drugi fakulteti s smerjo s področja računalništva? Nič hudega, ustrezno diplomo zahteva od programerjev le vsak 20. delodajalec. Podjetja najbolj zanima to, ali so se njihovi bodoči zaposleni pripravljeni učiti in izobraževati (to je kar 8,4-krat pomembneje od diplome!), kakšne delovne izkušnje, tehnična znanja imajo in ali se bodo ustrezno zlili s kulturo podjetja in razvojno ekipo. Vse drugo skorajda ni pomembno. Rezultati so pričakovani, saj nekaj let stara diploma skorajda ni relevantna v svetu, kjer se v tem času tehnologija in programski jeziki povsem zamenjajo – posebej če tehnološko podjetje dela stvari, ki so »na robu« sodobne tehnologije. Takrat rabi ljudi odprte glave, ki so se pripravljeni učiti vedno novih stvari.
Motivacija je pomembna
Ljudi, katerih delo je ustvarjanje vrstic kode in skrb, da ta čim bolj brezhibno deluje in nima varnostnih pomanjkljivosti, je treba ustrezno motivirati. Pri tem pa denar v očeh programerjev ni na prvem mestu (izpostavlja ga le 18 % razvijalcev), precej bolj cenijo raznolikost nalog (28 %), delo na zanimivih projektih (31 %), možnost samostojnega dela (36 %) in predvsem dobro ekipo sodelavcev