For those of you interested in project management (yeah I know, project + management are dirty words for many), we are employing an evolutionary waterfall development model. That said, project management is absolutely crucial in any setting. The alternative is an abandoned project or relegation to the vast graveyard of great but half-baked projects littering the DIY landscape.
Evolutionary model combines the Iterative and Incremental model of software+hardware development life cycles. Delivering the product is an incremental process over time. It is better for software+hardware products that have their feature sets redefined over the development timeline because of user feedback and other factors such as manufacturability, component availability and/or budget constraints. The Evolutionary Waterfall development model divides the development cycle into smaller, incremental waterfall models in which users are able to get access to the product at the end of each cycle. Feedback is provided by the users on the product for the planning stage of the next cycle and the development team responds, often by changing the product, plan or process. Therefore, the product evolves with time. All conventional project management and development models have the disadvantage that the duration of time from start of the project to the delivery time of a solution is very high. Evolutionary Waterfalls solve this problem!
Evolutionary Waterfall models suggest breaking down of work into smaller chunks, prioritizing them and then delivering those chunks to the customer one by one. The number of chunks is huge and is the number of deliveries made to the customer. The main advantage is that the customer’s confidence increases as he constantly gets quantifiable goods or services from the beginning of the project to verify and validate his requirements. Thus, the model allows for changing requirements as well as all work is broken down into maintainable work chunks.
Another advantage of the Evolutionary Waterfall is that at any point in time you have a working product! Yes, it might be a crappy one, and some features are missing, but you do have a working ten-year-on-a-charge smartwatch on your wrist that proves that the original premise is sound and the end product will work!
Here the situation is complicated by the introduction of hardware dimensions, so combining hardware with software in a development is a nice little challenge.