A serious suggestion from SecretGeek.  
Set up your development environment or editor to automatically list all lines with TODO tags - Visual Studio does this by default.
Step 1
- Write Class or method outlines (ie, 'Public Class ...' or 'Public Sub...' with no code inside.) 
- Include rough logic 
- Add pseudo code preprended with "TODO:" 
- Only write the very trivial code -- anything else just add a TODO 
Step 2
- Repeat step 1 until the whole application is roughed out 
- You've now got a big list of 'TODO' tasks 
- Check for completeness (breadth) 
- See what can be removed. 
- See what can be simplified (eg, two similar todo comments: can they be made identical? 
Step 3
- Replace TODO's with calls to non-existant classes, methods etc... 
(For test driven development, create exhaustive tests for each of these methods/classes)
Step 4
- Fix One Compilation error at a time by: 
- writing shells of classes, methods etc, 
- Adding TODO: pseudo code to each of these as you go. 
- (Also Add 'HACK: ' comments and explanations where appropriate, if pressed for time) 
- Where appropriate, replace TODO's with the trivial code required 
 
Step 5
- Repeat Step 4 until there are no compilation errors left. 
- If there are TODO's left, then Go back to step 3. 
(There's also a lot of prior planning, paper prototyping, customer meetings, discussion, procrastination, database design, coffee-drinking, code-generation for sprocs and crud-sproc calls, import of re-usable DAL's, PAG block usage, go PAG!, back-and-forth debates prior to document sign-off, arguments, late-nights, frustration, chatting with friends, sifting through email, scratching in visio, printing things out and leaving them in a heap, scrounging for staples, catching buses, doing back and neck stretches etc., but that's all been left out for simplicity...)
(MarkJ again) A bit like the pseudo-code programming process from Code Complete. And we all agree everyone should read Code Complete, right?