I recently came across an amusing piece on Forbes’ web site detailing the attributes of a bad software engineer.
The article, by a Quora software developer named Nachiket Naik, isn’t intended as humor. It simply details 10 personality traits that create issues on a software development team, ranging from people who spend their time covering their own cabooses instead of fixing problems to those who are inflexible on how they code.
I thought Naik’s insights were funny because they’re so dead-on right — and because they can largely apply to the rest of an information technology department as well.
I could see a printout of the article landing on a few developers’ desks, with one of the personality types circled in red ink.
Below are the 10 characteristics of a bad software developer. Afterward, I’ll give a few thoughts on how the career landscape may be changing for these bad apples.
- Stack Overflow bots: When this person encounters a problem, he goes to Google, pop in the issue, and then often copy and pastes the first fix that crops up. While question-and-answer sites like Stack Overflow are great resources, Naik points out that using them robotically can be an issue. Is that “solution” the best in the context of what one is trying to do? And will there be any adverse consequences from using it?
- What, Me Test? Whether it’s out of laziness, a lack of knowledge about testing, or a viewpoint that looks down on testers, some developers simply shuck responsibility for seeing if their code actually works.
- No documentation: People who avoid the task of compiling strong documentation about the code they write “are the No. 1 foes of sustainable software,” Naik writes. “Good software is not software that provides a million cool features. Good software … has a few good features that are used consistently by many people and read, updated and modified by a thousand.”
- Coders of the ugly: Some developers fail to use consistent coding or style. Others blow off indentation. While the resulting code may work, it’s significantly harder for testers and other folks to know how it’s built – and thus to work with it.
- Short-term view: This person cares more about slapping together code that functions by a deadline rather than learning what the project has to teach him or her.
- Avoiding responsibility: Every office has one: The person who ducks accountability when things go wrong, while criticizing the work of others at every turn.
- Intractable: Every conversation with this individual can turn into a battle of wills – their ideas against someone else’s. “This person is a big bottleneck to productivity and will be the first person to crumble under pressure and start pointing fingers,” Naik writes. “This person is not good for the team, however experienced or good a developer he may be.”
- Too comfortable: Good developers are willing to move out of their comfort zones, taking on scripts in new programming languages or updating registries when needed. Bad developers freeze when growth opportunities appear. Young developers frequently are susceptible to being overly cautious like this.
- Careless: Another trait of newbies, they might have multiple working directories of code or the like. As with over-cautiousness, trait also tends to improve with experience, Naik notes.
- Lazy pseudo-hackers: Rather than putting in the time and effort to find real solutions to problems, this personality type seemingly finds magical fixes — fixes that mostly “will crash sooner or later and will cost much more than having to deal with (them), with extra time right now.”
DevOps may spell trouble for bad developers
As we’ve noted previously, more IT shops are adopting DevOps. This software development technique aims for faster production of better code through close collaboration between developers and the operations people who test and release software.
So it will be interesting to see how developers react when their job descriptions expand from solely writing code to also assisting with tasks like testing. A DevOps shop has zero room for those who can’t play well with others.
Granted, no management approach will entirely rid the world of software engineers with less-than-ideal personality traits. Unemployment rates in the coding field are close to zero in some parts of the United States, and the labor shortage means some bad apples are bound to get jobs.
But as DevOps re-shapes IT shops nationwide, employers may begin to adopt a new stance toward problematic developers.
Change your attitude — or change jobs.
Jeff Bounds writes about technology from Dallas.