Is it just us, or do software developers get a bad rap for being a rather grumpy bunch? While we can all think of a particularly downtrodden colleague who fits within this angry programmer stereotype, one could argue that sour moods don’t come unprovoked.
From clients to managers, family members and even one another, it can sometimes seem like software developers live in a minefield of obnoxious requests and unrealistic expectations.
Just for fun, let’s tackle the most common annoying experiences that professional programmers spend their days having to endure.
1) Clients and Managers Who Refuse to Learn Programming Basics
Software developers spend a huge amount of our time explaining how programming works in the simplest terms possible for our clients. While we understand this is part of the job description, there comes a point where there is only so far we can go. Especially when we’re willing to explain it, but clients refuse to retain even the basics.
With novice clients or managers new to the particular field, we get it. The amount of information and industry jargon to take in can seem overwhelming. That’s why most of us are happy to walk you through the various steps of the process the first time—or maybe even the first 3 times.
But if you are a recurring client asking for the same things over and over, and you act every time as if you’ve never heard of any of this stuff before? That’s when you’ll start to see the clenched jaws and eye twitches that signal oncoming developer rage.
2) Vague Requests from Clients
“Add another doodad at the top.”
“Make it a different color. No, I don’t know what color.”
Really, most developers are more than happy to meet client’s needs. After all, you’re the customer, it’s your project, and we genuinely want to deliver a good product. But there is nothing more frustrating than a client who can’t communicate what they need—or worse, don’t even know themselves.
3) Dramatic Changes in Project Requirements/Scope
We really can’t stress this enough to clients and managers: The first step in software development is figuring out what you want the product to do. And that’s not something your development team can do for you!
If you try to jump in headfirst and “just get started” building a product without really taking the time to figure out what you want, you’re just going to create a mess. Because every time you change requirements or the scope of the project as you slowly come around to figuring out what you want, we have to throw out and redo work. Not only does this annoy developers, but it’s a perfect recipe for having products delivered both late and over budget.
4) Reporting Changes in Requirements as Bugs
It’s bad enough when clients constantly change requirements. But what’s worse is when they won’t even admit that’s what they’re doing.
If you, the client, enter the testing phase of your software’s development process and discover the software doesn’t perform some function you wanted but never voiced to your development team—that’s not a bug. The software isn’t broken. You just didn’t make your needs known.
This is all too common from clients who discover something new that they want or need the software to do. Often this is because of the contract set up—billing for a bug fix saves them more money than admitting their requirements for the program have changed. This approach is both unethical from a business perspective and aggravating to developers who feel accused of making a mistake, when really the clients just changed their minds.
5) Checking the Status of a Project Every 15 Seconds
The work that developers do requires an amount of focus—and that focus doesn’t just click on and off at the drop of a hat. So every time you call us or walk by to “check the status” of our work, you’re adding at least a good ten minutes to the project time.
Please, just trust us! We promise we’re working on it, and if the original time estimate that we gave you changes for some reason, we’ll let you know. (Although it’s sometimes hard to explain to clients that the reason their project is taking longer is because they keep interrupting!)
Unlike many of our complaints, this one isn’t really anyone’s fault—it’s just a part of our jobs that most developers really hate doing. Even if we use documentation apps to help us along, there’s usually an amount of writing we have to do to put details of the app’s functionality into layman’s terms. It’s just a slow, tedious process and takes away from the actual work of programming that we all prefer to do.
7) Lack of Documentation
And yet… For all the whining you’ll hear from developers over having to write documentation for their products, just wait until they get fired up over another product’s lack of documentation. Maybe it’s a “well, if I have to do it, they should too!” phenomenon? We’re not sure. All we really know is that incomplete documentation is a pretty quick way to send steam pouring out of a software developer’s ears.
No, not the ones that let in sunlight and vitamin D from the outside world.
Though not all, a large majority of software developers, if pressed, would happily lament to you the many factors that make Microsoft’s operating system obnoxious for development use. It takes forever to boot. Multi-user functionality is limited. Installations are complicated and remote access difficult to set up. All of these, plus a multitude of compatibility issues, lead most developers faced with a Windows-based programming project to quietly sigh and roll their eyes.
9) Non-Programmers Debating Our Choice of Operating System
(And Never. Letting. It. Go.)
The needs of the average commercial user and the needs of a software developer are completely different. We use operating systems in different ways for different purposes. But somehow, that doesn’t stop non-developers from showing off their bravado and supposed computing knowledge by engaging us in debates at cocktail parties and awkward dinners over the pros and cons of our chosen operating system. And it somehow seems that the more insistent an acquaintance is about their side of the debate, the less they actually know about operating system functionalities.
Just stop. We like what we like, okay?
10) Being Everybody’s Personal IT Guy
“Hi Grandma! Oh. Internet Explorer isn’t working again? Ok. Yes. I’ll come over. No, it’s all right that I was just there yesterday…”
Sound familiar? Being a programmer means that you’re often everybody’s go to person for any issue computer related. As far as our families are concerned, we are nothing more than professional Geek Squad-ers who are on call 24/7 to meet their needs.
And let’s not even talk about that friend who keeps asking you to “hack into his ex-girlfriend’s Facebook page.” What do you mean, that’s not really what you do?!
Fellow programmers, what did we miss? What are the most annoying experiences you encounter as a software developer? Share with us in the comments below!