- Přehledy IS
- APS (20)
- BPM - procesní řízení (22)
- Cloud computing (IaaS) (10)
- Cloud computing (SaaS) (33)
- CRM (51)
- DMS/ECM - správa dokumentů (20)
- EAM (17)
- Ekonomické systémy (68)
- ERP (77)
- HRM (27)
- ITSM (6)
- MES (32)
- Řízení výroby (36)
- WMS (29)
- Dodavatelé IT slueb a řeení
- Datová centra (25)
- Dodavatelé CAD/CAM/PLM/BIM... (39)
- Dodavatelé CRM (33)
- Dodavatelé DW-BI (50)
- Dodavatelé ERP (71)
- Informační bezpečnost (50)
- IT řeení pro logistiku (45)
- IT řeení pro stavebnictví (26)
- Řeení pro veřejný a státní sektor (27)
ERP systémy
CRM systémy
Plánování a řízení výroby
AI a Business Intelligence
DMS/ECM - Správa dokumentů
HRM/HCM - Řízení lidských zdrojů
EAM/CMMS - Správa majetku a údrby
Účetní a ekonomické systémy
ITSM (ITIL) - Řízení IT
Cloud a virtualizace IT
IT Security
Logistika, řízení skladů, WMS
IT právo
GIS - geografické informační systémy
Projektové řízení
Trendy ICT
E-commerce B2B/B2C
CAD/CAM/CAE/PLM/3D tisk![]() | |
| Přihlaste se k odběru newsletteru SystemNEWS, který kadý týden přináí výběr článků z oblasti podnikové informatiky | |
![]() | |
Současné trendy ve vývoji software
Za posledních dvacet let se vývoj softwaru významně změnil. Dříve se nejprve vytvořil projektový plán, poté analytici sesbírali od klienta jeho poadavky, ve popsali ve specifikaci a tu pak předali k tvorbě architektury a technického designu seniorním vývojářům a architektům. Poté se ve předalo vývojářům a ti dlouhou dobu vyvíjeli, software se interně testoval s uivateli, dál jej předali administrátorům, ti jej nasadili a provozovali. A podobně to bylo s kadou dalí změnou a rozířením.

