Kada izmišljati 'toplu vodu', a kada koristiti tuđa rješenja?

Developeri, znate li ocijeniti kada izmišljati ‘toplu vodu’, a kada koristiti tuđa rješenja?

Developeri se tijekom rada često susreću s jednom velikom dilemom: Kako ocijeniti kada neku funkcionalnost razvijati sami, a kada koristiti tuđu pamet? Upravo je to bio glavni fokus predavanja Alana Pavičića, održanog u sklopu konferencije Change koja je u prošlu subotu, u prostorima zagrebačke tvornice čokolade Kraš, okupila više od 300 sudionika.

alan_pavicic_cover
Kako ocijeniti kada neku funkcionalnost razvijati sam, a kada koristiti tuđa rješenja? Upravo je to bila glavna tema predavanja Alana Pavičića, održanog u subotu na konferenciji Change.

Na konferenciji Change, u organizaciji tvrtke King ICT, održana su 22 predavanja podijeljena u dva tracka, a bila su namijenjena developerima koji se bave razvojem enterprise softvera. Tematika na konferenciji fokusirala se većinom na Java i .NET enterprise development, uz pokoje predavanje o tuningu baza podataka ili performansama.

Koristiti tuđe rješenje ili razvijati vlastito

U mnoštvu specijaliziranih predavanja, izdvojilo se jedno koje nije bilo toliko usmjereno na tehnologiju, već više na filozofiju samog razvoja. Riječ je o onome Alana Pavičića na temu Custom vs. Modular Software Development.

Većina nas developera barem se jednom susrela s dilemom: Koristiti tuđe rješenje koje je već dostupno ili krenuti u razvoj vlastitoga? Postoje brojni razlozi i za jednu i za drugu opciju. Kako je Alan Pavičić rekao na predavanju, velik dio developmenta danas se svodi na pisanje Turing kompletnih konfiguracijskih fileova. Malo toga je danas potrebno ‘programirati’ ručno. Za skoro sve postoji library. Rijetko koji developer se susreće s Big O notacijom i sličnim pojmovima.

Stoga se velik postotak developmenta danas svodi na povezivanje tuđe pameti u jednu funkcionalnu cjelinu i stvaranje neke dodatne vrijednosti u takvoj cjelini.

Not Invented Here (NIH) sindrom

Velik broj organizacija pati od takozvanog NIH sindroma. Wikipedia ga opisuje kao tendenciju prema izmišljanju “tople vode”, odnosno razvoju nečega što je već dostupno, zasnovanome na vjerovanju kako je in-house development brži, bolji, sigurniji i jeftiniji nego korištenje već gotovih rješenja.

Naravno, time organizacije često same sebi stvore dodatne probleme. Kako je istaknuo Pavičić, NIH sindrom se često manifestira dužim vremenom razvoja neke funkcionalnosti, nedostatkom standardizacije te puno težim pronalaskom bugova i duljim vremenom potrebnim za debuggiranje. Što je zapravo i logično. Naime, ukoliko postoji zajednica koja razvija, koristi i održava neku funkcionalnost, utoliko je veća vjerojatnost da će bugove pronaći i ukloniti brže od vaše organizacije. Naravno, osim ako vaša organizacija nije veličine Microsofta ili Oraclea. Neke od prednosti korištenja tuđih modula su brže vrijeme izlaska na tržište, kraće vrijeme razvoja te korištenje funkcionalnosti koje nisu trivijalne za implementaciju (kriptografija je jako dobar primjer).

Ovakvi su primjeri vidljivi čak i kod organizacija koje su stručnjaci u sigurnosti. Theo de Raadt, osnivač i vođa projekata OpenBSD i OpenSSH, kritizirao je OpenSSL zbog razvoja rutina za upravljanje memorijom umjesto korištenja onih iz standardne C biblioteke te je prema njemu to glavni razlog za popularni OpenSSL Heartbleed bug koji je zahvatio većinu svjetskih Linux servera.

Proudly Found Elsewhere (PFE) sindrom

