Why Should I Care What Color the Bikeshed Is? (1999)
bikeshed.org
bikeshed.org
(Yak shaving origin is here https://en.wiktionary.org/wiki/yak_shaving
Any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you're working on.
ie: Wash the car (goal) -> broken hose, need to go to hardware store to get new one -> car won't start -> need ride to get new battery -> can't ask neighbor since I have their lawn mower -> took the blade off to sharpen -> which is now why I'm in the basement looking for the grinding wheel.
http://www.dailymotion.com/video/x2gp98t
[Hal fixes the kitchen lightbulb]
https://www.youtube.com/watch?v=ElLpKewnxp4
Come to think of it, this is also how bug-reporting interactions tend to go. And I wasn't expecting to hear Harry Belafonte doing an Irish accent!
https://m.youtube.com/watch?v=SY99U3cpsIw
Edit: damn it, telesilla beat me to it, and with a better quality link too
https://www.quora.com/Hacker-Culture-Who-was-Brett-Glass-nam...
"Here's an idiotic patch."
No, this is a bad idea. It leaks memory like a sieve.
"OMG, stop bikeshedding!"
It's actually very hard to get to the bottom of these things. Back when computers were the sole domain of us geeks and nerds, the culture of downright rudeness was a lot more widespread and tolerated than nowadays. The usual excuse was "content over form", meaning that if I say your patch is stupid because it leaks memory like a sieve, the important thing is that your patch leaks memory, not how you feel about my tone. Which is a reasonable justification when applied to a stupid patch, but turns into a bad excuse when people start calling each other names.
Some of that culture lives on to this very day: we've all read more than one rant by Linus Torvalds where he cusses out someone who tried to submit something stupid to the kernel. Once you get over the fact that the language is uncalled for and that the same message could have been delivered with equal force without cussing, you can actually try to ascertain whether the message itself was deserved or not. In Linus's case, it usually seems deserved.
Which brings me back to Brett Glass, who was indeed called names by PHK and others on the lists. Was that okay? I've already established that I don't think it was, but the real question is whether he "deserved" it, in the sense of whether he really was pissing off everyone on the list with bad ideas and whether there really were people calling for banning him or not.
Like I already said, I don't know the answer, because I really do have better things to do today than wade through vitriol from the 90's. However, if you want to discuss Brett Glass, that's really the question you should be asking. Just because his post on Quora sounds reasonable and polite when compared to nerd-rage that was commonplace on the mailing lists -- the same kind of nerd-rage that would brand anyone as a "colossal douchebag" if used on public forums today -- it doesn't mean his claims were true.
For my part, I would reserve my judgment. On the one hand, it's quite common for an entrenched group to exhibit behavior Glass accused them of. On the other hand, we're dealing with someone who's opposing the Net Neutrality for his personal gain. It's most likely that both sides were at fault, as it usually happens in sordid reality we live in.
Recently, as the term 'bikeshedding' has gained popularity, I'd say for every instance of bikeshedding I see, there's two occasions in which somebody tries to ram a bad patch through deflecting all criticism with accusations of bikeshedding.
But more often than not, he only do so when someone senior in the development chain screws up and thus he has to come in and make the final call. And likely the bickering has gone on for days if not weeks, and that part of the kernel has thus slowed to a halt because of it.
Another problem is when politeness gets weaponized. This when people come in and try their outmost to rile up existing group members such that said members violate some rule or other.
It's only bikeshedding when it follows the historical and accepted definition of the term.
Pointing out that a patch has a memory leak doesn't qualify, even if someone randomly calls this critique "bikeshedding".
Pointing out some trivial aspect of the patch, on the other hand, would.
This tends to include things which boil down to personal preference (coding standard whitespacing arguments, emacs vs vim, etc.), naming things (which can easily be renamed later with refactoring tools in static languages), and other minor self-contained decisions which can be easily changed at a later date.
I've seen someone in a thread point to bikeshed.com, and someone else follow up with a joking "I think you mean preferredcolor.bikeshed.com".
I triggered more than one "CAPTCHA" that worked like this on websites. This is an anti-pattern. Don't do this, it's incredibly annoying. There are people who think and type faster than you expect. It all depends on the case and various factors.
Obviously, the correct coating for a bike shed to meet these requirements is in fact a cladding: of externally facing mirror panels. Except that if they are ordinary glass mirrors, there is the obvious vandalism that may be inflicted when some rascals do actually bespy the nigh invisible structure.
What an argument attempts to do is change the outcome by providing a logical explanation for an outcome.
Many things classify as being a good reason but may also be easily out weighed by other concerns.
For instance the color of a bike shed is of no concern unless the color is dangerous in a specific location. If you are building a bike shed at an apiarist's house the color of the shed does matter as some colors effect bees differently. [0]
If your house is near a forest and you need to find your shed painting it in camouflage is probably not a good idea.
I feel everything should be argued until you can be sure you've considered all view points and can come to the best (in your use-case) decision. This is the case from everything ranging between colors of sheds to technical discussion.
As long as there is a valid reason behind it, it is fine.
[0] - http://resteasypestcontrol.com/bees-and-wasps-facts-which-co...
This is even more important in business, because while you're faffing about sinking precious effort (which is, remember, hard currency of the greatest value) into meaningless tasks the competition is getting ahead of you, and stomping on your face in the market, relegating you to insolvency and the dustbin of history.
They often don't really understand my use case. They only hear one part of what my team is trying to do, and then act like they know what I need. Yes, your suggestion works for the use case you know about, but not for the 10 other use cases I need to design for.
Second, these considerations were usually already considered while we were planning this work, and there is a reason we decided to do it a different way. I don't have time to re-explain why we chose to do things the way we did to 10 different people who come to me and ask why I didn't choose to do it this other way.
So then can you not say "but I also have REQUIREMENT_X for this project? Do you think that your solution will mesh with this other need I have?"
If you can't have a technical discussion defending why you feel your solution is the best then you must not be confident about your solution.
Bikeshedding is when an entire discussion gets bogged down or derailed by people who would rather talk about something that's not super relevant, than say nothing and let other people talk about a topic that's important but they personally have no expertise in. They would rather sidetrack a conversation so that they could be more involved, than sit back and let other people talk about the original topic.
This makes sense for social situations (where what you're talking about is usually far less important than keeping everyone engaged), but makes no sense for situations where the communication really is about solving problems. You can really see this tension on more developer-focused open source mailing lists, where often a small number of people are working really hard on evolving some critical software, but their discussions get drowned out or derailed by precocious teenagers/overconfident CS undergrads/bored retirees who are just killing time on the list as a hobby, and who expend lots of energy trying to get everyone to talk about how terrible the variable naming convention is (or the source file directory structure, or source file naming conventions, or how much they hate this or that open source Internet celebrity person, or what's the deal with airplane food...)
I can totally imagine someone who would dismiss as bikeshedding any comment that they didn't feel like talking about, but that person would be misusing the concept of bikeshedding (and probably being super rude on top of that, as it's an accusation against the presumed bikeshedder as well as a dismissal of what they're saying).
I just see this as a way to justify that behavior. If it's not the indented use for the term then I agree some things are stupid but things that people I've worked with have cared about have came from real world concerns they have about technical choices. Maybe I'm just lucky?
> but their discussions get drowned out or derailed by precocious teenagers/overconfident CS undergrads/bored retirees who are just killing time on the list as a hobby
I think most of this can be sifted out easily. Why is X objectively better for the project as a hole? I've had project's where people have said "change this! change that!"
For instance I was asked for one project, my StarmadeWrapper project, to look for a server in a different path then the one I had been checking. For instance I was checking "./StarMade/" for the .jar and they wanted me to check "./starmade" for the .jar. I said that it wasn't needed because it would break already setup servers and that it was already possible by editing the config file. They couldn't provide a reason for that to be done so I ignored the people suggesting this. This was a compatibility breaking change that could already be done on the side of the end user and fixed what amounted to making the end user run "mv ./StarMade ./starmade -r".
This is in stark contrast to something else I was asked. Someone wanted me to make a maven .pom file for my project. At this point this person was contributing to the project and he made his case that "it would make it easy to import the project". I told them if you want it implement it since hell, it was a single file!
These are the filters I apply to suggestions:
- Does this make sense in a technical light
- Does the person who is asking for this have the ability to write it by themselves
- Will it break compatibility
- Is it better then what I do currently
The second change was technically sound, this person was a maintainer, it wasn't going to break anything, and it provided an easy way to work on the project. The first situation was none of these things.Today I think it's a form of procrastination. In this family it's often about efficiency and use of resources, but it always comes down to having a "valid reason behind it", as you put it. It can also be a form of trolling, especially when you don't actually want something to be done, if you succeed in getting one or two hangers on.
I still believe that doing things collectively is a good thing, but this particular behavior pushes me on, ever so slightly, into the modern, individualistic way where everyone has their own of every thing.
You know what? You can always re-paint it. It's not a big deal. I know this might be rich from just one short comment from you, but if I were you, I would be wary and consider this deeply. Your examples remind me of a family member in particular, and it's debilitating.
"I bow my head in respect to the original proposer because he stuck to his guns through this carpet blanking from the peanut gallery, and the change is in our tree today. I would have turned my back and walked away after less than a handful of messages in that thread. "