Co se děje s vaším softwarem po vývoji?

Před zahájením vývoje a zejména v jeho průběhu se většina klientů v myšlenkách upíná k okamžiku, kdy si od vývojářů konečně vysněný software převezmou. Po překonání všech výzev při návrhu a tvorbě kýžené aplikace skutečně přichází chvíle úlevy a nadšení z finální podoby IT řešení. Bylo by krásné žít ve světě, kde by tímto celý příběh skončil a aplikace po převzetí běžela dlouhé roky bez větších zásahů sama od sebe. Ve skutečnosti je tomu však právě naopak: Dokončením vývoje to pravé dobrodružství teprve začíná!

Odpověď na otázku „Co se děje s vaším softwarem po vývoji?“ záleží jednak na tom, s kým na vývoji spolupracujete, a jednak na vašich obchodních cílech a ambicích. V dnešním článku vám proto nabídneme náš pohled na to, co vše by se mělo po dokončení vývoje s vaším softwarem stát. Díky vlastním dlouholetým zkušenostem nejen z oblasti IT, ale i z byznysu víme, že aby mohla aplikace (a potažmo i celá firma) skutečně uspět, musí se neustále vyvíjet, přizpůsobovat novým technologiím a trendům a posilovat své zabezpečení. Provoz softwaru je zkrátka během na dlouhou trať, který vyžaduje vytrvalost a ochotu jít s dobou.

Zkušební provoz: Otestujte, zda software funguje, jak má

Když mají naši vývojáři po týdnech či měsících intenzivní práce konečně hotovo a otestováno, přichází na řadu zkušební provoz. Jeho délka činí zpravidla 30 dní, během nichž si klient může v plném rozsahu vyzkoušet funkčnost softwaru a ověřit, zda neobsahuje vady. V tomto období má klient možnost nás na případné nedostatky upozornit, abychom je co nejrychleji odstranili.

Na co všechno by se měl klient ve zkušebním provozu zaměřit? Především na běžné scénáře použití – tedy na to, zda systém uživatelům skutečně umožňuje dosahovat jejich cílů. Funguje generování reportů, export faktur a automatické vytváření objednávek tak, jak má? Mohou uživatelé efektivně provádět všechny požadované akce? Naplňuje aplikace svůj celkový účel? Zapojení koncových uživatelů v této fázi je velmi vítané, protože právě oni budou se softwarem ve styku nejčastěji a mohou odhalit problémy, kterých si testeři nevšimnou.

Dále by si měl klient ověřit funkčnost integrací s ostatními systémy (ať už vlastními, nebo třetích stran). Pokud má být aplikace propojena se stávajícím systémem CRM či ERP, musí přenos dat probíhat spolehlivěbez zpoždění. Je mnohem lepší odhalit případné chyby ve zkušební fázi než v ostrém provozu.

Od věci není ani vyzkoušet si aplikaci ve více prostředcích a na různých zařízeních. IT řešení by mělo bezvadně fungovat na všech platformách, které klient při vývoji požadoval (počítače, tablety, mobilní telefony). 

Zjištěné vady a nedostatky, které se nepodaří v průběhu zkušebního provozu odstranit, budou následně uvedeny ve zvláštním písemném záznamu (tzv. „akceptační záznam“). Tento dokument s podrobným výčtem a popisem zjištěných nedostatků nám klient předá nejpozději do skončení zkušebního provozu. Naši vývojáři podle něj systém co nejdříve vyladí do podoby, která bude plně odpovídat zákaznickým požadavkům.

Zkušební provoz softwaru

Autorská práva a licence: Jakým způsobem můžete svůj software používat?

Důležitým, ale často opomíjeným aspektem vývoje softwaru je otázka autorských práv a licencí. Jinými slovy: Co všechno můžete s vyvinutým softwarem dělat? Jaké možnosti jeho zpeněžení se vám nabízejí? Lze licenci postoupit třetí osobě?

Český autorský zákon (č. 121/2000 Sb.) neumožňuje vzdát se osobnostních práv na autorství díla jako takového ani je na někoho převést. Pokud si u nás objednáte vývoj softwaru, převedeme na vás veškerá práva k užívání díla, včetně jeho zpeněžení, další distribuce, úprav a jakéhokoli jiného nakládání. V praxi je to stejné, jako kdyby byl software zkrátka váš.

Na vyvíjené produkty standardně udělujeme nevýhradní licenci po dobu trvání majetkových práv. To znamená, že části kódu, který napíšeme pro vás, můžeme v budoucnu použít i při práci na jiných aplikacích pro jiné klienty. A stejně tak vaše aplikace může obsahovat části kódu (byť upravené a přizpůsobené konkrétním požadavkům) z jiných projektů.

