inessential by Brent Simmons

This Feature Should Be Easy

From time to time people note, in feature requests, that a particular feature should be easy, and they’re surprised it hasn’t been done yet. Sometimes they even say that it’s so elementary that they really consider it a bug that it hasn’t been done yet. Especially given how easy it is.

I’ve written about this before. See Bug Guilt Trips from 2003 and Anatomy of a Feature from 2009.

A feature is pretty much never as easy as it seems. The main function of a feature — whether that’s making a https call to a read-it-later service or adding some fairly simple new view — is often the easiest part.

It’s everything around the feature that makes it harder: UI design, localization, refactoring, accessibility, state restoration, getting new artwork (for a toolbar button, for instance), dealing with errors, testing, updating the documentation, etc.

And then you still have to schedule it: as important as a feature request is, there might be others with a higher priority, and resources are always limited. Doesn’t matter who you are.

* * *

When you get developers alone, and you make a joke like “Why don’t you just…” or “I bet you could do this in an afternoon…”, they all laugh, because they’ve all heard this.

I most definitely do not want to discourage people from making feature requests, whether for my app or anybody else’s app. Please make feature requests! And report bugs!

But I would ask that you try not to call something easy. The developer of that app will have a pretty good idea of the requirements and the level of effort, and it’s never as simple as it looks on the surface. And they also have a good idea of what needs to happen, for various reasons, before work starts on that feature.