Případová studie
Přepsání 10 let běžícího projektu od A do Z
Projekt Sousedé.cz vznikl před více než 10 lety. V roce 2019 se jeho noví majitelé rozhodli původní vize posunout zcela novým směrem. Sousedé.cz propojuje výbory SVJ, správce, správcovské firmy a vlastníky bytových jednotek. Cílem je, aby všechny informace o domě, bytech a jejich vlastnících byly přehledně na jednom místě. Pro všechny.
„Sousedy jsme vytvořili proto, že chceme posílit komunitního ducha vlastníků bytů a aktivně je propojit s jejich výbory a správci. Chceme ukázat, že provoz a péči o bydlení jde dělat efektivně, příjemně a otevřeně.“
Tomáš Síkora
jednatel a spolumajitel
Výzvy
Náš tým byl vybrán s jasným zadáním – vytvořit kompletně nové UX a UI. Následně přišel i požadavek na vyvinutí webové a mobilní aplikace na zelené louce s kompletní migrací uživatelské základny a jejími daty.
Scope jednotlivých funkcionalit
Definovaný tak, aby současní uživatelé měli všechny funkcionality a zároveň jsme projekt nevyvíjeli roky. Všichni to známe, „mazlit“ se dá do nekonečna…
Neúprosný deadline
Ostatně jako vždy :). Intenzivní vývoj začal v záři. První „vysněný“ termín pro spuštění byl listopad (premiéra filmu Vlastníci) – to se ukázalo jako nereálné.
Vývoj aplikace i webu najednou
Investoři identifikovali jako dobrou konkurenční výhodu mobilní aplikaci. Žádný z konkurentů na trhu aplikaci neměl. Po několika diskuzích jsme se domluvili, že vyvineme web i appku naráz.
Migrace
Kompletní migrace uživatelských dat, tzn. analýza legacy zdrojových kódů a přenos všech uživatelských souborů.
Proces
Na vývoji se podíleli 2 frontend vývojáři, 2 backend vývojáři a jeden vývojář mobilní aplikace.
Vývoj jsme řešili agilním způsobem. Protože jsme potřebovali často iterovat a mít pravidelnou kontrolu nad tím, jestli jsme on time, zvolili jsme týdenní sprinty.
Co považujeme za přínosné v plánování jednotlivých sprintů je, že jsme měli user stories rozděleny na „must have“ a „nice to have“. Must have se v rámci sprintů dařilo plnit, a tím jsme jako tým i investor měli dobrý pocit, že jsme plnili plán a práce nám šla od ruky. Nekonečně přetékající sprinty nejsou cestou.
Investor měl dedikovaný tým na projektu
Jako parametr úspěchu bereme i 100% focus na vývoj na straně týmu investora. Na dospecifikace jsme nemuseli čekat dny, ale minuty. Toto je z našeho pohledu klíčové pro úspěch každého většího IT projektu. Na straně partnera by měla být vždy osoba, která je na spolupráci s vývojovým týmem alokována a může rozhodovat.
Hubený UI kit
Vzhledem k tomu, že jsme scope nemohli moc ořezávat, bylo nutné mít rychle hotový UI kit, ze kterého jsme následně poskládali celou aplikaci. Zvolili jsme cestu menšího množství komponent, aby aplikace dostávaly co nejdříve „finální“ podobu. Ukázalo se, že i s hubenějším kitem si často na frontendu poradíme.
Stejný obsah sprintu pro mobilní i webovou aplikaci
Vývoj mobilní i webové aplikace probíhal najednou. Proto jsem se snažili, abychom ve sprintech měli stejné user stories jak pro web, tak i pro aplikaci.
Celý tým měl focus na stejnou funkcionalitu a členové týmu si mohli navzájem pomáhat bez toho, aby byli vytrháváni z kontextu.
Jak jsme vyřešili migraci
Nejlepším řešením bylo namapování původní struktury na nový model. Postup probíhal načtením skrz mysql adaptér ze staré databáze a vytvořením nových entit přes business logiku nové aplikace s maximálním zachováním zpětné kompatibility (cca 3GB dat za 5 hod.).
Výsledek
Co se povedlo?
MVP jsme spustili v rozumném čase.
Po spuštění jsme nebyli zavaleni nekonečným buglistem.
Majitelé i my jsme byli s výsledkem spokojeni a spolupracujeme na projektu dodnes.
Co bychom udělali příště jinak?
I když jsme pracovali s hubeným UI kitem, měli jsme začít s jeho programováním o kus dřív, aby byl pro hlavní část vývoje opravdu hotový!
Feature vs value driven product development. Protože už byl produkt definovaný z předchozí verze, přebírali jsme funkce bez hlubších výzkumů, zda-li jsou nutné. Příště bychom asi více zanalyzovali potřebu jednotlivých funkcionalit a následné některé vypustili a jiné posunuli o level výš.
Vývoj webové a mobilní aplikace zároveň – o tom někdy příště :)
O projektu
Na projektu se podíleli
Martin Tryzna
produktový manažer
Martin Vik
frontend vývojář
Tomáš Valoušek
vedoucí vývoje, vývojář
Jakub Janata
backend vývojář
Petr Vejvoda
vývoj mobilní aplikace
Jakub Gräf
UI design
Použité technologie
React.js
Typescript
React Native
Styled Components
Symfony
PHP
GraphQL