Istnieją dwie podstawowe metody tworzenia oprogramowania: tradycyjny model kaskadowy oraz nowsze podejście, zwane agile (tj. „zwinne”), które jest kluczowe dla przekształcenia przemysłu motoryzacyjnego w kierunku „pojazdów zdefiniowanych programowo”.
W podejściu kaskadowym tworzenie oprogramowania przechodzi przez odrębne, następujące po sobie fazy. Fazy te obejmują definiowanie wymagań, implementację oraz integrację i testowanie.
Metoda kaskadowa ma liczne wady: nie jest ona wystarczająco elastyczna, aby nadążyć za tempem zmian w dzisiejszym przemyśle motoryzacyjnym; nie kładzie mocnego nacisku na bliską współpracę i szybkie pozyskanie informacji zwrotnej od zespołów biznesowych wewnątrz firmy oraz od partnerów zewnętrznych, a także nie zapewnia testowania na wystarczająco wczesnym etapie projektu.
Możliwość testowania złożonych systemów oprogramowania jest szczególnie ważna w przemyśle motoryzacyjnym, gdzie inżynierowie przeprowadzają zaawansowane symulacje rzeczywistych warunków jazdy – software-in-the-loop, hardware-in-the-loop i vehicle-in-the-loop – zanim wyjadą pojazdem na drogę publiczną.
Jak działa agile?
Podejście „zwinne” stanowi kulturową i proceduralną zmianę w stosunku do podejścia kaskadowego, które jest liniowe i sekwencyjne. Agile jest iteracyjne, oparte na współpracy oraz uwzględnia częste pętle informacji zwrotnej.
Organizacje korzystające z agile tworzą małe zespoły adresujące konkretne, wysoko priorytetowe wymagania biznesowe. Zespoły często pracują w ustalonym, stosunkowo krótkim cyklu iteracyjnym, zwanym Sprintem. W ramach takiej pojedynczej iteracji wytwarzają na podstawie określonych potrzeb biznesowych, kompletny i przetestowany inkrement produktu softwareowego, gotowy do weryfikacji przez interesariuszy.
W Aptiv naszą siłą jest nie tylko dostosowywanie się do zmian zachodzących w branży, ale także dążenie do stworzenia warunków sprzyjających zwinności w naszym procesie wytwarzania oprogramowania. W obszarze agile pracujemy w zespole składającym się z product ownera i scrum mastera, którzy działają w parze. To właśnie ich partnerstwo oraz umiejętność stawiania wyzwań przed zespołami skutkują praktycznym wdrożeniem teorii agile w Aptiv. – mówi Dariusz Mruk, dyrektor Centrum Technicznego Aptiv w Krakowie.
Zarówno podejście kaskadowe, jak i „zwinne”, mogą wykorzystywać V-model wytwarzania oprogramowania, przechodząc kolejno przez fazy projektowania, implementacji oraz testów. Różnica polega na tym, że podejście kaskadowe stosuje V-model jako proces nadrzędny o jednokrotnym przebiegu w ramach całego projektu, natomiast podejście „zwinne” może realizować V-model w ramach każdego Sprintu.
Metody „zwinne” umożliwiają firmom przejście od długo-okresowych aktualizacji produktu związanych z metodą kaskadową, do nowszego stylu wdrażania oprogramowania znanego jako CI/CD, czyli ciągła integracja i wdrażanie. Agile i CI/CD są ze sobą powiązane. Agile odnosi się do metody wytwarzania oprogramowania; CI/CD zapewnia częste integrowanie, testowanie i wdrażanie na produkcję nowych wersji z niewielkimi zmianami, solidnie zweryfikowanych pod kątem jakości.
Agile zapewnia wiele korzyści, w tym umożliwia inżynierom szybkie reagowanie na zmieniające się uwarunkowania biznesowe. Korzystając z metod zwinnych, inżynierowie mogą zapewnić ciągłą dostawę ulepszeń oprogramowania, które zostało dokładnie przetestowane i które odpowiada stale weryfikowanym potrzebom biznesu.
„Zwinne” tworzenie oprogramowania w przemyśle motoryzacyjnym
Wraz z coraz większą rolą oprogramowania w pojazdach, rośnie presja na producentów samochodów (OEM) i dostawców, aby pisać, wdrażać i integrować kod szybciej i skuteczniej. Oprogramowanie nie tylko odgrywa większą rolę w podstawowych funkcjach pojazdu, ale także umożliwia wprowadzanie nowych funkcjonalności użytkowych, takich jak systemy rozrywki, zaawansowane systemy wspomagania kierowcy i systemy jazdy autonomicznej.
Zwinność, współpraca i innowacyjność to cechy, które pozwalają firmom odnosić sukcesy na rynku, zwłaszcza w dziedzinie technologii. Centrum Techniczne Aptiv w Krakowie ściśle współpracuje z naszymi klientami, co pozwala nam na niezwykle szybką reakcję na ich potrzeby i dostarczanie technologii opracowanych z myślą o nich. Dzięki setkom godzin pracy, jakie wkładamy w tworzenie i rozwijanie algorytmów, jesteśmy w stanie efektywnie przygotowywać prototypy, które ostatecznie wspierają wdrażanie innowacji. Zaangażowanie i wysiłek naszych zespołów w procesie tworzenia oprogramowania czyni nas prawdziwie zwinną firmą. – dodaje Dariusz Mruk.
Producenci muszą wprowadzać nowe funkcjonalności bliżej terminu rozpoczęcia produkcji, a także oczekują możliwości szybkiego i bezpiecznego wprowadzania aktualizacji oprogramowania już po wyprodukowaniu pojazdu.
Tradycyjnie, programiści odpowiadali za oprogramowanie dla każdego komponentu sprzętowego, a następnie integrowali je z kodem dla innych części pojazdu. Testowanie zintegrowanego oprogramowania odbywało się na późnym etapie procesu, co ograniczało czas na wprowadzanie dodatkowych zmian. Rozwój każdego komponentu i platformy samochodowej był procesem jednorazowym, który rozpoczynał się od nowa dla kolejnej platformy.
Producenci odchodzą od takiego podejścia na rzecz metod iteracyjnych, które uwzględniają korzyści płynące ze współpracy, integracji i ponownego wykorzystania kodu, wynikające z podejścia „zwinnego”. Na przykład, warstwy pośrednie oprogramowania (middleware) mogą zastąpić kod specyficzny dla każdego komponentu lub platformy pojazdu. Aplikacje i funkcje mogą być integrowane za pomocą interfejsów programowania aplikacji i współdzielone między zespołami programistów.
Metoda „zwinna” pomaga również producentom pojazdów wdrażać nowe architektury, w których przetwarzanie przenosi się z mniejszych jednostek sterujących, do dużych, scentralizowanych kontrolerów domenowych, co zmniejsza koszty i złożoność.