April 30, 2010

Momentum and a tip from Hemingway

Momentum is one of the keys of finishing a software project, especially one that you are doing by yourself. 

One common thing that disrupts my flow is realizing that I need to go back to the drawing board to sketch out a feature in more detail. Usually it’s something that seems minor when looking at an overview of the project but needs clarification before it can be programmed. I keep a notebook on my desk for this situation to draw out exactly what the feature will be and how it will work. This clears up the mental block and lets me go back to programming. It’s a back and forth process between design and development. Designer-developer Shaun Inman described it as a conversation between design and development that goes on when he is making something. I believe it was in this episode of the Pipeline.

Sketching features in more detail is a way to regain momentum but there is also a way to maintain momentum. Knowing what you will work on the next day is one of the keys to this. After I’ve defined enough of the design of a project I can go into development mode and start coding. A significant project will be a multi-day effort so it’s necessary to use some type of planning document. At a minimum, I have a basic design document that lists the main features. I’ll pick one to work on and then I sometimes use a sticky note (virtual or real) to track smaller milestones I need to accomplish. The sticky note is particularly useful when I’m in the middle of coding something that I need to continue the next day. I simply write down exactly what it is (for example, right now my sticky note says “Print the selected songs in the UILabel”) and the next day I know what to start working on. The project rolls along.

Hemingway found it useful to know in advance what he would work on tomorrow too. John Gruber shared in an interview that he uses a similar technique to write Daring Fireball:

Ernest Hemingway said this:

You write until you come to a place where you still have your juice and know what will happen next and you stop and try to live through until the next day when you hit it again.

He was talking about writing books, but I find his advice perfectly apt for what I’m doing with Daring Fireball. Without having a boss or editor, I could do anything at the start of the day. Leaving off the day before with something specific in mind for what to do next is an enormous aid to getting going.



By Michael Rakowski