Zbog koga vi pišete kôd?

Šta je softverska dokumentacija? Šta su šeme i dijagrami softveske arhitekture? Ko tu šta piše, ali mnogo važnije, ko i zašto čita?

Softverska industrija se razvija prebrzo, toga su svjedoci svi, i oni koji su direktno uključeni u razvoj, ali i oni koji nemaju nikakvog dodira s razvojem softvera, nego su njegovi krajnji korisnici. Logično je da se u tako jednom ubrzanom svijetu mijenja ili bi trebalo da se mijenja i ono što je u direktnoj ili sporednoj vezi s razvojem softvera, kao što su planiranja, pripreme, strategije, i naravno dokumentovanje svega toga – jer, vrijeme je novac, rekli bi neki/mnogi!

Mnogi, veoma uspješni softveri su razvijeni, a da nikada nije za njih napisana nikakva dokumentacija, nisu pisani nikakvi testovi i nisu praćene savremene metode ili korištene savremene tehnologije. No, ako bismo bili krajnje iskreni, takvih softvera možemo da nabrojimo na prste. Naravno, s druge strane, iako ih je tako malo donijelo je ogromne novce, te se upravo zbog toga smatraju uspješnim. I opet se vraćamo na ono spomenuto iz prethodnog pasusa. Vrijeme je novac!

Kada, kako, i zašto odlučiti da li je za neki projekat bio on softverski ili ne potrebno slijediti nekakve (uglavnom se tu uvijek misli na savremene) metode i metodologije? Da li koristiti savremene tehnologije i slično? Na ovo pitanje ili pitanja ne postoje jasni odgovori. Razloga za to je mnogo, a najvažniji razlog je što se sve prebrzo mijenja, a mijenja se upravo zato što još niko nije uspio da ukalupi softversku industriju. Srećom!

Loše napisan kôd je uvijek loše napisan, bez obzira da li on slijedio dokumentaciju ili ne, da li imao razne testove ili ne.

Dobar kôd je dobar kôd, bez obzira na sve prepreke na koje programer nailazi tokom pisanja.

Ako je neko talentovan prije svega za kvalitetno pisanje kôda, a uz to je imao dobro obrazovanje, formalno ili putem mentora, njegov ili njen kôd će zasigurno biti dobar u svakoj situaciji. Takvom programeru ne treba ni dokumentacija, niti testovi.

S druge strane, oni koji nisu talentovani ili pak oni koji nisu imali kvalitetno obrazovanje, loše timove bez mentora u kojima nisu mogli napredovati gotovo u pravilu će pisali loš kôd.

Kako naći, optimalno rješenje kako bi se dobio uspješan softver? Ako pod uspjeh smatramo onaj koji donosi ogroman novac u kratkom i/ili dugom roku.

Jedino rješenje s kojim se prije ili poslije svi slože i oni talentovani ali i oni koji nisu jeste ukalupljivanje razvoja softvera za neki period. Ne trajno ukalupljivanje! To nikako, ali za neki projekat na kome se trenutno radi moraju ili trebaju se znati neka pravila. Što bi se kod nas u narodu kazalo, da se zna ko kosi, a ko vodu nosi.

Napisana dokumentacija ne treba onim talentovanim koji trenutno rade na projektu, ali ako se neko projektu priključi kasnije, dokumentacija je jedini način da se najbrže i veoma detaljno prezentuje novom članu šta se želi uraditi i dokle se došlo bio on od talentovanih ili ne. Zatim, koji su kriteriji za stabilnost, sigurnost, performanse i mnogi drugi. Da bi svi članovi tima pričali “istim” jezikom, tada se treba koristiti i isti stil programskog kôda, jer taj napisan programski kôd mašini ne znači ništa. Mašina to svakako mora prevesti u nule i jedinice, ali napisan kôd čitaju i čitaće samo i jedini ljudi!

Postoje određene grupe veoma entuzijastičnih pojedinaca koji sebi daju za cilj da promijene mentalitet ne samo jedne nacije, nego cjelokupnog čovječanstva. U organizacijama kojima oni teže ne postoje mnogi menadžeri, jer bi svaki pojedinac morao biti menadžer sam sebi. Mali timovi sastavljeni od pojedinaca samo onih s kojima oni žele da rade jedni s drugima ne trebaju Project Managera. Takvi timovi rijetko koriste Code review, jer većinu stvari pišu u Pair programmingu. Takvi timovi ne pišu testove, jer oni imaju vlastitu platformu za testiranje onoga što je značajno, važno, neophodno za softver koji će raditi i donositi novac. Takvi timovi ne pate od silnih procedura, ali o tim timovima ćemo nekom drugom prilikom, jer da bi se bilo članom jednog takvog tima, potrebno je promijeniti kompletan pogled na svijet, kako privatni tako i poslovni.

0

Hits: 4