bakic_change_king_ict
Nenad Bakić, poznati investitor i poduzetnik posvetio je svoje predavanje društvenim promjenama, ali i kako tehnologija može smanjiti jaz između svijeta i Hrvatske.

Ipak, postoji i suprotni slučaj od NIH sindroma, a naziva se PFE sindrom. Korištenje eksternih modula za gotovo svaku funkcionalnost u vlastitom rješenju nije uvijek najpametnija ideja. Više od svih ostalih grana developmenta, današnji web development je posebno podložan ovom sindromu. Sjetimo se samo left-pad fijaska kada su React, Babel i hrpa ostalih high-profile paketa na NPM-u popucali jer su kao dependency imali modul čija je jedina svrha bila popunjavanje stringa s lijeve strane nekim znakom. Posao za koji je bilo kojem developeru potrebno svega par minuta izbjegnut je korištenjem modula koji se sastoji od čak 11 linija koda! 

Cijela saga oko povlačenja left-pada iz NPM-a je vrlo zanimljiva te ako niste čuli za nju definitivno preporučujem kao zanimljivo štivo.

Left-pad fijasko nam je pokazao kako ne treba slijepo koristiti tuđe module jer se dovodimo u situaciju kako previše ovisimo o nekom drugom. Sve ovakve trivijalne implementacije trebali bismo odraditi sami.

Kada koristiti ‘custom’ module

Pavičić je na predavanju naveo nekoliko situacija kada smatra kako je kritično koristiti in-house razvoj:

  • DSL – Domain Specific Language

Ako vaša aplikacija zahtijeva korištenje nekog DSL-a, gotovo uvijek je bolje razvijati svoj DSL te prilagoditi ga svojim potrebama, nego pokušavati prilagođavati neki general purpose jezik.

  • Core Business

Bilo koja funkcionalnost vašeg proizvoda koja predstavlja vaš core business mora se razvijati interno. Nikada nije pametno dovesti se u situaciju da vaša glavna funkcionalnost, ona koja vaš proizvod odvaja od konkurencije, ovisi o hrpi vanjskih modula i da može puknuti zbog nečijeg bunta (opet left-pad!) 😉

  • Specijalizirani algoritmi

Svi jednostavni problemi u startup svijetu već su riješeni. Nećete napraviti novi Facebook ili novu tražilicu, nećete se obogatiti nekom jednostavnom stranicom. Ono što preostaje su specijalizirane usluge koje odrađuju neke zadaće koje obični korisnici ne mogu ili ne žele rješavati. Takve usluge zahtijevaju i specijalizirane algoritme, koje ćete jednostavno morati razvijati in-house.

  • Smanjivanje dependencyja

Ponekad je pametno da neku funkcionalnost implementiramo sami ako želimo da naš proizvod ovisi o što je manje vanjskih utjecaja. Vrlo čest razlog za ovo je i rješavanje problema oko licenciranja.

  • Egzotičan hardver

Ako koristite egzotičan hardver, vrlo često nemate izbora i morate se okrenuti custom developmentu.

Rješenja iz ‘crne kutije’

change_konf_panel
Konferencija je završila panel raspravom na temu Softver i društvo, na kojoj su sudjelovali Nenad Bakić, Aleksander Radovan (King ICT), Geertjan Wielenga (Oracle) i Netokracijin Ivan Brezak Brkan.

Ovo nipošto nisu sve situacije u kojima bi trebali koristiti in-house razvoj. Kako se razvojni ekosustavi sve više šire, modularno je riječ sve zastupljenija u svim sferama developmenta. Web frameworkovi imaju tendenciju sve više funkcionalnosti izdvojiti u zasebne module.

Za sve više primjena, uz frameworke dolaze out-of-the-box rješenja koja ih rješavaju, a vrlo često funkcioniraju na principu crne kutije. Možda ih i mi developeri jednostavno tako koristimo. Često ih uzimamo zdravo za gotovo i sve se manje trudimo razumjeti što se stvarno u pozadini događa. Možemo reći kako imamo dobar izgovor za to, kako je time-to-market sve kraći i jednostavno nemamo vremena raditi sve sami.

