Five bad habit of software developers

Now that I have been in the software engineering game for about twelve years, I thought this would be the right time to list some bad developer habits. Some habits that may remind you of a few colleagues, and possibly yourself. It goes without saying that I have never exhibited any of them, personally.

Anticipating future requirements

Ah yes, the beauty of coming up with a software design that is ‘ready for the future’. “Implementing that one feature the client was talking about is going to be so easy thanks to my design!”. Guess what, you can’t predict what your client will want a month from now, let alone a year from now. The thing about the future is that it tends to pretends itself differently than you expected almost every time. And then you find yourself doing more refactoring than necessary because you need to remove parts of a system that are now dead weight. Plus, you made the initial implementation harder and more time-consuming then necessary. So just build what you know is needed now, and do that well. That will be difficult enough in most cases.

Being a push-over

How many times do I hear developers complaining about how management doesn’t give them any time to do the right thing. Well then make management listen to you. “But I don’t like to be involved with politics,” I hear you say. Well, wake up and smell the roses because politics is sure involving itself with you. Stand up for the quality of your codebase.

Elitism

Please, no more scoffing at front-end development. Java (excuse me, ‘Enterprise Java’) developers that feel superior to front-end guys, evolution is going to take care of you. The time were you could say “oh but I’m a back-end guy” and not bother to read up on HTML, CSS and Javascript are behind us. Rest assured, the younger generation of developers knows this and is more than happy to replace you at the coolest projects. You can have fun in back-end legacy land until you retire.

Believing the hype

A new year, a new buzzword. XML, SOA, RIA, cloud, there’s no end to them. Really, there is no need to run after these things all the time. In fact, if you have a memory that functions you will remember some buzzwords that by now are dead and buried. And how many of them are just about the pendulum of computing swinging (think fat server, thin client vs thin server vs fat client). Know your classics.

Mystification

Yes, we’re geeks and we write software. It’s so easy to feel intellectually superior to those clueless marketing and management guys, isn’t it? And we’ll throw in some tech-lingo for good measure if they’re being annoying. Most of the times, non-technical people are quite good at getting their message across. Us developers however, struggle with explaining what we do to others. Now who’s being dumb here?

Language fundamentalism

Ruby vs Java vs Python vs C# vs PHP vs Scala etc etc. So often the tone of conversations about languages and tools gets so heated. Come on guys it’s only programming. Can we please just stick to acknowledging the core strength of each language? That should help us making a calm and rational decision about what to use for a project, instead of flame baiting the other camp with yet another crappy benchmark.

Getting lost in a bubble of silence

How cool is it work on some issue,  just program the day away, uninterrupted by thoughts of the context or weight of the problem at hand. Us developers just love to spend a lot of time this way. Some of us do get a nagging feeling “hmm maybe I shouldn’t be spending so much time on this detail,” then to ignore it and just continue hacking.

Yes you counted right, there’s seven bad habits here. I got on a roll.

7 Responses to Five bad habit of software developers

  1. SPdR September 12, 2011 at 10:05 am #

    Haha. Eight years ago I was compared to a JavaScript programmer. Ofcourse I laughed whole heartedly at the comparison: ~~~JavaScript is no EnTeRpRiSe Java ~~~~ duh. It goes without saying that the JavaScript programmer is doing just fine these days while I am still catching exceptions in corporate no mans land.

  2. Hans Westerbeek September 12, 2011 at 11:44 am #

    @SpdR well yes, i know in your case you started focusing on other things than development so then i suppose it’s not too much of an issue.

  3. Andre September 12, 2011 at 11:56 am #

    Great writing Hans, thanks!

    I picked up any of those habits during my career, and then some more. At some point I realized how little I knew. It is all about respecting others and the willingness to really contribute to a team. What do we want to achieve with our jobs? How can we be professional? The only way to stay in the game is to be honest about our own shortcomings and looking for ways to improve.

    Our culture is so much more about talking than about listening. If we want to deliver quality software though, we need real communication instead of hiding or spamming. If we can change our mindsets, we can prevent a whole category of bad habits. If we can help others making those mistakes even better.

    I see people becoming aware of this more and more. Makes me happy.

  4. Hans Westerbeek September 12, 2011 at 3:25 pm #

    @Andre yeah I suppose most of these ‘bad developer habits’ are just symptoms of basic human flaws. Always interesting to see what form those flaws take in specific cases :)

    btw I am trying to come up with ‘five great developer habits’ :)

  5. Jos Jong September 13, 2011 at 1:00 pm #

    Leuk stukje. Helemaal mee eens!

  6. Dice September 21, 2011 at 10:51 pm #

    Good post – I especially like ‘Anticipating future requirements': Even in ones own projects there’s enough stuff changing as the product evolves.

  7. a January 3, 2013 at 3:51 pm #

    I don’t see anything wrong with being “back-end guy”.

Leave a Reply