Vývoj softwaru

Vývoj softwaru

26 - 01 - 2021
15 Min

Úvod

Ve společnosti xitee máme zkušenosti s vývojem softwarových řešení s know-how ze sektorů digitálního podnikání, financí a energetiky a zdravotnictví. Máme širokou škálu zákazníků, od malých začínajících firem až po velké korporátní společnosti. Jsme tu jak pro zákazníky, kteří nemají s vývojem softwaru žádné zkušenosti, tak i pro specializované softwarové společnosti.

Naším cílem je vždy vyvinout vysoce kvalitní, dobře otestovaný software, který je připraven k produkčnímu použití v co nejkratší době a s co nejnižšími náklady. Těchto zdánlivě odlišných cílů dosahujeme díky dodržování plánu a našich interních osvědčených postupů, které odstraňují typická úskalí projektů vývoje softwaru.

Předvídáme všechny možné nákladné chyby, jako je například neposkytnutí zpětné vazby klientem, což eliminuje zbytečné přepracovávání a dodatečné opravy. Hluboce se zaměřujeme na fázi testování a revize kódu, které v budoucnu ušetří spoustu úprav/dalšího vývoje přepracovávání, času a peněz. Také vždy uplatňujeme své hluboké znalosti z oboru.

Nový vývoj

Nabízíme vývoj softwarových řešení s maximální přidanou hodnotou pro naše zákazníky. To zahrnuje vše od analýzy obchodních požadavků, přes návrh řešení (funkční, grafický a technický), realizaci, nasazení a následnou podporu.

Naše minulé projekty zahrnovaly řadu různých technologií pro téměř všechny platformy. Nejčastěji používáme technologie Javu nebo .NET pro backend a frontendové technologie Angular nebo React pro vývoj nového softwaru. Náš zkušený tým je připraven vždy najít to nejlepší řešení pro vaše konkrétní potřeby. Více informací o technologiích naleznete v části Technologie.

Každý projekt, na kterém pracujeme, zahrnuje řádné zajištění kvality (QA/Quality assurance) před spuštěním projektu.

Quality assurance (Zajištění kvality)

Existuje šest základních bloků (viz obrázek níže), které zajišťují kvalitu softwaru, a tedy i samotného produktu. Různé synergie mezi jednotlivými částmi umožňují transparentnost a udržitelnost. Tyto součásti zároveň fungují jako sada nástrojů pro každého jednotlivého vývojáře softwaru.

Pomocí řízení verzí (Versions control) je každá změna kódu srozumitelně zdokumentována a každou verzi lze kdykoli obnovit. To poskytuje flexibilitu při vývoji a umožňuje přesnou analýzu všech vzniklých chyb softwaru. 

Použití systému kontinuální integrace (Continuous Integration) umožňuje řízenou kompilaci nových verzí softwaru a také průběžné hlášení vývojářům o případných chybách vzniklých během kompilace. Kromě toho lze automaticky generovat a reportovat klíčové údaje, které zobrazují stav produktu. Jednotlivé funkce a chyby, stejně jako milníky a úkoly projektu, jsou spravovány prostřednictvím systému pro sledování problémů (JIRA a/nebo Confluence). To vytváří sledovatelný a transparentní vývoj od analýzy požadavků až po dodání a umožňuje vytvářet vztahy mezi jednotlivými úkoly nebo funkcemi.

Redevelopment (přepracování softwaru)

Při hodnocení stavu architektury současného řešení a rozhodování, zda jej přepsat nebo refaktorovat (upravit kód bez změn jeho vnějšího chováním pouhou citlivou úpravou jeho vnitřní struktury), musí každá společnost zvážit mnoho aspektů, aby se mohla správně rozhodnout.

Některé z klíčových aspektů jsou:

  • Dosažení obchodních cílů: může být pro každou společnost jiné. Příklady obchodních cílů: zaměření na nové požadavky zákazníků, zaměření na kvalitu a výkonnost produktu, získávání nových zákazníků a podílu na trhu atd;
  • Technologie: musíme zvážit, jak dlouho budou podporovány aktuálně používané jazyky a frameworky. Existují nějaké nové technologie a trendy, které může aplikace využít? (Např. cloudy, mikroslužby, nové verze frameworků);
  • Snížení nákladů na údržbu a implementaci nových funkcí: snížení současné technologické hloubky, zkrácení doby uvedení na trh.
  • Výkon a zabezpečení: Je výkonnost problémem, který nelze vyřešit se současnou architekturou? Chcete prověřit zabezpečení pomocí penetračního testování nebo bezpečnostního certifikátu? Chcete zvýšit své bezpečnostní standardy?
  • Zákaznická zkušenost: Jsou vaši současní koncoví zákazníci spokojeni s UI/UX designem vaší aplikace? Mohou nové UI/UX úpravy dále zvýšit efektivitu? U interních aplikací můžeme například zvážit, zda aplikace může dále zvýšit produktivitu zaměstnanců.
  • Kvalita současné kódové základny: Má vaše řešení správné designové vzory? Použili jste pří vývoji tzv. styl zápisu programu („ angl. code style“)a unit testing? Trpí vaše řešení chybami?

xitee může převzít podporu a další vývoj vašeho řešení již od fáze analýzy.

Příklady možných dohodnutých přístupů:

  • pokračování ve vývoji se starou kódovou základnou;
  • zachování staré kódové základy, se zaměřením na refaktorizaci;
  • přepsání celého systému od začátku;
  • přepisování systému po částech.

Mobilní vývoj

xitee nabízí různé typy mobilního vývoje na základě vašich požadavků. Nativní vývoj přináší řešení s vysokým výkonem, nicméně může být poměrně nákladný. Pokud máte omezený rozpočet, může pro vás být vhodnou volbou multiplatformní vývoj. Je možné ušetřit až 50 % rozpočtu, protože pro řešení, které funguje v systému Android i iOS, se vytváří pouze jedna kódová základna.

