The Dark Side Of Software Development That No One Talks About

Hey, you.

Yeah, you.  Psst.  Come over here.

I’m going to tell you something that you may not have heard before.

Are you ready for it?

Software developers are jerks.

Don’t get me wrong, there are lots of great developers and nice people who are software developers, and there are lots of great supportive environments and thriving communities in software development land, but there are also lots of jerks.

You have to learn to grow a thick skin

You don’t hear this much, because it isn’t really nice to say.  And hey, I’m an eternal optimist, so I’d rather not look at the negative, but ignoring reality doesn’t make it go away.

Black Rhino

The truth is not everyone has your best interests at heart.  The truth is that a large number of people would like nothing more than to see you fail; to prove once and for all that they are smarter than you.

Chances are if you are doing something unique or you propose a new idea, you’ll have more critics than supporters.  I don’t say this to be mean or to discourage you—I actually have the opposite intent.  Rather, I say it so that you can be prepared and not think it has anything to do with your personally.  Hopefully, I can help you grow the kind of thick skin you are going to need if you are going to succeed as a software developer.

There has been a good amount of griping and general banter about women in tech lately.  Both sides of this imaginary war have crossed lines and drawn blood.  I’ve stayed out of it so far, and I’ll continue to—I’m not taking sides.  But, in some ways this whole debate has shown just how nasty people can be in our industry, and over some pretty petty things.

The problem is that most software developers, male or female, aren’t really ready for the nastiness they are about to encounter when they start writing code as a career.  Worse yet, much of this nastiness is disguised in a very passive aggressive manner, so targets of this ire aren’t even aware of it—at first.

Lots of us could definitely stand to read a book like “The Hard Truth About Soft Skills,” or one of my favorites that I recommend every chance I get, “How to Win Friends and Influence People.”

Where does this vileness come from?

We work in a sort of strange field where intelligence and ability are highly prized, but some of these same qualities made some of us victims of aggression and abuse earlier in life.

This tends to result in a culture in which many of the participants are constantly trying to prove themselves and evaluating themselves against others.

To put to plainly, it means there are lots of sensitive and bloated egos floating around.

It is sort of a “kick the dog” syndrome where software developers who were kicked earlier in life, or even earlier in their careers, tend to feel justified in kicking the programmers who they see beneath them.

This same kind of mentality also tends to foster cynical thinking and an outright rejection of any idea that doesn’t self-originate.

But, I probably don’t have to tell you this, so much as to remind you of it, because if you’ve been in the industry for any amount of time, you’ve probably felt and experienced this yourself.  You may even be a perpetrator of it—we all are from time to time—just some of us more than others.

What you can do about it

So you might be wondering what my purpose is in telling you all this.  Am I just complaining for the sake of complaining?

No, definitely not.  Like I said, I spend much of my day trying to see the positive.  I don’t like to dwell on the negative.

My real purpose is to put this out in the open so that I’ll stop getting emails from tired, beat up developers or want-to-be developers who have been beaten down so hard by their peers that they feel that they are somehow below them.

Everyone feels doubt in their abilities and worth from time to time, but you’ve got to learn to recognize where the doubt and fear is coming from.  Sometimes, it is a healthy dose of skepticism in our own abilities that keeps us from floating our head way up above the clouds, but many times it is just the reflection of others who are making us feel inferior.

I’ve sat through countless meetings where good, smart software developers who had good opinions and ideas kept their mouth shut and didn’t say a word.  I’ve been to leadership and effective communication classes that told me that the vocal participants in the room were to blame; that they were being too assertive and aggressive and forcing others into the room to become more introverted.

But, you know what?  That is hogwash!

Business man

Are you going to live your life waiting for someone else to step out of the way, so your quiet voice can be heard?  Or are you going to make your own voice louder?

You are much better off realizing that people are jerks and learning how to speak out and deal with criticism than you are believing that you are inferior and not worthy of a seat at the table.

Don’t blame your own situation on other people being egotistical loud mouth jerks and accept their bullying and allow them to project the image of how they want to see you onto yourself.  Instead, realize that is just the way it is and you have to learn to adapt to this environment.

As much as I’d like it to change, it probably won’t, so at some point you’ve got to start living in reality or find a more peaceful and accepting atmosphere.

Don’t be part of the problem

Just because the situation is somewhat bleak, doesn’t mean you have to be part of the problem as well.

I originally started this blog, because I was fed up with all the egos that were trying to make programming seem so much harder than it really is.  My whole mission in life for the past few years has been to take things that other people are trying to make seem complex (so that they can appear smarter or superior) and instead make them simple.

