The Platformer #28: No More Bad Ideas
Published: 2022-11-11 23:22:39

Happy Friday! What’s the worst idea you ever had, and how long did it take to realize it? Can we speed this process up? We’ll talk about that in a bit, but first this week’s череши (apparently Bulgarian has a single word for cherry picking, according to Google, efficient!)

## Cherry picks
Platform channels of the week:

* [Feature: Gekidou & Mobile v2](https://community.mattermost.com/core/channels/ship-gekidou--mobile-v2): for discussions around the upcoming mobile v2 app.
* [QA: Test Automation Reports](https://community.mattermost.com/core/channels/qa-test-automation-reports): end-to-end tests are run for various PRs, and suites run on master overnight as well, results can be found here. Every week we have an SDET “on call” to fix or disable breaking tests.

[Notes from the latest multi-product architecture sync-up. 
](https://community.mattermost.com/core/pl/jihoy7nqjfrcfkhyzn9jjgf7be)
On the **mobile platform** end, [an early look at how we’re trying to measure performance and performance regressions](https://community.mattermost.com/core/pl/579k3mb4a7gk8fifd59sgmztey) in the future (video). We’re closer to [integrating Sentry](https://github.com/mattermost/mattermost-mobile/pull/6726). Search just got merged and should go out with the next (internal) beta (which should release today) — the platform team is covering this functionality with end-to-end tests.

On the **web platform** end, we continue the [work on menu components](https://github.com/mattermost/mattermost-webapp/pull/11521), found and fixed the issue that marked a whole lot of channels as unread last week (with GarphQL enabled). We’ve also been working on performance regression tests. And we’re upgrading moar dependencies.

On the **desktop platform** end, some bugs slipped into last week’s 5.2 release, which we’re addressing right now. A 5.2.1 release will happen soon.

On the **server platform** side, we continue to spend time on Hacktoberfest PRs. To better support customer migrations from alternatives-that-shall-not-be-named to Mattermost, we’re making usability improvements to our import tooling, such as better logging and error messages. On the [Morph](https://github.com/mattermost/morph) (our library for data migrations) side, we’ve started work on rollback support. We’re also making good progress on Perseus (our PgBouncer replacement). Bonus: we’ve released version [1.7.0 of our load testing tool](https://community.mattermost.com/core/pl/u1ws7ke6spfifnrycntc9qn1ny).

On the **QA platform** side, progress continues on our QA infrastructure. As can be seen in the QA Test Automation reports channel linked previously, we’re not currently in a “green stable state” — however, [this is being worked on as well](https://github.com/mattermost/mattermost-webapp/pull/11522).

## Idea weeding
I get my best ideas while taking showers or taking walks.

If you feel you don’t get enough great ideas, start taking showers. People around you will appreciate it for other reasons as well. And take walks too. Exercise you know.

However, contrary to what you may have assumed — not all my ideas are pure gold. Most of my ideas crash and burn before anybody even finds out. And you should be thankful.

Misremembering a [common phrase](https://en.wikipedia.org/wiki/No_such_thing_as_a_stupid_question) you might be tempted to encouragingly say: “There’s no such thing as a stupid idea!” That would be before you heard some of mine, in which case you’d have to concede: “yeah, except those.”

However, I hope you will agree that a good amount of ideas coming out of my mouth or keyboard seem reasonable. So how does that happen? What’s my secret? What’s my process? And how could you _appear_ (although, obviously, never be) just as smart?

---

Let’s use this very article as a case study. It’s a bit meta, but we like meta.

As often happens, after dropping the kids at school this morning I took a detour home through a local park. A bit of exercise.

As I walked waiting for inspiration to kick in, I slowly started to accept that this week finally the inevitable had happened: I had zero inspiration for The Platformer. It had to happen some day, that time had finally come.

Then, all of a sudden something hit me.

_Good ideas._

This topic had come up a few times over the past weeks chatting with people. How does one balance encouraging people to come up with creative ideas, but also not wasting too much time on ones that deep inside you know are... not going anywhere. 

This could make a good topic for The Platformer, no? Good idea? :shrug:

So how would I find out?

Let’s follow The 6 Step Plan.

---

### Step 1: What problem does this solve?

Other than “I need a topic to write about.” What am I hoping to achieve writing about this topic? What’s the goal? Pure entertainment? Some good padding for dad jokes? No, while on Friday some level of entertainment is desirable (I have to find ways to get people to keep reading 1k-2k word pieces every week, and I found humor makes it bearable). People ideally get some value out of it as well. Helping people to figure out if their ideas are good or bad is likely something more people struggle with.

Alright, I’m convinced. This may be worth pursuing.

### Step 2: Is this a new idea, or has it already been done, or tried and failed?

Of course we’re all uniquely brilliant and creative, occasionally. But most of the time we’re really not. 

This is where we could start doing some research. We may [Bing](https://www.bing.com/) our idea. We may think of other places where similar issues may have arisen and see if they found solutions. If it didn’t apply or work there, does that mean it also won’t work in our particular context or are there differences that may make it work here? Or perhaps, this failed ten years ago, but things are different enough now to try again.

I decided to skip this step.

The reason: _opportunity cost_. I cannot be spending my whole Friday researching and writing. I have a (self imposed) deadline. Every hour I spend researching, I will not be able to spend on other stuff (like approving expenses). Rather than thinking, developing, scrutinizing, researching I could just do it and see what happens. Worst case would be some wasted hours. Although, honestly with 100+ people in this channel I could be dragging you along in this waste as well — so there’s still the question if I should hit “Send” on this one.

If you’re reading this, it means one of two things: I think it may provide value, or I just don’t value your time very much.

This may not apply to your idea. If your idea takes more than a few hours to implement, perhaps days, weeks, months or even years — it’ll be worth doing some research, and likely finding out that “yeah, people been there, done that, gotten the t-shirt.” And that’ll be that.

### Step 3: What are the critical unknowns?

Usually ideas have a few key unknowns. Some we’ll not know about and will find later, but some we can identify upfront. Can we, in our mind, figure out what those critical unknowns are? And if it’s an idea that involves some code, can we perhaps just prototype super minimal versions of those critical unknowns to see if we can make them work? In other words: what’s the _minimum amount of work_ we can do to detect and remove obvious blockers?

In this article, I knew I’d have to come up with some list of steps. Honestly, I had never thought to deeply about this topic at all. Neither do I have a _Playbook_ ready for such cases. Could I come up with at least a few steps that seem reasonable and not _too_ obvious? I got to three so far, so I’ll take that as a pass. Let’s continue.

### Step 4: Can I provide a narrative?

Some people are _talkers_, some people are _writers_. 

You’ll be shocked to learn I’m a writer. For me the ability to write down an idea in a coherent way is a pretty good test for the quality of an idea.

The format would be like a “pitch,” which largely replicates the previous steps — but now in written form:

1. What problem are we trying to solve?
2. What solutions exist? Some solutions may already out there ready made. And it’s rare that there’s just one possible solution to a problem — so what are the alternatives?
3. What are the trade-offs between solutions? No solution is perfect, there’s always costs and benefits.
4. Given the above, why pick _this_ particular idea?

It happens a lot that an idea sounds great in my head, but when I force myself to write it down I discover tons of holes. And that’ll be that. Companies like Amazon have famously institutionalized this idea in their “[6 page memos](https://zef.plus/the-power-of-the-narrative/).”

If writing scares you. No worries. Find a [rubber duck](https://en.wikipedia.org/wiki/Rubber_duck_debugging) victim (an actual rubber duck may actually work).

“Hey, can I run a crazy idea by you?”

And then you start pitching. Mid-way you may run into trouble. And that will be that.

For this particular article: the narrative is the product, so I just went for it.

### Step 5: Build a proof of concept

Still here? Alright, we may be on to something at this stage. What is the least amount of time you can spend to show your idea _actually_ works? This is where we may use spare time, open source Fridays, hackathons and the like. Now we start building stuff, but with the goal to prove that the concept actually works. 

Our first filter: _us_. Now that we see this come alive, are we still excited? Do we still believe it’s a good idea? Maybe not, and that will be that.

If we do, it’s time to bring more people in. Demo it to people live, or record a demo and share it and see what they think. Don’t forget to include the pitch, so that people understand what you’re trying to do here.

For this particular article: I’m typing these words at 10:42am as a first pass. After rushing home after the idea hit me, I have now spent about 2 hours in the first 5 steps. I think all the content is there, but it’s still in a somewhat rough state. I’ll likely need to spend another hour or two polishing, but at this stage I think it will be worth it. And to be honest, for what it is there’s also a bit of the [sunken cost fallacy](https://thedecisionlab.com/biases/the-sunk-cost-fallacy) going on, but don’t tell anybody.

### Step 6: Change the world

What happened when you saw your idea come alive? Did it fall flat? That happens, a lot. That’ll be that.

Or did it blow some serious mind? Time to iterate, share more broadly, create buy-in and iterate some more. And after that, you know, change the world.

Want to take a closer look at the inner workings of the Platform team? Join the Community server to be the first to read [The Platformer](https://community.mattermost.com/core/pl/cqrf5k5aijbx9n3axs7hosx55a) every Friday.