write tests first? it's a trick to sketch out ASAP
With the goal of foresee problems as soon as possible and to publish a skeleton of API as soon as possible, we sould think of write a tests suite (along with header files that declare the API functions) before implementing the API in its full glory.
This would allow as to better clarify input and output. In the signature
int baloo(char* foo);
it isn't specified that, for instance, the return value is actually a bit pattern and what is its semantics. This can be clearly stated (and checked) in a test case, for instance.