Chances are, that if you've been involved in the creation of software or any
kind of product, you've probably heard the advice: "Don't develop in a
vacuum".
A vacuum is a space that is essentially empty of matter (according to
Wikipedia). It's a philosophical concept because practically it is not possible
to have a space that is completely "empty". But, I like to deal in abstractions
anyway, so that's good enough for me. "Don't develop in a vacuum" generally
means not to go off and write code in the absence of customer feedback. This
should not be particularly controversial advice. Developing software without
knowing whether users will like it, based purely on speculation and conjecture
doesn't seem particularly smart. I've never met a single person that has
said: "You should go build your product in a vacuum!"
So, I think it's good to not develop in a vacuum and ask users what they
think as early as possible and as often as possible. But, it's great
to actually be users of the product yourself. This advice has been widely
circulated too. If you build something you would use yourself, your chances of
success go way up. The reason is not particularly complicated. It's more
efficient to have conversations with yourself than it is to try and go find
users. There's a lot less lost in translation as well. Rumor has it, the most
successful products at Google (like GMail) are the ones that Google employees
actually use.
So, if developing without user feedback is developing in a vacuum, then
what's the opposite? Developing under infinite pressure? I'm not sure, and I'm
not smart enough to stretch this analogy along this particular dimension. But
what I do know is that "developing for yourself as a user" starts to present
risks at a certain point.
Let me give you a real world example. My startup, HubSpot, develops inbound marketing software. For
purposes of this article, it's not necessary for you to know what that means.
Lets just say that many businesses need it as it helps find more paying
customers and increase sales. We originally started building the product
because we had the problem ourselves, and couldn't find a reasonably good
solution. So, we built something we thought we'd use ourselves. And we do. We
don't just casually use it either. We're extreme users. We run our
blog on it. We get sales leads from it. We track marketing analytics on it.
We live inside our product. We could not imagine life without it.
Most of the time, this is a really good thing -- except when it's not.
Here's when it's not: At a point, you have to stop and ask yourself how
representative you are of your potential market. If you're a lot like them,
then you can get away with having conversations with yourself pretty often and
not lose sight of the customer too much. If you're not like them at
all, conversations with yourself are not productive. My startup is somewhere in
between. Although we resemble our target customers a lot (we're a small
business with 25 employees, we sell to other businesses, and we have real
marketing people on staff), we're not a perfect fit. Most of our customers are
not as technical as we are, don't read SEO blogs all the time and actually have
lives . But, the biggest difference is that we know too
much. Not that we're smarter, but we're just around the problem too much.
We live it too much. We have people that think about nothing else all day.
Hence, it's easy to over-complicate the product because it seems "obvious" to
our internal users. They fly right through the new features. The solution? Go
get good, honest feedback from real customers/users whenever you can. There's
no substitute.
Summary: Don't develop your product in a vacuum. If you can, be
your own customer. But remember that conversations with yourself can only go so
far because you know too much and it's unwise to try and pretend that you
don't.
What do you think? Are you your own customer? Have you hit the limit of how
much feedback you (as a company) can give yourself? Would love to hear your
thoughts in the comments.
If you're a startup junkie, you can follow me on twitter
@dharmesh. Also, if you found this useful, please share it.