« What makes a good tagging UI? | Main | The perils of working alone »

The mid-project hump

In every major project I’ve worked on over the last ten years, including the one I’m doing now, I’ve hit a psychological wall about half way through. The initial research and requirements gathering stage always flies by, because talking to people about great ideas is fun, and turning bad ideas into good ones is rewarding. The design stage – and I hope you have one – where the specification is written tends to go quickly too, because there is something tangible in those user interface mock-ups.

The problems start once I start writing code. I’ve always started implementation from the bottom up, developing the skeleton of the system, the database schema, the parts of the system where concurrency problems make my head hurt. I suspect that this may be why, about two months into any project, I’ve always found it incredibly hard to motivate myself. The problem is not seeing anything happen – what I’m working on might not get used in the product for months after I’ve finished it. Developing the user interface first can help, but there is a danger of ending up with a prototype that needs to be turned into a product, something that is rarely good for your health.

Lately, I’ve found that a way to motivate myself is to make tests my milestones in the initial coding stages. In parallel with building a subsystem I build throwaway implementations of the subsystems it interacts with. These aren’t mock objects – they’re fully-fledged but completely naive implementations that would never scale to real-world use, with instrumentation so test cases can be written. Each time the tests for a new piece of functionality are written and passing, I can check in and pat myself on the back.

This type of development has many names – test-driven, test-first, tracer-bullet – but for me it’s just a way of giving myself real goals during the most difficult stage of a project.

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00e55080fa7a883400e551e269088834

Listed below are links to weblogs that reference The mid-project hump:

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment