Jak inżynieria wspierana przez AI poprawiła wydajność platformy ClimateView o 89%

ClimateView

Klient:

ClimateTech

Branża:

SaaS / Smart Cities

Usługa:

Rozwój i modernizacja platformy SaaS

Klient_

ClimateView to szwedzka firma z branży ClimateTech, która rozwija platformę SaaS wspierającą miasta, regiony i instytucje publiczne w planowaniu i realizacji strategii transformacji klimatycznej.​

Platforma umożliwia analizę emisji CO₂e, modelowanie scenariuszy, monitorowanie realizacji celów klimatycznych oraz planowanie transformacji energetycznej. Korzysta z niej ponad 450 gmin i organizacji sektora publicznego na całym świecie, które opierają na niej decyzje na podstawie danych i zarządzają długoterminowymi programami redukcji emisji.​

Dzięki połączeniu danych klimatycznych, planowania działań i monitorowania postępów w jednym środowisku ClimateView pomaga administracji publicznej przekuwać ambicje klimatyczne w mierzalne inicjatywy i konkretne rezultaty.​

W ramach projektu realizowanego przez Euvic zespół odpowiadał za rozwój i modernizację platformy. Skupił się na poprawie jakości danych, zwiększeniu wydajności aplikacji, modernizacji architektury systemu oraz wdrożeniu podejścia do wytwarzania oprogramowania wspieranego przez AI z wykorzystaniem Claude.​

Nasza rola w projekcie_

Zespół Euvic odpowiadał za rozwój i modernizację kluczowych komponentów platformy ClimateView zarówno po stronie backendu, jak i frontendu. Zakres prac obejmował analizę ​i eliminację problemów wydajnościowych, poprawę jakości oraz poprawności przetwarzanych danych, przebudowę procesu importu, optymalizację architektury aplikacji oraz zwiększenie jej testowalności i utrzymywalności. ​

Istotnym elementem naszej roli było także wdrożenie podejścia AI-assisted software development, w którym Claude wspierał zespół na etapie analizy problemów, projektowania rozwiązań, podejmowania decyzji architektonicznych, implementacji, testowania oraz dokumentowania procesu inżynierskiego. ​

Cel projektu_

Projekt koncentrował się na realizacji kilku strategicznych celów związanych ​z jakością danych, wydajnością platformy oraz możliwością dalszego rozwoju rozwiązania.

 

Priorytety obejmowały:

  • Wiarygodność danych – eliminacja błędów wpływających na poprawność obliczeń emisji, zwiększenie jakości i spójności danych prezentowanych użytkownikom. ​
  • Wydajność platformy – skrócenie czasu reakcji aplikacji, poprawa komfortu pracy użytkowników, ograniczenie problemów związanych z przetwarzaniem dużych zbiorów danych. ​
  • Modernizacja kluczowych procesów – przebudowa procesu importu danych, uproszczenie architektury rozwiązania, redukcja długu technicznego utrudniającego dalszy rozwój platformy. ​
  • Jakość i bezpieczeństwo zmian – zwiększenie testowalności rozwiązania, ograniczenie ryzyka podczas wdrażania nowych funkcjonalności, poprawa przewidywalności realizacji większych zmian architektonicznych.
  • ​Efektywność zespołu deweloperskiego – wykorzystanie AI do wsparcia analiz technicznych i podejmowania decyzji, usprawnienie procesu projektowania, implementacji i kontroli jakości oprogramowania. ​

Wyzwania_

W miarę rozwoju ClimateView rosła potrzeba zwiększenia niezawodności i skalowalności kluczowych mechanizmów odpowiedzialnych za przetwarzanie i analizę danych klimatycznych. Dla użytkowników, którzy planują i prowadzą na platformie inicjatywy z zakresu transformacji energetycznej, kluczowe znaczenie mają zarówno dokładność wyników, jak i szybkość dostępu do informacji.​

 

Wiarygodność danych klimatycznych​

Jednym z najważniejszych wyzwań było wyliczanie współczynników emisji dla sieci energetycznych. W ramach projektu szczegółowo przeanalizowano mechanizmy odpowiedzialne za te obliczenia, aby poprawić spójność, niezawodność i przejrzystość całego procesu przetwarzania danych.​

Wydajność aplikacji z perspektywy użytkownika​

