(Based on a talk for Agile Australia, cancelled)
“Nothing is less productive than to make more efficient what should not be done at all.”
– Peter Drucker
“You don’t try to build a wall. You don’t set out to build a wall. You don’t say, “I’m going to build the biggest, baddest, greatest wall that’s ever been built.” You don’t start there. You say: “I’m going to lay this brick as perfectly as a brick can be laid.” And you do that every single day, and soon you’ll have a wall.”
– Will Smith
I have arthritis. I developed it when I was 12. It’s hereditary, my parents have it, grandparents on both sides have it, was only natural I would too. Plus I used to be a highly ranked tennis player, in training constantly which made it worse. Today, it makes working and programming for long hours difficult since there’s only about 3-5 good hours of productivity each day before my hands seize up.
I remember finding out when I was little and thinking it meant my hands are broken. In a sense they are and having a horrible fear it meant I’d never be able to get a job. My parents were worried for a long time too. Nobody wants to hire someone who explicitly cannot work as much as other employees. It’s one of the background reasons for starting my own company so you can be more in control of the time and why I’m pretty certain it will succeed. Because otherwise, what else will I do. Necessity driven entrepreneurship in one of its most privileged forms.
Contrary to the inherent limitation, it’s been a blessing rather than a curse. Because implicit in the disability is an ideology of how to be productive. I get around it in a lot of ways. Voice recognition, DVORAK keyboards, Launchy Shortcuts, Utitlity Software. These days the only thing I use my hands for is programming and writing. Everything else is done by voice.
But I also consider myself to be one of the most productive people I know. I like to think I do a lot of work and get a lot done and have a really high output. But how can that be when also handicapped?
To use a programming context, it means spending more time designing the application so the build time and amount of code to be written is reduced. Everything is systemised and if a task can be removed, it should be. In practice it means creating lots of systems to do multiple tasks at the same time, like killing multiple birds with one stone.
Systems are created with the explicit goal of trying to get as many birds as possible per stone and becomes a kind of parallel processing whereby more than one task can be completed with one activity.
A good example is I send a high frequency of email but also blog a lot. So instead of doing these as separate tasks I just write hugely long emails as a proxy for blogging. The recipient often replies and tells me where I’m wrong. Then you copy the emails to the blog and edit. Suddenly you have killed 3 birds with one stone. Blogging, email and editing.
Another is reading. Normally I don’t have time for it. Except I stopped reading books a few years ago and switched to audiobooks, mostly listening in transit or while doing chores. I spend an hour a day commuting to and from university and another few hours a week completing chores. At that rate am completing about 30-40 books a year that I would otherwise not have time for.
There’s lots and lots of things like that.
Meaning you have to work smarter because you can’t brute force being productive. You have to be productive in a different way and augment how you measure what being productive means. The name of the game is efficiency and it’s influenced a lot of very important technical decision making. Efficiency means making the most of your resources. Trying to return maximum X using finite Y. This looks like another problem, an optimisation one. How can you yield maximum utility from a limited operation.
The more limitations, the more focused you have to become. I live on a college with an internet limit. Every student gets 750 MB per week. After you run out, that’s it. No more internet. Ironic because I run a software company but it means you have to make the most of it. The web is practically a limitless place to waste time with nearly every distraction ever made just a few clicks away. So you stop wasting time because there isn’t enough bandwidth.
They also shut off all ports required for server access and ban use of FTP. It’s a silly college rule. So we don’t have access to our own servers. It sounds comical but has influenced a lot of our technical decision making. We’ve had to adopt a live editing approach with lots of subdomains. But it’s made us very disciplined. All changes go live immediately. We don’t even use version control. If it breaks, it breaks and you better fix it fast. So the responsibility and incentive is to be methodical and right and to learn hurriedly. To make mistakes but fix them quickly.
Implicit in this is an investment philosophy. That whatever you are putting your time into should run over a large time horizon. That the dividends of the input from time into a project should continue theoretically forever. So you continuously benefit, compoundingly from every hour you spend on something.
This is better illustrated with an example. One of the lead investors in Medicine owns a bunch of hotels. He’s used to a situation where you invest slowly and heavily at the beginning then hold onto it forever so you are near constantly benefiting from the effort at the onset. If it takes 3 years to establish a hotel and it runs for 50 years, you are returning a huge multiple on that initial 3 years.
The trick to investing in this way is not absolute returns but proportional returns. If you start with a billion dollars and you return 2 billion, your return rate is much lower than if you started with a million dollars and return a billion dollars. The principle is the same. Create systems that amplify. Work smart, not hard.
The ideas of lean software are based in lean manufacturing. That you only do what creates the most value from as little effort in a way that removes as much wasteful activity as possible. So you reduce the amount of unnecessary energy expenditure if it doesn’t yield a similar amount of utility. What results is you don’t do anything unless you get a huge benefit from it.
But following the train of thought you end up in a bizarre area. Why do you work hard at all, if the same result occurs from not working hard. A basic analysis leads to a conclusion that most of the work getting done isn’t actually work. It’s orthogonally related so can pass for work but doesn’t actually create value. That’s what most people find themselves doing and is how they can spend a lot of time doing something but also not get much done. Because they were either a) doing the wrong thing or b) doing it ineffectively.
If you do end up doing the wrong things, that’s ok so long as it happens quickly and the effect is minimised. It’s bad to go down the wrong path for a long time without results. Because you’ll waste time and resources. Recognising and stopping this from happening when it does is the essence of failing fast and experimentation.
A natural test is, after you’ve spent a lot of time doing something, do you have anything to show for it? If the answer is no, then you weren’t really working effectively or getting much done. If you were, you’d have a lot to show right? So you focus more on value creating activities. Things that by investing hours now will pay off dividends for years later.
A great way of doing that is by creating a priority list VS time. Where I list everything I have to do VS how much value it will create in 10 years time. I’ve always found these kinds of lists to be really helpful. And they only take 10 minutes to do. It helps you decide what to measure and to focus on what’s actually important so you don’t waste time doing things that aren’t. A lot of the time you find things only benefit in the short term or don’t at all.
And before beginning tasks, I think about it a lot before doing anything, so when you get around to it, there is as little wasted activity or time as avoidable. In a sense a disability kind of embodies that. It forces you to be lean via a set of natural disadvantages. You end up naturally not doing anything that doesn’t have a high output. So you are saving time and working efficiently.