The Stewart Method: How Not To Suck 5

Posted by Mark 08/05/2011 at 10h42

Don Stewart is a monster of productivity.

and more libraries on hackage than you can shake a stick at:

$ cabal list --simple-output | sed 's/ .*$//' |sort -u |xargs cabal info |grep "Don Stewart" |grep Author | wc -l

54

 

I point these achievements out not to blow smoke up his arse, but to observe that he's obviously doing something different. So, when he came back to Sydney for his PhD graduation, after many beers I prevailed upon him to reveal his dark secret. It turned out to be an elegant, two-step plan.

1. Write code for your own projects, every day.

This is about building coding muscle and discipline. Habit is stronger than willpower: if you reach the point where it's physically uncomfortable to miss a day of coding, you've got a big jump on the competition. It's even better if you can tie this effort to a particular time in the day, like a train commute.

2. Release a project every week

This is a hell of a lot harder than the first. Programmers are perfectionists. Combine these two simple facts:

  • It's embarrassing to release incomplete projects
  • Every project could have extra features

and you have a guaranteed recipe for a project folder full of promising starts and no released code.  

So, how do we sidestep this? There are really only three axes of control in software development: time, quality, and scope. Clearly we're not going to compromise on quality, and by the nature of the exercise, we have to finish a project every week. The only flex we have is in scope, and this is really what this step is all about.

You must kill your darlings. Cut the scope down to the absolute minimum that could possibly be useful. If you finish early in the week, by all means add features: having a working prototype will give you a better idea which are useful and which are gold-plating.

In any case, I've decided to give it a go. Starting with the release of Instigator, I'll be releasing a new project every week. Stay tuned.

Comments

Leave a comment

  1. Brian McKenna 08/05/2011 at 11h56

    Thanks for writing this. I was wondering how it was possible for him to do so much.

    I’ll also try to publish some code every week. I’m actually working on a largish project so this might force me to release it in modular chunks.

  2. Mark 08/05/2011 at 23h10

    Hi Brian,

    glad you found it useful. What’s your project?

  3. Tom Davies 09/05/2011 at 00h11

    Do bugfix/point releases count for Don’s weekly releases?

  4. malkia@gmail.com 09/05/2011 at 07h24

    Never heard of Don, but he reminds me of Edi Weitz of the Common Lisp World, http://weitz.de

  5. Isaac 09/05/2011 at 07h41

    Oh man. Where’s my Twitter button?

Comments