Stop Making Me Configure Shit

Do More Work So Your Users Don’t Have To

Joe Emison
3 min readSep 1, 2013

--

There are at least five “cloud monitoring” services out there, and none of them do what I see as the most basic, useful feature that they could provide: tell me why my Amazon Web Services bill increased from last month to this month. And when I contacted the several of them that I use about not having this feature, each said a few different things, but they all had one thing in common: they would really only be able to do this properly if I configured some more shit.

I used to think this was just a programmer problem: “Our users are stupid—of course the software does that; you just have to change the ImpenetrableParameterName in the NonExistantConfigurationFile, which is implied in our Documentation5.Doc”. In other words: I am a lazy programmer who does not want to do the work to figure out how best to serve my users, so I am going to build excess configurability into my software and force my users to get a Master’s degree in configuring my software.

Certainly there are good reasons for offering configurable features. But you should use Apple as your benchmark, where the number of options to configure are excellently limited. Instead, it seems that the default programmer view toward configuration is heavily influenced by sendmail, which has a famously impenetrable configuration—so much so that you have to learn an impenetrable configuration language and then compile that to make the actual sendmail configuration files. Read this, and then have a moment of silence for all of the linux sysadmins who have had to deal with sendmail over the years.

Ok, so programmers like to push configuration options onto users instead of figuring out what defaults are going to be fine for 99% of all users and putting those in place. Logically, this makes some sense: it’s easier to do less work. But increasingly, these Internet startups have developers, product managements, product marketing managers, community managers, etc, and for whatever reason, they all buy into this same terrible idea that customers should input lots of information. Why?

First, I blame the desire to make every startup a “social” one. And by “social”, I mean “let’s get the customer to provide us with a lot of information that we can then sell to various other people.” Or perhaps, “let’s get the customer to provide us with lots of information so they’ll be locked into our service because boy, that would be a pain in the ass to do again.” Or even, “if we get the customer to provide us with tons of information, we can figure out lots of different other things we can sell to the customer.”

Second, I blame young product managers for trying to make the perfect the enemy of the good. Would your product be perfect if I spent an hour each day telling you all sorts of shit? And would it only be good if I only spent 5 minutes up front and then never told you anything again? If that’s the case, then make your product good, because the number of people who are going to give you lots of information repeatedly over time is so miniscule that you’ll fail.

So: product managers, community managers, programmers, etc., I submit this proposal to you. Assume your customers’ time is worth at least $100/hour. Discount your product based upon the amount of time customers have to put into configuring and figuring out how to use your product. So if you want to charge me $150/month for a product, but I have to spend 2 hours each month configuring and figuring it out, then you should pay me $50/month to use your product.

And if someone can build a cloud monitoring service that can send me one single email a day that tells me what my expected AWS spend is this month versus last month’s actual spend and explains what services the increases/decreases are coming from, please email me and I’ll sign up. Unless you’re going to make me configure a bunch of shit—in which case, just leave me alone.

--

--

Joe Emison

Founder and Chief Technology Officer @ BuildFax; Contributor to The New Stack