Nowy standard. Twoje centrum tworzenia inteligentnego, szybkiego i zrównoważonego oprogramowania AI

Zobacz teraz
Logo Systems Engineering

Długofalowe partnerstwo w tworzeniu oprogramowania z Systems Engineering

Monterail pomógł Systems Engineering przepisać prototypową aplikację opartą na Ruby na produkt gotowy do zastosowań klasy enterprise, poprawiając jego możliwości, skalowalność i wydajność. Nasi deweloperzy pracowali też nad aplikacją mobilną klienta oraz migracją platformy webowej z Vue 2 do Vue 3.

Zdjęcie mężczyzny w kasku stojącego o zachodzie słońca przed turbinami wiatrowymi produkującymi energię i trzymającego tablet.

Firma i produkt

Systems Engineering A/S dostarcza framework, który pomaga skutecznie projektować i dostarczać złożone systemy, zarówno od strony technicznej, jak i zarządczej.

Projektowanie systemów inżynieryjnych samo w sobie jest wymagającym zadaniem. Koordynacja wielu elementów nigdy nie jest prosta, a żeby system działał skutecznie, trzeba spełnić liczne normy i wytyczne, w tym ISO i IEC.

Dodatkowo proces inżynierii systemowej wiąże się z wyzwaniami komunikacyjnymi. Tak złożone systemy wymagają harmonijnej współpracy między różnymi dyscyplinami i zespołami, a także raportowania wyników interesariuszom przez inżynierów.

Rozwiązanie Systems Engineering ma dwa wymiary. Po pierwsze, firma gromadzi wszystkie narzędzia potrzebne do skutecznego projektowania złożonych systemów i usprawnia ich wzajemne połączenia. To offline'owa część ich pracy. Drugi wymiar jest online: zaawansowane oprogramowanie chmurowe wspierające korzystanie z tych narzędzi.

Opinia klienta

Systems Engineering logo

Harald Hersted

Systems Engineering Concept Specialist w Systems Engineering

Harald Hersted

Monterail rozumie potrzeby biznesowe

Ta długofalowa współpraca po prostu się sprawdza, bo możemy liczyć na to, że deweloperzy rozumieją potrzeby biznesowe i przekładają je na wymagania techniczne. Udało nam się osiągnąć nawet więcej, niż się spodziewaliśmy: od firmy działającej jak startup staliśmy się organizacją, która dostarcza dojrzałe oprogramowanie.

Zakres i najważniejsze elementy

ZWINNA WSPÓŁPRACA I PŁYNNE PRZEKAZANIE WIEDZY

WEB I MOBILE, BACKEND I FRONTEND

VUE.JS, RUBY ON RAILS, NEO4J, REACT NATIVE

Zdjęcie osoby pokazującej drugiej osobie widok z platformy Systems Engineering na laptopie przy biurku.

Wyzwanie

Nasze partnerstwo zaczęło się od przepisania istniejącego rozwiązania chmurowego tak, by było wydajne i skalowalne.

Systems Engineering A/S miało prototypową aplikację, która pomagała innym firmom rozwijać systemy techniczne różnego typu. Ruby po stronie backendu pozwalało spełnić wymagania biznesowe, ale prototyp okazał się zbyt mało skalowalny. Dało się w nim projektować systemy inżynieryjne, ale nie był w stanie obsłużyć skali wymaganej przez klientów. Celem było przetwarzanie miliardów elementów, podczas gdy prototyp radził sobie z dziesiątkami tysięcy.

Naszym pierwszym celem było przepisanie istniejącego prototypu tak, by zapewnić mu wydajność i skalowalność. Aby obsłużyć wymaganą liczbę elementów, nową aplikację połączyliśmy z wydajną grafową bazą danych Neo4J oraz z Vue.js po stronie frontendu. Z czasem pracowaliśmy też nad aplikacją mobilną i pomogliśmy przenieść platformę webową z Vue 2 do Vue 3.

Kluczowe wyzwania

1.
Przygotowanie złożonej platformy klienta na przyszłe potrzeby.
2.
Przebudowa interfejsu aplikacji webowej, by poprawić UX.
3.
Integracja aplikacji mobilnej z nowym API.
1.
Przygotowanie złożonej platformy klienta na przyszłe potrzeby.
2.
Przebudowa interfejsu aplikacji webowej, by poprawić UX.
3.
Integracja aplikacji mobilnej z nowym API.

Przeprojektowanie mobilnej aplikacji towarzyszącej i wsparcie migracji z Vue 2 do Vue 3.

Aplikacja mobilna pozwala użytkownikom szybko wyświetlać kluczowe informacje z aplikacji webowej, w tym szczegóły dotyczące elementów stanowiących podstawę projektu systemu. Interfejs aplikacji mobilnej wymagał przeprojektowania, żeby poprawić User Experience. Zmiany wymagała też wykorzystywana technologia, ze względów bezpieczeństwa i dalszej rozbudowy, z React Native JavaScript na React Native TypeScript.

Choć podstawowa funkcjonalność miała pozostać taka sama, potrzebne były też nowe funkcje, takie jak możliwość przełączania się między workspace'ami, a także integracja z nowym API głównej usługi webowej.

Później jeden z naszych front-end developerów pracował też nad migracją platformy webowej Systems Engineering z Vue 2 do Vue 3.

Zdjęcie laptopa. Na ekranie widać widok z chmurowego oprogramowania Systems Engineering.

Proces

Proces tworzenia oprogramowania zaczął się od zebrania wymagań i user stories.

Wspólnie z Systems Engineering dzieliliśmy wymagania i pomysły na mniejsze, konkretne zadania.

