Prenesi mi šta softver koji si dirao sada radi, a ne šta si ti radio!
U svijetu brzine i loših učitelja (mentora) programeri nikada ne nauče najbolje vještine, osim rijetkih i osim u “poznim” godinama. U školama/fakultetima takve stvari smatraju suvišnim i možda čak i glupim, jer se one tiču prakse, a profesori i asistenti žele da budu teoretičari (Pogledati seriju Terorija velikog praska/Big bang theory i odnos teoretskog fizičara spram praktičnog fizičara, a pogotovo inžinjera). No, nećemo o školama, fakultetima, profesorima, asistentima niti inače o obrazovanju kako u BiH, tako ni u svijetu.
Dobre, ispravne prakse se mogu naučiti samostalno, što je svakako težak i mnogo teži put, ali i uz nesebičnu pomoć kolega koji su prošli kroz istu stvar. Ako su to još zapisali, napravili neki video ili audio zapis, još je bolje. Ali ono što je odlično jeste da takve stvari postave kao standard u svojim timovima ili čak na nivou cijele firme.
Jedna od dobrih praksi u programiranju je svakako pisanje komentara prilikom predaje (commit) koda na server za praćenje promjena u kodu (GIT, SVN, ClearCase, …)
U većini timova, kada se otvori historija komentara/opisa šta svaki pojedinačni snimak (snapshot, record, …) u datom softveru radi ili šta bi softver treba da radi nakon tog snimka, može se vidjeti nešto nalik:
- “Small bug fix”
- “Improve code”
- “Remove unnecessary code”
I slične veoma kratke i neopisivo opširne fraze koje o samoj funkcionalnosti softvera nakon te izmjene ne govore apsolutno ništa! Nažalost! Za svaku od navedenih izmjena, potrebno je otvoriti poređenje kôda, šta je bilo prije, a šta je urađeno tu, da bi se moglo prepoznati šta je ustvari programer uradio i na koji način je promijenio funkcionalnost softvera.
Da bi se pomoglo sadašnjim i budućim programerima da preciznije pišu komentare/opise prilikom predaje kôda (commit), potrebno je da sebi odgovore na pitanje:
Kako će se projekat/softver ponašati nakon ovih promjena?
Umjesto:
Šta sam ja kao programer promijenio u softveru u okviru ovog snimka?
Šta to u praksi znači? Pa umjesto komentara koji izgleda kao:
Fixed History [DK-1234]
Bolje je napisati:
When the history is over 10000 records, now software will not crash trying to display it in the android app. [DK-1234]
Svakako, pokazivač na zadatak u softveru ([DK-1234]) za praćenje napredovanja projekta (Jira, Redmine, Stackfield, Target Process, Sprintly, Trello ili bilo koji drugi) je dobro došao, posebno ako je sam zadatak veoma detaljno opisan slijedeći principe pravljenja zadatka iz XP metodologije.
Nakon par sedmica
Programerima se svidi ova ideja i odluče da je primijene u svakodnevnoj praksi, tako da umjesto slijedeće historije:
Ima se mnogo bolja:
0Hits: 1