That said, some devs interpret "quick" to mean "sloppy", which is not correct. When you can cut releases hourly the cost of some kinds of bugs does go down, but fewer bugs is better, and as always some categories of bugs are, "never, ever" (e.g. data corruption/leak, security bugs, outage inducing bugs).
I went straight from hobby programming to freelancing, so I've been "rediscovering" best practices the hard way.
I did actually intend to do things properly, but client asked "can it be done faster" and I thought "sure I'll just ship fast and then rewrite it later"... ha! Project became so unmaintainable, development ground to a halt. (I am doing the rewrite now...)
Turns out sometimes my job is to say "no."
Early in my career, everything was a yes and it cost me a lot of sanity. It rarely cost me clients because I was so diligent about keeping things on the rails, but that seemed to come with an inversely proportional cost to my well-being.
It took me a long time to realize that saying no is kind of like saying yes; you’re saying yes to getting the project done on a reasonable timeline and with the budget the client has, and most importantly, with your happiness intact. Saying yes at the wrong time can be saying no to finishing the project at all. It’s the right, and in a sense “nice” thing to do for everyone involved.
If you’re a chronic people pleaser, this kind of work can be extremely taxing (speaking from experience).
I wish I was joking.
Totally agree, but I've seen some devs completely melt when we need to go fast/iterate. For them, they really do produce sloppy work when they go too quickly. Many "big thinker" types are like this. Not defending it, just an observation.
Those paying customers are where your MRR comes from. Another case of perfect being the enemy of good.
He is so insecure to talk to customers and iterate with them that it gets on my nerves.
He always have an ideal of "finished work" that, very often, we end delivering something not finished and/or wrong because we didn't iterate enough.
Customers not always know what they want even though they say that they know what they want.
You can find the text here:
https://abseil.io/resources/swe-book/html/ch02.html#help_me_...
(disclaimer: work there, but wasn't involved in the book at all)
I just experienced this today, just now. the whole org’s release for Fall was hinging on what I was proposed… the relief of everyone once the presentation was over and it all clicked, when they saw the light at the end of the tunnel, that the path that I had uncovered towards that is reasonable, and tenable is priceless.
I understand now that I live for this shit. 10/10 would do it again and again and again.
Those hypothetical drawbacks only loom large in our minds when we're the ones doing the work.
For example, partially complete features are often completely abandoned for years and years, because they're "good enough." Unfortunately, good enough, often means unhappy customers actively looking for new competitors.
One company in particular, I absolutely despise, because of this. They are pretty much only focused on releasing new features. The old features, while functional, are in desperate need of improvement. (In many very obvious ways.)
This particular company had a good IPO. Their stock then dropped 90%. I wonder why.
My guess is that behavior is NOT motivated by the theory "deliver early drafts with more smaller iterations", but is instead motivated by the theory "the people who decide to buy our products do it based on feature checklists, rather than quality of anything."
These are actually not even aligned theories. The "smaller iterations with early drafts" appraoch is best done with fewer features included, not more features that are incomplete.
Many markets incentivize companies to deliver crappy software, and it is frustrating, but not, I think the fault of an agile/iterative/deliver-early-and-often approach. If you can make the most money by delivering a giant feature list of crappily implemented poorly-thought out features that don't fit well together, you'll tend to do that, regardless of theory of project management.
Here's the thing though - it's your intuition that customers are unhappy, but the startup in question has actual data. It's entirely possible that a small group of people similar to you are unhappy but for a majority of the userbase the feature has gone as far as it needs to. Resources are scarce and priorities need to be changed, which sometimes means making hard decisions.
It’s not always easy to say if something is stupid or fraudulent, but sometimes it really is just a scam.
Groupon for example has decent consumer metrics, except they couldn’t keep the business partners happy which resulted in their ultimate collapse. Finding weaknesses in companies businesses models like this can both be extraordinarily profitable for institutional investors directly and create an aura of competence to attract more investors.
There's a joke on econ twitter whenever there is a big move in some individual stock, that the explanation is that the move clearly happened because the expected value of future cash flows changed. The joke is that under the efficient market hypothesis that's always the explanation, but in reality we all know a bunch of other stuff is going on all the time.
So, the kind of extreme stock shifts like dropping to 10% of a previous valuation are much more likely to have an understandable cause even if the trigger is random.
I guess at the root of my skepticism is that so many "growth" stocks never pay any dividends, so it's unclear to me what the connection between the stock and the company's cashflow is even supposed to be. If a company never returns any of its profits to its investors, isn't it just kind of a gentleman's agreement to pretend that the traditional way of valuing the company's equity still applies? It really does seem to me that the market for many stocks has detached from the company's business, and is instead driven almost entirely by competing memes.
It's true that a dropping stock price can lead to a takeover and new management, but again, that could happen to both a well managed financially strong business that has just lost the narrative game.
That's the only point I'm trying to make, that in theory stock prices are driven by financials, but in practice it's a mix between financials and narrative, and I think narrative dominates more than I was taught back in economics classes.
Take say money, second by second the value of USD is determined by people’s perception. However, people in aggregate are required by law to pay a fraction of US GDP in taxes based on the value of stuff besides money, like millions of cars and cans of soup etc. That relationship means without printing new money the value of all USD in circulation must be enough to pay taxes with or you get the monetary equivalent of a short squeeze. Which then represents a bound unlike say cryptocurrency which can actually fall to zero even as the economy continues normally.
I bring up the tax angle specifically because it’s normally irrelevant but changes the behavior at extremes. People tend to think of economies as fragile things because even minor changes have large implications, yet Ukraine’s economy continued even in the middle of an invasion and massive migration etc. Stocks seem divorced from reality up until the point where fundamentals matter.
If your company sees the simple lack of feedback as a valid signal, then a feature with lots of usage but no feedback means you should not improve it but simply leave it be. It's used, so it seems popular and nobody complained about it, so it must be good enough. Build something else.
Of course your company may also view a simple lack of feedback as not enough signal. If a new feature that is half finished sees hardly any usage this can be taken as a signal that the feature needs to be improved. It's not useful enough in its half finished state to attract usage. Or your users may simply not be able to find the feature because in its half finished state it's too hidden and thus you have neither lots of usage nor feedback on it.
This is exactly why data can be a horrible guide for product development.
If you develop a half-baked feature, and the data says nobody uses, then maybe, just maybe, they're not using it because it's a half-baked feature.
That is to say, the CxO or director we've sold to has everything on their checklist and is getting "good enough" results out of their organization. Our job is to understand which of the unfinished features will cause grumbling and which will motivate users to convince an executive to switch to a competitor. It's very unusual for the former to ever be worth prioritizing.
Getting paid to fail is a decent second place prize
Well put. Too many managers and execs use the word "speed" but never define it for others to make actionable.
Scenarios in real life:
Coder: "what's important while we're working?"
Exec: "Speed." _feeling_cool_
Coder: "I authored features a,b,c,e,..x,y,z ~ already working fast, gimme a raise!"
Exec: _realizes none of those features were desired objectives_ ...
Or
Senior software engineer: It'll take 9 months, 5 devs, and $200k to run...
Everyone else: ... not even sure business will be kicking in 9 months ...There's IMHO a slight difference between MMP and MVP in the perspective one takes.
I've found this also helps just internally - start with a prototype and you have engineering discussions that are more practical than theoretical.
> ..and this was maybe 1/3 of the effort I was planning for.
Quick anecdote. When just starting out I was building a tool to automatically find the composition of essential oils used given a GC/MS output, and was told it needed to be "fast". I spent a long time optimising it, working on parallelising it and more. I spoke to them after getting it down to maybe 15 seconds or a couple of minutes something like that and was getting ready to explain why I couldn't make it fast.
"So you said you need this to be fast to be worthwhile, but"
"[intejects] yeah being fast is important, if it takes more than a day or two it'll be a lot harder to use"
...
Well it was a useful lesson at least.
Over my career, I've been surprised multiple times when I presented early draft to a stakeholder and they said, "oh, that's great, I've got what I need now"...and this was maybe 1/3 of the effort I was planning for.
The way I see it, if the problem is important - any early solution should provide some relief. If some initial relief isn't wanted, the problem is probably not important.
Along these lines, in my work with stuck startup founders, I often ask, "if we were going to demo a prototype to a customer (in 2 days | at the end of the week), what would it be?"