Za posledních dvacet let se vývoj softwaru významně změnil. Původní model byl takový:
- Vytvořil se projektový plán
- Analytici sesbírali od klienta business poadavky
- Přetvořili je společně s klientem ve funkční poadavky
- Ve popsali ve specifikaci
- Tu předali k tvorbě architektury a technického designu seniorním vývojářům a architektům
- Poté se to předalo na vývoj a ten dlouhou dobu vyvíjel
- Software se testoval = testoval se interně a s uivateli
- Pak se software předal administrátorům, ti jej nasadili a provozovali (monitorovali).
A podobně to bylo s kadou dalí změnou a rozířením.
Popsaný model vývoje funguje někdo do teď. Stále je to vlastně takový základ, který dává smysl - něco se prozkoumá, navrhne se řeení, naprogramuje se to, a pak se to pouívá. Tento základní princip toti asi jen tak nic nezmění (nebudeme nejprve programovat, abychom pak teprve zjiovali, co kdo chtěl naprogramovat - i kdy tohle se také děje :-)). Jde předevím o to, v jaké míře a jak moc rigidně se tento model dodruje.
Moderní přístup se snaí o větí flexibilitu, zrychlení celého procesu, dělání veho v iteracích, více agilně. Míra, jak hodně se tento postup aplikuje striktně ve výe uvedeném postupu a jak moc je zjednoduený, agilní, záleí na prostředí. Například stále některé banky a velké instituce realizují projekty stále tímto postupem, kterému se říká waterfall, naproti tomu startupy a businessově exponované sektory (např. e-commerce) jdou agilnějí cestou. V jejich případě je to dáno potřebou rychle reagovat na změny, které se na trhu odehrávají.
Problém tohoto rigidního postupu je toti čas a flexibilita. Takový projekt se můe vyvíjet roky, kdy vezmeme vechny fáze včetně analýz a nasazení. Za tři roky ale můe dojít ke změně zadání - a větinou k němu také dojde. Zároveň na začátku lidé nedokáí popsat, co přesně chtějí a po sputění projektu uivatelé zjiují, e chtěli trochu něco jiného. To u je ale pozdě. Kadá změna pak prochází stejným postupem. Právě tomuto modelu se říká waterfall, vechny fáze jdou jen směrem dopředu a zpětně proti vodopádu se k zadání vrací patně.
Waterfall sám o sobě není patný a v určitých sektorech a pro určité problémy dává smysl. Záleí na velikosti projektu, prostředí, schopnosti fungovat agilně apod. Waterfall je dnes brán jako sprosté slovo, ale reálně se s ním pracuje velmi často. A není to chyba dodavatelské firmy. Představte si veřejnou zakázku, kde si stát objedná projekt, neví ovem, co dostane, a také neví, kolik ho to bude stát a má porovnat mezi sebou nabídky a vybrat nejlepí. Úředníci jsou ale mnohdy pod tlakem, navíc kontrolováni, proto si takový agilní přístup nemohou dovolit. Stejně tak velké firmy.
Jak celý proces udělat flexibilnějí?
Agilita, metodologie Scrum:
- Stanoví se high level cíl, iteruje se v krátkých sprintech, např. týden, 14 dní. Výsledkem je nový kód, nový kus projektu. Vdy po konci části projektu se sejde zadavatel s vývojovým týmem a řeknou si, co by se mělo změnit a jak dál postupovat.
- Zrychlí se tím celý cyklus, dohodnutá věc je vidět brzy a ne a za 3 roky. Ale samozřejmě nemáte za 14 dní celý projekt, stejně se tedy nedá kompletně otestovat, pořád je ale lepí ne čekat několik let a pak větinu vyhodit.
DevOps:
- Mění proces tak, e sloučí lidi, co dělají vývoj a provoz (adminy). Je to tedy Development and Operations, z toho zkratka DevOps. Developeři jsou potom takoví admini. Je to podobné jako u vývojových cyklů v agilitě (business je tam více spojený s vývojem, s analýzou), ve se tím urychlí. Nasadit projekt v nějaké těkopádnějí instituci trvá třeba i měsíce. Vývojáři mají hotovo a pak se čeká na adminy. Vekeré změny v konfiguraci si řeí admini, developeři do nich nevidí, vechno je příli zdlouhavé. Naopak v DevOps to dělají developeři.
- Výhoda DevOps je, e vyvíjí software tak, jak si ho sami budou provozovat. Neberou to tak jako e tohle bude na adminech. U první verze si někam nasazují a větinou podobně pokračují na produkčním (ostrém) prostředí. Take to nenechávají nakonec adminům, ale celý ten výrobní chain softwaru se hned na začátku nastaví.
- Tomu pomáhají moderní nástroje pro kontejnerizaci, virtuální stroje a dalí. Velmi populárním nástrojem je Docker, který jakoby zabalí celý software včetně celého operačního systému do jednoho balíku (image) a ten je mono nasadit k sobě na laptop nebo třeba na produkční server a to bez jakýchkoliv změn v softwaru a operačním systému.
- Pomáhá tomu continuous integration, tedy automatizace nasazování. Vývojář vyvine, pole kód a on se mu automaticky dostane na server. Tím se opět zrychluje celý proces. Zároveň se nový kód před nasazením na server otestuje pomocí automatizovaných testů bez zásahu člověka. Tím se ověří, e se v softwaru nic nerozbilo a uetří se čas na dlouhé regresní testování celého systému.
Microservices, jiný styl architektury:
- Stále velmi populární téma, které umoňuje nepsat software jako obrovský monolit, ale rozdělit ho na samostatně ijící servisy (malé software na serveru), které si spolu povídají. Výhoda u velkých projektů: na servise pracuje vdy jeden tým, má know how, dokáe si to měnit. Kdy udělají změnu, ale nedojde ke změně API (tj. komunikace mezi jinými slubami), pak to nikoho nemusí a tak zajímat. Tým dostane do produkce pár kliky novou verzi, mění si jenom svojí servisu. Opět se tím urychlí proces doručení.
- Není ovem dobré to s microservices moc přehánět (tj. mít stovky malých servis, kdy to není v dané situaci nutné, například kdy pracují na vech slubách stejní lidé, nepomáhá to výkonu systému). Celkově to toti prodraí vývoj a náklady se naopak etří a u větích systémů, případně systému s velkým poadavkem na výkon.
Styl, jakým se vyvíjí ve firmách software, se různí a je opravdu na iroké kále veho výe popsaného. Určitě není pravidlo, e kadá firma musí vyvíjet agilně, striktně aplikovat DevOps a celý systém dnes přepsat do mikroservis. Je to ale cesta, kterou se ji nějakou dobu vydává postupně celý svět a ve spoustě případů dává velký smysl.
![]() |
Miroslav Fuksa Autor článku je zakladatel a ředitel vývojářské společnosti Coding Bear. Stojí za mylenkou a rozvojem nástroje Bear Inspector, který analyzuje digitální stopu vývojových týmů a zlepuje tak jejich efektivitu. Před zaloením Coding Bear zastával funkci IT ředitele společnosti Napka pod skupinou Rockaway a pracoval také na vývoji ve společnosti Oracle. |




















