My approach to what I do in my job — and it might even be the approach to my life — is that everything I do is the most important thing I do. Whether it’s a play or the next film. It is the most important thing. I know it’s not going to be the most important thing, and it might not be close to being the best, but I have to make it the most important thing. That means I will be ambitious with my job and not with my career. That’s a very big difference, because if I’m ambitious with my career, everything I do now is just stepping-stones leading to something — a goal I might never reach, and so everything will be disappointing. But if I make everything important, then eventually it will become a career. Big or small, we don’t know. But at least everything was important.
A theory of change is the opposite of a theory of action — it works backwards from the goal, in concrete steps, to figure out what you can do to achieve it. To develop a theory of change, you need to start at the end and repeatedly ask yourself, “Concretely, how does one achieve that?”
Something strange is happening in the world of software: It’s slowly getting worse. Not all software, but a lot of it. It’s becoming more sluggish, less responsive, and subtly less reliable than it was a few years ago.
In some ways this is hyperbole. Objectively, we’ve never been able to do so much, so easily with our smartphones and laptops and tablets. We’ve never pushed more data between more places more readily. But while the insidious “worseness” I mention falls only in part on the engineering side of things, it falls harder on the more subjective, craft side of things, making it all the more worrisome.
Why should we care about this? Because the majority of our waking hours take place within the confines of applications. A truth recently amplified by the covid pandemic.
And I believe software used by millions (if not billions) has a moral duty to elevate the emotional and intellectual qualities of its users. That elevation begins with craft.