On Milestones
When programming, it helps to have little goals to guide you along the way; for simple projects (like I suspect the server stuff for necklace should be) those goals break down well as:
- It compiles: code made into object format with no warnings. Apparently all the syntax was correct. (Inevitably I'll find myself back here when I compile with VC++ instead of g++.)
- It links: there's some sort of simple test program that exercises the code. Here's where I find out that I forgot to write certain functions. (Another way of looking at it is that link errors serve as a to do list.)
- It works: there's a basic test driver working and things are going swimmingly.
- It actually works: all the nasty corner cases have been tested (all that I can think of -- I mentally earmark as I'm coding).
I'm currently at the second step, hoping to get to the third eventually. Big systems aren't a cake-walk, and I'm enough of a realist to know that there will be bugs and they will be subtle.