When Good Developers Go Bad
Join the DZone community and get the full member experience.Join For Free
Having spent many years on different online communities and forums, not least JavaLobby, I've noticed some trends about how developers act from behind their monitor. To get a broad range of opinions, I've also asked some of the other Zone Leaders from DZone for their opinions on this. I don't mean to say all developers are the same - I've been one long enough myself - but I want to find why people hunt in their packs in communities and forums.
Firstly, I admire anyone who takes the time to write an article for publication on JavaLobby, or any other developer community. It takes up a lot of your spare hours, but we really appreciate new content and perspectives from a variety of developers. I also acknowledge that it can be difficult to put your point out there, where it can be easily shot down in comments sections or on forums.
The Flaming Process
So, you've written your article and it gets you some visibility across the web. You feel good, until you start to notice comments that you get in. "Your article is out of date", "you're article sucks and is pointless. You should use <framework/methodology here>. You start feeling bad now, and the worst thing of all is you get a lot of unqualified comments. For most people, this stops them from posting, and maybe even commenting, ever again.
In my opinion, community is everything. Every article is different, and some might not be quite right in their conclusions. People should leave comments on the article, but they need to be constructive, and encourage further discussion. It's great to see debate, but not at the expense of putting someone down or not giving reasons for your disagreement.
Why Are Developers Like This?
I'd really like to get to the bottom of this - why are developers so angry sometimes? Maybe there's some personality type that we can associate to developers or is it just a product of our lifestyle?
A recent article poses the question Are Cocky Developers Worth It?. This goes through some of the traits of someone considered a great programmer, and discusses how he is perceived by the rest of the team. This is at company level, rather than across the community, but it raises some interesting points. I hate to paint a picture of one personality type for developers, but let's give it a go, focussing on the not so good parts:
- Over confident
Maybe this is just the vocal minority. And I'm just asking the question - most developers I know personally don't fall too far into this band. As we learn and adapt to software development, we're conditioned to be all of the above. We need to have pride in our work, we need to be confident that what we pass out to the general public works well. But maybe there's some mis-wiring along the way!
It's possible that some developers become fanboys (or girls) of a particular technology and appear like zealots in forums. For example, we've have the Java and .NET debate for a long time - I wonder were we just protecting the technology that we've invested a lot into.
So now it's over to the other zone leaders to see what they think.
In my opinion, all these bad developers lack just one quality in them, and that's Humility. The wikipedia defines "Humility, or being humble, is the defining characteristic of an unpretentious and modest person, someone who does not think that he or she is better or more important than others". The dictionary defines humility as modesty, lacking pretence, not believing that you are superior to others.
Over the past several years in this software industry, I have worked with many developers. The ones who were achieving great success in their career were the ones who had this quality. These successful people bragged the least, and the more humble they were. I admired these men and woman so much.
On the other hand, there are these developers who think that they are the experts and behave like a know it all person, and have no clue whatsoever to say " I don't know". That's when the problem starts and they start acting like what you have said above. They don't have to be behind a monitor to write stuff like this, many behave the same way all the times.
As the saying goes "Empty Vessels Make The Most Noise” these bad developers may be making these statements because they know little or nothing about it.
They try to express their opinion and want everyone to be impressed by what they say. And in many cases it's the other way around.
I would suggest to all those bad developers to practice humility. If you need help, let us know. :)
I totally agree with Meera that humility is a characteristic of good developers. Another is courage and this is a simply a matter of having the courage to tackle tough issues and challenges, both technical and soft. Even greater is the courage to admit to failure or lack of knowledge. And the greatest is the courage to accept responsibility and honor that responsibility.
I truly believe that software development is, first and foremost, a social exercise and, secondly, a technical exercise. It is about people working together to achieve a common outcome. Breaking down stereotypes by acknowledging the diversity in cultures, histories and attitudes that exist in a team is vital to achieving harmony and maximizing productivity. It is actually about ubuntu (not the linux distro :-) ) which proposes that people are only as good as their relationships to other people.
So, for me the "bad" developers are also lacking courage and basic ubuntu.
I think more often than not we don't spend enough time thinking before writing a comment to something we disagree with. We really do need to blink, at least long enough to write something that is mostly constructive. Short abrupt responses along the lines of 'You're an utter idiot' are not only unhelpful but also potentially quite harmful to the recipient. How much more useful would it be if we'd either phrase our responses in a respectful way or not at all, if your only response is going to be scathing anyway? It takes a lot of courage, especially the first time and especially when you're broaching a topic that is new (at least to yourself) to post opinions in a very public place. I think it makes more sense to encourage that than to humiliate the writer to the extent that they'll never be heard from again, hanging their head in shame, and blinking away their tears...
Looking back at the last 7 or 8 years I have been involved with the web and development in general I have to say the web has treated me well. However, casting my mind back a couple of years I remember starting to utilize the internet more and more, specifically forums, to get answers to some of the questions I had and the problems I faced and could not solve on my own.
I was what you can call a "virgin forum user" seeking the advice and help of the more experienced developers out there. We I started developing, all of my efforts was focused on Java and I thought, what better place to ask for help then the forums on java.sun.com. Alas, after posting a few questions I decided to avoid these forums at all cost as I was not getting any help but instead received criticism and basically told that I was looking for an easy way out without looking for the answer myself.
To me this seemed really weird. One of the things the web gives us is an ability to interact and learn from our peers. Constructive criticism is always appreciated but just slamming someone because they decided to cover a framework that some might feel is not relevant anymore, or because the title blurs what the content describes or, someone is a newbie with some simple questions to ask is no reason to attack.
In the end we are all developers and/or designers trying to reach the same goal, create software and services that ads value and satisfies our clients and users. So instead of breaking down someone's confidence; instead look at how you can assist and encourage. After all, each and every one of us was, at some stage, the newbie looking for help. Ask yourself the question, what would have been more helpful, an insightful answer or getting creamed because the variable names you used was not descriptive enough.
Opinions expressed by DZone contributors are their own.