A Lean Stab On Software Complexity

Sam Lin
5 min readMay 16, 2022

We may preempt & decouple SW Complexity. But why bother if they are not wanted at the first place? Still too often, that is the case. But, there can be a way out if we dare to ask more whys & measure properly.

“The hope is that the progress in hardware will cure all software ills. However, a critical observer may observe that software manages to outgrow hardware in size and sluggishness.” — Martin Reiser 1991, The Oberon System

Berry Trail, Belmont, California

Lean product development

It’s easy to hit the bullseye if we can shoot first & draw a target later. Only in a competitive market, no one has the market-control superpower at least not to all the customers all the time. Therefore, Silicon Valley turns to prototype and lean product development for salvation. And for startups, it’s a matter of survival because their capital can burn out quicker.

Big companies may be lucky to have a longer runway to play longer games. But they are not free from such gravity ultimately. Lean product development can also help to disrupt themself before being disrupted. For example, Tesla was a small startup to “reinvent” Electric Vehicles when the leading carmakers did not. Tesla shipped about 500k in 2020. Whereas, Nissan was the pioneer in introducing a modern EV model, LEAF in 2010. It took 10 years for Nissan to produce the 500,000th LEAF in 2020. Psst, if a new product team has no appetite for that, don’t walk away, run! Because it’s just a matter of time before someone disrupts & eats their lunch.

Prototyping & MVP may be a cure for confirmation bias or illustration of market control

To keep them coming

“customers’ ignorance of features that are essential versus nice-to-have” — Niklaus Wirth 1995, A Plea for Lean Software

In the past decade, the smartphone makes our life more convenient & entertaining. However, bloatware continues haunting us because it fits the business model of device makers. But, a good brand has to find the right balance it’s not at least for the longer term. As cars are becoming smarter, there is a hope that they will delight users better & quicker. Blindly adding code is easy, but the wrong way to go. So, what could be a better way?

No matter whether a product or feature idea is brilliant or crazy, its life typically goes through 3 stages: 0-to-1, 1st-10x & 2nd-10x at the high level. Anyone can keep the SW lean if they only add the most valuable code to users by “listening” to the users properly. So that, everyone can agree on the signals if users will keep coming. Otherwise, “my opinion is always better than yours” 😉.

Strata 2014: Geoffrey Moore, “Crossing the Chasm: What’s New, What’s Not”

1. Prototyping from 0 to 1 way out

Sometime, an idea may be “brilliant” because they are from your boss or your customer 😉. The other time, inspirations urge crazy ideas. Either way, they are all hypotheses or an educational guess at the best. To get better confidence, you should prototype to get a taste of reality quickly. You either get a good validation, a lesson learned to improve, a pivot for adjacent opportunities, or shelving for a better timing later.
At this point, quality is more important the quantity because change is a few will try. And, the rest will understand the innovation when looking back. The bigger chasm is, the more useful the qualitative feedback from the innovators & power users. In the valley, dogfooding is a common way to measure at this stage. For example, even though there was no public beta, user trail nor survey on iPhone prior the initial launch, Apple did internal dogfood it relentlessly.

centercode.com: Evolution of Dogfooding

2. MVP, learn & iterate for 1st 10x

An easy way to sabotage an early success is to inflate the ego & the feature set. The initial success may come with an illusion of reaching the product-market fit. Maybe it’s the case in the eyes of Innovators, but it’s mostly not the case for Early Adopters. The only cure for such hallucinations is to be guided by the quantitative feedback & trends from the actual users instead of ego.

The winning combination is to ship Minimum Viable Products as early as possible and to collect user engagement metrics directly in real-time to guide iteration. Only, it’s difficult to resist the temptation of over planning, one more fancy feature, and skipping the “less essential” user-engagement-metric plumbing. Unfortunately under pressure, it’s easier to take off blindly 🙈.

The Lean Product Playbook: Product-Market Fit & The Process

3. Hacking the grow to 2nd 20x

Sometimes, a few “lucky” ones may get the chance to maximize the full potential when the user base reaches the critical mass, and data is big enough to slice for insights. The “popular vote” finally becomes the name of the game. Real-time user behavior data is the goldmine for new growth opportunities. And, rapid experimenting is the best fortune teller.

Readingraphics.com: Overview Of Hacking Growth

Full Disclosure

The opinions stated here are my own, not those of my company. They are mostly extrapolations from public information. I don’t have insider knowledge of those companies, nor a whatever expert.

--

--

Sam Lin

A Taiwanese lives in Silicon Valley since 2014 with my own random opinions to share. And, they are my own, not those of companies I work for.