U komentaru na moj prethodni post zigzig je opisao svoja iskustva s outsourcingom. Čini mi se da je ova tema zanimljiva i širem krugu, pa sam svoje odgovore izvukao u zaseban post.
Outsourcing zvuci sasvim lijepo u teoriji. No, kada se razmotri ponuda za filozofsko odrzavanje, sto je kod mene nedavno bio slucaj, ispadne ejziva svota. Za tu svotu mogu se uzeti kvalitetni ljudi koji ce sve skupa odraditi, a itronija je sto bi ti isti ljudi to radili outsourcano, samo sto bi to mene stajalo nekoliko puta vise.
Moram priznati da mi nije baš sasvim jasno kakvo je to filozofsko održavanje (osim što me podsjeća na onaj stari vic o četiri vrste ljubavi: studentskoj, nesretnoj, penzionerskoj i filozofskoj
), no pretpostavit ću da je riječ o uobičajenoj praksi domaćih informatičkih tvrtki da nakon isporuke temeljne narudžbe naplate po principu TV-pretplate: plaćaj svaki mjesec, koristio je ili ne.
Za razliku od inicijalnog razvoja, koji se ne može mjeriti u fiksnim, linearnim jedinicama — o tome više u nekom drugom postu — klasično održavanje je vrlo jednostavan, mjerljiv proces: nešto ne radi kako je predviđeno, dođeš, radiš sat ili dva i problem je ispravljen. Drugim riječima, mjesečna “pretplata” na održavanje nema puno smisla i potpuno je otimanje novca — kvalitetan ugovor o održavanju određuje uvjete pod kojima će ekipa održavatelja biti na usluzi, te kolika je cijena radnog sata, i to je sve.
zigzag ima još zanimljivih komentara:
Problem neodrzavanja izvire iz niskog prioriteta i vaznosti koji se daju pojedinim aktivnostima, te losem upravljanju projektima i procesima. Nikakav outspurcing to nece izmjeniti, moze samo prikriti, a kad eksplodira bit ce puno gadnije.
Prva rečenica je apsolutno točna, no druga malo previše uopćava stvari. Da bi se outsourcing obavljao na kvalitetan način nije dovoljno reći evo, ja imam X developera, dajte mi da za vas radimo posao
— potrebno je te developere kvalitetno organizirati, i to čak i daleko detaljnije i pažljivije nego in-house razvojni tim. Osnovne prednosti outsourcing tima izviru iz toga što on može raditi za nekoliko projekata istovremeno, čime se smanjuje individualna cijena, no to zahtijeva dobru organizaciju: project manageri moraju kvalitetno obavljati komunikaciju između klijenata i developera, razni pomoćni libraryji i drugi dijeljeni kôd može se iskoristiti na više strana itd.
Dakle, loše organizirani outsourcing tim može napraviti čak i više štete nego loše organizirani in-house team — no to nije razlog da se odreknemo prednosti koje donosi outsourcing, već da se potrudimo stvari kvalitetnije organizirati.
Tko moze sprijeciti pruzatelja usluge da izbacuje losa rjesenja?
Odgovor na ovo pitanje u teoiji je vrlo jednostavan: konkurencija. No, u praksi se susrećemo s tradicionalnim gledištem koje je kod nas dosta prisutno, a koje bježi od konkurencije kao vrag od tamjana, pa čim u nekom području već postoji neka jača tvrtka stav je ovdje nemam šanse, neću se ni gurati
.
Jedini način da se outsourcing kod nas razvije u kvalitetan biznis je da ima što više takvih firmi, te da tržište odredi koja je bolja a koja lošija. Ako jednom zezneš klijenta, on ti više neće dolaziti.
ako nisi mogao sprijeciti kod sebe, kad si imao 100% kontrolu, kako znati da te ovaj mulja?
Još jedan od problema kod nas, izravno vezan uz ovu konkurenciju koju sam spomenuo, jest činjenica da kod nas i nema pravih outsourcing tvrtki koje bi mogle stati iza svog posla. U većini slučajeva stvar se svodi na individualne developere ili manje timove koji često mijenjaju članove, nemaju nikakvu organizaciju i proces rada im je prilično kaotičan. Razvoj softvera treba znati organizirati bez obzira je li riječ o in-house timu ili zasebnoj tvrtki, no moj stav je da je daleko lakše kvalitetno organizirati outsourcing tim jer se on može maksimalno posvetiti svom core-businessu, a to je razvoj softvera.
Definirati ciljeve i parametre? Nisi znao ni prije, kako ces odjednom znati.
Jedna od osobina kvalitetnog razvojnog tima je da zna postaviti prava pitanja. Čest je slučaj da naručitelji nemaju ideju o tome što točno žele i kako definirati svoje potrebe, i tu je uloga razvojnog tima da na neki način postane savjetnik i usmjeri naručitelja u pravom smjeru. Nažalost, ovdje je česta situacija guranje određenih tehnologija i rješenja koja i nisu idealna za naručitelja, pa čak ni za razvojni tim, ali dobavljač na njima dobiva nekakvu proviziju.
Kako sprijeciti vendor lock-in i stvaranje ovisnosti o pruzatelju usluge?
Opet, kvalitetan razvojni tim isporučit će rješenje koje je dobro projektirano i uključuje dovoljno dokumentacije da ga može preuzeti i nastaviti svatko tko je vičan korištenoj tehnologiji. Iako na prvi pogled outsourceru to nije u interesu, smatram da to može biti odličan selling-point i donijeti više novog posla nego pomoći gubitku klijenata.
Klijenti nikad neće otići ako je posao dobro obavljen — dapače, klijenti vole imati jasan i siguran način da se izvuku iz problematičnih poslovnih odnosa, i ako im u startu pružite perspektivu takvog izlaza biti će spremniji poslovati s vama.
IT outsourcing nece donijeti rjesenje sam po sebi, moze samo unijeti jos veci nered ako se stavlja na nered
Daleko od toga da je stanje u našoj IT — a posebno softverskoj — branši idealno; upravo zato sam želio ukazati na načine kako se ono može popraviti. Možda je upravo jedan od razloga što nemamo puno outsourcing timova u tome što svi gledaju kratkoročno, projekt po projekt; potrebno je baciti pogled malo unaprijed i povući neke temeljne poteze koji će povećati kvalitetu rada i samim time stanje na tržištu.