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.

Nástroje

Používame rôzne nástroje podporujúce bezproblémový vývojový proces, ako napríklad:

  • Microsoft Visual Studio (2010-2022), Android Studio, Eclipse – na kódovanie a zostavovanie
  • SVN alebo Git – pre súbežne odoslaný zdrojový kód a verziu
  • GitLab alebo Jenkins – pre nepretržitú integráciu a podporu poskytovania
  • Merant Tracker alebo Jira – na plánovanie a sledovanie úloh

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.