Я видел два суждения (противоположные).
Первое (структурный метод программирования): пишите сразу готовую программу (типа begin end), вместо нерабочих кусков используйте заглушки, главное, чтобы программа сразу работала. От себя добавлю: задание надо писать по-английски, чтобы потом эту фразу заменить на функцию (готовую из библиотеки или свою, которую надо будет написать). Ещё видел совет: побольше использовать классы (и интерфейсы). Затем остаётся только пошаговая детализация. Хотя видел ещё совет: заранее проработать структуру, напр., на UML.
Второй совет от курсов МФТИ по Ардуино: не начинать проект без детальной проработки. Ведущий - практик, поэтому плохое не посоветует.