That sounds like a completely different problem. Bikeshedding is typically just someone getting caught in the weeds, and not a big deal to correct. Point it out, re-focus and move on.
If it turned a relationship toxic, or if people made such a big deal that it even gets described as "outright accuse", it sound like things were blown out of proportion, and there is likely a completely different root cause to the toxicity.
In general? There needs to be one person with the authority to make the final call on the question. That one person needs to hear the bikeshedder, not until they stop talking, but at least until they start repeating the points they previously made. Then they make the decision, and they don't revisit it without sufficient new information.
If the bikeshedder can't accept that, then you need to get rid of them.
Sometimes the person talking would call themselves out, to have it added to the list, which was always nice. I ended up doing this a lot. An idea or issue would pop into my head, I’d bring it up, then as I was talking about it I would stop and say we should throw it in the parking lot and keep on the main topic.
We also had a weekly (maybe every other week) meeting to just talk about stuff. This gave us a forum to get into some of that oddball stuff if we needed. Having a time and place for this dramatic reduced the spill over into other meetings.
Sometimes the problem is that their task queue only has work they don't like. We all have something like that. Maybe it helps to set these tasks to a higher priority.
Bikeshedding: Futile expenditure of time and energy in discussion of marginal technical issues
If someone is bikeshedding about what some other project that they aren't working on or going to do themselves, then: "That's a great/interesting idea, why don't you put it in an email/ticket and it can get prioritized in the context of the other deliverables for the project".
If it's about their own project/work, or how to tackle it, then: "Sure, whatever you think is a good idea, just go do it. I trust your judgement. Do it however you feel is best, let's look at it when it's done.".
Bikeshedding isn't always a bad thing (as distinct from talking too much, being all talk no action, being disagreeable / argumentative, which are). It can be used deliberately or constructively too... if someone has big project that they've spent a lot of time on, and are emotionally attached to, but you think the whole project is actually stupid or a bad idea... then you can stall it by telling them you support their goals, and want to work with them, but you just have some positive suggestions for this inconsequential aspect of their project that you'd like them to think/talk about at great length... and then will often get sucked into it, lose sight of driving their project forward, but not get upset or defensive about a confrontation.
- Lack of disagreement is more important than agreement.
- Rough consensus is achieved when all issues are addressed, but not necessarily accommodated.
- It's not a vote - one strong, well-reasoned objection carries more weight that dozens of "yeah looks good to me"s and vice versa.
I think it's important to not label concerns as "bikeshedding" at first. Or to label someone as a "bikeshedder" a priori. That's a shortcut to critical thinking and good way to shut down communication. All concerns should be heard, initially at least.
But not every concern should carry the same weight. Dealing with someone who repeatedly brings up the same minor concerns is exhausting. This requires a decision maker who can politely move the debate forward saying "We've noted your concern but we're not addressing it here ..." The group acknowledges the issue, the person raising the issue gets "I told you so" rights, but it's explicitly de-prioritized - no insults required.
Your solution then is to impose ownership onto the people providing input, with all the liabilities and rewards that entails. Failure then mandates severe penalties. If that is too much of a risk then simply remove their ability to provide input and replace it with a top-down managerial decision absent their input.
Someone: "And we're building that shed next week"
Team: <bikeshedding conversation>
Leader: "Let's paint it black, it's not that critical and we can always change it later"
It doesn't matter if its the best choice. Getting blocked on it is too expensive and other people are too worried about covering their own butts that they waste time on it.
I'm always looking for the hidden unofficial standard, or the option that has the best fit with either existing tech or the "Next Big Thing" people are moving to.
Like, if you ask me to choose a language, there's only about five I'm even going to look at. "more elegant code" isn't enough reason that I'd want to use some new language nobody knows, that half the IDEs don't support well.
At that point, you reach an impasse that the other team members must then bend to that person’s opinions or leave.
deadlines means cutting down the spec. cutting down the spec means having to make decisions to release before the deadline and moving all the overthinking to the next iteration.
"Sure, red is fine. Let's not overthink this."
"Oh it won't work because it will break xyz" "Okay so what does it take to fix xyz?" "maybe a day or two" "..."
"It's going to cost more to have xyz" "Oh how much more?" "$100 a month" "..."
"It should be blue instead of red" "no customers prefer purple" "alright we will defer this to product team / customer feedback"
That being said, people who bikeshed a lot are pretty terrible to work with, they are usually the ones first to tell you how hard a change is going to be and why we shouldn't do it. They would rather do nothing and stay in their comfort zone. Toxic to work with, fire if they cannot change.