Istražujući i pripremajući jedan od naših Architect Foruma (a slijedeći je na temu Software Quality Assurance), primjetio sam da sam jednostavno manje više preskočio teoriju razvoja programske podrške (ili softvera). Stvarno, kako izgleda "teorija" dobrog razvoja softvera? Ako upravitelji projekata imaju Project Management Body of Knowledge, imaju li developeri "Software Engineering Body of Knowledge"?
Naravno, i
točno se tako i zove. Tijekom 2004 godine nastao je kao vodič za razvoj sofverske podrške i to kroz inicijativu
IEEE Computer Society organizacije (zadnja nadogradnja napravljena je početkom 2007 godine). Na nekakvih 200 stranica obrađuju se vječne teme kao što su Software Requirements, Software Design, Software Testing, Software Configuration Management itd... te postavljaju teoretske osnove onoga što bi mi zvali pojednostavljeno - programiranje.
Možemo li naučiti kako treba razvijati programsku podršku? Mislim da je pristup ovom pitanju isti kao i kod upravljanja projektima - naravno da se ne može, ali se mogu uspostaviti određeni vodići i predlošci čija bi primjena koliko toliko povećala šanse da projekt (bilo koji tako i softverski) uspije. Uspjeh je ovdje posebna kategorija koja često koketira s kvalitetom - ovisno o tome što se spremni prihvatiti, projekt možete proglasiti uspješnim ili neuspješnim.
Kao što će se ljudi koje uobičajeno vidimo na našim Architect skupovima složiti, kvaliteta je nešto što je teško postići. Već prvim koracima u razvoju softvera, upravljate svojim rezultatom - tako je na primjer kvalitetno odrađeni Software Requirements dokument ili faza temelj za "scope"/"doseg" projekta - na kojem većina projekata ionako pada. No o tome je teško pisati na blogu, ipak su to teme za verbalne rasprave.
Dodatno, dobar izvor je i
Software Engineering 2004 Curriculum Guides - iako se možda ne bavi pitanjem "kako graditi softver" nego više "kako objasniti kako se gradi softver" princip je isti, kao i tvorac - IEEE. IEEE je vremenom čak i razvio "svoj" developerski certifikat -
Certified Software Development Associate (CSDA), temeljen na teoriji koja je razvedena u SWEBOK-u-
Koja je vaša omiljena literatura na ovom području? Što bi trebali znati i podijeliti? Komentirajte s linkovima na zanimljive dokumente i knjige, i u ime onih koji takve traže - unaprijed hvala.