I was tasked to create a modern upgrade to the central experiment controller for each of 8 multi-million $$$ research laboratories. They are still using a DOS based system, except for the first proto that we've deployed.
I get to make the real-time hardware and software, and the programmer who worked with the department since the PDP-11 days and developed the old system gets to make the PC GUI, which has to be backward compatible with old-style text input files.
The new system has to account for all the lab variations, including one with a dual experiment necessitating various multiplexers and complications. And add oodles of new capabilities.
There are no written specs. I poll the scientists to pin down all the requirements. In the process I suggest to them what we could do, which they want all of and more. I write down most of the requirements and set to work. Every once in a while they request new capabilities or decide to use higher resolution sensors that the programmer promised we would never need, so my design had better incorporate enough headroom to be able to adapt without re-spin.
So over the course of several years, while also being the department's Laser Technologist, completing numerous other electronics projects, and getting sidetracked by upper management to become an electrical safety guy and UL inspect 2000 pieces of equipment--which I finally threatened to leave over and they backed down after I got done with about 20:
I created what I think is an innovative approach to eliminate the old practice of custom tweaking the real-time code to implement each variant of the experiment and enable the deployment of a flexible yet standard solution for all the labs. I chose to implement a dynamically reconfigurable state machine which outputs sequenced digital waveforms and pulse generator parameters. All glitch-free, and able to be reconfigured on the fly while running. Oh, and the state machine execution engine meets the real-time deadline of the 4.17us period between 240kHz shaft encoder ticks.
Now that it's done, they don't want to deal with any complexity, don't want to read any documentation or learn any new concepts (such as a concept that is central to elementary control theory--the state machine--and these are all Ph.D. engineers), and the programmer is having fits because he doesn't like the state machine control model and is 2nd guessing all of my design decisions because the metaphor doesn't fit a canonical "programming loop" construct.
Other than that, it's a great job and they provide me with lots of cool equipment and for the most part let me explore many neat new ideas, so I'm not complaining. It's just funny (so funny I was up at 3:30am last night worrying about it all).
Let me guess, this is par for the course?