Tworząc systemy embedded musimy zmierzyć się z tymi samymi problemami, co przy tworzeniu innych rodzajów oprogramowania, czyli między innymi:
- Zmieniającymi się wymaganiami.
- Zaburzaniem działania istniejących funkcjonalności po wprowadzeniu zmian.
- Napiętymi terminami.
- Rosnącym z czasem skomplikowaniem systemu utrudniającym jego utrzymanie i rozszerzanie.
Poza tym istnieje również cała gama dodatkowych problemów, specyficznych dla systemów embedded. Są one związane między innymi z:
- Potrzebą integracji ze sprzętem.
- Pisaniem kodu na mikrokontrolery o ograniczonych zasobach
- Potrzebą spełnienia norm dotyczących niezawodności systemu.
- Interakcją z zewnętrznymi urządzeniami i pracą w ciężkich warunkach.
W tym wpisie opiszę dokładniej te problemy oraz pokażę jak Test Driven Development może pomóc w ich rozwiązaniu.