I'm working on a client server app using the Tracer Bullet approach advocated in The Pragmatic Programmer and would like some advice. I'm working through each use case from initiation on the client through to the server and back to the client again to display the result.
I can see two ways to proceed:
- Cover the basic use cases, just writing enough code to satisfy the use case I'm working on, then go back and flesh out all the error handling later.
- Flesh out each use case as much as possible, catching all exceptions and polishing the interface, before going on to the next use case.
I'm leaning towards the first option but I'm afraid of forgetting to handle some exception and having it bite me when the app is in production. Or of leaving in unclear "stub" error messages. However if I take the second option then I think I'll end up making more changes later on.
Questions:
When using tracer bullet development which of these two approaches do you take and why?
Or, is there another approach that I'm missing?