I charge you with taking up the same quest.  You don’t have to start a blog dedicated to the cause or wear a Simple Programmer T-Shirt, but you can start helping other software developers and making them feel like they can do it instead of making them feel like they need years of practice to attain your level of skill.

If we want to make a difference in the community, we have to start trying to make things seem simpler rather than harder.

There are plenty of people out there who will gladly challenge a new idea or tell you why you can’t accomplish some goal, but there needs to be more of us—especially those of us who’ve been in the field for awhile—who tell people why they can do it and how easy it really is.

Real strategy to deal with this problem

Dealing with jerks and negativity is hard.  It is really hard.

In my career, I’ve dealt with my fair share of it, and I still deal with it today.  In this post, I just highlighted the problem and offered simple suggestions, but I’m actually working on a much bigger project to distill some of these specific software developer career tips into a bigger package.

If you are interested in finding out the moment this product is officially launched, sign up here, and I’ll be sure to let you know.

How about you?

Do you run into lots of egos in software development?  How do you stay positive and not let them crush your spirit?

About the author

John Sonmez

John Sonmez is the founder of Simple Programmer and a life coach for software developers. He is the best selling author of the book "Soft Skills: The Software Developer's Life Manual."


    There is 2 problems : 1/ as you said, a developer wants to seems smarter so he build something only he will be able to understand and he’s sure that the only way to do. 2/ A new solution often means a previous solution is not good anymore, you always have to know that you are saying that your colleague was not doing a good work during 10 years and that might upset him (and if the company is alright he’s right to be upset). So instead of “This is not good let do that” it’s better to say “This was good but not anymore”.

    • Michael Muryn

      Or even “it is good, but here is a better solution”. Improvement does not mean that the past worth nothing.

    • Owen

      Or “this was good but I want to learn X, Y and Z skills to impress future employers so let’s use X, Y and Z instead regardless of whether it is right for this project or not”

  • Pingback: The Dark Side Of Software Development That No One Talks About | Rocketboom()

  • sainathshenoy

    Good read. I was waiting for someone to write this article. I’d like to point out that this is not only something that happens in tech. You’ll see the same problem in marketing, sales, competitive sports, journalism, investment banking to name a few. The one thing that links all of these industries is intense competition and high stakes. The bottom line is there are always going to be jerks everywhere you go, everywhere it’s worth going to. That is one of the things that all adults when they enter the workforce have to learn to deal with. But then there are radically inclusive people too, the people who inspire you to do what they do.

    The number of programmers is increasing by the day. That can only mean one of 2 things:
    1) These people all have thick skins
    2) The number of inclusive people is greater than the number of jerks.

    • jsonmez

      I agree with that. I like to think there are less and less jerks. It is harder to get away with it now because information is more available. It used to be that the senior guy knew secrets no one else knew, so he or she could get away with being a jerk– not so much anymore.

  • Kyle Plate

    I have managed tech and development teams for 20 years. Here are my 2 rules that I have yet seen disproven:
    – No matter how many technologists are in a room whether 1 or 100…every person is completely convinced that they are the smartest person in the room
    – Almost every developer when looking at another developers code says: “wft were they thinking”

    • Jaryd Carolin

      I say that even when I look back on my own code!

    • jsonmez

      Great observation. It is important to keep those two things in mind when dealing with people. Many times we’d prefer to see reality how we want it rather than how it actually is. I especially think it is useful to realize that most technologist think they are the smartest person in the room, completely changes how to handle a situation and speak to someone.

      • Kyle Plate

        Definitely. But… it would make things much simpler if they would hurry up and recognize that I am the smartest person in the room ;)

    • Michael Kimsal

      I’m mostly like that now, but it was only after several years of deferring to everyone else on teams or in companies I worked at. It took me *years* to realize that *most* of the rest of them really didn’t know what they were talking about, and I was the one who ended up having to support their BS decisions by cleaning up crap code.

      I don’t always think I’m the smartest in the room, but I think I’m usually the only person who thinks that everyone else thinks they’re the smartest.

  • Jeff Goldschrafe

    For all the lip service about how you’re “not taking sides” on the issue of women in tech, you sure seem to be doing a lot of generalized victim-blaming by supporting the ideas that: a) acting like a complete jerk in a professional setting is okay, and b) people should grow a thicker skin if they want to be in software development instead of seeking out environments where people act like human beings towards one another.

    I understand the message of empowerment you’re trying to get through, but you’re saying “keep going, prove you’re worthy of a seat at the table” when you should be saying “we need to stop the practice of letting poisonous jerks decide who gets to sit at the table.”

    This isn’t a matter of touchy-feely stuff. Many researcher-authors like Bob Sutton have dedicated nearly their entire body of work to the extremely detrimental impact of poisonous coworkers and managers upon organizations.

    • Anonymous Coward

      I fail to see what growing a thicker skin has to do with taking sides on the issues of women in tech. If you’re attempting to imply that women are somehow weaker and less able to withstand — even harsh — criticism, then that sounds pretty damn sexist. Seriously, if women are to be treated like wilting flowers who have to be tip-toed around, then that’s going to present a far stronger barrier to having women taken seriously in tech than any mean comment ever could.

      • Jennifer Heilemann

        I don’t think Jeff was saying that women are weak or wilting – just that the environment is the problem, not necessarily the person’s reaction to it. Victim-blaming can happen to people of any gender in any situation. The only link to women in tech or sexism is that victim blaming is occasionally held up as an example of what not to do in such a discussion.

        It’s a tenuous link, at best, and probably distracting to the overall discussion. Software development can be a harsh environment, and that needs to be fixed. Something to do in the meantime: learn to live with it, and stand up for yourself occasionally.

    • jsonmez

      You have a valid point. Sometimes and quite often the best option is to get the heck out of dodge. Don’t let yourself remain in a poisonous environment. But, sometimes you have to wait your time until you can get out.

      Don’t get me wrong. Being a jerk is not ok, ever. There is always a way to be nice and there is no excuse for being a jerk. But at the same time, we can’t change other people, only how we react to them. I’d like to see the tech world be a more friendly place. I am doing what I can to help people as much as possible and encourage others to do the same, but at the end of the day, we have to also deal with reality as it is.

      Again though, great point. Thanks for the comment.

  • boriel

    Completely agree (just read some Linus Torvalds comments, or google for Richard Stallman, for example). No doubt they are good at what they do, but they seriously lack personal abilities. The problem is this “Dev stars” also serve as models to younger developers. I mean, some young people feel like they must also act as a jerk, since this is perceived as a sign of intelligence, high devel skills and geek). :-/
    It also might damage some open source projects :(

    • jsonmez

      Yep, and great link. Derick has awesome insights on the topic. There is ALWAYS a nice way to do something or say something if a person is willing to take the effort to be considerate of their fellow human beings.

      • boriel

        As an example, see a comment coming from Linus Torvalds: :-/
        This might sound funny and even cool if it was an isolated case. But it is not. It very common, and from my point of view

        1) Causes damage to the Open Source movement (simply, Linus is a jerk, and I think this is not OK)
        2) Stop other people from asking / suggesting improvements or wanting to contribute.

        I know there are other OSS projects whose leaders are very kind and not a jerk at all. Maybe they should be cited as counterexamples to show people there is another way to behave.

        • sdwone .

          Yikes!!! And I’m hoping to start my first post as a developer in the foreseeable future, after 20 years as a teacher. Well, as many posts have already stated here, there are jerks and A-Holes everywhere! Teaching sure as heck has it’s fair amount and no, I’m not just talking about the students! Although one thing about teaching is that, because of the huge amount of crap teachers get from…, well…, EVERYBODY, including the damn politicians, there is a healthy sense of solidarity among most of the teaching staff (NOT managers chasing targets). I assume such solidarity is rare within the software industry and more akin to ego, competitiveness, superiority and inferior complexes but, I think my skin is already pretty darn thick!!! I’m a firm believer in “true” intelligence, which is a mix of raw intelligence, human compassion and above all REASON. Acting like a jerk, even if you ARE intelligent, is simply irrational, illogical, non-Vulcan like behaviour. Anyway, I guess some of what the OP has said is true. Some intelligent people are jerks because of crap they got during their early years. This is understandable to an extent but it’s no excuse when one is supposed to be a responsible, mature and balanced adult. Fortunately, I didn’t get too much of that nonsense during my school days, I had my fair share but, for the most part, I enjoyed those days. So I guess I’m lucky to be blessed with a brain, but don’t feel the need to bash people over the head with it (because I’m confident within my own skin and don’t feel the constant need to prove myself to people… Which is a total waste of time!)… I have a healthy sense of humour, I can identify with others and I’m always up for helping people out because, ultimately, Human Beings are SOCIAL animals: We work best when we work together and we are at our worse when we don’t. Anyway, when one really wraps themselves within Reason and Rationality, one becomes both intelligent AND a well balanced and popular Human Being, able to withstand the bizarre and inane madness of their own species!

  • csells99

    I don’t buy it. Engineers are sometimes more socially awkward than others, but they’re not jerks more often than people in other professions. In my experience, they’re just the opposite.

    That said, engineering is a discipline where finding the right answer is actually important, so if you can’t take honest criticism, even if it’s from someone that may be rough around the edges in how they present it, then you’re going to have trouble.

    • jsonmez

      You hit on a key point that I wish I would have included in this post. Only after I published it did I think that I never mentioned that sometimes you need to take honest criticism, even if it isn’t delivered tactfully. Actually, to be more honest, my wife, who proofs my posts told me that I should mention that point, but I actually didn’t listen. hah

      Anyway, I totally agree with you on that point. I always thought we should be tactful ourselves and try not to criticism, but we should accept the most harsh and untactful criticism, if we want to have the best chance for success. Any successful person has faced mountains of harsh criticism and trudged onward.

      On your first point, I think it depends on perspective. I have worked with great people and I generally interact with awesome people. Partly because I won’t allow myself to stay in an abusive environment and I try to turn my enemies into friends whenever possible. But, I actually wrote this post partly because of the large number of emails I get from developer in India where there seems to be a very different and abusive atmosphere in tech.

      • Claude “CodeAngry” Adrian

        Always listen to your wife!

    • Owen

      The problem is that everyone has a “right answer” which is different to everyone elses. The winner ought to be the person whose answer is simplest. Instead sadly it is often the person who shouts loudest.

  • Nathan Kot

    I get this feeling too, there’s always this air of uneasiness when there are too many devs in the same room, or maybe it’s just my paranoia lol

  • david karapetyan

    Here’s my strategy for dealing with the things you mentioned. If I don’t understand something I will ask questions until there is no more magic. I don’t care how offended you get or how smart you think you are. I’m not going away until there is no magic. So you better get used to the fact that your huge ego and intelligence are not impressive to me. In fact you’re probably afraid of people realizing that you are just as clueless as everyone else. That is another thing I don’t care about. The goal is to get understanding. Nothing more, nothing less.

    The above strategy has worked out pretty well for me.

    • jsonmez

      This is fantastic! Great advice. I try to take the same approach and it has also worked out for me. Sometimes I appear stupid because I’m not as fast to “get it” as others, but often times I find that people are just pretending to “get it.” Either way, in the end you end up learning and advancing even if you have to eat a bit of humble pie to get to that point.

    • sHuff

      exactly. A PM I worked with some years ago would make it a point to tell the team two things:
      If you understand, challenge. if you don’t understand, question.

    • David

      I love this approach! Very good idea and suggestion. Drill down to the truth. Clear away the smoke and mirrors.

    • Richard Valdivieso

      David, I am going to use your advice. Let’s talk until there is no magic or black holes.
      To be honest, I always asked a lot of questions and it does feel like I am a person than do not “get it”, but at the end it is more important understand the problem that feeds my ego.

    • Owen

      I would like the guts to ask colleagues, “Why the f**** did you do this in such a stupidly over complicated way?” without being made to feel like an idiot for asking it.

  • M. Edward (Ed) Borasky

    The “dark side” is nothing more than weak managers allowing this kind of horseshit to take place. You can and must fire jerks – they don’t produce. Yes, it really *is* that simple.

    • Ca Estrada

      If everybody is really busy [chasing the goals] in the project and the PM is really busy watching the project, these things never happen…too much time on their hands…

    • Owen

      I could not agree more. The ‘jerks’ being referred to sadly out-shout and out-talk even their managers so this rarely happens.

  • md8n

    Two rules:
    Rule 1 – If it’s my fault I take the blame and do it fast.
    Rule 2a – I find something to praise in my peers and do it often.
    Rule 2b – If I genuinely can’t find something to praise I let them know.
    Rule 2c – If they don’t improve then I make moves to get them moved on (AKA fired, laid off, retrenched, benched, whatever)
    Rule 2d – If they can’t be moved for any reason, then I will look at moving on myself.

    Rule 1 helps spot the real jerks – As soon as you criticise yourself, anyone who jumps on the bandwagon without adding anything useful is a total jerk. Also it shows to everyone else.
    Rule 2 is obviously a process – the positive end point (2a) really builds a better team, the negative end point (2d) is that if seriously underperforming people can’t be moved on then there’s something much worse going on higher up the food chain. Now that you’ve found that out, it’s time to plan your next move (and do it quick).

    • jsonmez

      This is great advice.

  • disqus_khcFWxHPN5

    Far too many egos my friend. Only 4 years in and I think I now hate people.

    • Hendrik_NL

      LOL, ad demonstrandum mbirtwistle!

  • Pingback: The Morning Brew - Chris Alcock » The Morning Brew #1438()

  • mbirtwistle

    “If you find somebody irritating, they probably find you intolerable.”

    I try to remind myself of this if I’m having a bad day and find myself playing the blame game. Often whatever tension is going on between two people is almost certainly happening in both directions, which moves the focus away from blame and towards conflict resolution.

    That being said, I once tried to explain this to a friend who was having a problem with an ‘idiot’ at work and his reply was ‘Why would he have a problem with me? There is nothing wrong with me?’

    I gave up. Sometimes the arrogant are always right and there is nothing you can do about it.

  • Mentor

    pussy managers are to be blamed for keeping the jerks in the team.

    • Owen

      Sometimes there are hidden agendas too whereby the jerks are kept in the team for politically sensitive reasons – to the detriment of everyone else. :-(

  • John Atten

    I agree with Csells and others who float the notion that this phenomenon is not unique to the tech field. However, I will add the notion that it appears more prevalent simply because, as tech-savvy people, we tend to employ semi-anonymous electronic communication more frequently, such as comments on blogs, Hacker News, Reddit, and so on. As is well-known, faceless e-commenting seems to bring out the troll in many.

    Obviously this observation is less-applicable to meetings and other real social encounters. But the sheer visibility of the electronic bile in tech creates the appearance that tech itself is a harsh cruel place.

    Also, I am totally on-board with the notion that tech folks in equal parts need to learn how to deliver criticism, while also learning to take it when provided constructive criticism. I mean, sometimes (often, in fact), my code actually does “suck.”

    • jsonmez

      You are right about the semi-anonymous electronic communication, definitely can make things seem more bleak than they really are at times.

  • Pingback: The Dark Side Of Software Development That No One Talks About. | InterViewDvd MagaZine Blog()

  • Brad Rembielak

    I think our industry is composed of as many jerks as any other industry, but what makes me feel warm and fuzzy is that our industry has a huge open-source phenomenon. We have countless, smart developers who choose to create great tools not just for themselves but for everybody else for absolutely no financial gain to themselves. I can’t think of any other industry that has so many anti-jerks!

    • jsonmez

      Great point

    • tytf

      You have costless and open-source products, because you have not a cost you have on other industries: the cost of reproduction. Reproducing software is free, it is why there are so many free products. In this industry there is also the negative side of piracy, due to the exact same reason.

  • H.M. Müller

    Lots of generalities. But, on principle, I do not believe that you can write a sensible text about such topics: Because all this has nothing to do with “engineers” or “software” or the like, but just with – people. In each group of people, ideas will sprout and have to be discussed: Each school class, sports team, family etc. will therefore have to deal with questions like Where do we spend our vacation? What do we spend our money on? How do we cope with the loss because a member left the group? etc. and suggested answers. And in all these interactions, we have to deal with the like of ourselves – people, and of all sorts of characters. In this, there is friction – there is no way around this. What you describe, is nothing else than “all of society”. But this is not a thing you can “handle” or “learn to handle” – rather, as a person, we just *do* live in a society; and we behave in there. If someone has problems, concrete solutions have to be found – by her or him, a friend, an advisor. Generalities, in my experience, do not help.

    • Owen

      Well you are right of course these issues are not unique to IT. But I think it is fair to say that in the world of software development there are teams full of people with opposing ideas and disciplines and there are some very hungry egos to be fed.

  • BrainiacV

    I’ve rarely encountered jerky programmers (OK, so I might be the one who thinks he’s the smartest one in the room), but I have encountered a few who thought all intelligent life left the room when they did. But after reading their code, they were just putting on a show for management to make it seem they were geniuses slumming.

    If I want to encounter resistance to anything, no matter how trivial, I just have to talk to management. They never believe problems are as hard as they are, changes to code are trivial because they understand what the change was to be (but not how to do it), and they can be extremely risk adverse. They’ve already mentally pigeonholed you in what they think your capabilities are and would rather go to an outside agency than believe you when you say you can do something.

    Most developers I have worked with were very cooperative and ready at a moment’s notice to drop what they are doing to give you aid. We work in a “we are all in this together” environment.

  • Pingback: Software, Its Dark Side, and Search : Stephen E. Arnold @ Beyond Search()

  • Dan Sutton

    Brilliant! Of course, as everyone knows, a healthy development environment is composed mainly of denigration, abuse, screaming matches, dominance games and, occasionally, violence. This “encourages” the younger ones to grow thick skins and learn very quickly. Their reward for doing this is that they then get to perpetrate that same denigration and abuse upon even younger ones. Put three scientists and an idea into a room and there’ll be blood on the floor within ten minutes. And that’s just as it should be.

    On a more serious note: it’s all animal shit. We’re essentially predators: instead of animals, our prey is now ideas. Jerkiness is healthy: abuse should be encouraged: it’s our own little Darwinism. Those who can’t take it should become web designers or interior decorators, or something. OK, people – go ahead – abuse me for saying this (and thus make my point for me).

  • Scott K

    Thanks for this post. Being a newer developer, blogs can be discouraging. I have learned a lot and been encouraged to enter the field from reading a lot of programmer blogs. However, there is often an idea, which has shown up on one of my favorite blogs (coding horror), that programming isn’t for everyone, so if you aren’t good at it then maybe you should quit. This often made me question whether I was supposed to become a programmer. I wanted to, but doubted because I wasn’t as “smart” as the programmer “super stars”. Well, I got a job in the field and am glad I did, rather than giving into the idea that I wasn’t meant to be a programmer. I love the field and look forward to continued learning.

    I feel sometimes that the only programmer topics that are publicized are from the big ego programmers or startups that happened to make a profitable business. Those are great, but there is such a big niche of programmers that aren’t in either category.

    • booksaremyfriends

      I am just getting into programming now and while I enjoy it, I am not amazing or brilliant at it. I’m glad I read your post because I know that while I’ll enjoy my chosen career path, I doubt I’ll be a “rock star” programmer. I’m glad to know I’m not the only one who feels this way

  • boriel

    As an example, see a comment coming from Linus Torvalds: :-/
    This might sound funny and even cool if it was an isolated case. But it is not. It very common, and from my point of view

    1) Causes damage to the Open Source movement (simply, Linus is a jerk, and I think this is not OK)
    2) Stop other people from asking / suggesting improvements or wanting to contribute.

    I know there are other OSS projects whose leaders are very kind and not a jerk at all. Maybe they should be cited as counterexamples to show people there is another way to behave.

    • jsonmez

      Yep, great point.

  • RickJWagner

    Good post, lots of truth here.
    There are some good places where everybody works as a team and pulls together. (Most of the time.) IMHO, that’s about as good as we can hope for and work towards.


  • hafizan aziz

    Between programmer and manager. I think manager much problem. Programmer much friendly in much much away. If you’re manager just to push developer to the limit,for sure, they’re jerk.That’s why developer lunch own start-up to avoid overselling manager.Our project can do a to z future.While developer only sell what’s is the benefit.

  • Pingback: The 5 Step Path to Software Development | SoshiTech()

  • David C

    I think that the real experts, in any field, don’t really need to show off – and certainly don’t need to do it in a negative way. The negative show-offs are actually insecure but trying to hide it.

    I think the guys that feel the need to publicly put other people down tell us more about themselves than the person they’re abusing. The more horrible the public put-down, the more horrible the person doing the put-down (just ask their ex-spouse).

    As in everything, there’s a balance to be struck: every now and again the world needs a brave person to step-up and verbally put-down a jerk who is abusing weaker people.

    I also think that it’s unfortunate that some of the pioneers of this industry are famous for their apparently verbally abusive behavior and so now flawed and lesser wannabees think they need to be emulating that to make an impact.

  • adamgent

    I am very guilty of many of the above traits :) … but I think you missed a key component here. Programmers are **passionate** about their work. Or at least most often the good ones are. Thus I don’t think its entirely ego but rather an extreme emotion tied to their work.

    You can see the same similarities in other creative industries. Actually some of the most **passionate** people I have met are female UI designers so I don’t think its just male ego driven software development but any creative industry. You can also see it with success… people at the top are just in general a$$holes and its not because they are always bad people but because they care so much more and that behavior causes success.

    Thus the reason why the software developer industry has so many **passionate** jerk behavior is the very the same reason why politics have so many sociopaths: the industry approves of and encourages the behavior. I wish it weren’t the case and you can certainly try to fix it but I’m willing to bet if your the one your probably going to be the “jerk” who cares enough to do it.

    • Owen

      But one can be passionate without being a jerk, yes?

  • Dilton

    What do you do when the manager or, worse yet, the director, is an aggressive, overbearing, idea stealing jerk and a bully? I am semi retired now but I was in a situation where as an older worker, it would have been difficult to find another job, particularly at that time. Eventually he was reorganized into another group but for several years he made life hell for several of us under him. He had a very inflated opinion of himself but never seemed to really clue in to what was needed technically. He was very good at the political end and at technical baffle gab and management liked him.

    Your comment about rejecting ideas that were not self originating also hit home. While I was working full time, I developed a planning/estimating method that a) blows the doors off of other estimating methods, b) provides a technique for making accurate estimates of the number of defects that will be inserted into a software product, c) offers a method of estimating very accurately the level of effort required at each phase to deliver a specified number of defects and a way of checking the end result against the estimates. Projects that I have worked on have come in within 10% of the initial estimates and, if used properly, the approach can knock 30% off of the development schedule and reduce life cycle costs by a similar amount.

    I have tried to introduce this process to other organizations, even offering to work for free to get it set up and train the planners. You would not believe the intensity of the negative responses I have received. I have been called an “egotistical ass” by the director of a struggling software development firm. One manager refused to even discuss the process saying that it must not be any good since nobody else has adopted it. I would like to pass this knowledge on to others while I am still alive but it seems that reducing development time and life cycle costs and reducing the number of delivered defects by at least an order of magnitude is not as an attractive proposition as I had expected.

  • Pingback: Link Roundup 2013-09-13()

  • AntRemo

    Great insight…thanks for posting :)

    How do we buy/get a SimpleProgrammer T-Shirt?

    • jsonmez

      Your welcome. Good question. I should try and make some available.

  • Pingback: Recognition - Weekly Article Dump | Dev Leader()

  • Simple Developer

    This is a very good article John! I am one of those guys who have had a fair share of being put down by some people who think they know all.

    • jsonmez

      Thanks my friend. Some of your stories inspired this post.

  • Pingback: Noticias 14-10-2013 - La Web de Programación()

  • Luigi Mackenzie C. Brito

    I’m just a 4th yr student studying IT. My mentality is simple “Everyone is better” that simple. I studied programming because I love it. Not to start a career or compete with someone else. I see beauty in programming. So if someone thinks he/she’s better, so be it. I’m just a simple programmer hahaha

    • Owen

      Yay I’m not the only one. I like programming in the same way I like writing or painting. It’s an artform, a creative pleasure, not a cold technical science. Sadly the IT world is full of disciplinarians and text book junkies who want to hammer us with their academia and (fake) superior knowledge.

  • Pingback: Partea întunecată dezvoltării de software - Marijuana Dreams()

  • Michael

    I don’t think I am smarter than the others, there are so many things I still have to learn but from the people around me I just see people that hesitate they don’t take chances and they waste time on arguing. I always think like what’s the problem 1 + 2 so how do i solve it break it into pieces 1 + 1 +1 = 3. Life is weird.

  • Erique Bomfim

    John, what a brilliant article you wrote, man!! There were days I was longing for words of wisdom to deal with this scenario in my life. Right now I’m living it and, let you know how useful this article was to me! Thak you veru much! Health and Peace to you and yours. Kind Regards

    • jsonmez

      Thanks. Glad you found it helpful. :)

  • antijerk

    I was hoping to see some ways to deal with a common problem and I had to read the whole article to simply get a link to a mail subscription list? Who’s the jerk here? YOU.

  • Henry Adams

    The worst part is when another developer holds back information and refuses to share knowledge as if it were their copyright, and then shakes their head in disgust that it takes someone a long time to reverse engineer their code.”But I have already done the work for you…”. No. You really haven’t. It’s a part of your job to transfer knowledge. Otherwise why are you still here?

    A lot of software developers are damaged goods, and take pleasure out of creating circumstances that lead others to fail. Unless you stay in the industry for a few years though, you are unlikely to have the revelation that these people are no smarter than you, and are in fact in many cases,insecure, poor at understanding business needs and would not be employable in any other field. Many leave the industry before they realize that the source of the stink isn’t themselves, but rather the people they have been working with.

    Add to this the jealousy that a lot of other stakeholders in a company feel for developers who hop jobs at will due to a skills shortage that gets worse each year, and you have one of the shitiest jobs in the world. Many stakeholder actually fear developers talents and intelligence and feel intimidated. They then play the politics game, realizing that developers do not have the time to network as they do. They also take pleasure at bringing down someone smarter than themselves.

    I was amazed years ago when I became a software developer just how rotten the industry is, but have found you always need to remember the people you work with are plotting to bring you down at all times. The sad truth is, the larger your talent, the more you are going to be exploited by companies and targeted by other developers. That’s just the way it is, and until the golden age of computing ends and the cowboys go away, it will continue.

    If you want a quiet, studious life, go and work in a library. Software development isn’t for the wallflowers. Far from it. If you lack courage, go elsewhere, you won’t succeed as a developer.

    • Owen

      Piggish behaviour is unacceptable in any profession and I don’t tolerate it. In 20 years as a developer I have learned however that I should not give a pig the pleasure of my reaction. Instead I walk away, calm down, then if I’m still angry I take it up quietly with my manager and land them in the sh*t from a great height.

      • Edgeslider

        I have been a hands on software developer for 25 years. I have been dealing with all this crap by basically retreating into my own shell after the first few weeks of gathering information about the code and system (the hardest part). During this period, I also identify the jerks and backstabbers in the team. From then on I just figure it out myself. Only problem: after a while the the asshole bosses will start complaining that I don’t “interact” with others in the team and that I have issues with “communication”. Then it usually goes downhill with the boss and that is when I leave for my next gig. I have had 23 jobs in 25 years.

    • BeenThere

      I’ve been in the game 25 years and when I started it wasn’t as bad as that . The problem is that in the last few years, the industry has taken to almost exclusively hiring autistic people

      • Nikki Koon

        That’s an interesting observation. As a parent of a child with Autism, I can tell you he is more likely to be a wallflower than someone who is plotting to take others down, and he doesn’t have a clue how to network.

        I do admit that his tact and social skills are sorely lacking and I am sure he can at times come across as an ass. That is mostly because he doesn’t understand nuances or how to be polite – he’s just direct. If someone takes him aside and explains what he’s doing, he will try and be better at it.

        I am just saying that saying the industry is compromised due to the hiring of Autistic people is a crazy generalization.

  • Alec

    Literally the most worthless article I have ever read.

  • Owen

    Excellent article and very much reflects my thoughts at the moment. I have been a professional software developer for almost 20 years and I have always worked with people who (a) over-complicate and over-engineer things, and (b) make me feel small and useless for wanting to do it the ‘easy’ or ‘simple’ way. The problem is worse when working with people whose financial interests lie in making things take as long as possible (I’m talking about daily rate IT contractors). The truth is that a lot of techie trends and fads are over-complex bloat which WE DO NOT NEED. Nobody dares admit it but really we are just trying to develop tools for users here. Things that work well and feel good to use. And are easy to maintain. But there are certain developers (a lot, in fact) who seem to relish in making as much use of as much technology as possible and making a massive spaghetti-like mess of a project instead of a 3-page solution. Why? Because it makes them look good and makes them invaluable because they are the only person who understands their own code. I am so glad that I found this article because it makes me realise that I AM NOT THE ONLY ONE who yearns for simple and uncomplicated code and colleagues who don’t try to make you feel small because you don’t share their lust for over-engineered tech-bloat solutions.

    • jsonmez

      Thanks Owen and thanks for all the insightful comments you posted on this article.

  • Pingback: Mặt tối của phát triển phần mềm đó không ai nói ? | Bản nháp -Code()

  • jsonmez

    Thanks. Great book recommendation. It’s on my list to read.

    • Jason Lowenthal

      It’s got some fun anecdotes in it about “famous jerks” too. Without even trying too hard I bet most people can pinpoint at least one of them.

  • Dinesh Kotwani

    Great post !
    Also I think the best way is to just leave the project /company if the environment is getting too hostile or ego’s are getting burst now and then .
    No point in fighting and showing who is correct as you will surely burn the bridges whenever you leave in future .
    So sometimes instead of developing thick skin you are better off leaving that place and look for opportunities outside even if they are out of your skillset or comfort .
    Better to sweat over learning new stuff to change job rather than staying in hostile place and fighting with idiots!

  • jonrgrover

    The real dark side of software development / information technology is that SWD/IT does not address information, it only addresses data. We need to start building systems that can store and support information. Information is ‘data in context where the context is not hard-coded’. So far our industry only has hard-coded context for data, so we can not write programs that work with and process the context. Context needs to be treated as a variable rather than a literal. Once we do that we will be able to start working at a level above the low level data pushing and processing we do.

    Does this impact the niceness/meanness of software developers. Well, working with data requires a very high level of inductive reasoning aptitude in order to be able to do really effective debugging and troubleshooting. The same critical nature that makes us such good critics of what is wrong in a program spills over into our relationships, and makes us critical of each other. It is natural and not mean spirited. To handle this problem we need to be aware that our natural abilities tend toward making us critical of others, and adjust for that.

    As far as the problem mentioned first where SWD/IT does not handle information, I have noticed that those who work in the information space rather than the data space tend to be much nicer people. Perhaps the aptitudes required for working with information rather than data are not naturally critical. So if computer science handles the first problem and builds the proper structure for supporting information within a computer program, then the second problem could also be ameliorated. I have developed the ‘endeme’ which is a data structure for storing an atomic unit of information. It’s a start.

  • BeenThere

    Right on! When I started programming 20 years ago, I was often working with great people. But since then, the industry has gone for hiring “autistic” people. The last software house I worked in (2011) had a couple of 20 somethings and they were narcissistic little sh**ts.

  • djw0510

    Good article. I’m finding myself less and less interested in the entire programming industry as I have to constantly deal with people with huge egos. Sometimes I just want to quit it all and go be a forest ranger or something.

  • turnerl

    I’m lucky I don’t work in an environment like this. My company has an internal bootcamp (similar to coding bootcamps across the nation) and most of the people from that bootcamp tend to go onto 1 team. So we all know what it’s like to have 0 experience coding and to have no idea what you’re doing. I’m lucky I work with amazingly supportive people that fosters growth.