It would be nice if he had more data in this essay. His findings don't match my own. As a software engineer, all the nice people tend to just hand wave and OK and write kind of crappy, worthless features and implementation that don't do their job very well - they aren't good for the users or even the business. You end up with things like the Google IO conference app stuck with a couple different events and called a new product.
Mean people on the other hand are willing to say, hey, doing work on the UI thread and giving the user a bad, unresponsive user experience is bad and it needs to be done right. It's mean and it sucks, but you have to throw all this out and rewrite it better. Hey, just shoving new data in a complex data browsing framework doesn't give the user what they want when they want big pictures and easy to flick through options, etc..
Sure it is nice to let crappy ideas and implementations and whatnot through and just be nice to the person you are dealing with or working with, but it doesn't produce good results. In my experience it usually just produces me working weekends to fix their broken shit while they go around thinking they do a good job.
Being a pushover does not make you "nice" there are correct ways to write good software and pointing that out in a respectful way is not mean. However walking upto a person and saying you're an idiot this feature is useless you write terrible code etc.. certainly is.
In my experience as entrepreneur and manager of a software company I believe one of the essential qualities as manager is to understand what is going to happen(predict) if people follow a path and DO NOT LET IT HAPPEN.
It is like controlling a RC hellicopter or quadcopter, you need to do very shuttle movements and is almost effortless. But if you let it to destabilize, the thing is hitting the ground hard and trying to fix it could make it worse.
If you leave someone working 6 months on something, you better control it correcting deviations soon, instead of just telling the person that all their work is worthless later.
People that avoid confrontation at all cost could make thing worse as when they are forced to act it is too late.
You probably don't have "smart creatives" that Eric Schmidt describes in his latest book. If your company insist on hiring "smart creative" types who are independent thinkers and intrinsically motivated then they would probably die under constant supervision. They are best left alone with minimal intervention if you want to get best out of them.
Mean people on the other hand are willing to say, hey, doing work on the UI thread and giving the user a bad, unresponsive user experience is bad and it needs to be done right. It's mean and it sucks, but you have to throw all this out and rewrite it better. Hey, just shoving new data in a complex data browsing framework doesn't give the user what they want when they want big pictures and easy to flick through options, etc..
Sure it is nice to let crappy ideas and implementations and whatnot through and just be nice to the person you are dealing with or working with, but it doesn't produce good results. In my experience it usually just produces me working weekends to fix their broken shit while they go around thinking they do a good job.