Today I realized that most of my blog entry is a technical programming stuff. There is a question on my mind what is really the best value for Software Engineers to become Coding Guru Guy? So, I like to write about something different than coding, design, measurement of performance, or new technologies. I like today telling you about something that can be most important for software engineers like every employee and me. I think about soft skills like effective communication, negotiation skills, being assertive when needed, being a charismatic leader, etc. That are only examples of soft skills that can be very important at work. Of course it is much more soft skills not only that I mansion.
Soft skills can be seen most often in teamwork. There is a psychological theory by dr. Belbin that there are eight roles in a team. There is also an excellent book on this subject, which helps to guess which one of the roles we belong to and what role we play as a team. I think that it is important to know our personal predispositions. Then we might like to know what we’re good at and weaker at. And to decide which of our soft skills we want to develop. We can answer the question of whether we want to improve our best ability or improve and in what area we are weaker. Of course, everyone has to make decisions alone. In my case, it checks that my role is called Plant. The role was dry for an individual who "planted" in each team. Plants tended to be highly creative and good at solving problems in unconventional ways. That is my primary team role. If you are interesting about team roles and want to find yours go check-out more information at Belbin Team Roles Home Page.
For me best way to learn is invest money for a good book, read it and do real live experiments. Those feet to me for studying programming stuff and also for soft skills too. I think that to become good at something only way is to try to do that. In the beginning, will be such a mass of mistakes, but after a year or two, we can become better. There are a bunch of ideas that can improve your soft skills.
The first one is for communication skills. You should say and ask, which are most important because that is your feedback and prove to the person you speak to that you understand everything correctly. And in the production of software area communication mistakes are most often a high risk of projects. For better communication was invited Universal Modeling Language – UML. Because software engineers most often cannot understand each other correctly and communicate efficiently. So, in my opinion, communication is most important, and if you communicate efficiently, your value of soft skills is very high. If not, try to think about communication, not questions. If I said everything I wanted? But with questions Of whether She or He understood everything I said correctly. And like most soft skills, remember that emotions like anger produce misunderstood. It is better to speak when you come down and focus on things that really matter.
The second thing I would like to tell you about is negotiation skills that is really important. Many techniques can improve that skills, but I do not like them at all. I think that is only one rule that matters in negotiation: using only your mind without feeling in the entire process. Every negotiation process ends with some agreement, and you can always say that you need time to consider everything repeatedly. If you feel that someone is trying some trick on you, it is possible to say that you need more time to make a decision, or you can say that it is no time to hurry and you are back to negotiation after, for example, three days or a week. That time is for you to back to negotiation with a clear mind and without unnecessary, often bad feelings. And last, remember in negotiation, it is always time to make a decision. If you try to hurry you probably will do something wrong.
The third thing that can improve your soft skills is ability to become more assertive. It is not to push your work to someone else, but it is for you to have enough time to do your work. I am not very good in be assertive, but I know one thing that sometimes can be useful. You should learn how to refuse sometimes or buy notes, and if you have no time to realize something now, you can plan to do something for tomorrow or two days later. So then, you do not refuse. You simply delay something, and that can allow you to finish your actual work. And one most important thing is when you delay something, and time to resolve a problem comes for you, be sure that problem is still unresolved because sometimes someone else may resolve it for your team.
And at last how to be the charismatic leader? In that case I can said that there are two secrets of the success, the first one is never say everything… 🙂