80/20 také ovlivňuje plánování

Všichni jsme už slyšeli o pravidle 80/20, které říká, že 80% našeho úspěchu (efektů) pochází pouze z 20% našich akcí (příčin). Tato univerzální pravda ovlivňuje také vývoj softwaru a v tomto článku se odvíjíme od základů tohoto tvrzení.

BPM

Business Process Management, pro jeho zkratku v angličtině, je disciplína managementu (mimo jiné), která vám umožní vizuálně porozumět procesům, které musí být prováděny v podnikání (nebo na mnoha jiných místech). Mezi jeho hlavní vlastnosti patří skutečnost, že dokáže analyzovat složité procesy a učinit je „jednoduchými“.

Existuje mnoho nástrojů s otevřeným zdrojovým kódem, které vám umožňují vytvářet diagramy BPM, ten, který jsem pro tento článek použil, je BonitaSoft. Pokud se chcete dozvědět něco více o řízení procesů, existuje mnoho návodů na internetu a knih o tomto tématu. Vraťme se nyní k ústřednímu tématu.

Softwarové projekty

Dnes existuje mnoho metodologií pro vývoj projektů: agilní, tradiční, hybridní atd. Jedna věc, kterou mají všechny společné, je příprava . Co tím myslím? Že 80 % vašeho úspěchu v tomto softwarovém projektu bude záviset na prvních 20 % celého procesu: přípravě.

Příprava projektu

Toto je logický bod, který se v praxi uplatňuje jen zřídka (stejně jako mnoho jiných logických věcí, které jsou v praxi nelogické). Když mluvíme o přípravě, musíme chápat schopnost pochopit problém, pochopit řešení a především proces , který řešení používá. Jednou z nejméně častých věcí, které se vyskytují u neprofesionálních softwarových projektů, je nedostatek dokumentace k tomuto tématu. K tomu obvykle dochází v soukromých společnostech, protože touha po prodeji často zastiňuje proces vývoje.

Vzhledem k tomu, že mnoho z těch, kteří tyto články čtou, pracuje v oblasti technologií nebo s nimi souvisí, stojí za zmínku, že pokud se v jakémkoli okamžiku svého pracovního života setkají se společností/dodavatelem, který nesplňuje dobré standardy přípravy, je téměř s 80% jistotou, že projekt nedopadne dobře.

Klíčem je abstrakce

Tohle jsem se naučil během svého působení v GNU/Linuxu a opakovaně se to ukazuje jako klíčové v procesu vývoje softwaru. Schopnost abstrahovat problémy a přeměnit je na jednodušší věci je zásadní pro generování elegantního a především odolného kódu . A možná je to jeden z hlavních rozdílů mezi velkými profesionálními projekty a projekty, které nekontrolovaně rostou. První promýšlejí, chápou a strukturují proces, zatímco druzí jej jednoduše udržují v chodu, aniž by mu museli rozumět.

Stager

Toto je název projektu, který vyvíjí instalační program Gentoo, jak si dokážete představit, jedná se o poměrně složitý proces, protože podporuje velké množství architektur. Dalším faktorem, který je třeba vzít v úvahu, je počet konfigurací, které podporuje, na úrovni jádra, systému init atd. A já vám to všechno říkám, protože je to také můj diplomový projekt, který musím dokončit před dokončením studia. Je zřejmé, že za tak krátkou dobu (do července příštího roku) nemohu vytvořit program, který uvažuje o absolutně všech možných možnostech, ale přinejmenším mohu vygenerovat takový, který umožňuje instalaci funkčního systému velmi základním způsobem.

Porozumění procesu instalace

Díky nástrojům BPM lze vygenerovat procesní diagram, který nám umožňuje pochopit kroky nezbytné pro úspěšnou instalaci Gentoo na počítač.

Proces instalace Gentoo

Vlastní. Christopher Diaz Riveros

Navzdory tomu, že obsahuje několik procesů a dílčích procesů, bylo zjevně celkem shrnuto a je vidět, že máme 18 lineárních kroků. To je důležité, protože aplikace, která má lineární strukturu, je snadno implementovatelná a současně lze v případě potřeby generovat paralelismus v jednom nebo více vláknech.

Dalším důležitým faktorem je, že nám to umožňuje abstrahovat sady procesů podle typu; například definování podprocesu jádra nám umožňuje vědět, že v něm existují specifické úlohy, které přímo souvisejí s procesem úspěšné instalace jádra.

Dílčí proces „jádro“

Vlastní. Christopher Diaz Riveros

Tímto způsobem se každý „složitý“ krok stane „jednoduchým“ v globálním měřítku, aniž by došlo ke ztrátě potřebných detailů. To usnadňuje viditelnost sestavy bez snížení úrovně specifikace nezbytné k úspěšnému dokončení procesu. A nemůžeme popřít, že je snazší vidět obrázek, než číst celou příručku najednou 

Ušetřit čas

Další zřejmou výhodou je, že když nemáte přímo připojený programovací jazyk, je možné provádět logickou analýzu, aniž byste nutně ztráceli čas implementací jazyka. To je výhoda ve srovnání s časem, který lze strávit implementací funkce, jen aby se zjistilo, že bude vyřazena, protože existuje efektivnější řešení. Jako by to byla řešení v pseudokódu (něco, co také mnoho „vývojářů“ ignoruje, ale nemělo by být).

Snadné směrování projektů

Vezmeme-li tyto koncepty v úvahu, řízení projektů (jakéhokoli druhu) se stává jednodušším, protože soustředíme úsilí tam, kde je to skutečně nutné, a pokud je tato část provedena správně, zbytek spadá pod vlastní váhu. Doufám, že to pomůže vaší zvědavosti a motivuje vás ke zkoumání BPM, algoritmů a kdo ví, možná vás to povzbudí, abyste mi pomohli s mou diplomovou prací  Děkuji, že jste došli až sem, a brzy se uvidíme. Zdravím vás


Přidat jako preferovaný zdroj v Googlu