Comment by Zetice

3 years ago

I cannot possibly emphasize this more strongly. It's so important to deliver complete and working products quickly and regularly, that it's worth the cost of the occasional lost customer who leaves because all of their needs aren't met immediately. A) they're rarer than people seem to think and, B) the people you gain due to this incremental approach more than cover the losses.

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 agree completely. That sounds much better than my current strategy of delivering incomplete and broken products at unpredictable intervals.

  • My highly specialised sarcasm sensors (honed in the UK) suggest that this is not in fact your current deliberate strategy; that said, I have worked for so many groups and companies where that is exactly what happens, even if they think they're planning for something else to happen, and it's obvious to pretty much everyone involved that that is what is happening and will keep happening.

    • I was being humorous, but also telling the truth!

      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."

      1 reply →

  • More to the point, it's much better than delivering incomplete yet working products quickly and regularly, complete yet broken products quickly and regularly, complete and working products slowly and regularly or complete and working products quickly and irregularly.

  • I’ve been going with “set expectations high and then pivot to new high expectations.” It compliments your strategy pretty well.

> That said, some devs interpret "quick" to mean "sloppy", which is not correct.

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.

With a good sales team, you can land customers who don’t see all the features they need, because you’re routinely delivering a solid if simple product that gets major new functionality a few times a year and if you just hold on we will get your feature to the top of the list.

Those paying customers are where your MRR comes from. Another case of perfect being the enemy of good.

There is high overlap between customers who leave because their needs aren't met immediately and customers whos needs will never be met.

I agree, and would add "(nearly)-no software regression" (no "a feature that has worked before stops working"), and never twice the same one.