Výhodou nevýhradní licence je nižší cena. Někteří klienti mohou trvat na udělení výhradní licence, která zaručí, že vyvinutá aplikace bude jedinečná a žádné její části se neobjeví nikde jinde. Tomuto postupu se nebráníme, ale je nutné počítat s o něco vyšší cenou.

Co se týká dalšího postoupení licence nebo udělení podlicence třetí osobě, nejsou naši klienti v tomto ohledu smlouvou nijak omezeni. Licenci lze postoupit i se všemi oprávněními pro užívání díla ve stejném rozsahu, v jakém můžete dílo používat vy sami.

Licence k softwarovému produktu

Zaškolení a dokumentace: Předávejte informace uživatelům přehlednou formou

Kvalitní software vyžaduje kvalitní dokumentaci. Navrhnout a vyvinout technicky bezvadné a funkční IT řešení je jedna věc, ale bez systematickypřehledně zaznamenaných informací ohledně jeho používání a údržby může zůstat potenciál softwaru nevyužitý.

My v Think Easy proto klademe velký důraz na vypracování uživatelských příruček, technických manuálů a školicích materiálů. Jedině tak lze zajistit, že vaši zaměstnanci budou umět systém efektivně používat a vytěží z něj maximum. Důkladně zaškolení uživatelé znamenají méně problémůvyšší návratnost vaší investice.

Uživatelské příručky popisují všechny funkce systému, ovládací prvky uživatelského rozhraní a postupy provádění uživatelských akcí doplněné o snímky obrazovek a praktické příklady. Lze v nich uvést také nejčastější případy použití a scénáře nebo časté dotazy a tipy pro odstraňování běžných problémů. Případně je možné integrovat online nápovědu přímo do softwaru.

Technická dokumentace slouží administrátorům a IT týmu k pochopení toho, jak celý systém funguje. Jedná se o doplňující text, který popisuje jednotlivé činnosti programu, postup instalace, architekturu systému, konfigurační parametrybezpečnostní nastavení. Dále může obsahovat i dokumentaci k rozhraní API (je-li systém napojen na další služby), schéma databází nebo postupy zálohování a obnovy. Precizní technická dokumentace pomůže předejít celé řadě provozních problémů, bezpečnostních rizik a požadavků na podporu.

Na přání klienta nabízíme i praktická školení přizpůsobená na míru různým uživatelským rolím, a to jak přímo na pracovišti, tak na dálku online. Tato investice se rozhodně vyplatí, jestliže například zavádíte nový celopodnikový systém a potřebujete mít jistotu, že přechod nezpůsobí snížení produktivity a neohrozí vaše obchodní cíle. Naši experti vaše zaměstnance efektivně zaškolí, předvedou jim funkce nového softwaru, nechají je si vše vyzkoušet na vlastní kůži a odpoví na veškeré dotazy.

Marketing students create corporate identity. Personal branding course, strategic self-marketing education, personal branding online courses concept. Bright vibrant violet vector isolated illustration

Posouvejte svůj software dál: Nové funkce, aktualizace a kybernetická bezpečnost

Jak jsme již připomněli v úvodu článku, správa a provoz vlastního softwaru je vytrvalostní disciplína. Stejně jako se dynamicky proměňuje vaše podnikání, musí se časem vyvíjet a přizpůsobovat novým požadavkům také vaše IT řešení. Ať už jsou změny motivovány zpětnou vazbou uživatelů, nebo vašimi byznysovými cíli, jedno je jisté: Bez průběžných aktualizacírozšiřování o nové funkce vaše aplikace v drsné konkurenci neobstojí. Podívejme se nyní na to, jakými způsoby budeme o vaši paku „pečovat“ i po dokončení vývoje.

Přidávání nových funkcí a posílení výkonu

Možností, jak váš software posouvat stále dál, je celá řada. Zvýšení výkonu dosáhnete například automatickým škálovánímvyvažováním zátěže (load balancing) na základě využití CPU/paměti nebo vlastních metrik. Nasazením load balancerů (AWS ELB, NGINX Ingress) lze rovnoměrně distribuovat zátěž tak, aby se předcházelo tzv. bottleneckům (problematickým místům). Dalším efektivním opatřením je implementace CDN nástrojů jako Cloudflare či AWS CloudFront pro zobrazování statického obsahu a médií.

Svou aplikaci můžete rozšířit o nové funkce také integrací s dalšími systémy a službami – a to jak s vlastními, tak se systémy a službami třetích stran. Rozhraní API představují vysoce efektivní a dostupný způsob, jak uživatelům ve vaší apce nabídnout pestrou škálu doplňkových funkcí a služeb bez jediného řádku kódu navíc. Napojením na platební bránu zase můžete zvýšit výnosy z provozu softwaru.

