To create a usable piece of software, you have to fight for every fix, every feature, every little accommodation that will get one more person up the curve. There are no shortcuts. Luck is involved, but you don't win by being lucky, it happens because you fought for every inch.
For many years, I had been looking for a book or a magazine article that would describe a truly practical way of coding modern state machines (UML1 UML stands for Unified Modeling Language and is the trademark of Object Management Group. statecharts) in a mainstream programming language such as C or C++. I have never found such a technique.
In 2002, I wrote Practical Statecharts in C/C++: Quantum Programming for Embedded Systems (PSiCC), which was the first ...