There's perhaps a weary inevitability attached to the start of any new electronics design project that's been accepted for too long: after deciding what devices to target, you need to spend significant time 'tooling up'.
This generally involves finding and sourcing development boards and software that will allow you to 'play' with the devices on your short list.
Most designers accept this as necessity because that's the way it's always been done.
Time to take a step back, look at what's happening around you, and see that this is, frankly, clumsy, unresponsive, stifling of innovation and equally stifling of enjoyment!
Take for instance the notion that the first thing to do is choose the major devices around which you will base the design. Routine and precedent has it that you select the processor, the major peripheral chips and, increasingly, the FPGA.
It's logical, you argue, to set these choices in concrete early on because these decisions will help dictate the direction of the design, and how can you possibly design without direction and definition? The properties of these devices prescribe the boundaries in which you will design, so that the process becomes safer and quicker (perhaps).
The paradox here is that the start of the design process is when you are in the worst position to know what boundaries are acceptable and what devices are most suitable. Most of the time you have to estimate (an engineering term for 'guess') how you will implement the functionality you seek, and base your device choices on these guesses.
We often comment that we are forced to make these guesses because exploring lots of different devices and design implementations up front costs time and money. One of the reasons for this is that for every device you need to acquire the infrastructure to evaluate and 'play' with it.
While there is a hard cost associated with this infrastructure, by far the dominant cost is the time taken figuring out how to do your first "hello world" development on a new and foreign system. And to really rub salt into the wounds, you sometimes have to 'waste time' evaluating the different evaluation systems for a particular device (there're usually loads of application-targeted ones available) to see which one best suits the application!
The overall effect of this initial tooling up process is to distract you from the real aim of the project, which is to develop functionality. And it puts early constraints on the freedom to 'play' with various devices and design approaches before deciding on a final approach.
This latter point is a crucial one. When we take away the freedom to easily explore ideas, the first casualty is innovation.
You then find that it is too time-consuming and too expensive to tool up for each device you want to explore, so you artificially restrict your choices. In doing so, you perhaps miss out on potential benefits that the latest devices and technologies can offer.
The problem here, particularly creating tomorrow's connected designs (which are the ones that people will want to buy) is that you're doing design backwards.
Take a higher level, holistic view of the aims of the entire product design experience. Reassess the design processes you use and how they map into today's technology and your customer's needs.