Doing Good Work

June 19th, 2009

In February of 2003, I found myself physically and emotionally exhausted, sitting at home in isolation suffering from extreme burn out and whooping cough – under quarantine from the center for disease control. Whooping cough is a virus that usually only affects children and the elderly, but I’d been pushing myself way too hard at a job I didn’t really believe in or gain satisfaction from.

I was a software developer working for a company that builds back-end tax software, and I’d been working for months at about 70-80 hours per week. Some days I would work through the night and not get home until 10 or 11 the next morning. It seems crazy now.

While sitting at home alone waiting in futility for my “100 day cough” to subside, something snapped. I started looking at flights. I wanted to get away from my job, my life, everything that I had become, and reinvent myself. I wanted something more meaningful. I didn’t really know what it was I wanted at that time, but I knew I wanted out.

And out I got. I quit my job, cashed in my savings (about $20,000 at that time), and flew to India on an open ended trip. It was one of the best things I ever did for myself, leaving a situation that I knew deep down was wrong for me.

I ended up spending the next sixteen months traveling and living around Asia, contemplating my life and thinking about the way forward. It was a formative time, and full of revelation, freedom, self-exploration, and the building of resolve.

I came back intending to engage the world more actively and constructively in something that was more aligned with my values.

I feel aligned right now, highly intrinsically motivated, and overall – happy. I’ve got a lot of really great people in my life, and feel humbled to be surrounded by so much great work.

Knock on wood.

On Agility

June 17th, 2009

My new business partner Graham King is a self-described “agile development evangelist,” and it has led to some interesting discussions on if and how to run an agile company.

Agile development is a software development practice whereby a team of necessarily highly competent, self-directed, motivated, and mutually trusting developers iterate rapidly on software ideas in the absence of formal structure and planning. It is, in theory, more people centric, more responsive to change, allows for better learning over time, and avoids the unnecessary overhead of activities that are “about” software development, replacing them with actual software development, and faster, more effective working software.

I certainly have sympathies to this school of thought. Being a highly impulsive, entrepreneurial type who is constantly multi-tasking, tends to reject authority, and interacts interpersonally on the basis of merit and personal respect, rather than position or process – it is intuitively satisfying to me.

But at the same time, I’m also an experienced project manager, and I have a deep appreciation for the motivational power of extrinsic forces – particularly the customer, not all of whom have a desire to be intimately and rapidly iteratively involved in a software development process driven largely by technical resources. In addition to this, my view of human nature is that most people work better under some degree of pressure. I can see the risk of an agile team becoming too inwardly focused.

A restaurant analogy seems apt:

The chef is most concerned with preparing a delicious tasty meal, and is often not customer focused. In preparing the perfect meal, the customer is likely to have to wait, or to have to come back to the kitchen to provide advice to the chef, sample different sauces, be involved in the preparation process. In most cases, the customer just wants their meal to not be burnt, and most importantly, delivered on-time – because they are hungry. I worry that agile development can easily lead to the technology driving the business. Like having the chef run the restaurant. One of the classic errors in software. 

But with that said, I think there is great strength in agile development, and it’s a relatively new – and kind of exciting – idea to me. So for now, I am going to trust Graham, and we’re going to try it out. Apparently its worked quite well with Google.

Next post – how to run an agile company? Forget technical software development, how applicable are agile principles to running the business itself?

Canons, Fugues, Living Well

June 12th, 2009

I am reading Godel, Escher, Bach: An Eternal Golden Braid.

I’m only a few pages in, but am reading about the mathematical complexity of certain musical compositions. A canon, I did not realize, is a musical composition designed to have overlapping themes. A somewhat simple — though not as simple as you may think — version of this would be Row Row Row Your Boat, the version where one person starts singing it, and then a certain period of time passes, and the next person starts singing it. It’s a staggered melody. Easy enough, right?

The reason a canon can get mathematically complex with some speed is because a canon is recursive – it is self-referencing. When the second theme begins (the second person singing Row Row Row etc), the first note of the second theme and the current note from the first theme must harmonize. This is why all musical themes do not make good canons.

In a canon, the themes can also then be staggered in pitch, creating another level of complexity. Imagine staggered overlapping themes being sung in different keys.

Adding more complexity, a canon can also be inverted, that is one theme can jump downard by the same number of tones that another jumps upwards, possibly in an alternate pitch.

Lastly, a crab canon is the theme played backwards, much like a person doing the crab walk.

A fugue is a more artistic version of a canon, which can conversationally contain all of the basic mathematical elements of a canon operating in opposition to one another, while allowing for additional modes of artistic expression and deviation from the prescribed forms.

Hofstadter describes J.S. Bach as a master of the fugue, and in particular describes Bach’s Musical Offering as “one large intellectual fugue, in which many forms have been woven together, and in which playful double meanings and subtle allusions are commonplace…a very beautiful creation of the human intellect, which we can appreciate forever.”

I wonder if the fugue can be a metaphor for other human endeavors?