Hlavním předpokladem pro to, abyste své IT řešení mohli průběžně rozšiřovat a přestavovat skoro jako stavebnici, je škálovatelná architektura. Ta je typická pro přístup Cloud Native, který vývojářům umožňuje „poskládat“ vaši aplikaci z na sobě navzájem nezávislých služeb. Toto modulární uspořádání přináší značné výhody právě ve chvíli, kdy se rozhodnete svůj software rozšířit o nové funkcionality, prvky či služby. Systém si snadno poradí i se skokovým nárůstem provozu a zůstane po celou dobu vysoce dostupný.

Aktualizace

Pravidelné aktualizace jsou zásadní pro hladký uživatelský dojem z vaší apky a její bezvadné fungování. Zahrnují opravy chyb, optimalizaci výkonuzajištění kompatibility s novými technologiemi. Řadu těchto úloh lze dnes již efektivně automatizovat – například prostřednictvím nástrojů CI/CD pipeline (GitHub Actions, GitLab CI, Jenkins, …). Služby jako Prometheus, Grafana nebo Datadog vám zase pomohou s monitorováním změn v reálném čase po nasazení a upozorní vás na případné chyby.

Pokud chcete svou strategii aktualizací posunout na další úroveň a minimalizovat riziko sebemenšího narušení uživatelského dojmu, můžete aktualizace nasazovat podle Blue-Green konceptu. Aktualizace se tak nejprve „na zkoušku“ použijí pouze pro určitý vzorek uživatelů nebo malou část infrastruktury. V případě problémů lze okamžitě provést rollback do původního stavu a potíže s konkrétní aktualizací odstranit. Každou změnu si tak můžete napřed bezpečně vyzkoušet, než ji implementujete pro všechny uživatele nebo pro celou infrastrukturu. 

Aktualizace software

Kybernetická bezpečnost

Otázka kybernetické bezpečnosti je vzhledem k univerzálnímu rozšíření cloudových systémů palčivější než kdy dřív. Mnozí uživatelé sice oceňují komfort a praktičnost cloudových úložišť, ale zároveň je znepokojuje riziko úniku dat. Je však tato obava skutečně na místě?

Kybernetické hrozby se neustále vyvíjejí, proměňují a přizpůsobují novým technologiím. Pravidelné aktualizace zabezpečeníaktivní monitorování rizik jsou tedy nepochybně součástí provozu jakékoli aplikace i po jejím dokončení a předání. Nedostatečné zabezpečení softwaru může ohrozit celou firmu, a proto mu věnujeme maximální pozornost.

Provádíme například pravidelné bezpečnostní audity, při kterých důkladně procházíme všechny vrstvy zabezpečení, kontrolujeme jejich aktuálnost, testujeme je a výsledky dokumentujeme. Pokud zjistíme nedostatky, nasazujeme bezpečnostní záplatyodstraňujeme zranitelná místa.

Dbáme i na často podceňované prvky strategie zabezpečení, jako jsou školeníworkshopy pro zaměstnance, na kterých se věnujeme nejnovějším kybernetickým hrozbám a rizikům. Metody útočníků, jak získat přístup k citlivým údajům, jsou čím dál rafinovanější. Pokročilé možnosti umělé inteligence (deepfake atd.) tyto problémy ještě prohlubují, takže je maximálně důležité zůstávat v obraze (a ve střehu).

Modernizace: Jediný způsob, jak předejít „technologickému dluhu“

Každý software časem zastarává. V dnešní době lze – vzhledem k rychlosti technologického rozvoje – dokonce říct, že začíná zastarávat již v okamžiku zveřejnění. Ačkoli to na první pohled nezní příliš povzbudivě, dobrou zprávou je, že tato nepříjemná pravda se může snadno stát výzvou, která bude vaše IT řešení (a tím pádem i váš byznys) posouvat stále dál.

Pokud si necháte software vyvinout u nás, budete mít jistotu, že vám naši experti pomohou předcházet tzv. technologickému dluhu pravidelnou modernizacíoptimalizací kódu. Garantujeme, že si vaše aplikace zachová konkurenceschopný výkon, maximální úroveň zabezpečeníkompatibilitu s novými technologiemi podle vašich potřeb.

Co je technologický dluh?