Pokud nepotřebujete mít své řešení v App Store nebo Google Play a chcete pouze poskytnout uživatelům mobilní prostředí, můžeme použít progresivní webové aplikace (PWA) s některými funkcemi mobilních aplikací. Nejlevnějším a nejrychlejším řešením může být použití pouze webových řešení optimalizovaných pro mobilní zařízení.

Nativní vývoj

Nativní aplikace jsou vyvíjeny prostřednictvím svého nativního operačního prostředí. V případě nativního vývoje používají vývojáři programovací jazyk přijatý pro konkrétní platformu, jako je například Objective-C a Swift pro iOS nebo Java pro Android.

Výhody nativního vývoje:

  • stabilní a rychlý výkon;
  • maximální životnost aplikace;
  • aplikace je flexibilnější a více škálovatelná díky použití nativních nástrojů;
  • méně omezení v architektuře a funkcích;
  • rozhraní je plně v souladu s platformou.

Multiplatformní software

Multiplatformní řešení jsou vyvíjena prostřednictvím sdíleného operačního prostředí, jako je například Xamarin. Multiplatformní řešení je univerzální řešení, které je podporováno několika mobilními platformami najednou. Na jedné straně je výhodné a pohodlné, na druhé straně je však  nutné přijmout určité kompromisy, protože je obtížné přizpůsobit řešení různým operačním systémům.

Výhody multiplatformního software:

  • vývoj zabere méně času a zdrojů;
  • rychlost vývoje se zvyšuje.

Progresivní webová aplikace (PWA)

Progresivní webová aplikace je vytvořena z webových technologií, jako jsou HTML, CSS a JavaScript, ale svým vzhledem a funkčností se vyrovná skutečné nativní aplikaci. Díky chytrým doplňkům můžete téměř jakýkoli web proměnit v progresivní webovou aplikaci, což znamená, že PWA můžete vytvořit v krátkém čase.

Výhody vývoje PWA:

  • nemusíte procházet dlouhým procesem, abyste se dostali do různých obchodů s aplikacemi;
  • PWA jsou plynulé a rychlé;
  • Na rozdíl od běžného webu fungují PWA offline;
  • Použití push notifikací k opětovnému zapojení uživatelů.

Webová řešení optimalizovaná pro mobilní zařízení

V tomto případě vytváříme samostatný design pro mobilní zařízení. Je to nejrychlejší způsob, jak poskytnout své řešení mobilním uživatelům.

Výhody webového řešení optimalizovaného pro mobilní zařízení:

  • nízké náklady;
  • úspora času při uvedení na trh.

Data warehousing a reporting

Data warehousing je způsob konstrukce a používání datového skladu. Datový sklad vzniká integrací dat z více různorodých zdrojů, které podporují analytické reportování a rozhodování. xitee má zkušenosti s mnoha různými technologiemi včetně celé škály databází, datových skladů a migračních projektů.

Reportování dat je proces shromažďování a formátování nezpracovaných dat a jejich následná transformace do stravitelného formátu pro hodnocení průběžné výkonnosti organizace. Datový report pak odhalí, na co je třeba vynaložit nejvíce času a zdrojů, a čemu je třeba věnovat větší pozornost.

Přesné vykazování dat hraje důležitou roli v každém odvětví. Proto poskytujeme služby zaměřené na data warehousing a reporting. Máme zkušenosti s následujícími nástroji a technologiemi:

  • Databáze SQL - návrh, optimalizace a upgrade databází pro oblíbené DB systémy (Oracle, Microsoft SQL Server, MySQL, MariaDB, Galera Cluster, PostgreSQL);
  • NoSQL databáze a vyhledávače - výběr a použití vhodné technologie pro konkrétní potřeby (Cosmos DB, Mongo DB, Lucene, Elasticsearch);
  • Migrace dat jako součást vývoje nového softwaru, obvykle pomocí vlastních (pro projekt specifických) migračních nástrojů. Buď jako dávkový proces (angl. batch process), nebo jako průběžný přenos/synchronizace dat;
  • Datový sklad - návrh a implementace cloudového řešení i řešení datového skladu na míru, včetně funkcí importu, uchovávání, analýzy a exportu dat;
  • Reporting - tvorba reportů, dashboardů a exportů včetně přístupu k datům, jejich zpracování, prezentace a ukládání. Výstupy mohou být založeny na uživatelském rozhraní nebo na dokumentech, včetně elektronického podpisu dokumentů. Máme znalosti mnoha populárních knihoven, jako jsou Highcharts, chart.js, IOS Charts, a nástrojů, jako jsou JasperReports, SQL Server Reporting Services (SSRS) a Microsoft Power BI.

Prototypování

Vytváření softwarových prototypů nabízí možnost vizualizovat softwarové řešení ještě před jeho vytvořením. Vzhledem k tomu, že vývoj softwaru od nuly vyžaduje velké investice času, peněz a úsilí, je výhodné nechat si vytvořit vizuální prototyp ještě před zahájením vývoje skutečného produktu. Prototyp funguje jako "model", který kopíruje vzhled a někdy i funkčnost produktu, který chce klient vyvinout.

Při rozhodování, zda pro svůj projekt použít prototypování, je třeba zvážit několik aspektů.

Situace, kdy může být prototypování nejlepší volbou:

  • Pokud tým nemá jasné požadavky na produkt;
  • Pokud jsou požadavky na produkt nestabilní a rychle se mění;
  • V případě softwarově náročných a složitých systémů, které vyžadují experimentování a minimální riziko;
  • Velké projekty s pevně stanovenými termíny a výsledky.

Další článek ze stejného odvětví