The idea of “a basic feature” when it comes to creating software is such a weird notion to me. Last week, I was reading a blog and came across the following comment:
I don’t have a [device redacted] but these all seem like extremely basic features that should be there from the start.
And it’s a strange thing because the implication is that whatever is released out of the gate should be something that’s feature complete and should conform to whatever you (or whoever makes these comments) thinks of how a product should function.
But this carries several implications with it.
A Basic Feature
What constitutes a basic feature? I imagine if you ask ten people, you’d likely get ten different answers. For the purpose of this post, assume that I’m talking about the core set of features that give the product its identity and that can be iterated on to improve said product.
This should be general enough to apply to a variety of both software and hardware, but concrete enough so we can draw parallels in our minds with a given product.
1. When Do We Want It?
Whenever we begin talking about what seems like a fundamental feature is, in a sense, saying that we’d rather wait a little bit longer for something to be released so that it had the given feature built into the product rather than have the product in our hands earlier.
Why’s that? Part of it, I think, is because we want what we want in the state that we want it, and we want it now.
Here’s the thing:
If every company waited until each feature they had on their roadmap was eventually complete before releasing the product, I’m not sure a product would ever get released.
Don’t features beget features beget features at least to some degree?
2. What Do We Want?
Admittedly, this is rooted in my personality; I love iterative development. If I get a product that’s a very strong 1.0, then I know that there are going to be new features that are coming down the pipeline based on bug reports, user feedback, and other information that’s collected through how users use the product.
That is, I’d rather have a new version of a product with a core set of features that can be updated over time rather than have something that attempts to tackle all anticipated use cases from the beginning.
Your Basic Feature
Ultimately, I know that what you consider your basic feature is not what I’d consider my own. After all, there’s a level of functionality you expect out of your products that I may (or may not) necessarily expect.
But when it comes to making comments about how something seems like an “extremely basic feature,” I can’t help but attribute this to a presumptuous attitude about how a wide variety of people use products and the decisions that are going into creating said product.
If you’re someone who finds yourself thinking that way, ask yourself why. And if you’re someone who doesn’t find yourself thinking that way, then congratulate yourself on being an exceptional human being.
Instead, if you’re someone who doesn’t find yourself thinking that way, still ask why. That is, why do you seem to be okay with a basic feature set rather than what some others expect.
I think these give us insight as to what we’d expect from the product we use.
For those who build products for others, it also gives us insight on to how we might shape our work moving forward.