Svi smo čuli za pravilo 80/20, ono koje kaže da 80% našeg uspjeha (posljedice) dolazi iz samo 20% naših postupaka (uzroka). Pa, ova univerzalna istina utječe i na razvoj softvera, a u ovom ćemo članku razmotriti neke od osnova ove izjave.
BPM
Upravljanje poslovnim procesima, zbog svoje kratice na engleskom jeziku, disciplina je upravljanja (između ostalog) koja vam omogućava da vizuelno razumijete procese koji se moraju izvesti u poslu (ili na mnogim drugim mjestima). Među njegovim glavnim kvalitetama je činjenica da može analizirati složene procese i učiniti ih "jednostavnima".
Postoje mnogi alati otvorenog koda koji vam omogućavaju da razvijete BPM dijagrame, a ovaj koji sam koristio za ovaj članak je BonitaSoft. Ako želite naučiti malo više o upravljanju procesima, na internetu postoje mnogi vodiči i knjige o toj temi. Vratimo se sada na centralnu temu.
Softverski projekti
Danas postoji mnogo metodologija za razvoj projekata: agilne, tradicionalne, hibridne i tako dalje. Jedna stvar koju sve imaju zajedničko je priprema . Šta pod tim mislim? Da će 80% vašeg uspjeha u ovom softverskom projektu zavisiti od prvih 20% cijelog procesa: pripreme.
Priprema projekta
Ovo je logična poenta koja se rijetko primjenjuje u stvarnosti (kao i mnoge druge logične stvari koje su nelogične u praksi). Kada govorimo o pripremi, moramo razumjeti sposobnost razumijevanja problema, razumijevanja rješenja i, prije svega, procesa koji rješenje koristi. Jedna od najmanje uobičajenih stvari koje se nalaze u neprofesionalnim softverskim projektima je nedostatak dokumentacije o ovoj temi. To se obično dešava u privatnim kompanijama, budući da želja za prodajom često zasjenjuje proces razvoja.
Budući da mnogi od onih koji čitaju ove članke rade u oblasti tehnologije ili su povezani s njom, vrijedi spomenuti da ako u bilo kojem trenutku svog radnog vijeka naiđu na kompaniju/dobavljača koji ne ispunjava dobar standard pripreme, gotovo je 80% sigurno da projekat neće dobro proći.
Ključ je apstrakcija
Ovo je nešto što sam naučio tokom svog korištenja GNU/Linuxa i to se iznova dokazuje kao ključno u procesu razvoja softvera. Sposobnost apstrahiranja problema i njihovog pretvaranja u jednostavnije stvari je vitalna za generiranje elegantnog i, prije svega, izdržljivog koda . I možda je ovo jedna od glavnih razlika između velikih profesionalnih projekata i projekata koji nekontrolirano rastu. Prvi promišljaju, razumiju i strukturiraju proces, dok ga drugi jednostavno održavaju u radu bez potrebe da ga razumiju.
stager
Ovo je naziv projekta koji razvija program za instalaciju Gentoo, kao što možete zamisliti, ovo je prilično složen proces, jer podržava veliki broj arhitektura. Drugi faktor koji treba uzeti u obzir je broj konfiguracija koje podržava, na nivou jezgra, init sistem itd. I kažem vam sve ovo, jer je to ujedno i moj diplomski rad, koji moram završiti prije završetka studija. Očigledno je da ne mogu stvoriti program koji razmatra apsolutno sve moguće opcije u tako kratkom vremenu (do jula sljedeće godine), ali barem mogu stvoriti onaj koji omogućava da se funkcionalni sistem instalira na vrlo osnovni način.
Razumijevanje postupka instalacije
Zahvaljujući BPM alatima može se generirati dijagram procesa koji nam omogućava razumijevanje koraka neophodnih za uspješnu instalaciju Gentoo-a na računaru.
Svoje. Christopher Diaz Riveros
Iako sadrži nekoliko procesa i podprocesa, očito je prilično sažet i vidi se da imamo 18 linearnih koraka. To je važno jer je aplikacija koja ima linearnu strukturu jednostavna za implementaciju, a istodobno se paralelnost može generirati u jednoj ili više niti ako je potrebno.
Još jedan važan faktor je to što nam omogućava da apstrahujemo skupove procesa po tipu; na primjer, definisanje podprocesa kernela nam omogućava da znamo da unutar njega postoje specifični zadaci koji su direktno povezani sa procesom uspješne instalacije kernela.
Svoje. Christopher Diaz Riveros
Na taj način svaki "složen" korak postaje "jednostavan" na globalni način, bez gubljenja potrebnih detalja. Ovo olakšava vidljivost sklopa bez smanjenja nivoa specifikacije potrebnog za uspješno dovršenje procesa. I ne možemo poreći da je lakše vidjeti sliku nego pročitati cijeli Priručnik odjednom
Uštedjeti vrijeme
Još jedna očigledna prednost je ta što ako nemate direktno povezan programski jezik, moguće je izvesti logičku analizu bez nužnog gubljenja vremena na implementaciju jezika. Ovo je prednost u odnosu na količinu vremena koje se može potrošiti na implementaciju značajke samo da bi se otkrilo da će biti odbačena jer postoji učinkovitije rješenje. Kao što bi bila rješenja u pseudo-kodu (nešto što mnogi "programeri" također ignoriraju, ali to ne bi trebalo biti).
Jednostavno usmjeravanje projekata
Uzimajući u obzir ove koncepte, upravljanje projektima (bilo koje vrste) postaje jednostavnije, jer napore usmjeravamo tamo gdje su zaista potrebni, a ako se ovaj dio odradi ispravno, ostalo pada pod vlastitom težinom. Nadam se da će pomoći vašoj radoznalosti i motivisati vas da istražite BPM, algoritme i ko zna, možda će vas ohrabriti da mi pomognete sa mojom tezom Puno vam hvala što ste došli ovako daleko i vidimo se uskoro. Pozdrav