Nedělejte, co nemusíte

Kdybyste přišel se skvělým obchodním konceptem, tak si přece nebudete sám stavět kancelář a vyrábět nábytek. Stejné to je při vývoji aplikací. Je důležité se soustředit jen na podstatu, říká Pavel Carvan, zakladatel společnosti Terannum, která využívá platformu ObjectGears umožňující jednoduché a rychlé vytvoření aplikací.

Nedělejte, co nemusíte


Jak důležité je dnes při vytváření aplikací umět tzv. programovat?

Pokud pod programováním myslíme převážně algoritmizaci, tedy určení posloupnosti kroků, které má program vykonat, je už minimální. Zásadní je umět použít to, co se vymyslelo již dříve. Dnes je výzvou zvládnutí mnoha technologií a jejich propojení. Například pro vývoj webové aplikace potřebujete rozumět minimálně pěti různým technologiím z různých vrstev. Už nestačí naučit se jednu technologii a v ní vytvářet program. Pro vývoj komplexní platformy jako ObjectGears jsou technologií a oblastíznalostí desítky. Na druhou stranu pak takový systém umožní vytvořit vlastní aplikaci pouhým modelováním a konfigurací. Samozřejmě pokud z Object-Gears nebo jiné RAD platformy chcete získat maximum, můžete použít skriptování a další technologie. Ty však již snadno zvládne poměrně hodně uživatelů. V každém případě tu technologickou a znalostní zátěž z uživatelů sejmeme.

 

Jaké rozdíly vidíte ve vývoji zakázkového systému a vývoji na platformách typu PaaS?

V dnešní době většinu firemních potřeb v oblasti softwaru zajistí buď krabicové řešení, které si zákazník upraví pro své potřeby konfigurací či kustomizací, nebo je možné jej vytvořit na nějaké platformě s mnohem menšími náklady, než kdyby si jej nechal vyvíjet od samého základu. V té chvíli je už vedlejší, zda mu ho efektivně na té platformě vyvinou vlastní vývojáři/zaměstnanci, nebo mu ho vytvoří někdo na zakázku. PaaS je jen jednou z forem, která vývoj a provoz zefektivňuje. PaaS znamená, že nějaká externí firma se vám stará o sítě, servery, storage, operační systém, databázi a třeba i .Net prostředí. Pokud ale skončíme jen u .Netu, ušetříme sice za vlastní provoz výše uvedených prostředí, ale vývoj aplikací moc neurychlíme, opět budeme zbytečně spoustu věcí vyvíjet sami od začátku.

 

Je tedy lepší si pro vývoj softwaru nasadit komplexnější platformu, která řeší i věci nad rámec samotných aplikací, anebo stále stačí využívat nějaká osvědčená vývojová prostředí?

Platforma přináší spoustu konceptů, které za vás již někdo vymyslel. Vy je pouze využijete. Podniky mají specifické produkty. Procesy už většinou specifické moc nejsou a potřeby informačních systémů jsou velmi podobné. Pracovat se základním vývojovým prostředím je možné. Budete si ale vše od základu dělat sám. Z pohledu podniku to je však plýtvání časem a zdroji. Je to, jako byste přišel se skvělým obchodním konceptem, ale trval si i na tom, že si sám, s vlastními zaměstnanci postavíte i budovu, vyrobíte nábytek a zařídíte kanceláře. 

 

Co je pro vás důležité? Soustředit se na core business, svůj koncept, který jste vymyslel, nebo si vše udělat sám?

U komplexnější platformy (například SalesForce, ServiceNow nebo ObjectGears) se zaměříte jen na vlastní podstatu byznysu. Věci jako zobrazení, grafika, načítání/ukládání do databáze, bezpečnost, export/import, jsou již hotové a stačí to jen využít. U podnikových aplikací jde hlavně o data, funkce (nikoli o jedinečný vzhled, i když i s ním vám platforma pomůže) a o to, rychle se přizpůsobovat měnící se situaci na trhu. Je třeba být schopen rychle měnit aplikace podle aktuálních potřeb. Byznys nemůže čekat na jednoduchou změnu půl roku. Často to reálně potřebuje již v okamžiku, kdy s požadavkem jde na IT.

 

