Konkreet Labs All articles
Product Development

Monster Features: How Stitching Together Failed Experiments Builds the Products Nobody Expected

Konkreet Labs
Monster Features: How Stitching Together Failed Experiments Builds the Products Nobody Expected

Photo: patchwork technology assembly creative lab workspace, via innovation.ucsb.edu

There's a version of product development that looks great in pitch decks. The team identifies a problem, designs an elegant solution, builds it cleanly, ships it on time, and users love it. That version exists mostly in pitch decks.

The version that actually happens? A lot messier. Someone prototypes a notification system that never ships. Another dev builds a half-baked recommendation engine that gets shelved after one sprint review. A third experiment — some weird gesture-based UI thing — dies after the designer who championed it leaves the company. And then, six months later, a new PM looks at all three corpses and says: what if we combined these?

That's not a failure story. That's usually how the best features get born.

The Monster in the Lab Isn't the Problem

We borrowed the Frankenstein framing intentionally — not because it's spooky, but because it's accurate. Dr. Frankenstein's mistake wasn't the stitching. It was the abandonment. He built something, panicked at how it looked, and walked away. Sound familiar?

Most dev teams do exactly this. They run an experiment, it doesn't land cleanly, and they archive it. The code goes into a repo nobody opens. The Figma file collects digital dust. The retrospective note says something vague like "promising but not the right time."

But here's what those retrospectives miss: failed experiments rarely fail completely. They usually solve part of a problem really well, just not the whole thing. And that partial solution? It's often exactly the missing piece from a different dead-end project sitting two folders over.

The teams that figure this out early build a serious advantage. Not because they're smarter, but because they treat their experimental wreckage as an asset rather than a liability.

Slack's Notification System Didn't Come From Nowhere

Slack is one of the most-cited pivots in startup history — the company famously started as a gaming company called Glitch. But the pivot story usually gets told as a clean break: game failed, messaging tool survived, company thrived. That's the tidy version.

The less-told part is that the internal communication tooling Glitch built for itself was itself a patchwork. Features got added because different team members needed different things. Some of it was clunky. Some of it overlapped. The eventual Slack product wasn't a ground-up redesign — it was a refinement of something already stitched together from operational necessity.

The lesson isn't "build a game to find your real product." It's that the tool assembled from real friction — from actual broken workflows and half-solutions — had more signal in it than any clean-slate redesign would have.

Instagram's Filters Were a Pivot Inside a Pivot

Burbn, the app that became Instagram, was originally a location-based check-in app with a lot of features. Too many features. The founders looked at usage data and noticed one thing getting traction: photo sharing with filters. Everything else was noise.

But those filters weren't some genius invention. They were a relatively minor feature, added almost as an afterthought to make photos look better in an app primarily designed to do something else. The "experiment" that became Instagram's entire identity was essentially a side feature stitched onto a product that wasn't working.

Strip away the origin story glamour and you've got a pretty straightforward Frankenstein move: one part of a broken thing got grafted onto a new direction and became the whole thing.

Why Clean Architecture Fights Against This

Here's where it gets uncomfortable for engineering teams that pride themselves on clean systems: architectural perfectionism actively works against this kind of discovery.

When every feature has to fit neatly into the existing system before it can be explored, you're filtering out the weird stuff before it has a chance to prove itself. The experiments that don't fit your current data model, your current API structure, your current component library — those get killed at the concept stage. Not because they're bad ideas, but because they're inconvenient ones.

This doesn't mean you should ship spaghetti code to production and call it innovation. It means the experimental layer of your work needs to operate under different rules. The lab has to allow for mess. That's what makes it a lab.

The teams that do this well usually maintain some version of a "skunkworks" environment — a space where prototypes don't have to play nice with production architecture. The goal is to let ideas breathe before you decide whether they're worth cleaning up.

How to Actually Do the Stitching

Okay, so you're sold on the concept. How do you actually operationalize "combining your failed experiments into something useful" without it just becoming a chaos exercise?

A few things that work:

Keep a living archive, not a graveyard. The difference is documentation with intent. When you shelve an experiment, write down what it did solve, not just why it didn't ship. Future-you needs that context.

Run periodic "salvage sprints." Dedicate a short sprint every quarter to reviewing shelved work. The goal isn't to resurrect everything — it's to ask whether any two dead ends might solve each other's problems when combined.

Separate "feature fit" from "technical fit" in your reviews. An experiment can fail to fit your current architecture and still contain a genuinely valuable user interaction. Don't let the technical post-mortem bury the product insight.

Normalize the word 'borrowed.' When a new feature pulls from an old experiment, name it explicitly in your docs. Build a culture where "we borrowed this from the recommendation engine prototype" is a compliment, not an admission of laziness.

The Mess Is the Method

There's a reason the most interesting products rarely come from the most organized teams. Organized teams are great at executing on known solutions. But the Frankenstein features — the ones that surprise everyone, including the people who built them — tend to come from teams willing to sit with unresolved experiments long enough to see what they might become.

At Konkreet Labs, we think a lot about this tension between craft and chaos. The cleanest code doesn't always produce the most resonant product. Sometimes the thing that connects with users is the feature nobody planned, assembled from pieces that individually didn't work, stitched together by someone willing to look at the wreckage and ask: what if?

Your best feature might already exist. It's just currently spread across four archived repos and a Notion doc nobody's opened since Q2.

Maybe it's time to go grave-digging.

All Articles

Related Articles

Almost Launched: The Brutal Purgatory of Projects That Are Too Good to Kill and Not Good Enough to Ship

Almost Launched: The Brutal Purgatory of Projects That Are Too Good to Kill and Not Good Enough to Ship

Demo Day Is a Lie: The Real Reason Your Coolest Prototypes Collect Dust

Demo Day Is a Lie: The Real Reason Your Coolest Prototypes Collect Dust

Why Every Experiment Dies at the Same Spot on the Map

Why Every Experiment Dies at the Same Spot on the Map