Technológie & vývojový
proces
Po mnoho rokov v tomto odvetví sme používali rôzne technológie, nástroje a metódy softvérového
vývoja a projektového riadenia v závislosti od konkrétneho projektu a potrieb
zákazníka.
Používame agilné metodológie na vývoj nášho softvéru, pričom potreby
zákazníka sú v strede našej spoločnej snahy. Vyvíjame softvér iteratívne, v spolupráci so
zákazníkom a často používame SCRUM metodológiu, a však v ľahšej verzii, aby sme eliminovali
neefektívne stretnutia.
Nakoľko náš tím tvorí približne 40 vývojárov, naša
technologická platforma pokrýva všetky hlavné oblasti softvérového vývoja: desktopové aplikácie
pre Windows a klient-serverové aplikácie pre WEB.
Technológie
Tu je niekoľko
príkladov technológií použitých v projektov, ktoré sme dodali, čím ilustrujeme širokú
škálu našich skúseností so softvérovým vývojom:
- Aplikácie .NET4.7/C# používajúce Prism pre dependency
injection, WPF pre používateľské rozhranie, kritickú obchodnú logiku vknižniciach
C++17, dáta v MS SQL prístupné cez Entity Framework, inštalované a bežiace na
desktopovom operačnom systéme Windows.
- ASP.NET HTTP brány a mikroslužby v .NET6/C#, komunikujúce cez
RabbitMQ/AMQP, s knižnicami C++17 vstavanými do kontajnera LinuxDocker, nasadené v
Azure Cloud.
- Desktopové aplikácie a služby pre Windows vyvinuté v Delphi
aOracle PL/SQL.
- Webové aplikácie s backendom v Jave využívajúce Hibernate
afrontendom v Angular, využívajúce databázu PostgreSQL.
- Mobilné aplikácie pre Android programované v Jave,
integrujúcenatívne knižnice C.
Vývojový proces
- Proces začína prvým kontaktom so zákazníkom/partnerom, pokračuje cez
analýzu, špecifikáciu, často prototypovanie, implementáciu, testovanie, nasadenie, ladenie až po
dodanie riešenia vrátane nasadenia do praxe a následnej údržby. Často je iteratívny, vrátane
kontroly a integrácie spätnej väzby.
- Proces závisí od veľkosti projektu a úrovne spolupráce. Máme skúsenosti s
riadením projektov od jedného osobo-týždňa až po desiatky osobo-rokov.
- V prípade dlhodobej spolupráce so zákazníkom, ktorý si softvér vyvíja sám,
sa vieme prispôsobiť technológiám preferovaným zákazníkom.
- Najlepšie skúsenosti máme s vývojom softvéru, ktorý vykonávajú agilné tímy
s motivovaným produktovým vlastníkom, vývojármi a testermi v správne naplánovaných a
kontrolovaných sprintoch (zvyčajne trvajúcich 2 týždne), ktoré predstavujú iteratívne vylepšenia
produktu (aka Scrum). Položky definované na úrovni požiadaviek na špecifikáciu sa vkladajú do
produktového backlogu, ktorý sa priebežne spresňuje na prioritný zoznam úloh s podrobnou
špecifikáciou vrátane jasných kritérií prijatia a technického návrhu a s odhadmi, na ktoré sa
môžeme zaviazať (vrátane vývoja a testovania činnosti). Proces je podporovaný nástrojom, akým je
v tomto prípade Jira.
- Naše interné komunikačné jazyky sú slovenčina a angličtina, projekty máme
aj v nemčine.