Postanite izuzetan programer tako što ćete naučiti da isporučujete

Koristan softver je onda proizvod koji dobro radi unutar proizvodnog sistema, a isporučivanje podrazumeva kreiranje korisnog softvera. U interesu je svake softverske kompanije da izbegava zapošljavanje programera koji nisu sposobni ili dovoljno uporni da prođu kroz sve faze razvoja tokom dužeg perioda.

Marko Anastasov - 14. Novembar, 2014.

Čini se kao da uvek postoji manjak dobrih programera, to je i razlog zašto je programiranje jedna od najbolje plaćenih profesija danas. Ali, imajte na umu da ne postoji opšti manjak programera.

Kompanijama kojima je potreban veliki broj zaposlenih kako bi zadovoljile formalne uslove da dobiju određene poslove nije problem da nađu ljude da bi to ispunili. Ali, ja nisam zainteresovan za tu vrstu programera. Zainteresovan sam za one koji vole svoj zanat i žele da stvore nešto smisleno.

Takvi programeri treba da se izdvoje iz gomile kada započinju svoju karijeru kako bi se zaposlili u kompaniji koja je zadovoljavajuće mesto za rad. Ovakve kompanije obično komuniciraju nešto poput toga da zapošljavaju preko open-sourcea.

Kada mi u Rendered Textu objavimo oglas za posao uvek navedemo da je uslov da je kandidat isporučio bar jedan proizvod krajnjim korisnicima, bilo da je u pitanju open-source ili ne. Pošto se ponekad pomešaju uzrok i posledica, želim da istražim malo šta to tačno znači.

Šta to znači isporučiti?

Mladi programeri zbog nedostatka iskustva, ponekad ne shvataju da je pisanje koda samo mali deo u proizvodnji softvera. Da pozajmim terminologiju predstavljenu u poznatoj knjizi Frederika Bruksa, The Mythical Man-Month, na početku imamo program.

On stoji sam negde na disku, niko ga ne koristi i ne interaguje sa drugim komponentama neke vrste proizvodnog sistema. Ovo je najlakše postići, jer uglavnom radimo sami i možemo da proglasimo kod kao „završen” u bilo kom trenutku.

Teže, skuplje je napraviti programski proizvod. Ovo sada uključuje isporuku. Desktop aplikacije trebalo bi da se lako instaliraju.Ako je programski prozvod biblioteka, onda treba da se dotera API, verovatno i refaktoriše kod u izvesnoj meri, obave određeni testovi, napiše dokumentacija, napiše i objavi najava za javnost.

Onog trenutka kada se sve ovo obavi, ulazi se u fazu održavanja: počnete da komunicirate sa svojim korisnicima, možda takođe i kontribjutorima. Takođe je potrebno da ponovite proces razvoja i puštanja nove verzije.

Tako na primer, objavljivanje izvornog koda implementacije algoritma koji kompresuje audio na GitHubu nije isporučivanje. S druge strane, biblioteka sa više verzija koju su skinule i koristile makar i desetine developera je jasan pokazatelj mentaliteta isporučivanja.

Većina softvera treba da komunicira sa ostalim delovima sistema kako bi oživeli i postali upotrebljivi. Morate da se uverite da je vaš program stabilan i da radi efikasno sa ostalim komponentama.

Na primer, veb aplikacija mora da koristi bazu podataka i sistemsku memoriju. Pisanje koda za istraživanje podataka sa udaljene API je dobar prvi korak. Osiguravanje da aplikacija radi i ukoliko se skalira na veći broj korisnika tokom dužeg vremenskog perioda je već druga stvar.

Koristan softver je onda proizvod koji dobro radi unutar proizvodnog sistema, a isporučivanje podrazumeva kreiranje korisnog softvera. U interesu je svake softverske kompanije da izbegava zapošljavanje programera koji nisu sposobni ili dovoljno uporni da prođu kroz sve faze razvoja tokom dužeg perioda.

Ljudi često odustaju iz kojekakvih razloga, od kojih neki nažalost imaju sjajne sposobnosti kodiranja. Ima više aspekata zapošljavanja, naravno, ali dokazivanje da ste uspeli da isporučite nešto u prošlosti je uslov u svakoj dobroj softverskoj kompaniji.