Zarządzanie IoT4 min czytania

Czy Agile sprawdza się w IoT? 8 kluczowych wyzwań i jak sobie z nimi radzić

Czy Agile sprawdza się w IoT? 8 kluczowych wyzwań i jak sobie z nimi radzić

Wprowadzenie

Znasz to uczucie? Natrętny głos wątpliwości, który podpowiada, że prace nad nowym urządzeniem nie wyglądają zbyt obiecująco? Jeśli tak, nie jesteś sam.

Tworząc kompletne rozwiązania IoT, mierzymy się z wyzwaniami zarówno sprzętowymi, jak i programistycznymi. Metodyki Agile stały się standardem w tworzeniu oprogramowania, ale prawdziwe pytanie brzmi: czy równie dobrze sprawdzą się w świecie mikrokontrolerów, niestandardowych obudów, kabli, przełączników i anten, czyli po prostu sprzętu?

Odpowiedź brzmi: tak, ale wymagają dostosowania.

W tym artykule omawiamy osiem głównych powodów, dla których Agile może nie działać najlepiej, i podpowiadamy, jak go dostosować, żeby lepiej sprawdzał się przy tworzeniu sprzętu.

1. Długie cykle produkcyjne

W oprogramowaniu możesz pracować z dowolnego miejsca i wprowadzać zmiany w kilka minut. A sprzęt? Jego zaprojektowanie, wyprodukowanie, przetestowanie i dostarczenie wymaga czasu.

Rekomendacje:

  • Szybko prototypuj i weryfikuj, korzystając z łatwo dostępnych, przetestowanych i sprawdzonych komponentów.

  • Rozwijaj aplikacje równolegle, korzystając z symulatorów i prototypów urządzeń (inżynieria współbieżna).

2. Zależność od łańcucha dostaw utrudnia dynamiczne zmiany

Jedynym ograniczeniem przy zmianach w oprogramowaniu są nasze umiejętności. W przypadku sprzętu jesteśmy też zdani na dostępność komponentów: mikrokontrolerów, anten, czujników i wielu innych.

Rekomendacje:

  • Zorganizuj burzę mózgów wokół pomysłów na prototyp i równolegle pracuj nad najbardziej obiecującymi wariantami. Dzięki temu przetestujesz pomysły i wybierzesz ten, który najlepiej rozwiązuje problem, a to ułatwi planowanie łańcucha dostaw.

  • Gdy to możliwe, wybieraj łatwo dostępne, standardowe komponenty, które łatwo zastąpić. To zmniejsza ryzyko, że trzeba będzie przeprojektować urządzenie z powodu braku jednego „unikalnego” komponentu.

  • Sprawdzaj status komponentów przed ich wyborem i stawiaj na te dojrzałe lub zalecane do nowych projektów (statusy: wycofany, niezalecany do nowych projektów, aktywny, zalecany do nowych projektów, zapowiedziany…).

3. Zmiany w sprzęcie są kosztowne i trudno je odwrócić

Nawet drobna zmiana w sprzęcie często wymaga rewizji projektu, aktualizacji dokumentacji, czekania na nowe dostawy, testów, a czasem także modyfikacji firmware’u. W praktyce tworzysz nowe urządzenie. Trzeba też śledzić różnice w jego specyfikacji i możliwościach, żeby zachować zgodność ze starszymi wersjami (pod względem produkcji, funkcjonalności, firmware’u, sprzedaży itd.).

Rekomendacje:

  • Zaplanuj długoterminową roadmapę produktu, w której każdy etap to nowa wersja urządzenia.

  • Projektuj sprzęt z myślą o wielu wersjach funkcjonalnych opartych na zestawieniu materiałów (Bill of Materials, BOM), tak by jeden projekt PCB obsługiwał różne wersje, w tym konfiguracje dla konkretnych klientów.

  • Zostaw na płytce PCB zapasowe zasoby, takie jak niewykorzystane linie I/O, interfejsy i złącza testowe, żeby szybko dostosować urządzenie do nowych wymagań albo testować funkcje.

  • Rozważ modułową konstrukcję sprzętu, która ułatwi wymianę komponentów.

4. Certyfikacja urządzeń zajmuje czas, kosztuje i trzeba ją powtarzać dla każdej wersji

Każda zmiana sprzętu może wymagać ponownej certyfikacji, a to oznacza dodatkowe koszty i opóźnienia.

