Complex problems can be overwhelming to solve. In my line of work, I am exposed to different hardware, technologies and challenges in every new project. I found the following workflow to work well for me:
One Step at a Time
Someone said to eat an elephant, you need eat it one bite at a time.
For example, a complex project can be broken down into phases:
1. Discovery Phase
2. Feature set One
3. Feature set Two
The key: Do not provide an estimate for Phase 2 and 3 before you have completed Phase 1: What sense does it make to estimate phases 2 and 3 when everything can change in phase 1 ? People that try to estimate everything even before work starts are doing themselves and others a great disservice: They run the risk of over-estimating ( = the project won't get approved although it was necessary) or under-estimating ( = they will lose their job). It is much easier, cheaper, more successful and less stressful to estimate as you go, at the end of every phase. In a sense, one is displaying arrogance or foolishness to claim to know all the unknowns.
Agile projects are broken down into short sprints, which are then broken down further into a sequence of simple tasks.
A complex test automation system can be broken down into frameworks, TestStand sequences and LabVIEW SubVIs.
The opposite that doesn’t work : Trying to do it all in one phase, in one sequence, in one VI.