Mislim kako će se u budućnosti uspješni od neuspješnih razlikovati upravo u sposobnosti procjene što da naprave sami, a što da koriste od drugih.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome)
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime (Hrvoje Lončar) ili barem ime i inicijala (Hrvoje L.) te pravu email adresu. Kako koristimo podatke koje tamo ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Digitalni marketing

Digitalna industrija je u ku*cu, ali Social Dilemma je jeftina Skynet drama koja to ne zna reći

Social Dilemma nije više #1 izbor na Netflixu, a mnogi su već dali svoje mišljenje neovisno o tome jesu ga gledali. Ovo je kritički osvrt na odlično vizualno ostvarenje dokumentarca koji otvara mnoga pitanja, ali i isceniranu dramu o zlim društvenim mrežama koja daje malo odgovora - često površnih.

Startupi i poslovanje

Mate Rimac transparentno o financijama, svojoj plaći, kampusu i uključivanju radnika kao suvlasnika Rimac Automobila

U izuzetno dobrodošlom primjeru transparentnosti koji rijetko viđamo u svjetskoj, a kamoli hrvatskoj tehnološkoj industriji, Mate Rimac je na YouTubeu objavio sat vremena dug pregled izvještaja Rimac Automobila za treći kvartal 2020. Izdvajamo neke od zanimljivijih informacija.

Startupi i poslovanje

Borealis: Kako je programer Dennis Puzak startup “fail” pretvorio u uspješnu agenciju za digitalne proizvode

Dennis je počeo kao programer i teško zarađene novce uložio u startup - koji nije uspio. No naučeno iskustvo u samo je nekoliko godina pretvorio u agenciju za digitalne proizvode koje želi zadržati malom i izuzetno kvalitetnom.

Što ste propustili

Kultura 2.0

4 koraka koja će vas sigurno pripremiti za Black Friday i Cyber Monday!

Prije par godina još se i moglo dogoditi da neke web trgovine potpuno ignoriraju Black Friday, ali ne i u 2020. Puno je izbora, a vremena su neizvjesna - kako pronaći najbolje ponude? Ovi savjeti mogli bi vam poslužiti.

Startupi i poslovanje

Kriza medicinskog kanabisa splitsku tvrtku Agilno pripremila za healthtech boom 2020.

Tržište medicinskog kanabisa prošle je godine doživjelo velike probleme, a što je uvelike utjecalo na glavni projekt splitske tvrtke Agilno - Strainprint aplikaciju. Kako su poučeni tim iskustvom pivotirali u smjer healthtecha?

Kultura 2.0

Sigurnije ne znači lošije – iskustvo, što dvostruka autentifikacija donosi za kupce i trgovce?

Do kraja godine u svim zemljama EU počet će primjena regulative koja će naše digitalne transakcije osigurati s dvostrukom autentifikacijom. Postoje vrlo dobri razlozi zašto zbog toga ne bismo trebali gunđati, već biti sretni i zadovoljni.

Izrada web stranica

WordPressov prvi VIP partner u srednjoj i istočnoj Europi je – hrvatski Neuralab!

Zagrebačka digitalna agencija sad je među samo 30-ak svjetskih tvrtki koje su potvrdile svoj status u kvaliteti razvoja na sustavima koje koristi većina svjetskih web stranica i internetskih trgovina.

Najava

Kako ostvariti developersku karijeru u Osijeku – saznaj 30.11. uz domaće IT stručnjake!

Hrvatska IT scena ne gradi se samo u Zagrebu! Zato ova Digitalna karijera ide u Osijek. Kako razviti IT karijeru i u drugim gradovima Hrvatske saznat ćemo uz tvrtke koje upravo tamo traže pojačanje.

Startupi i poslovanje

Hrvatsko-slovenski Mercury PSI i danski Nets skupa kreću u digitalizaciju plaćanja diljem Europe

Biometrijske isprave, beskontaktna plaćanja i društvo bez gotovine: sve su ovo ideje koje nam dolaze iz danskog Netsa, a odnedavno ih razvijaju i domaći stručnjaci iz Nets CEE.