Viis asja mida kaaluda uue IT partneri valikul

6 minutit lugemist. Avalikustatud 27.04.2020.

Järgmise projekti jaoks uue arenduspartneri valikul on omad nüansid, mida kaaluda. Hind ja ajakulu ei pruugi olla alati peamised valikud. Toon mõned nüansid välja ja selgitan, miks nende peale mõtlema peaks.

1. Kas sinu projekt on sinu partneri jaoks õige suurusega?

Kui ma kuulen kaebeid arenduspartneri kohta, siis need on tihti sarnased: "nad räägivad minuga harva", "tundub, et nad ei hooli piisavalt", "ma ei tea, mida nad praegu teevad".

Üks projektijuht saab hästi ja edukalt hallata piiratud arvu projekte, mis tähendab, et just nemad on agentuuri jaoks tihti limiteeriv faktor. Ka ettevõtte juhtkond paneb projektijuhtidele surve teha asju, mis toovad sisse kõige rohkem raha. Tulemuseks on pahatihti see, et kliendid ei saa piisavalt tähelepanu.

Sellest on võimalik üle saada kahel viisil:

  • Vali partner, kelle jaoks sa oled suur klient. Vaata, milliseid töid on nad teostanud varemalt ja kui sinu projekt võiks olla nende jaoks suur ( kuid mitte üleliia suur), siis vali neid. Ära vali partnerit, kelle jaoks sinu projekt on pisiasi, siis nad ei pinguta tõenäoliselt sinu töö pärast piisavalt.
  • Arenda projekti osade kaupa. Aktsepteeri, et keegi ei ole täiuslik ja kõik teevad vigu. Bugisid ikka tuleb ette. Kui sa kogud kõik tööd/probleemid ühte listi, siis on tõenäoliselt projektijuhil sinu jaoks rohkem aega - sest töid ei tilgu ükshaaval peale ja ta saab süveneda korraga paljudesse asjadesse. See on kõigi jaoks efektiivsem. Kui sa lisad selle listi juurde veel järgmise arendusfaasi info, siis saad nende käest kindlasti veelgi rohkem tähelepanu.

2. Vali meeskond tänapäevaste ja laialt kasutusel olevate tehnoloogiatega.

Üks probleem, mida arendust tellivad kliendid komistavad on see, et nad ei leia arenduspartnerit, kes tahaks üle võtta eelmise arenduspartneri töö. Mõnikord on see põhjendatud sellega, et varasema partneri töö kvaliteet oli kehv ja uus partner ei taha seda üle võtta, sest koodis võib esineda ootamatusi, millega keegi arvestada ei oska. Mis tähendab suure tõenäosusega kahjumit uue partneri jaoks. Tihti on aga põhjuseks see, et tehnoloogiate valik ei olnud pädev ja valitud tehnoloogiad on kas aegunud, pole veel laialdaselt levinud (mis tähendab, et arendajaid on keeruline leida) või lihtsalt ebasobivad.

Sellistest probleemidest ülesaamine on tehnilise taustaga inimesele võrdlemisi lihtne, kuid päris keeruline, kui sul seda ei ole. Üks viis hinnata tehnoloogiaid, mida su potentsiaalsed partnerid plaanivad kasutada vaadates populaarseid küsitlusi nagu Stack overflow igaaastane ülevaade. Kui tööriistad ja tehnoloogiad, mida su partner plaanib kasutada on populaarsed, siis on tõenäoline, et neil on üle maailma piisavalt kasutajaid ja tuge ning need on lihtsad kasutada. Populaarsed tööriistad tähendavad ka seda, et praeguse parnteri töö võib võrdleimisi lihtsalt üle võtta järgmine partner - kui selleks peaks põhjus tekkima.

3. Kas su partner plaanib kvaliteeti pakkuda või plaanib läbi kukkuda?

Vaata hinnapakkumises asju, mis viitavad kvaliteedile. Kas su partner on välja toonud testide kirjutamise? Kas sa saad peale hinnapakkumisega tutvumist aru, kes vastutab tulemuse kvaliteedi eest - kas testimine on teenuse pakkuja poolt või jäetakse tellija hooleks? Kui ei, siis tõenäoliselt eeldab partner, et bugide avastamine jääb sinu hooleks.

Probleemid koodis tulevad tihti sellest, et ükski arendaja ei suuda kõige peale mõelda ja terve süsteemi detaile oma mälupildis hoida. Kuigi arendajad on enamasti väga süsteemsed mõtlejad ei suuda pea ükski neist kohe öelda või mõelda, kuidas mingi muudatus tervet süsteemi mõjutab. Nii juhtuvadki bugid, kui süsteemi erinevad liikuvad osad enam hästi kokku ei tööta. Enamasti ei ole see kellegi süü. Suur osa inimesi ei suuda IKEA mööblitki manuaali järgi kokku panna - miks siis arvata, et bugide tekkimine tähendab halbu arendajaid.