W wybranych obszarach platformy użytkownicy doświadczali znacznych opóźnień podczas pracy z komponentami związanymi z transformacją. Pomiary wydajności wykazały, że główny wątek przeglądarki był blokowany przez 12 407 ms. Oznaczało to ponad 12 sekund oczekiwania, zanim aplikacja zareagowała na działania użytkownika.​

Złożoność procesów importu danych ​

W trakcie rozwoju platformy powstały trzy niezależne mechanizmy importu danych.​ Takie podejście utrudniało dalsze rozwijanie rozwiązania, zwiększało ryzyko niespójności oraz komplikowało obsługę błędów i proces wdrażania kolejnych zmian. ​

Rosnące obciążenie warstwy backendowej

​Analiza wykazała również problemy związane z nieefektywnym przetwarzaniem większych zbiorów danych oraz występowaniem zapytań typu N+1. W jednym z procesów samo przygotowanie podsumowania importu zajmowało 17,14 sekundy, a blisko 77% całkowitego czasu wykonania przypadało na zaledwie trzy operacje. ​

Konieczność ograniczenia długu technicznego

Równoległe mechanizmy realizujące podobne zadania zwiększały złożoność systemu ​i utrudniały jego dalszy rozwój. Wyzwaniem było więc nie tylko rozwiązanie bieżących zadań, ale również stworzenie fundamentów, które pozwolą bezpiecznie rozwijać platformę ​w kolejnych etapach jej rozwoju. ​

Przebieg pracy_

Rozwój ClimateView był realizowany w modelu iteracyjnym, opartym na analizie danych, weryfikacji hipotez oraz regularnym pomiarze rezultatów wdrażanych zmian. W przypadku większości zadań celem nie było jedynie usunięcie widocznych symptomów wyzwań, ale zidentyfikowanie ich rzeczywistej przyczyny i wybór rozwiązania, które będzie wspierało dalszy rozwój platformy. Kluczową rolę w tym procesie odgrywały dane, pomiary oraz wykorzystanie Claude jako wsparcia analizy ​i podejmowania decyzji technicznych. ​

​

Krok 1. Analiza problemów i identyfikacja przyczyn źródłowych ​

Prace rozpoczynano od dokładnego zrozumienia zagadnienia oraz określenia potencjalnych przyczyn jego występowania. Zespół analizował zachowanie aplikacji, architekturę rozwiązania oraz dane wykorzystywane przez platformę. Na tym etapie Claude wspierał przegląd repozytorium, analizę zależności pomiędzy komponentami oraz identyfikację możliwych źródeł wyzwań. ​

Krok 2. Weryfikacja hipotez ​

Kolejnym etapem było konfrontowanie założeń z rzeczywistym działaniem systemu. Hipotezy były weryfikowane w oparciu o dane, pomiary oraz obserwacje uzyskiwane podczas pracy z aplikacją. W przypadku bardziej złożonych zagadnień dokumentowano również błędne tropy, co pozwalało zachować pełny kontekst analiz i uniknąć powtarzania tych samych ścieżek dochodzenia. ​

Krok 3. Projektowanie rozwiązania ​

Po zidentyfikowaniu rzeczywistej przyczyny problemu zespół analizował możliwe warianty rozwiązania. Ocena obejmowała wpływ proponowanych zmian na architekturę systemu, utrzymanie kodu, wydajność oraz dalszy rozwój produktu. Claude wspierał porównywanie dostępnych opcji i identyfikację potencjalnych kompromisów technologicznych jeszcze przed rozpoczęciem implementacji. ​

Krok 4. Implementacja i testowanie ​

Dopiero po zakończeniu etapu analitycznego rozpoczynano prace developerskie. Obejmowały one wdrażanie zmian w backendzie i frontendzie, przygotowywanie testów oraz stopniową walidację nowych rozwiązań. Claude był wykorzystywany m.in. podczas tworzenia testów jednostkowych, identyfikacji scenariuszy brzegowych oraz wspierania prac refaktoryzacyjnych. ​

Krok 5. Pomiar rezultatów ​

Każda optymalizacja była oceniana na podstawie konkretnych wskaźników technicznych. Pomiary wykonywano zarówno przed wdrożeniem zmian, jak i po ich zakończeniu, ​co pozwalało jednoznacznie określić wpływ prac na wydajność, stabilność i jakość działania platformy. ​

 

Przyjęta strategia_

