The human side of software development.
Applying development practices against every-day life, and applying life lessons to development
This is developer++
What’s the difference between a good developer and a great developer? That’s what we are here to explore today.
Pure technical skills
Soft and fluffy people skills – who wants a hug?!?
Some beautiful balance between these opposing phenomena? <—– Psst. It’s this one
The effectiveness of a developer in today’s environment depends on far more than hard technical skills.
There are so many more skills required to write quality software than staring at your favourite text editor (it’s vim though, right?). Virtually all development shops require a combination of hard and soft skills to become an effective part of a team. And for all you lone rangers out there, you already know how many different skills you need to survive.
As developers, we tend to spend the majority of our limited personal development time exploring new languages, new implementation patterns, or basically any piece of shiny new technology. Staying up to date with current technology is definitely important to stay relevant as a developer, however, how much time are we spending improving any of the non-technical skills that are required to succeed?
In my experience, not enough. So let’s work together to change that.
It is rarely an individual’s technical ability that separates the good from the great. Most often it is the non-technical skills that are slightly more polished that make the difference, and those are the skills we are going to concentrate on here.
But the development community is blinded by all things technical, and that’s where the focus is during education, and especially recruiting.
Let’s take a took at what the market is asking for. I searched for web developer positions on Monster and here is a summary of the first 10 hits:
|Job title||# of technical skills listed||# of soft skills listed||% Technical Skills||% Soft Skills|
|C# Mid-level Developer||4||1||80%||20%|
|Front End Web Developer||11||2||85%||15%|
|Front End Developer||2||2||50%||50%|
|Web Engineer / Web Developer||25||2||93%||7%|
|SharePoint and Web Developer||10||5||67%||33%|
|Java Web Developer||9||7||56%||44%|
|Full stack Developer||14||8||64%||36%|
|Senior Software Developer||15||3||83%||17%|
As you can see, only 24% of skills being asked for in job descriptions are soft skills in my spectacularly unscientific research. This can often lead to hiring of technically adept employees that don’t fit into the culture of a company, and over time, a culture of a disconnected (from each other and the business) team emerges.
Ironically, mediocrity is often better tolerated at the technical level more so than the non-technical level.
This happens from the developer’s peers as well as from management.
Everybody has heard similar stories to these about over-developed technical skills and under-developed soft skills:
He was a bright guy, but just couldn’t communicate with others.
She wrote better code than anyone else on the team, but she refused to share her knowledge.
He’s a great programmer, but you have to constantly make sure he’s working on the right thing.
She can easily fix the users’ problems, but they are scared to approach her.
What if you flip the tables, notice anything?
He doesn’t get his tasks done very quickly, but he manages his time well when switching between priorities and usually meets his estimates.
He’s not familiar with using the LAMP stack, but he asked if he could work with his teammate on related tasks to get up to speed.
I had to walk her through the business process, but her attention to detail is excellent, she’ll be productive in no time.
From which group would you rather pick a team mate or bring onto your team?
- Where do you fit into the mix of skills?
- What’s missing to take you to the next level?
- Do you have an experience that illustrates this disparate mix of skills?
- How did it work out for an overly technical person?
- What about for a technical beginner?
In my next post we will look at what soft skills are critical to succeed as a developer.
Keep reading part 2 – Relationships are hard
Thanks for visiting!
If you enjoyed this article, please subscribe to my newsletter below and I'll make sure you are notified of any future articles
As a thank you for signing up, you will receive my free ebook - Iterative Development for the Human Condition. This book takes a look at how the same principles used in software development can be used to effect positive changes at a personal level.[nm-mc-form fid="1"]