Trendem při vytváření aplikací jsou agilní vývoj a podpora principů DevOps. Jejich zvládnutí ale není vždy úplně jednoduché. Můžou si firmy nějak pomoci prostřednictvím nějakých nástrojů či jiných pomůcek?

Agilní vývoj je o projektovém přístupu, který se uskutečňuje v iteracích oproti vodopádovému přístupu, jenž se snaží důkladně udělat vždy jednu fázi, tu uzavřít a přejít do další. Samotné nástroje ale nic nezajistí. Důležitý je přístup, na kterém by se měli všichni shodnout. S iterativním přístupem dokážeme od zákazníka velmi rychle získat feedback a ověřit si, zda jdeme správnou cestou.

 

O podnikovém softwaru se často hovoří jako o těžkopádném řešení, které je složité měnit podle potřeb uživatelů. Platí to i u současných řešení?

Změny jsou často složité z několika důvodů. Je dobré si je uvědomit a vyhnout se opakování podobných chyb, protože i se současným řešením si můžeme naběhnout. Složitost změny je dána způsobem, jakým je podnikový software stavěn a jak se upravuje. Pokud systém nemá promyšlenou strukturu a přehledné interface na ostatní systémy, je složité do něj proniknout a měnit ho. S tím souvisí i dokumentace. Problém často je, že nejsou jasné vztahy mezi prvky informačního systému, on-line komunikace, dávkové přenosy, celková architektura.

 

Heterogenita IT systémů a aplikací je černou můrou IT a výrazně ztěžuje případné inovace. Vidíte ve firmách odklon od různých řešení směrem k monolitičtějšímu pojetí IT, anebo se situace nelepší?

Firmy si uvědomují nutnost jasné architektury a úskalí heterogenních systémů. Použitím méně druhů technologií se sníží nároky na IT. Vývojářské zdroje lze pak použít všestranně, zlepší se zastupitelnost. Provozovat aplikace, kterým ve firmě pořádně rozumí jen jeden člověk, je riskantní. Pokud se aplikace sjednotí na jedné platformě, mohou je stejně dobře spravovat a rozvíjet všichni členové týmu.

 

Ve firmách se často pracuje s datovými sily, tedy daty oddělenými od ostatních a samostatně i využívanými, což je v mnoha případech na škodu. Lze přístup k těmto datům zjednodušit, aniž se naruší například jejich ochrana?

Sjednocená data potřebujete pro reporting, ale i pro on-line provoz. Konsolidace dat v datovém skladu je starý koncept a funguje. Pro on-line spolupráci je řešením orchestrace služeb, které s těmito systémy pracují. Hodně problémů a úsilí si ale ušetříme, pokud nové aplikace začneme vyvíjet v jednom prostředí, viz komplexní platformy, o nichž jsme mluvili, které nám tu integraci zajistí samy. Jinak při té integraci nejde o nic jiného než opět o náročný vývoj, náklady a čas, který ztratíme.

 

Říká se, že katalog IT služeb by měla mít každá organizace, zjednodušeně řečeno aby věděla, co, jak a za kolik svým lidem z byznysu nabízí, a aby ti pak mohli snadno porovnat nabídku vlastního IT s alternativními řešeními. Je už takový katalog běžný i u tuzemských firem?

Vytvořit takový katalog služeb není jednoduché. Organizace se ale začínají zajímat, kolik je co stojí. Počítají cenu za den práce svých lidí, do níž se promítají i všechny související náklady, platy managementu atd., a jsou tedy schopny říci, jaká je tato cena ve srovnání s pracovníkem nakoupeným externě.

Nedávno jsme implementovali systém pro plánování projektových zdrojů ve společnosti ČSOB Leasing. Součástí je systém vykazování času jednotlivými pracovníky na incidenty, katalogové požadavky, problémy a úkoly z projektů. V té chvíli už víte, kolik vás stojí provoz jednotlivých aplikací a kolik který projekt. Spousta firem ale stále tyto věci neřeší. Chtějí něco, při rozhodování vlastně nevědí, kolik je to bude stát, a nevědí ani zpětně, kolik je to stálo. Ve chvíli, kdy ale o zdroje ve firmě soupeří více nápadů a vše nelze uskutečnit, to bez podobného systému jde těžko. Toto si musí uvědomit hlavně byznys.

 


Úvodní foto: © Sergej Khackimullin - Fotolia.com




Komentáře