Likumi programmatūras izstrādei

Lasot literatūru par Scrum pamati ideoloģiju, vairākkārt sastapos ar dažādiem pētījumiem un likumiem, kurus var attiecināt uz programmatūras izstrādi arī mūsdienās. Interesantākās un noderīgākās likumības apkopoju un kopā ar saviem komentāriem publicēju šajā bloga rakstā.

Brūka likums

Ja aizkavētā projektā piesaista papildu cilvēku jaudu, tad projekts aizkavējas vēl ilgāk.

Piesaistot projektā papildu cilvēkus bez zināšanām par konkrēto projektu, šo cilvēku apmācībai tiks tērēts projekts jau esošo cilvēku laiks tā vietā, lai šo laiku izmantotu projekta attīstīšanai. Projekta virzību paildzinās un sarežģīs arī apgrūtinātā komunikācija, kas radīsies, palielinot cilvēku skaitu grupā.

Konveja ar līdzīgām precēm

Organizācija, kura projektē sistēmu, nonāk pie tādiem risinājumiem, kuri atspoguļo šīs organizācijas komunikācijas struktūru.

Izstrādājot sistēmas dizainu, svarīgākais solis ir noorganizēt komandu, kas sistēmu projektēs, jo izveidotā sistēma atspoguļos šīs komandas savstarpējo komunikāciju.

Tātad, lai izveidotu pēc iespējas labāku sistēmu, komanda jāveido tā, lai tās dalībnieki pēc iespējas labāk sadarbotos savā starpā.

Hofstadtera likums

Uzdevums vienmēr aizņem vairāk laika, nekā plānots, pat tad, ja tiek ņemts vērā Hofstadtera likums.

Šis likums ir par cilvēka nespēju pilnībā izplānot notikumus un paredzēt to gaitu.

Plānojot laiku, kas vajadzīgs, lai paveiktu konkrētu uzdevumu, nav iespējams atcerēties visus iepriekš ieplānotos un nepabeigtos darbus, piemēram, citus paralēlus projektus, komandējumus, brīvdienas u.c.

Tāpat nav iespējams paredzēt visus šķēršļus, kas var rasties laika gaitā, veicot konkrēto uzdevumu, piemēram, slēptos tehnoloģiskos izaicinājumus, jaunus kritiskos darbus, precizējumus uzdevuma uzdevuma presībās, slimošanas utt.

Abi šie faktori var būtiski paildzināt laiku, kas vajadzīgs uzdevuma izpildei.

Piemēram, priekšnieks palūdz Annai sagatavot prezentāciju. Anna zina, ka var to paveikt 3 dienu laikā, tomēr ņem vērā Hofstadtera likumu un apsola priekšniekam darbu izdarīt nedēļas laikā. Nākamajā dienā Anna atceras, ka pirms vairākiem mēnešiem iegādājusies biļetes, lai dotos ciemos pie māsas. Ceļojums ilgst 4 dienas, turklāt atgriežoties Anna ir saaukstējusies un nespēj strādāt pie prezentācijas vēl 2 dienas. Viņai ir palikusi 1 diena, lai sagatavotu prezentāciju, bet viņai vajag vēl laiku.

Linusa likums

Ar pietiekami lielu testētāju un līdzizstrādātāju skaitu praktiski jebkura problēma tiks atrasta ātri un kādam liksies vienkārši novēršama.

Nav divu personu, kurām būtu identisks zināšanu loks, - katram cilvēkam ir savas stiprās un vājās puses. Tāpēc komandai, kurai jāatrisina noteikta problēma, šīs komandas zināšanas un vērība ievērojami paplašinās, piesaistot vairāk cilvēku un tādā veidā paātrinot problēmas konstatēšanu un atrisināšanu.

Okama personas

Ja problēmai tiek piedāvāti vairāki risinājumi, priekšroka jādod vienkāršākajam.

Risinot problēmu sarežģītākā veidā, ir jāveic vairāk pieņēmumu nekā tad, ja problēmu risina vienkāršākā veidā. Jo vairāk pieņēmumu jāizdara, jo lielāka ir iespēja kļūdīties.

Tātad ir lielāka iespēja atrisināt problēmu, ejot vienkāršāko ceļu. Jo mazāk pieņēmumu jāizdara, jo lielāka iespēja nonākt pie problēmas risinājuma ātrāk un nekļūdoties.

Pareto principi

Visbiežāk 80% problēmu rodas no 20% cēloņu.

Šis princips norāda uz to, ka vairumā gadījumu maza daļa cēloņu izraisa lielāko daļu problēmu. Tāpēc, risinot problēmas, efektīvāk ir nevis tērēt laiku, labojot visus iespējamos cēloņus, bet atrast tos cēloņus, kas izraisa lielāko daļu problēmu, un izlabot tos.

Parkinsona likums

Darbs ievelkas tieši tik ilgi, lai aizņemtu visu tā izpildei pieejamo laiku.

Ja, uzsākot projektu, tiek dots noteikts laiks šī projekta izpildei, persona savu laiku organizēs un plānos tā, lai iekļautos un izpildītu darbu šajā laika periodā. Ja, tuvojoties perioda beigām, projekts nav izpildīts un ir palicis vairāk nepadarītu darbu, nekā plānots, tad konkrētā persona pārplānos savu laiku un pasteigsies, lai varētu pabeigt laikā. Taču, ja paliks vairāk laika, nekā vajadzīgs, atbildīgā persona neiespringstot turpinās projekta lēnāk, nekā plānots, kas, iespējams, novedīs pie tā, ka laika trūks.

Virtsa likums

Programmatūra kļūst lēnāka ātrāk, nekā datortehnika kļūst ātrāka.

Kamēr datortehnikas izstrādātāji turpina palielināt tās jaudu, tikmēr programmatūras veidotāji izstrādā tehnoloģiski un vizuāli arvien sarežģītākas programmas, kuru darbībai nepieciešama arvien lielāka jauda. Datortehnikas izstrāde tuvojas fiziskiem limitiem, kas vēl vairāk apgrūtina jaudas palielināšanu, taču programmatūrai fizisku limitu nav. Jo sarežģītāka programma tiek veidota, jo vairāk jaudas tai vajadzīgs, taču datortehnika to drīz vairs nespēs nodrošināt.