NDA: Aplikacja mobilna – diety pudełkowe
Ecommerce / Technologia: Flutter
Cele Projektu
Głównym celem było przejęcie aplikacji i zapewnienie ciągłości jej działania, jednocześnie eliminując krytyczne błędy i przygotowując ją do dalszego, stabilnego rozwoju. Musieliśmy równolegle prowadzić bieżący development nowych funkcji i ratować istniejący kod, aby zminimalizować poziom błędów i podnieść zadowolenie użytkowników.
Wyzwania
- Złożoność i niestabilność kodu: Głównym wyzwaniem był nierozwijalny kod, w którym nawet niewielkie zmiany w jednej części aplikacji powodowały kaskadę błędów w innych, pozornie niezwiązanych obszarach. Brak stabilności uniemożliwiał szybkie dodawanie nowych funkcji.
- Brak dokumentacji i testów: Projekt nie był wyposażony w żadne testy automatyczne, co uniemożliwiało bezpieczne wprowadzanie zmian. Dodatkowo, brak szczegółowej dokumentacji technicznej utrudniał zrozumienie działania kluczowych modułów.
- Wysoki poziom błędu: Mimo tysięcy użytkowników dziennie, poziom błędów (crash free users) był niski, co negatywnie wpływało na doświadczenia użytkowników i reputację aplikacji.
- Ograniczenia budżetowe i czasowe: Musieliśmy działać w ramach ściśle określonego budżetu i terminów, co wykluczało możliwość stworzenia aplikacji od zera. Co więcej, przejęliśmy projekt w kluczowym dla branży okresie, co oznaczało, że aplikacja miała wtedy największy ruch i obciążenie.
Rozwiązanie
Nasze działania rozpoczęliśmy od dogłębnej analizy kodu i zapoznania się z planowanymi funkcjonalnościami. Aby zminimalizować ryzyko wprowadzania dalszych błędów, kluczowym krokiem było napisanie testów jednostkowych dla istniejącego kodu. Dzięki temu mogliśmy upewnić się, że nasze modyfikacje nie psują już działających funkcji.
Po tym etapie przystąpiliśmy do refaktoryzacji najbardziej krytycznych fragmentów kodu, jednocześnie prowadząc bieżący rozwój nowych funkcjonalności. W ciągu sześciu miesięcy intensywnych prac, połączonych z ciągłym testowaniem, udało nam się podnieść poziom bezbłędnej pracy aplikacji (crash free users) do ponad 99%, co przywróciło jej stabilność i umożliwiło dalszy, bezpieczny rozwój.