Pojem technologický dluh označuje situaci, kdy vývojáři při tvorbě kódu volí rychlá a zdánlivě snazší řešení namísto těch správných. Lidově řečeno jdou cestou menšího odporu, což sice může přinést okamžitou časovou úsporu, avšak dlouhodobě to může znamenat například:

  • Pomalejší vývoj nových funkcí. Rozšiřovat nekvalitní kód o nové funkce je podobné jako přistavovat další patra domu s nestabilními základy. Vše trvá déle, na každém kroku hrozí komplikace a ve výsledku se může celá stavba zbortit. Vývojáři musejí plýtvat časem na dešifrování nejasných a nezdokumentovaných míst, zkoušet opatrně přidávat nové prvky tak, aby se neporušilo to, co již alespoň trochu fungovalo, a neustále vše testovat.
  • Rostoucí náklady na údržbu. „Technologický dluh“ je dluhem v pravém slova smyslu. Zdánlivé „úspory“ (časové i finanční), jichž bylo dosaženo ošizením kódu v počáteční fázi, jsou ve skutečnosti pouze velice nevýhodnou půjčkou s vysokým úrokem. Udržování kódu, který jen tak tak drží pohromadě, je ve finále mnohem nákladnější jak z hlediska času, tak peněz. Zaškolení nových vývojářů do projektu je mimořádně zdlouhavé kvůli nekvalitní či neexistující dokumentaci, což brzdí nejen vývoj nových funkcí, ale i údržbu těch stávajících. Neustálé záplatování a testování provoz aplikace jen prodražuje a zvyšuje její nepřehlednost.
  • Častější výpadky. Kód se špatnou strukturou zvyšuje riziko chyb, pádů aplikace, selhání integracíomezení dostupnosti. Jakákoli aktualizace nebo změna prostředí může vzhledem ke křehkým a nezdokumentovaným závislostem znamenat zásadní problém pro provoz. Složitější je to i s obnovou po těchto pádech – obtížné monitorování a protokolování chyb komplikuje případnou nápravu.

Nutné zlo, nebo příležitost?

Jak jsme již naznačili na začátku této kapitoly, modernizace nemusí být jen nutné zlo. Pokud ji vlastníci firem a IT řešení uchopí za správný konec, může se stát v mnoha ohledech příležitostí, jak získat konkurenční výhodu:

  • Implementace moderních technologií. Přechod na moderní postupy a architekturu (například z monolitu na mikroservisy) vám odemkne cestu k vyššímu výkonu, bezpečnostiškálovatelnosti. Moderní nástroje nabízejí lepší podporu komunity, časté aktualizace a snazší onboarding pro nové vývojáře.
  • Zlepšení uživatelského zážitku. Zastaralé technologie často znamenají nepřehledné nebo nefunkční uživatelské prostředí – pomalá tlačítka, neresponzivní rozvržení, dlouhé načítání obrazovek, … Pokud chcete svým uživatelům dopřát intuitivnější zážitek, je potřeba vsadit na moderní design, prvky přístupnostifunkce v reálném čase.
  • Optimalizace pro nové platformy. Vývoj aplikací pro více platforem (webové, mobilní, progresivní webové aplikace) je v dnešní době naprosto běžný. S moderními frameworky jako Flutter nebo React Native můžete uživatele efektivně oslovit na nejrůznějších platformách a typech zařízení.
  • Snížení provozních nákladů. Moderní kód nejenže lépe funguje, ale je také levnější. Kvalitnější infrastruktura (kontejnery, serverless architektura, Cloud Native provoz znamená efektivnější využití výpočetních zdrojů a předchází zbytečnému naddimenzování. Další úspory vyplývají z automatizace a modulární struktury cloudových služeb.

Investice do průběžné modernizace se vám tak nakonec vždy bohatě vrátí v podobě nižších nákladů, vyšší spokojenosti uživatelůdelší životnosti softwaru.

Přihlášení do aplikace

Vývoj softwaru jako dlouhodobé partnerství

Jak sami vidíte, vývojem a předáním softwaru vše teprve začíná. Provoz, údržba a neustálé vylepšování aplikace je dlouhodobý závazek, který vyžaduje chuť učit se a zdolávat pořád nové výzvy. Pokud se na této cestě můžete navíc opřít o spolehlivéhoprofesionálního partnera, který dokonale chápe nejen vaše technologické, ale i byznysové potřeby, můžete každou zdánlivou překážku proměnit v jedinečnou příležitost, jak konkurenci odskočit zase o krok dál.

My v Think Easy jsme si dobře vědomi toho, jaká odpovědnost a odhodlání se pojí s provozem vlastní aplikace. Uvědomujeme si, že úspěšným vývojem IT řešení nic nekončí – pokud má váš byznys trvale růst, musí s ním držet krok i váš software. Nabízíme vám proto pestrou škálu služeb i v období po vývoji, abyste se vždy měli na koho obrátit. Neváhejte nás kontaktovat prostřednictvím našeho formuláře a domluvte si nezávaznou schůzku s našimi projektovými manažery.