Powtarzaliśmy ten proces iteracyjnie na każdym etapie: tworzenia prototypu webowego, refaktoryzacji aplikacji mobilnej i migracji z Vue 2 do Vue 3. Dzięki temu wprowadziliśmy szereg usprawnień technicznych i funkcjonalnych, takich jak wdrożenie testów end-to-end czy wypracowanie najlepszego sposobu dodania funkcji, która pozwala użytkownikom dołączać do workspace'ów.

Przepisując i skalując PoC, zaczęliśmy od zera: zaprojektowaliśmy architekturę backendowej bazy danych Neo4J i zbudowaliśmy frontend. Przebudowa PoC zajęła 2 miesiące. Następnie przeszliśmy do tworzenia nowych funkcji.

Stworzyliśmy dwa podstawowe moduły: jeden do projektowania systemów elektrycznych, a drugi do łączenia tego obszaru z dwoma innymi elementami całego systemu inżynieryjnego. Przygotowaliśmy też moduł, który umożliwia porównywanie dwóch podobnych wersji komponentu inżynieryjnego oraz akceptowanie lub odrzucanie różnic. Zaprojektowaliśmy i zbudowaliśmy również wersję aplikacji dla indywidualnych inżynierów, spoza firm.

Później wspieraliśmy migrację frontendu platformy webowej z Vue 2 do Vue 3. Dzięki temu możliwe było większe ponowne wykorzystanie kodu, usunięcie kilku zewnętrznych zależności oraz dokładne przejrzenie i debugowanie każdego elementu interfejsu.

Tak to zadziałało:

  • Regularne omawianie priorytetów i planów przez interesariuszy Systems Engineering oraz deweloperów.

  • Przekładanie wymagań na rozwiązania techniczne i iteracyjne dopracowywanie koncepcji.

  • Zwinna współpraca i skalowanie zespołu deweloperskiego w górę lub w dół zależnie od potrzeb klienta.

  • Stałe skupienie na kontekście biznesowym klienta i ścisła współpraca między naszym zespołem w Polsce a ich zespołem w Kopenhadze.

Głos zespołu

Monterail logo

Wojciech Maciejak

Tech Lead, Monterail

Wojciech Maciejak

Najlepszy projekt, przy którym pracowałem

Systems Engineering to jeden z najlepszych projektów w całej mojej karierze. Lubię wyzwania techniczne, z którymi mierzymy się każdego dnia, ale ten projekt poszerzył też nasze spojrzenie na stronę biznesową. Kiedy po raz pierwszy dołączyłem do warsztatów z Product Ownerem, dowiedziałem się, jak zaprojektowano standard ISO 81346. Zamiast się przestraszyć, byłem pod ogromnym wrażeniem i dlatego zacząłem czytać książkę o tej metodyce. Nigdy wcześniej nie pracowałem przy tak interesującym projekcie i wierzę, że już w najbliższej przyszłości usłyszy o nim cały świat.

Zdjęcie MacBooka na białym stole. Na ekranie laptopa widać widok z aplikacji webowej Systems Engineering.

Efekt

Dzięki naszej współpracy aplikacje mobilna i webowa Systems Engineering są funkcjonalne, bezpieczne, przygotowane na przyszłe potrzeby i oferują optymalne User Experience.

Choć podstawowa usługa webowa znacząco się zmieniła, aplikacja mobilna pozostała w pełni funkcjonalna i nadal wspierała komunikację wokół projektowanych systemów. Wdrożona przez nas funkcja workspace'ów pozwala użytkownikom patrzeć na ten sam temat z różnych perspektyw i prowadzić dyskusję pod różnym kątem.

Dostarczone przez nas oprogramowanie obsługuje miliardy elementów w systemach inżynieryjnych, a przy tym pozostaje skalowalne i wydajne. Jedna z wprowadzonych aktualizacji przyspieszyła działanie aplikacji nawet 20-krotnie. Stworzyliśmy też mobilną aplikację towarzyszącą dla głównego oprogramowania i wsparliśmy migrację platformy webowej z Vue 2 do Vue 3.

Z czasem Systems Engineering rozbudowało swój zespół wewnętrzny odpowiedzialny za tworzenie oprogramowania. Na każdym etapie wspieraliśmy ich w tym procesie, dbając o płynne przekazanie wiedzy z naszego zespołu do ich wewnętrznych deweloperów. Według stanu na 2025 rok jeden backend developer nadal wspiera zespół Systems Engineering.

O sukcesie tego projektu przesądziły następujące czynniki:

  • Znajdowanie kreatywnych rozwiązań technicznych dla złożonych wyzwań platformy służącej do tworzenia wielkoskalowych systemów.

  • Zrozumienie kontekstu biznesowego i zwinna współpraca przy proponowaniu rozwiązań odpowiadających na zmieniające się potrzeby klienta.

  • Iteracyjna współpraca z Systems Engineering w poszukiwaniu jak najlepszych rozwiązań dla aplikacji mobilnej.

  • Wsparcie migracji platformy z Vue 2 do Vue 3 w sposób odpowiadający zmieniającym się wymaganiom.

  • Zbudowanie silnej międzynarodowej współpracy między zespołami z Polski i Kopenhagi.

Grzegorz Hajdukiewicz | Chief Delivery Officer

Jestem tutaj, żeby zebrać twoje wymagania, odpowiedzieć na wszystkie pytania i jak najszybciej przejść z twoim pomysłem do tworzenia oprogramowania.

Grzegorz Hajdukiewicz | Chief Delivery Officer

Skontaktuj się