There were merits to both approaches. Not every developer on the team had the skill to correctly implement manual memory management, and C# handled garbage collection just fine, under most circumstances. However, for high volume processes that required close to perfect memory management, it made more sense for someone with Tylers skill to implement a manual approach.
I digress, because the technical details arent as important as the way Tyler approached his fellow developers on this issue. Instead of insisting that he was correct and effectively calling the rest of them morons, there should have been more of an objective approach. An approach that considered the skill set of the team, the importance of memory management for this particular module, and the ability to set standards that the majority of the team could follow.
We were all able to agree that garbage collection was our project standard, and that manual memory management was the exception based on need. Even Tyler acquiesced. I praised him afterward.
You know what his response was?
Hey man, not a problem. I realize that my skills are on another level. You cant clone me, right?
So maybe this wasnt quite the step forward I had hoped.
Perhaps you can now better appreciate my careful consideration of wording as I prepared to deliver Tylers review. In my mind I said Tyler, you are an excellent software developer, but you need to be more respectful of your teammates opinions.
In reality, the words that came out of my mouth were Tyler, you are a great developer, but frankly your peers think you are cocky.
He smirked and said, I like to think of myself as confident, not cocky.
Okay, not a bad retort.
I asked him why he felt so self-assured. Tyler said Look, Im usually right. The others dont have my experience with true, hardcore development. I dont rely on automation; I rely on my mad skills.
Mad skills? I heard this term used by the six-year-olds I coached in soccer, so I got it but geesh!
After considering his response, I said Im okay with you feeling good about your mad skills, but there is a difference between confidence and cockiness. As a good teammate, you can use your confidence to share your vast experience with the team in peer reviews. The difference is, if you belittle someone, you are being cocky and frankly not helpful. We need the team to be confident, and you can lift the team up by being more respectful of their opinions and taking a mentoring approach, instead of dictating your opinions.
Tyler simply nodded in response and was actually quiet through the rest of the review. I must have struck a nerve, perhaps positively or maybe I simply ticked him off.
Over time he still had his brash moments, but he also made attempts to teach his points. Certainly he disagreed many times, but instead of thumbing his nose at everyone when his point was vindicated, he actually talked civilly to the dissenters and discussed why his position ended up being validated.
Sometimes its better to be direct with cocky developers who might appreciate being called out on the carpet. You just may end up with a more confident and productive development team.
Eric Spiegel is CEO and co-founder of XTS, which provides software for planning, managing and auditing Citrix and other virtualization platforms.