“Several distinct problems manifest themselves as delays in launching: working too slowly; not truly understanding the problem; fear of having to deal with users; fear of being judged; working on too many different things; excessive perfectionism. Fortunately you can combat all of them by the simple expedient of forcing yourself to launch something fairly quickly.” — Paul Graham, The 18 Mistakes that Kill Startups
At Dryfta, we live by this↑ maxim. Shipping code early and often is an integral part of our code of ethics. The way we do it is we ask our customers to share their feature requests, set them up against our own list of feature updates, and then ruthlessly prioritize code shipping. If you’re the man/woman overlooking product management at your company, you should be skilled at prioritizing product features, market needs and growth expectations all at once.
You do not just build and ship a feature because you have to and then hoping for a customer to turn up! Nope. You ship it because you have an existing bunch of customers who want to use this feature. Also, when you ship often, the initial release might suck a bit. It might appear less mature and less complete. But that’s fine because it is helping you garner feedback in real-time and assess customers’ affinity for your product. It is only when you see people trying to use it, you go ahead and release a more complete and polished version.
Perfectionism is an expensive trait. Invest your time perfecting a feature only when you have customers using the less perfect version. Spread horizontal, find growth niche and then grow vertical.
PS. This post is inspired by David Mack’s post on the The Macro.