CodeX
Published in

CodeX

How many bugs should your product have?

From pxfuel.

I was one of those idiots that pre-ordered Cyberpunk 2077.

I did it because I’ve always wanted a protagonist that has what I can only assume is called an “electro-mohawk”. Upon starting my first session, I sent a screenshot to my brothers. I believe it was a portrait of a cyber-cigar smoking meta-human. One of my brothers, who is not a “core gamer” but has played through “Breath of the Wild” (for which I award partial credit), had an interesting reply:

The answer, or rather — one of probably many answers that definitely does not deserve a thousand-word essay — is widely applicable: Cyberpunk 2077 has so many bugs because Cyberpunk 2077 is much more ambitious than a stable version of itself.

You want a stable Cyberpunk 2077? That game already exists and it’s called Far Cry 12: The Just Cause.

How many bugs should your product have?

For us startuppy-types, this isn’t a pseudo-philosophical conversation we have over hot wings, this is a real question we need to ask about our products. When do we take our respective babies and show them to people? When do we show them to the world? When is a product really, truly, for-suresies… ready?

I think I have an empirical estimate.

“On a short enough timeline, ambition and stability are inversely correlated.”

I formatted it all cool-like because it sounds really smart.

This gives us a graph to work with and you just know I love graphs.

You can see that as we increase ambition, stability plummets. Even a minuscule amount of ambition sends us into a stability-nose-dive. This is the Deep Magic of the Universe, not just a product-development-thing. I think I’ve been over this before, a few times, but this effect is particularly pronounced in software, where a a missing { can break encryption on billions of devices.

“Gems” | fdecomite

A Strawman

Let’s pick on a game extremely similar to Cyberpunk: Bejeweled. Bejeweled is a fine game made by fine people (well, not Jared in accounting) — and quite stable at this point, I hear; but ambition is almost non-existent.

We imagine ourselves standing on the station platform, looking down the tracks. We see, in the distance, Bejeweled’s graffiti-covered caboose — but the train only made it a few feet before grinding to a stop. The ambition train has barely left the station.

The easiest code to bulletproof is the code that doesn’t exist. The easiest features to get right are those that aren’t around at all.

Cyberpunk, on the other hand…

You see, all ambitious games are somewhere far to the right on our stability v ambition curve.

“Train” | Toshiyuki IMAI

The Trans-Siberian railway runs almost six thousand miles, connecting Moscow and Vladivostok — most of it straight as an arrow: through mountains, over lakes (needlessly through the middle of some lakes) and from the station platform you have no hope of spotting the Cyberpunk train. Stability drops like a stone in the Siberian wilderness, toward the asymptote of absolute chaos just past Vladivostok — if it keeps on like this, starting a new game in Cyberpunk may summon a hellish creature made entirely of fins and discarded toothpaste tubes. There’s really no telling.

So we are left along the tracks with no tools in hand but trade-offs and value judgements. Great tools these are.

Where along these tracks should we release products? When is it okay to ask people for money for something? If every product took the Cyberpunk approach, I imagine I would be more displeased, but as it stands, I’ve got a bug-infested ticket for the second largest city in the Far Eastern Federal District with my name on it. I’m starved for something more ambitious than a pay-to-win military battle royale.

“Poignant still” | Ron Frazier

What are you saying?

For starters, don’t confuse the Soviet-based mixed metaphor above with a green-light on releasing shoddy products. You didn’t hear it from me that your product can be garbage.

However, do keep in mind that “production ready” isn’t an absolute measure. Some products are not production ready because bugs make them unusable. I will concede that Cyberpunk on last gen consoles… is solidly in this bucket. Other, “bug-free” products aren’t production ready for an entirely different reason: because they have no ambition. They don’t do anything. They are the equivalent of a “glass of milk and a large bowl of mild farina.”

And if a product lacks ambition, why make it to begin with?

Releasing buggy code into the wild may absolutely mean you are a bad developer, but that is not a necessary condition — only sufficient. Other times, a buggy product is a statement of ambition, of artistry, of dreams too big to build.

Perhaps some of us should move a bit further along that curve: take on more ambition… and more bugs.

--

--

--

Everything connected with Tech & Code. Follow to join our 900K+ monthly readers

Recommended from Medium

Deploy Symfony 3 on Heroku

Book review : Patterns of Enterprise Application Architecture

PAN-OS® Developer Tips and Tricks

Red Panda (API) Explorer

Scaling Reports and Analytics for a SaaS Platform

coding questions

Update #2: 9/16/2021

What is System Architecture? [Intro to Tech Architecture Integration and Business Intelligence]

A Major Upgrade of the GXChain Infrastructure!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Benjamin Jordan

Benjamin Jordan

Tech, thought, teaching. CTO @BigRunStudios, Adjunct Professor @SaintLouisUniversity. Former CTO @Enklu, Studio Tech Director @NCSOFT, Sandwich Artist @Quiznos.

More from Medium

3 Ways to Foster a Great Remote Engineering Culture

I Don’t Know In a Remote World

What else is important besides technical skill to make you a good software engineer? Part II

5 Surprising Employee Development Statistics You Should Know