Podstawą przyjętej strategii było wykorzystanie Claude nie jako narzędzia do generowania kodu, ale jako wsparcia dla procesu inżynierskiego i podejmowania decyzji technicznych. Zespół traktował AI jako partnera pomagającego analizować złożone zależności w systemie, porównywać możliwe kierunki działania oraz utrzymywać kontekst prowadzonych analiz. W praktyce Claude wspierał kilka kluczowych obszarów pracy. ​

  • Root Cause Analysis ​

Najbardziej złożone zagadnienia wymagały przeprowadzenia wieloetapowych analiz i weryfikacji kolejnych hipotez. ​Claude wspierał proces identyfikacji rzeczywistych przyczyn błędów, pomagając porządkować wnioski, dokumentować przebieg śledztwa ​oraz analizować zależności pomiędzy komponentami systemu. Takie podejście pozwalało zachować pełny kontekst nawet podczas wielodniowych analiz.

  • Analiza wariantów rozwiązań

Przed rozpoczęciem implementacji zespół porównywał alternatywne podejścia pod kątem ich wpływu na architekturę, utrzymanie systemu, koszty zmian oraz przyszły rozwój produktu. Claude wspierał ocenę dostępnych opcji i wskazywał potencjalne kompromisy, które należało uwzględnić podczas podejmowania decyzji.

  • Dekompozycja dużych inicjatyw

W przypadku rozbudowanych przedsięwzięć modernizacyjnych strategia zakładała dzielenie prac na mniejsze, niezależne etapy wdrażane stopniowo. Pozwoliło to ograniczyć ryzyko związane z dużymi refaktoryzacjami oraz szybciej dostarczać kolejne usprawnienia bez konieczności oczekiwania na zakończenie całego programu zmian.

  • Wsparcie jakości i procesu developmentu ​

Claude był wykorzystywany również podczas analizy architektury, tworzenia dokumentacji, identyfikacji edge case’ów, przeglądów kodu oraz przygotowywania testów jednostkowych. Dzięki temu AI wspierało nie tylko implementację zmian, ale cały proces rozwoju i utrzymania platformy.  ​

Dostarczone rozwiązania_

W ramach projektu przeprowadzono kompleksową modernizację kluczowych obszarów platformy ClimateView. Zmiany objęły jakość danych, wydajność systemu oraz długofalowy rozwój architektury platformy. Prace koncentrowały się na czterech głównych obszarach.​

​

  • Bardziej wiarygodne dane klimatyczne ​

Zmodernizowaliśmy mechanizmy odpowiedzialne za obliczenia emisji, zwiększając spójność i niezawodność przetwarzania danych. Daje to interesariuszom solidniejsze podstawy do planowania, monitorowania i oceny inicjatyw z zakresu transformacji klimatycznej.​

  • Zmodernizowany proces importu danych ​

Przeprojektowaliśmy proces importu danych tak, aby był bardziej odporny, łatwiejszy w utrzymaniu i rozbudowie. Nowe podejście zapewnia większą przewidywalność działania, lepszy wgląd w problemy z jakością danych oraz sprawniejszą obsługę dużych zbiorów danych. ​

  • Szybsze przetwarzanie danych

Wdrożyliśmy szereg optymalizacji po stronie backendu, które przyspieszyły przetwarzanie danych i skróciły czas wykonywania operacji najbardziej obciążających zasoby. Dzięki temu platforma sprawniej radzi sobie z większymi wolumenami danych, co jest kluczowe dla miast i samorządów prowadzących złożone analizy klimatyczne i energetyczne.

  • Bardziej responsywna aplikacja ​

Przeprowadziliśmy optymalizację działania aplikacji frontendowej, eliminując elementy powodujące spowolnienia podczas pracy użytkowników. ​Dzięki temu korzystanie z platformy stało się płynniejsze, a dostęp do kluczowych informacji szybszy i bardziej komfortowy. ​

​

Projekt ClimateView pokazuje, że sztuczna inteligencja może skutecznie wspierać rozwiązywanie złożonych problemów inżynierskich wykraczających daleko poza generowanie kodu. W trakcie realizacji model Claude był wykorzystywany jako narzędzie wspomagające pracę ekspertów przy analizie architektury systemu, identyfikacji zależności w kodzie, dekompozycji złożonych inicjatyw ​oraz przygotowaniu testów i dokumentacji. ​

Dzięki temu zespół mógł sprawniej analizować możliwe scenariusze, szybciej weryfikować hipotezy i koncentrować się na podejmowaniu decyzji o największym znaczeniu biznesowym. AI nie zastępowało wiedzy i doświadczenia inżynierów, lecz stanowiło dodatkowe wsparcie, pozwalające zwiększyć efektywność realizacji projektu i jakość dostarczanych rozwiązań. ​

