Případová studie
Firemní systém pro úkoly, projekty, plánování vydání, dokumentaci a testování, ve kterém každý den pracují stovky lidí. Demo ukazuje systém pod názvem Delivery Hub se smyšlenými daty.
Výchozí stav
Firma řídí v jednom systému úkoly, projekty, plánování vydání, dokumentaci i testování. Pracují v něm každý den stovky lidí, takže každá nepřehledná nebo pomalá obrazovka se násobí.
Základem je open-source platforma Redmine, kterou bylo potřeba výrazně rozšířit o funkce a podobu, jaké firma potřebuje.
Problém
Rozsáhlé úpravy standardního systému mají známé riziko: rozbijí se při přechodu na novou verzi a postupně z nich vznikne kód, kterému rozumí jen jeho autor.
Tady to bylo velmi konkrétní: moduly vznikaly na verzi Redmine 6.0.6, ale produkce běží na verzi 6.1.
Řešení
Navrhl jsem architekturu, ve které je každá oblast samostatný modul a všechny sdílejí stejné jádro a vzhled:
Výsledek
Modulární stavba drží úpravy oddělené od základu platformy, takže přechod na novou verzi nevyžaduje přepisovat celý systém.
Moje role
Navrhl jsem modulární architekturu, vyvinul moduly, jádro a design systém, připravil kompatibilní vrstvu pro produkční verzi a napsal dokumentaci.
Jak to běží
Moduly stojí na společném jádru a design systému. Každý lze rozvíjet samostatně.
Úkoly přestavěné od detailu po editaci: tagy přes REST API, vlákna komentářů, úpravy přímo v seznamu.
Přehled projektů jako mřížka, seznam nebo strom. Připnutí a přehled vydání.
Výkazy času, kalendář, aktivita a sdílené widgety.
Gantt a časová osa vydání, vykreslená na klientu podle filtru projektu.
Modulární WYSIWYG editor: makra, vnořené bloky, tabulky.
Správa testů: případy, sady, plány a běhy, import z JSON.
Design systém: tokeny, světlý a tmavý režim, velikosti ovládacích prvků, shell aplikace.
Skin hooky, serverové vyhledávání, hlášení chyb, sdílené patche modelů a controllerů.
Moduly vznikly na Redmine 6.0.6, produkce běží na 6.1. Stejný kód funguje na obou verzích díky kompatibilní vrstvě; testovací pipeline proto ověřuje proti 6.1.
dh_theme CSS design systém window.DeliveryHub JS widgety další moduly: dh_wiki, dh_labsTechnologie
Ukázky
Video a snímky z dema Delivery Hub se smyšlenými daty. Kliknutím obrázek zvětšíte.
Další rozvoj a provoz
Modulární stavba umožňuje přidávat nové části bez zásahu do stávajících. Nad stejným jádrem vznikají další moduly, například pro wiki.
Změny před nasazením procházejí automatickými kontrolami proti produkční verzi 6.1. Jak tyto kontroly fungují, ukazuje AI vývojová pipeline.
Další krok
Domluvme si krátkou úvodní konzultaci zdarma. Probereme současný stav, výsledek, který očekáváte, a zda dává vývoj na míru ekonomický smysl.