HotSpotter
Narzędzie wspierające analizę behawioralną kodu i wykrywanie długu technicznego na podstawie danych z systemów kontroli wersji
Cele biznesowe:
- Automatyzacja analizy behawioralnej kodu źródłowego.
- Zwiększenie przejrzystości struktury systemu i historii jego zmian.
- Usprawnienie planowania refaktoryzacji i redukcja długu technicznego.
- Poprawa jakości oprogramowania, efektywności pracy zespołów i redukcja kosztów utrzymania systemów.
Cele projektu:
- Opracowanie aplikacji webowej analizującej dane z repozytoriów Git.
- Implementacja algorytmów wykrywania tzw. “hot spotów” i współzależności między plikami.
- Uzyskanie skuteczności wykrywania tzw. “hot spotów” na poziomie minimum 90% zgodności z oceną eksperta.
- Stworzenie interaktywnych wizualizacji zmian w kodzie i aktywności zespołu.
- Wdrożenie systemu w środowisku chmurowym Google Cloud.
W branży rozwoju oprogramowania, szczególnie w organizacjach pracujących nad dużymi, długotrwałymi projektami, zarządzanie długiem technicznym i jakością kodu odgrywa istotną rolę. Wraz ze wzrostem rozmiaru repozytoriów kodu, które w wielu przypadkach obejmują tysiące plików i setki tysięcy linii kodu, oraz rotacją w zespołach programistycznych identyfikacja obszarów wymagających refaktoryzacji staje się coraz trudniejsza. Obecne procesy zarządzania jakością kodu często opierają się na przeglądach kodu i reaktywnym rozwiązywaniu problemów dopiero po wystąpieniu defektów. W ostatnich latach rośnie jednak popularność metod analizy behawioralnej kodu, które wzbogacają tradycyjną statyczną analizę o dane z systemów kontroli wersji, takie jak historia zmian czy wzorce współpracy zespołu. Połączenie perspektywy strukturalnej i behawioralnej pozwala na szybsze wykrywanie ryzykownych obszarów kodu, zanim przekształcą się one w poważniejsze problemy.
Problemy użytkowników:
- Trudność w identyfikacji fragmentów kodu generujących najwięcej problemów i kosztów utrzymania.
- Brak powiązania danych technicznych z aktywnością zespołu (nie wiadomo kto i jak często zmienia dany moduł).
- Niska przejrzystość struktury dużych repozytoriów i trudności w planowaniu refaktoryzacji.
- Czasochłonne i manualne analizy historii zmian w systemach kontroli wersji.
Ograniczenia istniejących rozwiązań:
- Narzędzia typu SonarQube analizują kod statycznie, ignorując jego ewolucję.
- Brak interaktywnych wizualizacji łączących dane techniczne z behawioralnymi.
- Brak automatyzacji procesu wykrywania długu technicznego na podstawie danych z systemu kontroli wersji Git.
- Narzędzia typu CodeScene posiadają złożony interfejs, który może być przytłaczający i mało intuicyjny dla mniej zaawansowanych użytkowników.
Aplikacja webowa HotSpotter:
- moduł analizy repozytoriów Git z algorytmami detekcji tzw. “hot spotów”
- panel wizualizacji danych
- moduł historii analiz i zarządzania użytkownikami
Narzędzia wspierające:
- testy i wdrożenie realizowane w pipeline CI/CD
- skrypty Terraform definiujące infrastrukturę chmurową
- pliki konfiguracyjne Kubernetes
Charakterystyka środowiska wdrożeniowego:
- komponenty aplikacji uruchomione w klastrze Kubernetes
- baza danych w chmurze
- Programiści i liderzy techniczni szybciej zidentyfikują obszary wymagające refaktoryzacji, co ograniczy błędy i skróci czas debugowania.
- Działy IT i QA otrzymają dane o jakości kodu i jego zmianach, co pozwoli lepiej planować testy i inwestycje w utrzymanie.
- Firmy partnerskie i klienci zyskają większą stabilność oprogramowania oraz krótszy czas dostarczania aktualizacji.
- Środowisko inżynierów oprogramowania oraz projekty open-source zyskają narzędzie do analizy aktywności w repozytoriach publicznych, co ułatwi ocenę jakości i kondycji projektów open-source oraz identyfikację kluczowych kontrybutorów i obszarów wymagających wsparcia.