Korzyści_

Wyższa jakość i wiarygodność danych ​

Projekt pozwolił udoskonalić mechanizmy przetwarzania danych oraz zwiększyć precyzję obliczeń wykorzystywanych przez platformę. ​Dzięki temu organizacja zyskała jeszcze większą pewność, że dane dotyczące emisji mogą stanowić solidną podstawę do analiz, raportowania ​i podejmowania decyzji biznesowych. ​

Znacząca poprawa wydajności systemu ​

Przeprowadzona optymalizacja procesu importu danych przełożyła się na redukcję czasu blokowania głównego wątku o około 89%. ​Efektem jest bardziej responsywna platforma, gotowa do efektywnej obsługi rosnącej liczby operacji i danych. ​

Architektura przygotowana na dalszy rozwój ​

Przebudowa procesu importu oraz uporządkowanie mechanizmów odpowiedzialnych za przetwarzanie danych pozwoliły uprościć architekturę rozwiązania. Dzięki temu rozwój kolejnych funkcjonalności stał się łatwiejszy, szybszy i bardziej przewidywalny. ​

Kontrolowane wdrażanie zmian ​

Modernizacja została zaplanowana w formie 10 niezależnych etapów, co umożliwiło stopniowe dostarczanie nowych usprawnień przy zachowaniu ciągłości działania platformy. Takie podejście pozwoliło na bieżąco weryfikować efekty zmian oraz ograniczać ryzyko związane z dużymi modyfikacjami systemu. ​

Większa stabilność i jakość rozwiązania ​

Zastosowanie separacji logiki biznesowej od warstwy infrastrukturalnej zwiększyło możliwości testowania kluczowych procesów oraz usprawniło utrzymanie aplikacji. W rezultacie organizacja zyskała bardziej stabilne i łatwiejsze do rozwijania rozwiązanie. ​

Szybsza i bardziej responsywna aplikacja​

Optymalizacja procesu importu danych skróciła czas reakcji interfejsu i poprawiła płynność pracy, zwłaszcza przy większych zbiorach danych.​

Bardziej przewidywalne procesy

Usprawnienie mechanizmów przetwarzania danych sprawiło, że importy przebiegają w bardziej uporządkowany i przewidywalny sposób, co pozwala użytkownikom sprawniej wykonywać codzienne zadania.​

Lepsze doświadczenie użytkownika​

Zmniejszenie obciążenia aplikacji ograniczyło ryzyko spowolnień podczas kluczowych operacji, co zwiększyło wygodę i komfort korzystania z platformy.​

Technologie_

  • AI: Claude ​
  • Backend: Glang (Go), Fiber v2, GORM, sqlc, gRPC ​
  • Frontend: Angular, AG Grid, PrimeNG, Angular CDK, Tolgee ​
  • Dane i integracje: Excelize, tus, Swagger ​
  • Performance/Observability: OpenTelemetry, Chrome Performance ​
  • Delivery/Project Management: CI/CD, Linear ​

Kluczowe liczby_

89%​ – redukcja czasu blokowania głównego wątku aplikacji​​

12 407 ms → 1 384-1 410 ms ​– skrócenie czasu oczekiwania użytkownika na reakcję aplikacji z ponad 12 sekund do około 1,4 sekundy​

10 etapów wdrożeniowych​ – podział przebudowy procesu importu na niezależne i bezpieczne do wdrażania inicjatywy​​​

34 przeanalizowane lokalizacje kodu​ – audyt potencjalnych źródeł problemów wydajnościowych w aplikacji​​

Podsumowanie_

Projekt objął przebudowę mechanizmów odpowiedzialnych za obliczanie emisji, modernizację procesu importu danych, optymalizację przetwarzania dużych zbiorów informacji oraz ograniczenie długu technicznego, który utrudniał wprowadzanie kolejnych zmian. ​Szczególną rolę w realizacji prac odegrało wykorzystanie Claude jako wsparcia procesu inżynierskiego, przede wszystkim w analizie złożonych problemów, ocenie wariantów architektonicznych i planowaniu działań modernizacyjnych. Przeprowadzone usprawnienia przełożyły się na większą stabilność platformy, szybszą pracę aplikacji oraz bardziej przewidywalne środowisko do dalszego rozwoju produktu.​ ​

 

 

Zobacz więcej