I always like it when people in other industries do these, so here's my stab at a thread of predictions about @GoZwift and virtual / indoor cycling.

Zwift is basically a biking MMO videogame that connects to trainers, gadgets you put your bike on to ride it inside. (1/)
I never used an indoor trainer before COVID, but I - like many, many other people - bought a trainer & signed up for Zwift when lockdown began. And I love it! I assumed it would be boring. But watching the environments zoom by is convincing, and the data & goals compelling. (2/)
But the other thing I immediately noticed about Zwift was the technical debt.

The most blatant - and terrifying - example: The Windows version of Zwift has to exit between rides. You cannot load a world, quit to the main menu, load another, and so on. (3/)
This implies that they are using a lot of global state that they can't cleanly reset, so restarting the app is the only way around it. This imposes severe limitations moving forward - it's like if you had to reboot your phone to switch apps.

It also only gets harder to fix. (4/)
Tech debt is like a flawed foundation: The more house you build on top of it, the shakier things get, and the harder it is to get under there and fix it without breaking things.

There are tons of other little signs you see the more you use it. (5/)
Some rides give you cadence targets, and if you're more than 5rpm above it, it flashes: SPIN SLOWER.

On the iPad if the target is 85rpm that sign comes up at >= 90.

On the Android Zwift Companion app it's if you're > 90.

A tiny difference, but means it's different code. (6/)
For that matter, the mere existence of the Zwift Companion as a separate app from the Zwift app itself gives my developer Spidey sense all the tingles.

Anyway, I could go on, but in sum, my very, very strong suspicion is that the Zwift codebase(s) bear great technical debt. (7/)
The problem is, COVID happened. And they got a TON of new subscribers, new business, and lots of attention and opportunities.

And it appears that they're intent on seizing them all. (8/)
Zwift initially struggled under the increase in server load with lockdown, but has since jumped on the chance to host a virtual Tour de France, has pushed out a long list of feature additions, and - I think boldest - held layoffs to reorg around building their own hardware. (9/)
I assume it's @onepeloton's success at vertical integration pushing Zwift to go the same route - or they're just sick of supporting all the other trainers - but to me this feels like a pretty reckless move, for two reasons. (10/)
First, they just don't have the software robustness to back it up. It's simple overextension. I could be wrong, but I imagining exec meetings at Zwift where a hapless SW VP is getting steamrolled by bizdev saying "Just figure it out! Make it work! Fix the bugs!" (11/)
Technical debt slows you down, and it gets worse as you go, like sinking into quicksand. Zwift has to support every new feature on all their platforms and if it's really a bunch of separate houses of cards, that will get harder and harder to do. (12/)
And if they try to fix the technical debt, that'll be like trying to rebuild the foundation while there are people living in the house. A lot of people, now, with a lot of expectations. Doing it without breaking anything will be phenomenally hard - and very costly - work. (13/)
But the second reason I think announcing they're building their own hardware is that in doing so, Zwift are openly forcing companies to compete with them.

Let's say you're @wahoofitness, and you're not secretly talking to Zwift about merging and becoming their HW org. (14/)
Zwift's announcement puts you on notice. Tons of your users are Zwift users, and if Zwift starts forcing third-party hardware out, your market goes away.

So now, if Wahoo are smart, which they sure seem to be, they're already recruiting a small, elite games team. (15/)
And here's the kickr: Zwift already has a big house, built on a rickety foundation. They can't just tear it down and build a new one. They have to maintain and develop the one they have. They're running a live product.

That's a millstone their competitors won't have. (16/)
Building an app like Zwift is easier in some fundamental ways than building most MMO videogames. You're not actually interacting much with other riders, especially in latency-sensitive ways. Games where I shoot at you and we're in different continents? That's tough. (17/)
Zwift has to be precise for races, but that's about it, and the volume of data they have to send over the wire is *vanishingly* small compared to a videogame.

The amount of art, also much less than a AAA game.

Rendering, audio can be relatively stock. Nearly no physics. (18/)
I'd wager that building a very strong competitor to Zwift would not be a particularly hard project. I'll keep using Wahoo - they have excellent hardware and lots of tech there. They're standing on very solid ground. I think they could build a much better Zwift handily. (19/)
So the whole thing is a bit confusing to me. It feels like Zwift is going out of their way to pick a fight when they're the ones standing on shaky ground.

I can guess why, but that's neither here nor there.

Suffice it to say I think there's likely to be competition. (20/)
As software engineers it's often hard to argue for time to pay down tech debt.

"Give us a few sprints where we'll give you no new features or visible progress or maybe even performance improvements."

But this is a great example of what happens when you let it accrue. (21/)
Paying down technical debt is like reinforcing the ground under your feet. You never know when an opportunity will arise that you have to leap for. The more solid the ground, the further you can safely leap.

Thank you for coming to my TED talk. (22)
Quick addendum: Let's say Zwift M&A *are* courting Wahoo.

If I'm right about the Zwift codebases, they're still a big liability in this scenario & will hurt them in acquisition talks. If I'm Wahoo, I see this as a major liability & I'm asking very hard questions about roadmaps.
(... and using product / tech maturity, relative levels of tech debt, and concomitant org maturity as major negotiating points that I'd expect to materially impact the final numbers. Admittedly making assumptions that Wahoo tech is rock solid, and I'm less qualified to eval HW.)
You can follow @bhsharp.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: