Tuesday, March 15, 2011

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 abstentia, 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:

America Is F*cked.......(Graphically at least) from Jess Gibson on Vimeo.

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.

Saturday, March 12, 2011

Good Writing is Good

Maciej Ceglowski is one of the proprietors of Pinboard and also an amazing writer. His recent post describing technical aspects of the great exodus from Delicious (to Pinboard) has too many gems to capture them all, but here are a couple in case you need convincing when it comes to reading technical blog posts:
Before this moment, our relationship to Delicious had been that of a tick to an elephant. We were a niche site and in the course of eighteen months had siphoned off about six thousand users from our massive competitor, a pace I was was very happy with and hoped to sustain through 2011. But now the Senior Vice President for Bad Decisions at Yahoo had decided to give us a little help.
We had always prided ourself on being a minimalist website. But the experience for new users now verged on Zen-like. After paying the signup fee, a new user would upload her delicious bookmarks, see a message that the upload was pending, and... that was it. It was possible to add bookmarks by hand, but there was no tag cloud, no tag auto-completion, no suggested tags for URLs, the aggregate bookmark counts on the profile page were all wrong, and there was no way to search bookmarks less than a day old. This was a lot to ask of people who were already skittish about online bookmarking. A lot of my time was spent reassuring new users that their data was safe and that their money was not winging its way to the Cayman Islands.
That post led me back to idlewords.com to which I was already subscribed, it turns out, but I clicked a random link and read Dabblers and Blowhards a brilliant critique of a book I have actually read:
It's surprisingly hard to pin Paul Graham down on the nature of the special bond he thinks hobbyist programmers and painters share. In his essays he tends to flit from metaphor to metaphor like a butterfly, never pausing long enough to for a suspicious reader to catch up with his chloroform jar. The closest he comes to a clear thesis statement is at the beginning "Hackers and Painters":
"[O]f all the different types of people I've known, hackers and painters are among the most alike. What hackers and painters have in common is that they're both makers."
To which I'd add, what hackers and painters don't have in common is everything else. The fatuousness of the parallel becomes obvious if you think for five seconds about what computer programmers and painters actually do.
  • Computer programmers cause a machine to perform a sequence of transformations on electronically stored data.
  • Painters apply colored goo to cloth using animal hairs tied to a stick.
...it goes on in similar fashion, you should go read it, especially if you've read Hackers & Painters.