今日推荐英文原文：《The Importance of Soft Skills in Software Development》
推荐理由：这个项目可以让你自定义 2048 游戏中的文本，如果把这些数字换成别的主题，游戏可能就大不相同。不过还不止这些，这个作者在基础的 2048 上还设计了不少有意思的游戏：2047——想方设法从不同的位置放置方块击败电脑，flappy2048——小鸟管子游戏与 2048 结合的船新版本等等。就算是简单的游戏，通过组合也能玩出花来。
今日推荐英文原文：《The Importance of Soft Skills in Software Development》作者：Albert Kozłowski
The Importance of Soft Skills in Software Development
How neglecting them might cost you in the long runMany younger developers (including my younger self) underestimate the role that soft skills play in their jobs. Focusing only on technical skills seems more compelling especially at the beginning of a career. After all, it is much easier to measure progress and gain a better paid position when one knows new programming languages or frameworks, as opposed to trying to market skills that are not easily quantified. However, underestimating soft skills may also lead to problems, especially when trying to communicate within the company. From this perspective, written and verbal communication become essential skills to have especially as one gains seniority. For instance, technical leads should not only have the ability to convey technical solutions at different levels, but also need to be able to inspire teams, and communicate the business viability of said solutions.
Having said so, I made the mistake of heavily underestimating soft skills at the beginning of my career as a Software Developer over ten years ago.
Back then I was spending most of my free time reading about design patterns, new frameworks, and working on side projects. While this landed me relatively quickly in a position where I was leading technical decisions, not having the appropriate level of communication skills led to frustration due to my inability to inspire my peers and get ideas approved by Management. I had a hard time understanding why some of the good ideas got rejected, and ultimately, made me see many people as an obstacle to innovation.
By the time my son was three years old, I noticed that his inability to express needs made him angry and frustrated. It was an interesting observation that led me to question whether I was facing a similar situation. Looking back, it is clear that my struggles with communication were the root of my frustration, but at the time this was not an easy concept to grasp.
Eventually, I started being more aware of the way in which I communicate with people and started to notice that my ideas were not always clear to others. In fact, they seemed chaotic by the way I was delivering them. This realization and my willingness to work through it ultimately helped me improve my leadership skills.
Here are some of the lessons I have learned over the years and how they may help you on your journey:
Pick your battlesAttempting to change too many things at once tend to make people defensive, and small changes are much easier to communicate and implement. Therefore, it is better to opt for evolution rather than revolution. This not only makes it easier for organizations to prioritize decisions within the company, but also protects bigger projects from being shut down due to minor details.
Listen before talkingPeople like to be involved in the decision process rather than being told what to do. Before proposing changes, listen to the concerns of all constituencies, and address them before making an official proposal. This will pave the road for early support where there could have been opposition. After all, it is sometimes hard to make people change their mind once it has already been set and having external opinions can help you address the problem from a different point of view.
Write more, write betterGiven that teams are often communicating through tools such as Slack, Jira, code reviews and email, it is important for everyone to improve their written communication skills. This realisation was a game changer for me, especially as English is my second language and conveying ideas in a clear way was often challenging. Being able to deliver your message in a concise manner could help inspire others, resolve conflicts, and even sell ideas. By writing more, you will eventually write better, and your ability to persuade and get the point across effectively will also improve.
When I look back at the beginning of my career, I see that underestimating the importance of soft skills was one of the biggest mistakes I could have made. I also see the same mistake being repeated by many other developers, some of who are brilliant people yet are getting caught in the same cycle of frustration due to their inability to articulate their thoughts within a team.
Things that initially seemed tedious and unimportant such as building effective presentations or writing, became a key part of my day when I moved to senior positions. Being able to adapt to new teams, managers, and customers became just as important as adapting to new technical challenges. After all, the ability to sell solutions to the team is often as important as designing them. Therefore, all technical leads should value soft skills and continuously develop them along the technical skills in order to carry ideas to fruition.