Do you spend weeks running benchmarks and optimising your code without asking/observing a single actual user whether they care if that bit is fast or not?
Or would it be more efficient to ship something, gather data and iterate where relevant?
Because if you're not doing that, I can guarantee other people are. Sadly being the first and moving fast (adding features as users request them) is in many cases better in the mobile market than having the snappiest app with zero memory leaks and excellent battery efficiency.
The whole Turkish mobile gaming industry works on this principle, they ship like crazy and iterate quickly to see what sticks.
Our discipline has swung way too far in this direction. The useful insight of "watch your users use your product -- you will always be surprised about something" has turned into "you cannot possibly have any vision or produce a useful product without constantly probing your users".
A/B testing, design by committee -- it reeks of cowardice and produces garbage. It reminds me of an SNL skit where politicians in a debate were able to see real-time social media responses to their talking points, and they immediately started playing a sort of "hotter/colder" game, changing their politics to try to get the graph to go up.
I promise you it's possible to just have an actual vision yourself. Yes, talking to users will surprise you, and it's important. But the idea that you cannot possibly iterate without shipping code is way, way too extreme.
It’s an old concept, called “taking risks.” Corporations and executives have been doing it for centuries. In fact, that's the excuse that executives give, for their monstrous salaries.
I think we have a culture, where people genuinely believe that we have some “right” to a risk-free fortune.
Training users to pay for unripe garbage, is probably one of modern Marketing’s biggest coups. It affords the “MVP model,” that everyone uses.
The other big coup, is “The Company is the Product, the User is the Resource, and the Investor is the Customer” model.
Steve Jobs famously, made many errors, in his career. Probably most of his ideas were duds, but the ones that scored, scored big.
He was also, famously, a world-class prick; but he wasn’t a misanthropic prick. He actually liked people (certain ones, more than others, I guess), and had a way of understanding them. That figured prominently, in his product ideas. Many folks are misanthropes, and refuse to understand people, so they have difficulty coming up with ideas that people might like.
Taking risks, and "putting our money where our mouth is," is the “old-fashioned” way of doing it.
As much as I hate the veneration of Steve Jobs, this is one thing he was good at. Does anyone seriously think the iPod and iPhone would have ended up the way they were if he was putting half-assed music players with bare wires in the hands of users and going "do you like it? Is it OK? Would you buy this? What do you think? Is it too much? It's too much, isn't it? Should it be white? Is white OK? Do you like white? I noticed you didn't push the button. Do you like buttons?". Hell no. He took the prototype and said "Too clunky. Too big. I need to be able to lick it. It needs to feel better in my hand. Try again"
Yet not only do software developers do the timid design-by-focus-group all the time, they confidently tell you you're doing it wrong if you don't do it this way.
The mistake many people make, is casting what’s good for the goose, onto the gander.
I Serve a demographic that can suffer great harm, from half-baked crap. Also, there’s no money to be made, so what’s the hurry? If someone else comes up with something better, that’s actually a good thing.
I have been shipping software for my entire career. It’s quite possible to ship good stuff.
It’s just more work, and less financially rewarding, so fewer people do it. It just gets my goat, to hear people say that it’s not possible.
Do you spend weeks running benchmarks and optimising your code without asking/observing a single actual user whether they care if that bit is fast or not?
Or would it be more efficient to ship something, gather data and iterate where relevant?
Because if you're not doing that, I can guarantee other people are. Sadly being the first and moving fast (adding features as users request them) is in many cases better in the mobile market than having the snappiest app with zero memory leaks and excellent battery efficiency.
The whole Turkish mobile gaming industry works on this principle, they ship like crazy and iterate quickly to see what sticks.