Life Is Too Short to Make Shitty Software
The other day I wrote:
“What we do is make software. And software is best made by humans who understand each other (and by extension understand the people who use their software). Unless they’re miraculously made up of such humans, organizations make shitty software.”
And I just had some more thoughts about that:
I don’t want to make or work on software that sucks anymore. Life is too short to work on something that is shit to begin with. Just because a piece of software improves your process or workflow over the paper version you used in the 80’s does not mean that it is not shitty software. Just because a piece of software is better than its competition in X, Y and Z ways does not mean that it is not shitty software. Just because a piece of software just like its competition except in that one way you need it to be different does not mean it’s not shitty software.
If we are to take our craft seriously, to consider ourselves worthy of our work, to join in a lineage of artisans and, most importantly, enjoy ourselves while we work and work in a way worthy of the life we have been given, then we must make software that is a delight to use, that makes our customer’s lives not just seem to be easier, but actually brings them joy in their lives.
It’s not good enough to add the features they want or fix the bug they are complaining about or improve the workflow that is still–despite your wonderful technology–a total mess and waste of their precious time.
The problem is most of our “users”…and what a terrible word for these people, these people we have a (for the most part) unseeing yet terribly intimate relationship with…but “customer” is also a horrible word! A customer is someone you exchange money for goods with, not someone who interacts with your product every day and alternatively praises and curses you in absentia, who scours the internet for advice on how to use your product, who navigates some joyless “customer service” experience in order to better use your shitty product. Usually, the only way the term “user” applies to those who use our software is in its similarity to “drug user”–they have no choice but to use our product, despite a more abundant life calling out to them from outside the boundaries of this myopic experience.
…The problem is most of The People Using Our Software are within an even larger set of boundaries: rules, expectations, norms, mores, groupthink, culture, ignorance…part of the reason we make shitty software is because we live in a frequently shitty world.
The other day I was riding in a group ride on the service road along I-30 in east Dallas and I was looking at all the shit along the road there and I thought of this video:
I don’t want this to be a Jerry Maguire mission statement, I don’t want this to be a Fight Club deconstruction of society. I don’t want to make any more movie references. I just want to make great software and I want to be empowered to do so.
I’m not even going to proof this post. I’m just going to put it out there as it is, incomplete and probably more than a little incoherent…but I’d love to hear what you have to say about this, too.