|
Bilance: Konec roku a konec desetiletí v SW technologiích
autor: RNDr. Ilja Kraval, prosinec 2010
Object Consulting s.r.o.
Server objektových technologií
Úvod
Působím již více než 12 let jako externí konzultant a školitel v oblasti UML a OOP a za tu dobu jsem měl možnost projet desítky firem jak v České republice, tak na Slovensku. Našimi pobytovými školeními prošly již stovky vývojářů. Mohu proto srovnávat, co se z hlediska vývoje SW ve firmách změnilo.
Možná i vás bude zajímat, jakými změnami SW firmy prošly a jaký je nyní celkový stav kvality vývoje v českých a slovenských firmách.
První zjištění
Konec minulého století a začátek tohoto byl charakteristický dost vášnivými diskusemi mezi vývojáři o tom, zda je nutné zavádět OOP anebo nikoliv. Příliš mnoho programátorů a technologů bylo tehdy zvyklých na strukturované programování a nerado svou zaběhanou parketu opouštělo. Vzpomínám si, že mne v té době na školeních stálo dost úsilí přesvědčovat zaťaté „strukturální programátory“ o výhodách OOP a o výhodách architektury se střední vrstvou.
SW firmy se tenkrát, tj. na začátku tohoto století, dělily na dva tábory:
· SW firmy se zastaralejším strukturovaným přístupem, které OOP a střední vrstvu zásadně nepoužívaly. Jejich aplikace byly návrhem ztvárněným jako honička balíků dat mezi formulářem a databází (tehdy populární architektura „client-server“), přičemž celá logika aplikace se schovala do SQL příkazů a kódů ve formuláři.
· Modernější SW firmy, které naopak střední vrstvu zavedly a navíc používaly v návrhu kódu OOP. Tyto firmy získaly technologický náskok, jejich aplikace byly transparentnější, stabilnější a flexibilnější.
Dá se říci, že doba na přelomu století a počátek tohoto století byla charakterizována snahou o zavádění OOP a architektury se střední vrstvou.
Dnes již tyto diskuse úplně odpadly, o výhodách OOP a střední vrstvy není pochyb, navíc všechna komerčně úspěšná vývojová prostředí (například .NET a JAVA) tuto filosofii nejenom podporují, ale také stále více zdokonalují.
Na okraj je třeba říci, že ještě i dnes se můžeme z historických důvodů setkat s firmou - technologickým dinosaurem, který vyvíjí aplikace bez střední vrstvy typu „databázový klient - databáze“ a také bez použití OOP. Ale i u nich je patrný silný tlak na změnu této technologie, protože tyto aplikace se stávají neudržitelnými, neflexebilními a těžko zdokumentovatelnými.
Druhé zjištění
Současně spolu se sporem o změnách v technologiích (tj. o OOP a střední vrstvě) se tehdy rozpoutala i druhá vášnivá diskuse o nutnosti zohlednění úrovní abstrakce, tj. nastolila se otázka, zda zavádět fáze vývoje.
Základní jádro sporu spočívalo ve dvou věcech: diskuse nad zdánlivým zpomalením vývoje díky nově zavedeným druhům prací, než je kódování (například analytické modelování v UML) a spory nad nutností zavést nové tehdy dosud neznámé role v týmu - role analytika a technologa. Dodnes si s úsměvem vzpomínám na jednoho vedoucího projektu v SW firmě, kde jsem před X lety školil, který nepochopil nutnost zavedení analytického modelování jako opravdu nutné fáze v projektu. Po skončení školení mi s úsměvem řekl: „My ty vaše postupy s UML nazýváme Kravalovy pohádky“.
Jenomže co dotyčnému ušlo, tyto pohádky se staly tvrdou realitou, což mimochodem pocítila i zmíněná firma, která doporučené postupy vývoje SW nezavedla (protože je nepovažovala za praktické) a dostala se následně do neskonalých problémů.
Tak jako z hlediska použití OOP a střední vrstvy, tak i v otázce postupů vývoje se firmy v té době dělily na dva tábory:
· SW firmy, které zásadně nezaváděly postupy tvorby pomocí fází analýza - návrh technologie - kódování, tedy rozdělením prací mezi role analytik, technolog a programátor, ale které setrvávaly na klasickém rozdělení prací ve stylu„každý sám zanalyzuje, sám navrhuje a sám programuje“. Tyto firmy nakonec narazily na problémy s udržitelností aplikace, se změnovými řízeními, s novými požadavky a nakonec i s nespokojeností zákazníka s funkcionalitami.
· SW firmy, které tuto premisu o nutnosti analýzy zohlednily a zavedly, takto získaly konkurenční výhodu. Jejich aplikace byly mnohem lépe zdokumentované, lépe a přesněji odpovídaly požadavkům zákazníka a byly celkově kvalitnější.
Dnešní stav je takový, že diskuse o nutnosti zavedení fáze analýzy definitivně odpadly a ve většině SW firem se již nepochybuje o nutnosti zavedení role analytika.
A jaký je spor dnes na přelomu prvního desetiletí 21. století?
Jak je vidět, spor o OOP, střední vrstvu a analýzu již vyhasl. Dokonce pokud se podíváte na dnešní doporučované postupy, které jsou zavedené a podporované moderními vývojovými prostředími (viz např. Visual Studio 2010 Ultimate), tak zjistíte, že jsou již součástí daného prostředí a nejsou tedy žádnou pohádkou.
Dnešní souboj myšlenek již není o nutnosti moderních technologií anebo o nutnosti analýzy. O tom nikdo nepochybuje. Dnes je základní problém v kvalitě jejich zavedení, tedy řeč je o kvalitě pracovníků, kteří vývoj tvoří.
A jak vidím problémy ve firmách, právě v uvedené kvalitě vývojářů je mnohdy zakopán pes a tato skutečnost tvoří kvalitativní rozdíl mezi firmami a vede k jejich případnému náskoku nebo ztrátě oproti konkurenci.
Vedoucí pracovníci se dnes již nepřou, zda zavést roli analytika anebo nikoliv. Roli analytika sice zavedou, ale dosadí do ní nikoliv vývojáře, ale člověka absolutně neznalého, co vývoj SW obnáší, pracovníka, který nemá základní znalosti ani z principů OOP a ani z UML a dokonce ani z oblasti analytického modelování.
Moderní pojetí analýzy dnes již není „běž za zákazníkem a sepiš, co si myslí, že by to mělo umět“ a na základě toho vzniknou nějaké dokumenty ve Wordu. Dnešní analytik je již mnohem více skutečným vývojářem, který tvoří sofistikované analytické modely. Proto jsou na něj v jeho oblasti práce kladeny velmi vysoké nároky stejně jako na jiné vývojáře.
Dnešní SW firmy již vcelku nepochybují o OOP a roli analytika, ale přesto se znovu dělí do dvou táborů, tedy na ty „moderní“ a „zaostalejší“:
· SW firmy, které sice používají moderní prostředí, ale díky neznalostem je neuvádějí do praxe, které sice zavádějí roli analytika, ale je to člověk mimo svůj obor, tj. pracovník, který netvoří kvalitní vývojové dokumenty, ale něco jako „gulášovitá slohová cvičení“.
· SW firmy, které se snaží využívat všechny moderní technologické vymoženosti vývojových prostředí, k tomu používají moderní automatizované postupy vývoje (MDA, MDG, Hibernate resp. N-Hibernate apod.), a krom toho mají také kvalitní experty analytiky, kteří tvoří velmi kvalitní analýzy.
Výše uvedené poznání o současné situaci SW firem bylo pro naši firmu podnětem pro zásadní změny v nabídce našich školení. Na příští rok 2011 připravujeme novou sérii školení, která se bude týkat problematiky moderních technologií vývoje pomocí UML (např. mimo jiné MDA, MDG, Hibernate apod.) za pomoci nástroje Enterprise Architect.
Ke zvýšení kvality analytiků můžeme firmám nabídnout naše již osvědčené a účastníky dobře hodnocené internetové školení Kurz profesního růstu analytika AM ADVANCED .
Od ledna 2011 nabízíme nově také vyšší stupeň tohoto internetového školení, které umožní již vyspělejším analytikům proniknout hlouběji do detailů analytického modelování hlavně prakticky. Tento kurz nabízíme pod názvem Kurz profesního růstu analytika AM PROFESSIONAL
Konec článku
|