Sustainable Development Defined

An Introduction to This Blog

Cover Image

Sustainability is an environmental buzzword nowadays and generally means a process that can happen indefinitely. In other words the process does not consume resources more quickly than they replenish. Sustainable software development is not that much different. It recognizes that people are a resource. It recognizes that tired developers don’t do their best work. And it recognizes that institutional knowledge is a precious resource that should be protected.

My career started at Microsoft during a time when death marches were the norm. I saw great software developers either burn themselves out or leave for better working conditions, usually both. It got so bad at one point that management put a freeze on transferring out! Since I was not yet locked into the golden handcuffs I left the company and didn’t return for four-and-a-half years.

Based on that experience—and others like it—I have focused on learning why software development goes awry. I have researched and experimented with the how-tos of designing software and building teams so that the development process is smooth—and how to handle it when things goes wrong.

Here are some key points that define sustainability for me:

  • The team should work at a pace that they can sustain indefinitely.
  • Code should be maintainable so that a given pace produces similar (or better) output.
  • People can’t write software faster; they either write less software or spend more effort writing software in a given day.

I will be exploring these topics in more detail on this blog.

My mission statement has remained relatively unchanged in the last 20 years:

Software is broken and I want to make it better.

I do this by learning new techniques, improving the way I write software, and sharing my knowledge with others. I build teams so they are set up to write great software and I push against the usual suspects that prevent developers from doing so. This blog is an extension of that. I hope you enjoy it and learn something from it.