Case studies

Problém, se kterým klient přišel. Stav, ve kterém jsme odcházeli.

Tři příběhy z praxe, jak je Jan Walter popsal na LinkedIn. Bez marketingu, včetně chyb, které jsme udělali.

Trpělivost se vyplácí. Šest let s jednou aplikací.

Výchozí stav

Aplikace pro finanční poradce, kterou půl roku stavěl jiný tým. Angular, Node.js, MongoDB. Nedokončené funkce, nestrukturovaná data, slabé typování a kód, ve kterém se nedalo číst.

Co jsme udělali

Nejdřív E2E testy. Zafixovaly, jak se aplikace chová, a daly nám volnost ji měnit. Pak jsme backend přepsali do Pythonu, Djanga a PostgreSQL. Trvalo to dva měsíce. Od té doby běží agilní vývoj s product ownerem na straně klienta.

Uživatelé byli zpočátku skeptičtí a postup nebyl lineární. Důvěru pomohli získat interní ambasadoři v poradenské síti, se kterými jsme pracovali nejblíž.

Výsledek

Aplikace roku FINfest 2021. Standardní nástroj poradenské sítě KAPITOL. Klient do ní od roku 2019 investoval zhruba milion dolarů a vývoj pokračuje.

Co si odnášíme

  • Automatické testy jsou základ seriózního software, ne nadstavba.
  • Malé commity, TypeScript všude, generované typované API klienty, monorepo, feature flagy.
  • RxJS a NgRx: silné nástroje se značnou cenou. Používáme je s rozmyslem.
  • Dlouhodobý, rovnoměrný postup je cennější než rychlost na začátku.
„You'll have a good time working with them.“
CEO, KAPITOL · Clutch

Z Excelu na web a zase zpátky.

Výchozí stav

Nejlepší hypoteční srovnávač na českém trhu žil v Excelu. Desítky listů, přes 2 500 vzorců, přes 5 200 konstant a rozhraní ve VBA. Týden co týden ho aktualizoval jeden expert, který není programátor, protože banky mění produkty. Klient chtěl webovou aplikaci, ale nechtěl přijít o možnost logiku dál editovat sám.

Co jsme zvažovali

  • Přepsat vzorce do Pythonu. Čisté, ale expert by o Excel přišel.
  • Ovládat Excel vzdáleně přes Google Sheets nebo Office 365 API. Jednoduchý výpočet trval 0,6 až 1,8 s. Příliš pomalé.
  • Ovládat Excel lokálně z Pythonu. Křehké a špatně škálovatelné.

Co jsme udělali

Excel zůstal zdrojem pravdy. Open-source knihovna Koala parsuje vzorce do stromu závislostí a přepočítává jen to, co se změnilo. Doplnili jsme chybějící excelové funkce a přepočet na serveru trvá 20 ms. Shodu s originálem ověřilo 20 000 scénářů vygenerovaných přímo v Excelu.

Prototyp vznikl za pět nocí, MVP za pár měsíců. Pak reporty, SSO, provoz pro více společností, napojení na CRM a kontroly proti bankovním kalkulačkám. Stovky požadavků za minutu ze srovnejto.cz zvládá pool předpočítaných instancí na Docker Swarmu.

Výsledek

Aplikace roku FINfest 2021. Šest let vývoje, přibližně 7 800 commitů. Expert dál edituje logiku v Excelu a web ji přebírá.

Co si odnášíme

  • Zásadní architektonické rozhodnutí prototypovat a změřit, ne odhadnout.
  • Excel je výborný na parametry a jejich vztahy. Není třeba ho za každou cenu nahrazovat.
  • Testy proti referenčním datům ukázaly každou odchylku dřív než uživatel.
„The company owner always made sure that the project was running smoothly.“
Místopředseda představenstva, Gepard Finance · Clutch

Malé i velké lekce pro malé i velké programátory.

Výchozí stav

Konec roku 2020. Epidemiologický model Michala Beneše a nápad udělat z něj hru, která veřejnosti ukáže, jak načasování a síla opatření mění výsledek. Mělo to být hotové přes Vánoce, před další vlnou. Šli jsme do toho pro bono.

Co jsme udělali

Pět inženýrů, agilní sprinty, TypeScript, UI v Angularu, minimální backend nad JSON a automatické testy od prvního dne. Nejtěžší byla integrace simulačního jádra, které se během vývoje rychle měnilo.

Spuštění 28. ledna 2021. Odkaz z velkého zpravodajského portálu server přetížil. Vypnutí gzip pro statické soubory byla chyba. Přesun statiky na Cloudflare web stabilizoval. Během prvních dní 50 000 odehraných her, celkem přes 100 000 hráčů. Hru používali i lidé ve státní správě a psala o ní celostátní média.

7. února přišla reportáž v televizi a s ní násobně větší špička. Souběžně běžela záloha databáze. Výsledek: několik desítek minut nedostupnosti.

Výsledek

Hra splnila účel. Nejdůležitější poselství podle autora: odkládaná opatření stojí životy, školní dny a peníze. Pracnost vyšla na zhruba 80 člověkodnů SWEHQ, čtyřnásobek původního odhadu.

Co si odnášíme

  • Odhadovat konzervativně. I nadšení má svou cenu.
  • Převzatému kódu nejdřív porozumět, pak ho měnit.
  • Na návštěvnickou špičku se připravit předem: CDN, statika, žádné zálohy v primetime.
  • MongoDB při importu dat přečetlo bez chyby jen asi 10 % záznamů. Příště PostgreSQL.
  • Soudržný tým a junior, který dostal prostor navrhovat i programovat.
„SWEHQ was a professional team that genuinely cared about our project.“
Kvantitativní analytik, iniciátor projektu · Clutch

Další krok

Řešíte něco podobného?

Inženýr odpoví do dne. Do týdne máte poctivý pohled na rozsah, riziko a cenu.