Every software developer needs to work on their soft skills the same way they work on their technical skills. To some focusing on them seems like a waste of time, but they are very important to ensure your growth as a person and your growth in the developer "ranks". Here is a list of some of the very important ones, these are used to differentiate between a good and a great developer.
The most obvious one for me. You need to be a good problem solver to do your work efficiently. Most developers require critical thinking and creating solutions. Problem-solving will help you foresee the consequences of proposed changes, you will be able to make suggestions to business. Also, it helps when you are trying to find those annoying bugs.
People usually think that you need to be very intelligent or born with problem-solving skills. But there are methodologies to improve your problem-solving. And you can get quite good with it after few tries.
Most important of all is not to be afraid, if you have a problem to solve be happy that you can practice your skills, do not be afraid, immediately ask for help (Aldo it's important to ask when you are stuck). These are some practices I am using on my day to day basis.
- Keeping an idea journal at me
- I have a nice notebook I use to record everything, all my ideas, thoughts, TODOs, sketches, etc...
- It helps me to get all the ideas out of my head, I do not have a system in it I just write
- Using mind maps to visualize problems
- You can use any software, or your pen and paper
- By creating the mind map I will identify the most problematic ideas to focus on
- Focus on solutions to the problem
- Concentrate on the fix/answer/solution
- Do not ignore the problem, acknowledge it
- There is no immediate need to find the bad actor, you can do that when you have the solution
- Keep it simple
- We tend to over-complicated, always try to keep it simple, most problems have very easy solutions
- List stuff
- List all the solutions that come to mind, even if they are ridiculous
- This can boost your creative thinking and help the correct solution
Intellectual curiosity is closely related to problem-solving skills. To stand out from the ranks of developers you need to start asking questions, come up with better more efficient solutions. You need to ask a question like: "Why does this happening?" "Why we are doing this?" "Can we do this better?" Look at things from multiple angles?
Does this change have the potential to break tons of stuff? Do we need this? If we adjust this just a bit, it will be much easier to implement.
Do not blindly follow your JIRA ticket. People writing those are people too, they make mistakes, they do not have that complex knowledge of the system you do.
To improve in this area, read about topics of interest, follow the latest research. Ask questions!
Communication is very important in every aspect of our work. We have tons of meetings, communicate with the team, clients, business people, etc...
We should be diplomatic when sharing our viewpoints. Do not be arrogant, listen to others, nothing bad can come from listening.
Answer politely, if you do not have time say no, but do not be a dick about it.
After a meeting sending a follow-up email with what we agreed on, helps to get people on the same page.
At some point in your career, you will be required to work as a part of a team. It's very important to learn teamwork as a soft skill.
Learn to trust others, rely on their help. It's a way to simply not to trust and try to control every part of what they are doing. I was part of teams that did not trust each other. There were people systematically going over a codebase even after code review and merge to find if it is up to their standard. Do not be that person. If you want to have a standard discuss it as a team and trust each other to do it.
If you are not approachable from nature, it takes a lot of practice to get this skill. Show empathy to your peers. Smile at people. You want everyone to feel comfortable talking to you. If you are in the dark, it's hard to move up. More approachable you are, more cooperation, more discussions about possible solutions, more help you get.
You can follow me on Twitter to get more stuff like this or just talk to me. I am always open to discussion.