Perfect vs. Shipped

I overheard an amusing comment in my team-room the other day, I think it might have been Kris Kemper who said it – “Anyone who knows Ruby On Rails has a half-done personal project that’s going nowhere”. How true. I have at-least three.

The thing is, in my mind I’m always envisioning these grand cathedrals, and even when I do start work on any one of them, I never seem to quite finish them. Or I don’t complete everything properly (or quite enough to be production-ready), and the application is never quite done.

I think it has to do with a lack of focus. I find myself thrashing between the hundreds of things that interest me, and I end up with a ton of unfinished work. I’m very much into lean software methods, and I know that all I’m doing by operating this way is creating a lot of inventory. I seem to be able to use lean and other workflow management techniques at work, but in the world of my personal projects, I seem to be at a loss.

Sometimes, it has to do with trying to get everything perfect. After all, since it is a personal project, I feel like I don’t have a delivery dead-line, so I can take the time to get it right. Which leads me down the rabbit-hole of perfection and cathedral building, with no real end. Cause there probably ain’t anything called perfection.

When consulting for our various clients, I’ve a clear idea in my mind about the compromises and trade-offs needed between design, architecture, refactoring, and delivery. And I aggressively do whatever might be needed to prod the folks along (be they developers, or product-owners) to get the thing done and into production. After all, there’s always another iteration coming up, and there’s always a next release.

So why the heck can’t I seem to do the same thing when I’m working on a nights-and-weekends project?

3 thoughts on “Perfect vs. Shipped

  1. Hey Amit,

    Have you read “Getting things done”? It’s that Dave Allen book that was doing the rounds at TW a while back. I’ve always suffered from the same thing- too many exciting things to do, too little time. I’m only a few chapters in but I think Dave might be on to something. It feels a lot like agile for your life- sounds like what you’re after.


  2. “and I know that all I’m doing by operating this way is creating a lot of inventory”

    You need to be careful when you use metaphors – the map is not the terrain – “inventory” is avoided in lean **manufacturing** because it has a very high cost, particularly by using up materials you have already paid for and occupying (costly) space, among other things.

    If, instead of assembly line manufacturing, you use another analogy, say that of an artist’s or sculptor’s studio, things might look different. you would expect to see half finished and abandoned pieces of aret (or sculptures) in the craftsman’s workshop, and that’s quite all right. It is *expected* that an artist (think Leonardo) will make many sketches and abandon many of them. It is only if you think of an assembly line cranking out statues or paintings that the notion of an unfinished work as “waste” gains some minor credibility.

    SO maybe it is as simple as “work feels like a factory floor, pet projects are works of art”.

    As with most ideas in “lean software” (which I personally think is a lot of bull****) the ideas don’t really make sense where there is no assembly line involved.

    So unless you think of software development as some kind of assembly line process, you don’t need to worry too much about “accumulating inventory”.

    Your larger point about the difference between the “feel” of work and hobby projects is a very valid one. But the
    “inventory” idea weakens the argument (all imho of course)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s