Filosofie úspěchu zahrnuje přirozeně i tvorbu systémů (k čemu by byla filozofie, pokud bychom ji neuplatňovali praktickým způsobem v životě?). Úspěch je kromě jiného smysluplná funkčnost, životaschopnost, organizovanost. Neúspěch začíná chaosem.
Zajímáte-li se o tvorbu životaschopných systémů, možná naleznete zajímavé informace i v článcích na téma Informační systémy (dále IS).
Zejména se zabývám těmito otázkami a oblastmi:
- Jak postupovat při navrhování IS
- Vývojové fáze
- Zadání
- Systémová analýza
- Návrh systému
- Realizace (implementace)
- Údržba a zdokonalování
- Modelování
- Řízení projektů
- Osvědčené postupy v.s. chybné postupy
Potřeba vytvořit informační systém vychází například z potřeby dosahovat vyšších zisků, dělat věci efektivněji, zvládat vyšší nároky zákazníků, zlepšit komunikaci, snížit náklady, zajistit konkurenceschopnost atd.
Bez IS se dnes žádná společnost neobejde. Dobře promyšlený systém zajišťuje optimální využití zdrojů. IS nemůže být samospasitelný. Můžete například navrhnout dokonale propracovanou architekturu, kde každý ví přesně co má dělat (tzv. opičí dráhu), ale konkurenční systém oproti tomu vašemu umožní pracovat i kreativním inovátorům (tvořivcům, kteří nebudou svázání procedurami) a rázem jsou dále.
Z neověřených zdrojů se dovídám, že mnohé aplikace vytvářejí dokonce více problémů, než kolik jich úspěšně řeší. Tomu vůbec není těžké uvěřit. Asi ne každý vývojář se zabývá kořenovými principy a mnozí přeskakují i nezbytné vývojové fáze rovnou k implementaci.
Jakýkoliv systém je možné rozložit na jednotlivé stavební bloky uchopitelné snadno myšlením. Nejprve je zapotřebí zjistit všechny potřebné informace o dané oblasti a co přesně má systém zajišťovat. Po pečlivém zjištění co zadavatel od IS očekává, je možné přistoupit k rozboru podle jednotlivých celků, procesů, předpokládaných datových toků apod.
Vždy existuje více pohledů. Každý návrhář musí brát v úvahu všechny důležité pohledy, aby se na nic podstatného nezapomnělo hned na začátku vývoje. Na systém se lze dívat například z pohledu provozovatele (majitelé, manažeři …), z pohledu uživatelů (pracovníci, klienti, zákazníci …), z pohledu vývojářů (systémový analytik, informační architekt, programátor …) a zároveň analyzovat potřeby jednotlivých zúčastněných stran. Každá skupina účastníků má trochu jiné potřeby. Čím důkladnější analýza, tím je větší pravděpodobnost odhalení skutečných potřeb IS. (Potřeba mít IS, protože jej mají i ostatní, je pseudopotřeba.) Pozdější záplatování a předělávání chybně navrženého systému jej značně a především zbytečně prodražuje.
Byť je možné řadu jevů zobecnit, každá organizace je jiná a má tedy jiné potřeby. Dobrá systémová analýza může odhalit i možnost nasadit krabicové (hotové) řešení. Problém s hotovými řešeními je však v jejich přespřílišné univerzálnosti a tedy složitosti. Chce-li později zadavatel něco přidat či upravit, většinou je realizace velmi komplikovaná a pro uživatele IS neohrabaná. Přitom většinou až teprve za chodu se objevují skutečné potřeby. Je-li nutné provést větší množství změn, vyplatí se souběžně s testováním aplikace vytvářet zcela novou verzi, protože hrozí zanesení chyb.
Nechá-li si zadavatel vytvořit systém šitý na míru a především – počítá-li s budoucím vývojem – investice by se měla bohatě vrátit.
- Systémová analýza hledá odpovědi na otázky typu: „Co?“, „Proč?“
- Realizace hledá odpovědi na technické otázky typu: „Jak?“
- Design systému hledá přemostění mezi analýzou a realizací (modelování, hledání logických vazeb, přesun od abstraktního ke konkrétnímu, …)
Čím lepší analýza a návrh systému, tím snazší je realizace (naprogramování). Přitom čas potřebný k provedení kvalitního rozboru a návrhu se přinejmenším vyrovná času potřebnému k implementaci.
Dlužno podotknout, že fáze rozbor, návrh, implementace, existují přirozeně i při používání agilních metodik vývoje (např. SCRUM), jenom nejsou tak výrazně viditelné, jako v jiných metodikách.
Na co se většinou zapomíná, je lidský faktor. Důležité je zajistit kvalitní podpůrné prostředí pro vývojáře. Aby se mohla projevovat přirozená tvořivost, musí být především umožněna. V prostředí, kde vládne stres a chaos nikdy žádné význačnější kreativity nedosáhnete. To je dobré brát na vědomí například i při hledání práce. Stojí-li v inzerátu „Požadujeme schopnost zvládat stres“, je lépe obloukem se těmto nabídkám vyhnout. Nemají zvládnutou organizaci a pravděpodobně jsou už ve fázi „hašení požáru“ z důvodu chybného vedení či naplánování projetku.
Vývojáře musí namísto stresu pohánět vzrušení a zaujetí pro věc. To není těžké v sobě objevit, když máte jasnou představu co má systém dělat, věříte v jeho užitečnost a dostanete prostor k realizaci.
Mezi stresem a vzrušením je zcela zásadní rozdíl. Oba druhy „energie“ sice mohou dovést projekt do cíle, avšak co do kvality provedení budou patrné jasné rozdíly a především se to projeví i na psychice vývojářů. Přitom právě psychika hraje nejdůležitější roli při vývoji. Stres ruší soustředěnost, poškozuje paměť, způsobuje stažení organizmu a celkově poškozuje mozek a tělo. Oproti tomu vzrušení dodává vnitřní sílu, přináší hluboké uspokojení a radost. Věřím, že na organizmus působí vzrušení blahodárně.
Jste-li vývojář a okolí se vás snaží motivovat strachem, vězte, že máte co do činění s psychopatickým systémem řízení (nemusí to nutně znamenat, že ti kdo to řídí, jsou psychopaté, ale mají k tomu blízko; každopádně mohou být jen dezinformovaní).