Me teame et bugisid tuleb ette. Mida sina kliendina pead jälgima, kas sinu arenduspartneril on plaan nende leidmiseks, vältimiseks ja nende parandamiseks. Pööra pakkumises tähelepanu järgmisele:

  • Vaata kas midagi viitab automaatsetele testidele. Automaattestid tähendab seda, et sul on kirjutatud jupid koodi, mis testivad teiste koodijuppide veatut tööd. Mida automaattestid sinu jaoks tähendab on see, et uute featuuride lisandumisel püüavad need kinni võimalikud tekkivad vead. Nii ei pea sina bugisid avastama.
  • Vaata kas midagi viitab Terminitele CI/CD (Continuous Integration, Continuous Delivery) või QA ( Quality Assurance). Mida see sinu joaks tähendab on see, et projekti käigus plaanitakse kasutusele võtta automaatseid tööriistu või muid protsesse tagamaks kvaliteeti. CI tähendab erinevaid automaatseid protsesse erinevate probleemide tuvastamiseks. CD - automaatset koodi serverisse paigladamist, kui muud automaatkontrollid on läbitud ja QA tähendab erinevate resursside nagu koodi revjuud, kasutaja testid jm. kasutamist tagamaks projekti kvaliteeti.

Oma raamatus "The Black Swan" kirjeldab Nassim Nicholas Taleb üht juhtumit. Mis oleks, kui enne 2000 aastat oleks mõni poliitik suutnud läbi suruda selle, et kõikidel lennukitel peavad olema lenduri kabiini uksed turvalised. Kui see oleks juhtunud enne septembrid 2001 oleks tõenäoliselt kakskiktornid püsti. Kõik lennuki tootjad oleks samas seda hüpoteetilist poliitikut siunanud nende raha raiskamisese pärast. Sama lugu on kvaliteedi kontrolli ja automaat testidega. Meie klientidena ei tea ega tunneta, kui palju meie raha ja aega säästab või katastroofe ära hoiab automaat testide kasutamine. Kui me vaatame vaid rahanumbreid, siis me mõtleme, et kas see on üldse vajalik. Täiesti kindlasti - on küll. Kui sellega ei ole pakkumises arvestatud, siis võid kindel olla tulevikus probleemide tekkimises.

Kui palju iga projekti jaoks teste vaja on - see sõltub projekti olemusest. Kui projekt on lihtsalt kujundusest disaini või välisveebi tegemine, siis tõenäoliselt ei ole neid üldse vaja, sest enamik sisuhaldussüsteeme omab omi, sisseehitatud, teste.

4. Kas nad pakuvad veebiteenuste jälgimist?

Igas veebiprojektis tekivad mingid probleemid. Neis on tihti lihtsalt niivõrd palju liikuvaid osi mida sina või sinu partner kontrollima ja haldama peavad. Teenused võivad maha kukkuda jne.

Tihti ei ole võimalik kontrollida kas mõni kolmanda osapoole teenus on püsti või ei. Aga on võimalik kontrollida, kuidas teie projekt käitub, kui midagi läheb katki. Kas sinu partner on arvestanud sellega, et mingid teenused võivad kokku joosta või maha kukkuda. Kas sa saad pakkumisest aru, kes peab märkama, kas veeb toimib või ei? Ka selleks on olemas palju automaatseid tööriistu. Tee endale selgeks, kas sinu partner plaanib neid kasutada - sa ju tahad, et kõik probleemid avastakse võimalikult kiiresti, eks?

5. Kas neil on plaan tehnilise võlaga tegelemiseks?

Kõigepealt - mis on tehniline võlg? Kõik laguneb, eksole? Su autot on vaja iga aasta hooldada, samuti sinu arvutit. Sinu arvuti tõmbab kogu aeg uuendusi alla. Miks peaks arvama, et sinu veebiprojekt ei vaja uuendusi?

Tänapäeva veebiprojektid on väga kompleksed süsteemid. 15-20 aastat tagasi arendasid kõik oma sisuhaldussüsteemi nullist, kui arendati veebilehte ja veebileht koosnes vaid mõnest erinevast süsteemist. Tänapäeval on asjad väga palju erinevad. See võrdlemisi lihtne veebileht, mida sa praegu külastad on tehtud NextJS (plus Strapi, TailwindCSS ja paljude teiste tööriistade abiga ja kasutab rohkem, kui 50 erinevat alamprojekti. Kõiki neid pakke peab erinevatel põhjustel uuendama. Sest, kui keegi seda ei teeks, läheks uute featuuride arendamine mingi hetk väga kulukaks - sest tol hetkel tuleks seda kõike teha. Seetõttu on veebilehte pidevalt ja püsivalt uuendada märksa odavam, kui kunagi tulevikus seda ühe korraga teha.

Ehk kokkuvõtlikult - hoides oma veebiprojekti koguaeg uuendatuna on uute arenduste ja muudatuste tegemine oluliselt odavam ja kiirem. Lisandunud boonus on see, et pidevalt projekti uuendamine säästab sulle mõne aja pärast kogu projekti uuesti loomise vaeva.

Kõik see võib tunduda keeruline

Tehnoloogiad muutuvad ja arenevad tänapäeval väga kiiresti. Kõige sellega sammu pidada on päris keeruline ja veel keerulisem on see inimestele, kes igapäevaselt selles maailmas ei tegutse.

Kui sa annad oma ettevõttes kellegile toote omaniku (tellija) rolli, võid sa sellega juba teha esimesi samme läbikukkumise suunas. Kõiki neid asju, mida ma kirjeldasin on suhteliselt lihtne juhatusele selgitada, kui sa oled neist teadlik. Tooteomanikud, kelle jaoks see ei ole põhitöö, ei suuda seda samas teha. Ja nii võib juhtuda, et sinu ettevõte ei saa kõike seda kasu, mida su arenduspartner sulle võiks pakkuda. Seepärast, kui sa soovid oma toodetest ja arenduspartneritest maksimumi ja parimat saada, võta minuga ühendust - või kellegi minu sarnasega.