What are the traits that make up a bad software developer? In a question first posed to the Quora community back in 2010, the topic of what characteristics make or break a software developer is still very much relevant to this day (indeed, considering the preponderance of software developers in many parts of the country, it's arguably become much more relevant in today's conversations). While the question has been openly and widely debated since it was first posted to the Q&A platform, there is one answer that we believe accurately describes the 10 worst kinds of software developers today.
Posted as a response to the initial Quora question from 2009, software developer Nachiket Naik suggests what he believes to be some of the traits associated with bad software developers. According to LinkedIn, Naik is currently a software development engineer at Amazon, focused on the online retailer's Appstore. Prior to that, he worked as an associate software engineer for more than two years at ACI Worldwide as well as earned a masters degree in computer science. Needless to say: Naik is well-versed in software engineering. And the Quora community seems to agree, with Naik's response receiving the most number of upvotes from Quora users. We previously looked at signs that a software developer may need to work on his or her coding skills, but Naik goes beyond one's competency in code and, rather, includes personal traits (such as whether a developer is socially-developed).
Here's the 10 worst kinds of software developers:
1. The Stack Overflow Bot
Software developers that merely copy and paste things from Stack Overflow without understanding the consequences of these quick fixes or applications.
“The problem is the robotic application of it without understanding the consequences. The problem is the application of it without fully understanding the context of it and whether it really applies to the current problem at hand.”
2. The I-Am-Not-a-Tester
Those software engineers that don't take the time or make the effort to test their code simply because it isn't in their described responsibilities.
“Part of it comes from lacking the interest to set up a testing environment and partly from lack of coherent knowledge of testing. (Is it also partly due to an unspoken stigma against testers in the developer community.)”
3. The I-Hate-Documentation
Naik believes that a lack of code documentation impedes the development of sustainable software.
“Good software is one that has a few good features that are used consistently by many people and read/updated/modified by a thousand.”
4. The Ugly
The developers who don't take the time to make their code neat – they simply focus on whether or not their code is working.
“It could potentially be the greatest piece of code written. But if a diamond necklace is buried in the debris of the Titanic, nobody will find it, and nobody will want to clean it, wear it, use it.”
5. The Short-Term Investor
The get-it-done-and-move-on software developer. They don't care about understanding to learn the problem at hand or think of ways to make it better; rather, they just make sure to produce code that's at least minimally functional.
“He codes. He deploys. He moves on. No attempt to learn the problem. No interest in the domain. Just give this guy a piece of code, he will slog on it overnight and hand it over. You got a fix/working software. Nothing more achieved from it.”
6. The Protester
Basically, the pessimistic contrarian.
“‘I didn't do this.' ‘This looks bad.' ‘Not my problem.' This isn't related really to my fix, but someone way over there made a mistake.' ‘I hate this (loop this sentence 10 times a day).' ‘I can't fix this, get the person who made this code to fix it.'”
7. The Dictator
I.e., the asshole.
“My way or the highway is their motto. It's their ‘ideas' vs ‘your ideas', not ‘project ideas'. It's their solution vs your solution…This person is a big bottleneck to productivity and will be the first person to crumble under pressure and start pointing fingers. This person is not good for the team, however experienced/good a developer he may be.”
8. The Overcautious
Software developers that never step outside of their comfort zone, hence no room for growth or development.
“I have learned, from personal experience, that this phenomenon is common with new developers. Good developers show a tendency to slowly/swiftly move out of their comfort zone in exploration.”
9. The Careless
“Forgets to take a backup, snapshots, has multiple working directories of code, leaves system out, prints in production code, etc.”
10. The Lazy Pseudo-Hacker
The show-off develop who actually produces half-assed work.
“They pride themselves at being able to trick the system into working. They find magical solutions to seemingly complex problems. My experience says that 9 out of 10 times, it's just a facade. The hack is bad and will crash sooner or later and will cost much more than having to deal with it, with extra time right now.”
Read Naik's full response on Quora.