The top non programming skills programmers need
Back when I first started out in my professional software engineering career, I had this naive belief that possessing technical skills were all a programmer really needed, to have a successful career.
Oh, the follies of youth!
Let's be clear. You absolutely need to possess technical skills. Not only possess them, but continue to keep those technical skills sharp.
That means reading up on your technical area of expertise. Actual coding. Trying out new technical stacks and experimentation. It's the primary tool in your software engineering toolbox.
But not the ONLY tool.
If I had to boil down one of the most essential non technical skills a developer needs these days, it would have to be COMMUNICATION SKILLS.
The larger the organization you work in, the more people you will inevitably need to work with, to get your own work done.
The ability to WRITE clearly is more important than you may think, as a software programmer. After all, it's all about coding, right?
Not really.
The actual act of CODING happens quite late in the game of software development. And especially when you work at a larger organization with many company departments and divisions.
There are a lot things that have to happen before you, the software developer, can actually begin writing your software.
Regardless of whether your company or organization practices agile or waterfall development methodologies, you will go through lots of prep work. Meetings. Interacting with a customer or product owner and gathering software requirements.
All these activities will require lots of communication. Specifically written communications, in the forms of e-mails, documentation, business analysis documents, and if you're practicing agile/scrum, stories. LOTS of stories.
It seems like most of my entire workday is reading and writing e-mails. As a software developer, you will be writing LOTS of e-mails to coworkers. To your manager. To everyone involved in your project(s).
The ability to write effectively is especially critical when you're in the middle of firefighting some emergency production issue that's causing your company to lose money until it's resolved.
When you're responsible for sending out e-mail updates to all parties involved, it pays to write clearly and to the point and assure everyone involved you and your team are on top of the situation.
The ability to write effectively is key, if your practicing scrum ceremonies and you are the scrum master. User stories in scrum are what drives software requirements. User stories can be created either by the product owner or anyone else on the sprint team (including the scrum master).
Writing down the requirements of a user story in a clear and concise manner up the chances that your user story will end up being a successful software implementation. You can have the most adept hotshot developers on your team, but it won't mean a hill of beans if they end up implementing something incorrectly, because the user story wasn't written down very clearly!
As a software developer, I write lots of documentation. It can come in many forms, whether it's a wiki, end user documentation, developer oriented documentation, etc.
Documentation is another area where your writing skills can be especially appreciated. Documentation, if written well, helps fellow developers quickly get up to speed on the technical aspects of your project. It helps your support and QA staff better understand how to troubleshoot your application, when problems arise.
There's this great online resource for developers called Stackoverflow. It's an online hub of activity for anything IT related, but especially geared for developers looking for answers to technical questions and problems.
I find it's a great resource to hone your writing skills. The way Stackoverflow works, is your write up a summary of the problem you're facing and anyone who can answer your question, will respond.
You'll have a better chance of getting your question answered, if you clearly describe the problem statement in a concise and exact manner. It runs as well in the other direction as well. You can answer other people's questions and hone your writing skills as you come up with solutions to their problems.
I highly recommend all developers invest time and effort into your writing skills. It will help to round out your skills as a true full stack developer.