
Software developers are cunts. There are a myriad of reasons why this is so, but I will restrict my venting to just 3.
This nomination is a bit specialist, so I’ve edited it multiple times to make it as concise as I could and understandable to non-IT folk. Here goes…
1/ Because they trade off non-IT people’s insatiable desire to see something ‘cool’ and ‘amazing’ on a computer screen.
IT infrastructures which are well designed, engineered, maintained and documented and which are also secure, scalable, resilient and highly performant don’t happen by accident. It takes much time, effort and no little skill to create these platforms. But to software developers, it’s boring. Nobody really sees it, so to them it doesn’t matter. However, Little Johnny Programmer creates a new pull down menu option on the Accounts Payable screen and everyone whips their dicks out and wanks over his keyboard. That’s where the real IT skill is, right? FFS! The systems, network, storage, database and security administrators all collectively shake their heads, roll their eyes and think to themselves, “If we hadn’t done our jobs properly, Little Johnny Programmer WOULDN’T HAVE A FUCKING JOB”!
It’s a bit like an architect and construction company which designs, plans and builds a beautiful mansion. Then some spotty 17 year old intern shows up 5 minutes before its unveiling, attaches a front door bell and promptly wins an industry design award.
2/ Because they get away with fucking murder disguised as (a lack of) productivity and progress.
IT professionals with top skills, knowledge and experience are in short supply. The demand for new software systems has outpaced that supply by some margin for many years. The IT industry’s answer to bridging that gap was to dream up a new approach to software development called Rapid Application Development (RAD). RAD has evolved and mutated many times over the years. A current incarnation of its bullshit is known as Agile. Agile is NOT a software development methodology. It’s a manifesto and anyone who says different is an ignorant cunt. Agile does away with the traditional phases of software development (Analysis, Design, Development, Testing and Implementation). Instead, it focuses on just writing software in short bursts called sprints. A sprint is often just 2 weeks long!
Capturing end user requirements has always been a challenge. Users lie, mislead and leave out important details about how they do their jobs and what they need a new computer system to do. One technique which can help flesh out user requirements is called Prototyping. It pre-dates RAD and Agile by decades. With Prototyping a dumbass programmer with a paper thin understanding of a business process will quickly code some basic screen layouts with minimal field validation, process flow or interfaces to other systems. Once a user can actually see something working on a screen, it’s more likely they’ll be able to provide greater detail about what they actually want and need from the finished software. In the Agile universe, that first bare bones prototype IS the finished software. Detailed user requirements documented, validated and verified? Nope. All data elements with their validation rules defined? Nope. All business processing and interface rules defined? Nope. System and integration test plans designed and executed? Take a fucking guess!
To the IT Manager it looks like progress because Little Johnny Programmer wrote 1000 lines of code in the last 2 weeks. The follow up question should be, how much of that work adheres to the coding standards (if they have any), is reusable and won’t need to be re-done over and over again as new requirements emerge or evolve? Try 10% and you’re being optimistic. It’s a bit like some arse clown making all the doors and windows for a new house without knowing how many walls or rooms it will have. Too few? Too many? The right size? The right style? Who fucking knows? It’s all guess work and a perfect example of simply making it up as you go along. You just couldn’t make this shit up!
3/ Because they’re fucking lazy.
In over 30 years of working within the IT industry, I have yet to meet a programmer who actually gives a shit about efficiency and performance. Once a programmer solves a problem, they move onto the next one. They never take an objective look at their code and ask themselves if there’s a more efficient or faster way to achieve the same thing. The result is crap and inefficient code which causes system bottlenecks, slow downs and in some cases, whole systems to just freeze up once they go live. While all the Little Johnny Programmers are high fiving each other in the break room celebrating a job well done, the system, network, storage and database administrators are trying to figure out why a process which should be sub-second is actually taking an hour to run. After all, it’s THEIR problem now!
So stop calling yourselves Software Engineers because you’re not. You’re all lazy, incompetent and bullshitting cunts.
Nominated by: Imitation Yank