4 ms·
I honestly have long agreed with your premise, but I have to say I can't bring myself to agree with your whole statement. I see it more often each passing year
by yebyen 8y ago
I honestly have long agreed with your premise, but I have to say I can't bring myself to agree with your whole statement. I see it more often each passing year, that someone who behaves a certain way is "charitably" accused of having some disorder, or "being on the spectrum." I do not accept this.
And you can do better than "this code is fucking garbage." Even "this code is poorly done, try harder" is much better. It is more polite, and the more times I see this discussion, the more I like the idea that you should just treat your colleagues like ladies and gentlemen, or whatever.
At a given point in my TDD learnings, I thought I invented a new term for a really powerful idea – "Shame-Driven Development" – turns out I was not the first person who named this idea.
My idea of "SDD" is basically that noticing a failing test will motivate you to fix your code, so it's imperative that we set up CI early in development and shine a light on those failing tests at every opportunity. My idea is not important, if you google the term, you'll see that it really is a bigger idea than that, and all of the top links are perhaps obviously not presenting it in a positive light.
You don't want "shame-driven development." Embarrassment is only a powerful motivator for the people you haven't used it on yet. Other people will seek to avoid being embarrassed, but the person you embarrass will only be left feeling bad.
- bitL 8y agoI don't believe SDD would work for these reasons: 1) people that start a serious open source product must be self-assured and innately isolated from any external community/pressure in order to avoid distractions from their goal. Shame has likely 0 effect, or negative (i.e. the person/group doing the shaming would get banned from any future interaction). It takes a certain type of person that is likely "very thorny" to the outside world unless persuaded by desired qualities in other people that want to interact. 2) those projects often start as angry reactions to what is happening in the outside "meatspace" (corruption, vendor lock-in, "voluntary" censorship, you-can-buy-everyone, selling underwhelming/dangerous stuff for a lot of money etc.); doing things differently when they start working inevitably invokes feelings of superiority over people that "just don't get it"/"noobs" and it's difficult to resist temptation of showing off. Or external people are viewed as "conformists to old ways" that would prevent better things from happening in order not to disrupt current status quo they benefit from, hence interacting with them is not desirable (and arguably dangerous until project really makes it) 3) having to wade through a lot of new issues daily and cherry pick the ones that are worth examining is time consuming and tiring. After doing this for a while it likely leads to anger and telling off someone is a way to vent 4) popular free/open source projects that made it are often targeted by people trying to subvert them for their hidden agendas; any original developer intelligent enough can be at least disturbed if not outraged by that; harsh reactions following. "How would you punish those subverters?" is a better question than to penalize a developer that was easily provoked to an angry outburst by those poking at their weak areas (and that's often trivial with honest technical folks) 5) priority of creators is often getting things done as fast as they could; "unnecessary social talk" is often viewed as a waste of effort/time, and honestly it often is, unfortunately. If they decide that at some point "talking nice" is leading to being more efficient, they would do work on it, but not before they perceive it that way. 6) Many junior developers think that they are entitled to some coding celebrity's special attention instead of taking the hard way, improving themselves and then contributing when they are finally able to.
- yebyen 8y agoI may not have made myself clear, I'm already convinced that either vision of Shame-Driven Development was a bad idea. That being said, thanks for your thoughtful reply!