Truth no. 4: Most senior developers are not senior
While conducting interviews, my company has encountered at least a dozen strong lead developers who didn't actually know how to code. Most developers overrate themselves and align their title with their salary expectations. Knowing how to talk about monads and Hadoop doesn't actually mean you know how and when to use them or, more importantly, when not to. It doesn't even mean you know how to write a simple SQL statement.
Our interview process involves a coding test. It has the world's simplest requirements: "Granny's address book."
Senior developers need to be able to read requirements and create reasonable code that someone can follow. They need to be able to write simple instructions on how to install and deploy the software. Most people we interview write code that throws an exception on startup and instructions that are wrong at best and poorly written and indecipherable at worst.
Truth no. 5: Arrogance goes before the fall
I've seen projects that were extremely sophisticated fall down in production due to very basic oversights. Generally, these were the result of smart people who wrote really "smart" code but who, like the engineers of the Titanic, thought their creation was unsinkable and neglected to try and prove otherwise.
Overconfidence is a dominant personality trait in the developer community, and it doesn't seem to abate with experience. With senior developers, having other people tell you how smart you are can make a bad personality trait worse. We think we can handle the complexity, so we create it. Unproven technology can't come back to bite the likes of us! We don't need to test this one section of code thoroughly. We know it works -- because we wrote it!
Talk is cheap. Results speak for themselves -- and both method and materials selected by careful judgement bring results. The scientific method requires us to prove what we know. Arrogance and overconfidence cause us to believe things without proof.
Truth no. 6: Individuals aren't the be-all and end-all
Projects are created by groups of people. Groups are organic and dynamic. Interactions inside groups are just as important as the individuals that make it up. The best groups are ones that force members to grow. Developers tend to be incredibly individualistic and always feel underappreciated.
Nonetheless, few learned everything on their own; they benefited from other developers showing them the tricks of the trade. Whether these were formal or informal mentors, they were critical in any long career. Creating a teaching environment is the most important thing a manager or lead can do. This lets you grow your own senior developers.
Senior developers need constraints. Time and budget are obvious -- but to some hotshots, they're also elastic, as complexity gets piled on complexity. When junior developers are also on the team, their ability to keep up with the high-falutin' stuff will be limited. That's a good thing, because it encourages simplicity, which is usually your friend.
A mixed team aligns the company's interest with the developers' interests. A mixed team provides a good career opportunity for all: leadership experience for senior developers and a chance for junior developers to learn new things.
This article, "6 home truths about rock star developers," was originally published at InfoWorld.com. Keep up on the latest developments in application development at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.