Programování a vývoj software

Vývoj software a programování je naše hlavní činnost. Nabízíme jak řadu vlastních SW produktů, které uzpůsobujeme a implementujeme pro jednotlivé zákazníky, tak vývoj software na zakázku. To zahrnuje analýzu založenou na potřebách konkrétního zákazníka, návrh řešení, jeho implementaci, testování, nasazení a údržbu.

Většinou se zaměřujeme na vývoj informačních systémů, databází nebo webových aplikací, nicméně zvládneme také i aplikace vztahující se k desktoptovým či mobilním zařízením, nebo vývoj software pro speciální účely. Sledujeme pokročilé způsoby vývoje software a snažíme se volit ty, které nejlépe splňují potřeby konkrétního projektu.

Technologie
Pracujeme zejména s těmito technologiemi: Java, PHP, .NET, SQL servery (MySQL, PostgreSQL), webové servery (Apache, Nginx, AWS), XML, webové služby, mobilní aplikace.

Jak pracujeme
Proces vývoje software v naší společnosti je zaměřený na dosažení vysoké kvality softwarového díla a jeho dodání dle předem definovaného časového plánu. Využíváme známé a osvědčené zásady z metodik RUP (Rational Unified Process) a SCRUM. Celý proces vývoje je řízen a kontrolován pomocí specializovaných nástrojů pro řízení softwarových projektů. V průběhu celého procesu vývoje má investor/zadavatel možnost online a průběžně sledovat stav projektu pomocí softwarového nástroje pro řízení projektu – kde kromě správy zdrojových kódu lze řídit plnění funkčních požadavků, sledovat plnění časového harmonogramu a plánovat jednotlivé úkoly. V ideálním případě dělíme celý softwarový projekt do následujících částí:

1. Softwarová specifikace – vstupní analýza
Úkolem je přesně popsat cílový systém a jeho vazby na další softwarové systémy zákazníka z pohledu funkčnosti a ovládání aplikace. Součástí specifikace je projektový plán a také návrh časového harmonogramu. Výstupem analýzy je strukturovaný dokument popisující zamýšlený softwarový systém v úrovni detailů, které jsou potřebné pro samotný vývoj/programování a pro stanovení přesného rozpočtu a harmonogramu projektu. Technické detaily jsou zanesené v UML diagramech doplněné o textový popis. Struktura systému je navržená v interaktivním wireframe diagramu. Softwarová analýza je nezávislá na platformě, tzn. není koncipována pro konkrétní softwarovou platformu, systém nebo framework. Naopak, cílem je obecný ale přesný popis systému s nízkou úrovní technických detailů, přičemž volbu samotné technologie je možné provést následně další fázi, tj. v rámci samotné implementace systému.


2. Implementace, vývoj softwarových komponent
Přizpůsobení nebo vývoj nových softwarových modulů na základě dané softwarové specifikace. Celý systém je tvořen většinou na již existujícím open­source frameworku, protože to přináší dříve zmíněné výhody oproti proprietárnímu systému.


3. Integrace s externími systémy
Softwarová analýza popisuje i tok dat a případná potřebná napojení na další systémy používané zákazníkem (propojení e­shopu s účetnictvím, systémy dodavatelů a partnerů, integrace platebních systémů, apod.). Kromě vývoje propojovacích modulů se také připravují testovací data a scénáře pro verifikaci integračních komponent.


4. Testování
Zahrnuje provedení funkčních, zátěžových a integračních testů. Testovací scénáře jsou předem připraveny a schvalovány v součinnosti se zadavatelem. Poslední částí je uživatelské testování napříč různými zobrazovacími zařízeními (PC, tablet, chytrý telefon).


5. Produkční nasazení
Instalace systému na skupinu serverů (aplikační, databázový, proxy) a konfigurace systému pro reálný provoz se zajištěním vysoké dostupnosti.


6. Správa, údržba a poskytování technické podpory
Na základě smlouvy o údržbě a správě jsme schopni poskytovat služby hostingu s definovaným SLA2, dohledu a technické podpory v režimu až 24/7/365 a správy systému (upgrade systému, monitoring)