Why "If you can't say anything nice ..." hurts development

Come on now, admit it. Your mom/dad told you at some point "If you can't say anything nice, don't say anything at all." The thing is, neither had any idea how detrimental this philosophy is to the real world. While I will focus on the harm it causes the development community, you could extend my ideas to any thread of social interaction.

Basically, there are two main reasons why I feel mom/dad should have received a lecture after stating that gem:

1) It instills a mindset into the recipient that speaking your mind is not welcomed in the world.

2) This mindset further expands itself within the recipient so they are no longer able to receive (and act upon) "hostile" criticism.

Let's examine further...

Words have an everlasting effect on children -- it scares me how quickly my 6 y/o daughter repeats things I didn't mean to say. In addition, endless studies (which I won't take the time to quote) have pointed out a correlation between verbal abuse and self-esteem. The contrapositive of that is also true, positive reinforcing words instill wonderful feelings within their recipient.

Because of this everlasting effect, simple phrases become absorbed deep into subconscious behavior and alter a person's persona. Now knowing that, let's rethink what that glorious phrase really means to a child -- I'm not allowed to say anything that isn't nice.

The worst example of this tends to happen to extremely introverted people that hide behind the "No one cares what I think anyway" phrase. Sadly, this travesty of justice keeps these people from reporting problems they see, solutions they've conceived, ideas they've dreamed up, and a whole slew of other items that can help a project achieve its goal.

Some people will say something that isn't nice but feel the pressure to employ that wonderful effect called "sugarcoating" (placing as much "nice" words around a "hard to swallow pill"). I've seen it in plenty of relationships with my users. For example:

Wow, this page is really neat. I like the layout, all the links work, the articles are great. You've really done a good job. However, you misspelled the word "Emmeekaguramookavich" in paragraph 32. Hopefully this will be an easy fix.

Keep up the wonderful work,

Now, for me the above comment has this long drawn out way of asking me to do something. Don't get me wrong, I'm grateful for the appreciation you're showing me, but the first sentence suffices at doing so. As far as how easy a fix would be, don't you think I'm better qualified to answer that? After all, I am going to be implementing it. Finally, are you expecting me to hand you anything but the wonderful acts of work that I create? Not only do these extra words discombobulate the communication effort, I now have to repeatedly skim them over every time I refer to this message for what I need to do. My time is in high demand, so please speed up my ability to help you by not buttering me up.

Then, you get the side of the spectrum where I sit, the one where the person either never heard this advice or (like me) concluded it was full of crap. We're the ones that don't hesitate to blurt out to your face, "This sucks!" and "I wouldn't even feed this to my neighbor's dog." We're also the ones who will then go over every point as to why we came up with our assessment and expect you to fix them. But however, you won't because of my second point.

For example, instead of taking what I said back to your drawing board you'll be labeling me as a jerk because of my "hateful diatribe."

This same thing happened to me at a previous job. I asked a junior developer to create some custom form that would sort by name, allow you to add new ones (and then more importantly resort once they were added/edited). After a week, I got back something that I used and then immediately told him "didn't work" because it didn't do the one thing I wanted (the resorting). When I said these points, he literally called me "rude", turned around, and went back to his desk. Now, I was able to code what I needed by the time he got to his desk, so I didn't push the issue. However, I wonder if my second point about this little phrase was to blame.

Basically, when you grow up in the mind set that "you can't say anything nice," you conclude that there is something wrong with the person saying these "un-nice" words before you actually listen to what he/she is saying. You can see examples on many Internet based threads. The typical pattern is this. User1 says "this module sucks because it doesn't do blah which I really need." This thread will then quickly fill up with replies stating how User1 is a "n00b", "Id10t", how they should "use something that has blah", "code it", "be happy with what they have," etc. While it is amazing that these same people lash out using such un-niceities, the fact remains that until someone comes along that can accept such criticism (and possess the resources to add blah), blah never gets added to this module. The module is further hindered because many of the developers that do have the resources to add blah are probably turned away from working on it because of the aura that now surrounds its request.

It's getting late and I need to wrap up so I'll finish here and ask that "if you can't say anything nice, shout it loudly!"


The Standard of End-User Experience

Recently a lot of people around me were dropping the "standards" word. This might have something to do with the release of IE7, FF 3.0, Opera 9.0.2, etc., who knows. While this is fine and dandy, I would like to know what standard they are referring to. From what I remember from my networks class, there are two types of standards:

  • De facto (becomes a standard "by fact or practice" because so many people do it/use it/etc.) IE's "manufacturer-specific non-complaint enhancements" are a perfect example of this. Even though they fit the above quote, they are still a standard because IE and its ~90% market dominance has made it just that.

  • De jure ("by law") are the standards released by a lawmaking body (in this case the IETF or W3C). "Compliant HTML" fits this category. Please note that IMO RFCs do *not* fit within this category. RFC are Requests For COMMENTS. Standards are based on these, yes; but they aren't in the finalized form that a de jure standard needs to be.

Now, following either one of these is great, but by limiting yourself to just one you are going to eventually run into trouble with the other camp. Take, for example, the "Craptive X" features. Yeah, they are great when you are in the ~90%, but if your not, you know why I chose that name. The opposite is also true, there are websites that are making fully compliant HTML/XHTML/XML/CSS/javascript/etc. However, those sites "render" badly, if at all, in IE. Heck, there are even differences between the ways FF, Opera, render the same "compliant" code.

Now, some developers employ a remark along the lines of "Use another browser" to conceal the fact they can't/won't/whatever make their site work for whichever portion of the surfing population is affected by their shortcomings. There is even an increasing portion of this populous that go out of there way to sniff out these "inferior browsers" and redirect users to the homepage of whichever their favorite browser is. The funny part is that many times, other browsers (and the people who use them) get caught up in the fray and face these stupid redirections even when their tool can display the information coherently.

What I do like are the developers that have the mindset of remembering their end-users. The ones that have found the "Middle Path" and take the time to test out the way their site renders on *all* the different browsers. These are the developers that are worth their weight in Lutetium. For these are the people that remember the only standard that truly matters -- the standard of the end-user experience.

This standard isn't just limited to web-development either. We all know that applications that are actually beta tested are far better than those that were only used by their creator before being released. Heck, ask any interior designer who really gets the ultimate decision on which color scheme to use. Why can't we all remember this?

This standard is important. Does your creation make the cut?