Manifest organizovanog softverskog razvoja

2 min

Neretko razmišljam o postojanju obrazaca u razvoju softvera: na sličan način kao što postoje programerski obrasci, sigurno moraju postojati nekakvi obrasci samog softverskog razvoja i grupa koje učestvuju u njemu. Mislim na komunikaciju i, uopšte, interakciju između funkcionalnih timova organizacija.

Pre nego što momentalno napustiš stranu - priznajem, ovo više zvuči kao najava za ‘kako mali Igor zamišlja razvoj softvera’ - imaj na umu jedno: ovo je, možda, jedan od važnijih uvida u vezi softverskog inženjerstva.

Neki drugi koji su isto razmišljali na ovu temu su krenuli od ideje da se celine koje učestvuju u razvoju softvera posmatraju kao socijalne grupe. Organizovali su istraživanje raznolikih softverskih kompanija; uočili su izvesne obrasce i ono što izdvaja produktivne timove. G. Cain i Copien iz AT&T Bell laboratorija su predstavili rezultate istraživanja u radu “Social patterns in productive software development organizations”, objavljenom krajem 1996. (!) godine. Mala trivija: početkom iste godine je uveden Internet u tadašnju Jugoslaviju.

Neću prepričavati pomenuti rad, javno je dostupan i možete ga brzo naći pretragom; 20-tak strana neće uzeti puno vremena. Izdvojiću samo tri uvida koja nalazim ključnim za razvoj softvera, u vidu nekakvog manifesta (jer to zvuči tako dobro:)

Manifest organizovanog softverskog razvoja

  1. Software development is a predominantly social activity.
  1. The coder is a cutpoint of most design and implementation processes.
  1. If there is one consistent measure of successful organization, it is how well its members maintain relationships through communication.

Misliti & Uvrežiti

Čini mi se da, danas, najmanje vodimo računa o izrečenom. Fokus leži na veštinama softverskog razvoja - a ne i: ‘znanju’. Softverski obrasci (design patterns) su tek običan vokabular od koga smo napravili bibliju koje se slepo držimo. Glomazni programski okviri (da, SpringBoot), neskuvane biblioteke (da, React), a tek trivije poznavanja infrastrukture (da, AWS), čine osnov današnjeg softverskog razvoja; u kome se gotovo nipodaštavaju socijalna pitanja pod izgovorom da nisu ‘inženjerska’ - kao da gornje navedene veštine to jesu.

Svakako da su veštine i znanja neophodna za razvoj softvera - ali ne i za kvalitetan razvoj.

Socijalna aktivnost, čvorišna pozicija programera i odlična komunikacija. Uvrežiti.

🧧
Nisam definisan svojim stavovima. Stavove usvajamo, menjamo, nadograđujemo, ali oni ne čine nas same. Manje je važno da li se slažemo, koliko da se razumemo.