Rekomendacje:

  • Wprowadzaj szybkie zmiany na wczesnym etapie, a potem zamroź projekt sprzętu, gdy spełni wszystkie wymagania techniczne i funkcjonalne.

  • Uwzględnij zapas w specyfikacji urządzenia (np. pamięć, moc obliczeniowa, typy anten i ich moc), jeśli w przyszłych wersjach planujesz nowe funkcje.

  • Od początku projektuj sprzęt z myślą o kompatybilności elektromagnetycznej (EMC), aby uniknąć kosztownych zmian, jeśli urządzenie nie przejdzie testów EMC.

  • Wstępnie testuj prototypy w laboratoriach EMC w ramach godzin inżynierskich i/lub wcześnie konsultuj zgodność z wymaganiami EMC z ekspertami.

5. Synchronizacja sprzętu i oprogramowania to krytyczny i czasochłonny proces

Przeniesienie firmware’u z prototypu na docelową wersję sprzętu zawsze wymaga czasu na testy i poprawki. Do tego aplikacje, które działały na symulatorach, trzeba też przetestować z prawdziwym urządzeniem i aktualizacjami firmware’u.

Rekomendacje:

  • Już na etapie prototypowania zapewnij łatwy sposób zdalnej aktualizacji firmware’u (aktualizacje over-the-air) - to oszczędzi czas.

  • Testuj urządzenia w ich docelowym środowisku pracy, kiedy tylko to możliwe.

  • Przygotuj narzędzia do oceny wydajności i dokładności urządzeń.

6. Powolne dostawy sprzętu przez złożony proces produkcji

Materiał, warunki środowiskowe, wielkość partii produkcyjnej, kształt, tolerancje i wymagane normy wpływają na złożoność i koszty produkcji. Nawet prosta płytka PCB wymaga przestrzegania ścisłych zasad projektowych.

Rekomendacje:

  • Stosuj dobre praktyki projektowania pod kątem produkcji (Design for Manufacturing, DFM) jak najwcześniej.

  • Jeśli urządzenie powstaje na zamówienie klienta, wcześnie uzgodnij oczekiwania. Jasno przedstaw kompromisy między czasem produkcji, parametrami i kosztem, ustal plan i wyznacz kamienie milowe.

7. Iteracyjne ulepszanie UX urządzenia jest trudne

Każde urządzenie ma swój cel, a interakcja z użytkownikiem odgrywa w nim kluczową rolę. Wprowadzanie zmian w UX, gdy wyprodukowano już tysiące sztuk, jest jednak niezwykle trudne.

Rekomendacje:

  • Testuj wczesne makiety i prototypy w rzeczywistym środowisku z użytkownikami z grupy docelowej.

  • Rozważ bardziej interaktywną konstrukcję, np. ekran dotykowy lub interfejs bezprzewodowy, który można aktualizować programowo.

8. Sprzęt musi być bezpieczny i niezawodny od pierwszego dnia

Klienci oczekują wysokiej jakości i niezawodnego sprzętu. Awarie urządzeń czy problemy z bezpieczeństwem (np. porażenia prądem, pożary, wycieki danych) są niedopuszczalne, bo mogą mieć katastrofalne skutki.

Rekomendacje:

  • Wybieraj sprawdzone projekty układów (z wcześniejszych projektów, od renomowanych producentów komponentów).

  • Zastosuj odpowiednie zabezpieczenia wejść/wyjść, zasilania i interfejsów, biorąc pod uwagę warunki środowiskowe, w których urządzenie będzie pracować.

  • Zarezerwuj wystarczająco dużo czasu na rygorystyczne testy przed wdrożeniem.

Podsumowanie: jak dostosować Agile do IoT?

Niestety, tworzenie sprzętu to złożony i czasochłonny proces, który nie mieści się gładko w ramach Agile. Jedyna faza, w której Agile naprawdę błyszczy, to wczesny etap prototypowania. Warto go mądrze wykorzystać:

  1. Stosuj inżynierię współbieżną: rozwijaj oprogramowanie równolegle ze sprzętem.
  2. Wyeliminuj jak najwięcej niewiadomych podczas prototypowania, weryfikuj koncepcje z użytkownikami, testuj funkcje urządzenia, oceniaj całkowity koszt posiadania i planuj kolejne kroki.
  3. Uwzględnij czas na synchronizację sprzętu i oprogramowania, testy i certyfikację.
  4. Rozważ modułową konstrukcję sprzętu, która ułatwi modernizacje.
  5. Zapewnij możliwość zdalnej konfiguracji.
  6. Korzystaj ze sprawdzonych rozwiązań, aby ograniczyć ryzyko.
  7. Zadbaj o odpowiednie zabezpieczenia od samego początku.

Stosując te zasady, wniesiesz elastyczność Agile do świata sprzętu, ograniczając przy tym ryzyko i opóźnienia.

  • Zarządzanie IoT