How to build great products (2013)
defmacro.org
defmacro.org
- Asset economic viability i.e. you must be able to recover the cost.
- Ability to build and nurture a solid team that can deliver a product of reasonable quality and robustness.
- Find who your end-customer and paying customer is and whether this problem is light or hard in their head. Accordingly curate the right messaging for the product for marketing purpose.
- Ensure that there are no legal challenges.
It is all about prioritizing features, as the real estate back then was bad.
I call it “Front of the Box/Back of the Box.”
The Front of a box on the shelf has two or three major eye-catchers, in huge text.
The Back of the box has four or five more, in slightly smaller text, and the sides of the box have the rest of the features, in even smaller type.
This drives my development priorities, as well as UX.
Engineers always want to do the most difficult thing first, just to get a feasibility study done, and the most challenging part out of the way, which makes a lot of sense (engineers tend to be quite sensible and practical).
The problem is, is if the most important feature is easy, it can be left to last, and can be jettisoned, if work on the most difficult (but less important) feature borks the schedule.
So you get a technically marvelous app that does what no one wants.
I’ve done exactly that. Repeatedly (I’m a slow learner). It sucks.
This sounds similar to principle of WSJF and Cost of Delay that I learnt from "Principles of Product Development Flow". TL;DR. Ship the easy but valuable stuff first so that your users can get value out of it while you work on the hard things.
The mistake I've seen happen applying this in practice is that you end up cutting all the hard things which leaves you with a product made up entirely of easily copyable stuff and not much differentiation.
In fact, I am dealing with that right now, on a low-level Bluetooth SDK[0] I’m developing. It works great on iOS (and I even have a shipped app, based on it[1]), but I can’t consider it “shippable,” until I have test harnesses written for the other three systems (I’m just finishing up the Mac one, now).
[0] https://github.com/RiftValleySoftware/RVS_BlueThoth
[1] https://apps.apple.com/us/app/blue-van-clef/id1511428132
1. Differentiators. ("Gamechangers" in the article.)
2. Tablestakes. ("Showstoppers".)
3. Niceties.
I like "tablestakes" because it describes the presence of the feature and not its absence. Also, a betting metaphor implies that this is a moving target. The tablestakes can be raised on you if all your competition adds some beloved feature. When Dart first launched, non-nullable types would have been a differentiator. Now it's tablestakes.
Languages are interesting because you have a very limited budget for differentiators. Users have a finite appetite for novelty in programming languages, so you have to spend that wisely on a small number of very compelling features.
The third "niceties" category is interesting. Those are features that please existing users but are not compelling enough to attract new ones. There is an argument that you should not focus on those if you are trying to grow your userbase since by definition they aren't compelling enough to attract new users.
But I believe they can be important for growth. Shipping features that bring joy to existing users can help turn those people into your product's evangelists and, especially in programming languages, you really need that.
In business, if you have a product nobody wants, you generally fail. If you have no means of capitalizing your company, you generally fail. But if you turn the product into a money-printing machine, you will resolve other problems with enough iterations. Sales momentum does not make your startup immortal but sets the company on a better trajectory than another startup with amazing culture, great passion, but no customers/revenue.
I worked for one that (on average) spend 950 euro to sell a 1000 euro product that isn't worth 5 euro. (It was extra "funny" since I just gave up trying to "sell" a similar vastly superior product for free. "Suspiciously cheap" was my potential clients verdict 99% of the time. After all, from all angles, every day of the week, they were offered the same product for 1000 euro!) I never sold anything working there but that was perfectly normal.
Good example from the Github Team: https://github.blog/2018-08-28-announcing-paper-cuts/
People buy a product because they are forced to buy it and people use a product because they love it.
This is the biggest mistake people make in product management, is to forget the customer
> it follows that most startups fail because they don’t ship a great product
this is so wrong
edit : funny that the guy behind the article created only one company (rethinkdb) which failed because they didn't find a business model
That's the best situation to be in, but people certainly often buy stuff just because they think it will benefit them in some way.
It's worthwhile to think about the sheer marketability of a product beyond its strict usefulness. Some things are easier to sell regardless of the actual functionality.
I agree is not the other way around where you try to make something people will fall in love, that's why I think "scratch you own itch" is such a great advice.
- Good UI - Fast UI - Good performance and if this is not possible, keep the UI responsive and give Feedback to the user