I though I had it.
After reading Joel's Painless Functional Specifications I tried to do something similar for project Snakeoil. It was nice. It uncovered a lot of things noboby has thought of. Making a spec forces you to think about a lot of details. Where and how are errors displayed? What happens if? How should we interact with the user?
It was written mainly with the UI in mind, but it touched some points concerning the algorithm and hardware.
As mentioned, a lot of companies are involved. First there is the mother of our company, lets call them A. Then we have company B where I work. Company B is in a different country than company A. And we have company C, which is located in yet another country surrounded by water.
Now, company C should be in charge of the product and the hardware, as they will brand and distribute it. Company A will do the algorithm and company B will do the UI stuff (my work).
Last week, I visited the algorithm guy at company A (remember, different country). I needed to talk with him about integrating the algorithm in the UI. As I thought it would be nice to have his input on the UI spec, I send him the document. The result was something I didn't expect. It seems, he has been working in some sort of vacuum, as there was nobody else involved at company A. He has been once to company C, but that was it. Now my spec suddenly fuelled his energy. See that his algorithm would soon turn into a product, made him very cheerful. Amazing.
So, here I was with a draft for a spec. And I had made somebody happy with whom I had to work. Suddenly I feel I have energy for this project. I can drive this project to a product. Me, a measly developer, not somebody with a management title. Effectively, I was in charge.
Then came a meeting.
With the head of software development at company B.
Now we lost the person driving the project. Me. We bemoan the tragic loss. I'm just no longer interested. If somebody else wants to drive it: Go ahead, feel free. But don't count on my support.