软件工程师 技能
In today’s knowledge-worker world, software engineers are kings. But according to Daniel H. Pink’s A Whole New Mind, the world is moving from the information age to the conceptual age. The book defines the conceptual age as the “rising of the right brain.” The logical left brain thrived in the information age, and it’s time for the right brain to take the stage now.
在当今的知识工作者世界中,软件工程师是国王。 但是根据丹尼尔·H·平克(Daniel H. Pink)的“全新思维” ,世界正在从信息时代过渡到概念时代。 该书将概念年龄定义为“右脑的崛起”。 逻辑左脑在信息时代蓬勃发展,现在是时候让右脑登上舞台了。
This move is triggered by the three A’s: abundance, automation, and Asia (aka outsourcing). Pink’s skills to thrive in this changing world are design, story, symphony, empathy, play, and meaning.
此举是由三个A触发的:丰度,自动化和亚洲(也称为外包)。 Pink在这个瞬息万变的世界中world壮成长的技能是设计,故事,交响乐,同情心,游戏和意义。
Today, we already see bots creating code and most programming languages taking a low-code approach. While upskilling in the areas that Pink highlights for the conceptual age, software engineers will need to train three key skills that will differentiate them from other engineers.
今天,我们已经看到机器人在创建代码和大多数编程语言时都采用了低代码方法。 在提升Pink在概念时代所强调的领域的技能的同时,软件工程师将需要培训三个关键技能,以使其与其他工程师区分开。
Having worked in technology and technology-adjacent roles for over a decade, I have had the privilege of working with some out-of-this-world software engineers as well as some so-so engineers. Nevertheless, both of these groups have always been great at their core job of developing code. The former group, however, clinched the cup due to certain qualities outside of their domain.
在从事技术和与技术相邻的角色已有十多年的时候,我有幸与一些世界各地的软件工程师以及一些一般的工程师一起工作。 尽管如此,这两个小组在开发代码方面一直都非常出色。 但是,前一组由于其领域以外的某些素质而获得冠军。
1.有关代码如何帮助企业的知识 (1. Knowledge of How Code Helps the Business)

Most software engineers get a bad rep for having tunnel vision when it comes to their code. This is because they lack adequate knowledge of the business process that’s related to their programming. You may ask, “Doesn’t gathering business requirements and critically evaluating them fall under the purview of the business analyst or product owner?”
大多数软件工程师对于代码的隧道视觉都有不好的评价。 这是因为他们缺乏与编程有关的业务流程的足够知识。 您可能会问:“是否收集业务需求并严格评估它们是否属于业务分析师或产品所有者的权限?”
Yes, strictly speaking. But software engineers need to have a basic understanding of how their coding fits into the business world. Who are the main users of the application? What makes them tick the most? How does a typical user intend to use the application for their benefit? Understanding the why vs. what will be key to differentiating a developer.
是的,严格来说。 但 软件工程师需要对他们的编码如何适应商业世界有基本的了解。 谁是该应用程序的主要用户? 是什么让他们最跳动? 典型的用户打算如何使用该应用程序谋取利益? 了解差异化开发人员的关键与原因。
As a business analyst in the past, when I worked with developers who asked the right questions and understood how their coding would help the business user, their code was more robust and their software projects were more successful.
过去,作为业务分析师,当我与开发人员一起工作时,他们提出了正确的问题并了解他们的编码将如何帮助业务用户,他们的代码更加健壮,软件项目更加成功。
If the counterparts interacting with the business do not keep you in the loop or help you gain this basic understanding, you need to raise your hand and ask questions so you can close that knowledge gap.
如果与企业互动的对方没有让您陷入困境或无法帮助您获得基本的了解,则需要举手并提出问题,以便弥合知识鸿沟。
And this leads us to the second skill of taking initiative.
这将我们带入了主动的第二技能。
2.主动能力 (2. Ability to Take Initiative)
How many times have you thought of asking a question but hesitated and given up so as not to risk looking like a fool? You later realized that no one else at the meeting knew the answer and you should have asked anyway.
您有多少次想问一个问题,却犹豫并放弃了,以免冒着傻瓜的风险? 您后来意识到,会议上没有其他人知道答案了,无论如何您都应该问。

Were there times when you wanted to suggest certain steps like documenting decisions, conducting a risk assessment, or double-checking a requirement with the user but stopped yourself because it was not your job and you didn’t want to step on the toes of the project manager or product owner? In the end, have you had to kick yourself when the project failed due to factors that could have possibly been addressed through your suggestions?
有时候您想建议某些步骤,例如记录决策,进行风险评估或与用户仔细检查需求,但由于这不是您的工作并且不想踩踏脚趾而停下了脚步项目经理或产品负责人? 最后,当项目失败时,由于可能可以通过建议解决的因素,您是否不得不踢自己?
I have been plagued by this self-doubt all my working life. But with time, I have learned that the risk of a failed project is far too significant compared to looking stupid or getting the stink-eye from a coworker because I’m trespassing on their part of the project. When you realize this, you become an initiative-taker for the rest of your life. The price you pay for keeping quiet when you know better becomes unjustifiable.
我一生都为这种自我怀疑所困扰。 但是随着时间的流逝,我了解到,与我看起来愚蠢或从同事那里获得臭头相比,失败项目的风险实在太大了,因为我擅自进入了他们的项目。 当您意识到这一点时,您将成为余生的主动者。 当您知道更好时,为保持安静所付出的代价变得不合理。
So, if you have a question, please ask it. If you see a better way of doing something that may not fall under your purview, just say it. The overall health of your project or team depends on all of you coming together without fear of ridicule or remorse. Learning to raise your hand first or call a meeting is an act of vulnerability. But do it for the greater good knowing that your intentions are pure.
因此,如果您有任何疑问,请提出。 如果您发现做某事的更好方法可能不在您的权限范围内,请说出来。 您的项目或团队的整体健康状况取决于所有人在一起而不必担心嘲笑或re悔。 学会先举手或参加会议是脆弱的行为。 但是,要知道自己的意图是纯洁的,这样做是为了更大的利益。
Of course, it’s best to state your opinions with tact and sound non-threatening when you’re making suggestions about others’ tasks. Explicitly state that this is “just your opinion” and that it could be wrong too.
当然,当您对他人的任务提出建议时,最好以机智和无威胁的态度陈述您的观点。 明确指出这只是“您的意见”,也可能是错误的。
Also, you need to keep your ego aside and be open to suggestions from other team members if they have an opinion on how to better your code reviews or solution designs. They may not necessarily be correct all the time, and if this is the case, you can logically explain why their suggestion may not work. But if what they say makes sense, you need to be able to adapt to the change with humility.
此外,如果其他团队成员对如何改善代码审查或解决方案设计有意见,则还需要将自我放在一边。 他们不一定总是正确的,如果是这种情况,您可以从逻辑上解释为什么他们的建议可能行不通。 但是,如果他们说的是有道理的,则您必须能够谦虚地适应变化。
And this leads to the art of communicating.
这导致了交流的艺术。
3.交流影响力 (3. Communicate to Influence)
Every meeting, email, and stop by someone’s desk has an objective — whether it is to make one change or build a better working relationship with someone. Even a brainstorming session has the objective of building on each other’s ideas and finding the best solution for a given problem or future state.
每次会议,发送电子邮件和在某人的办公桌前停下来都有一个目标-无论是进行更改还是与某人建立更好的工作关系。 即使是集思广益的会议,也要以彼此的思想为基础,并针对给定的问题或将来的状态找到最佳解决方案。
I don’t mean you should have a hidden agenda when talking to anyone, but there are definite benefits to understanding the communication objective of every communication at work. Learn to view communication as a tool to influence so you can focus on this objective and attain it in the end.
我并不是说您在与任何人交谈时都应该有一个隐藏的议程,但是了解工作中每项交流的交流目标都有明显的好处。 学习将交流视为一种影响力的工具,以便您可以专注于此目标并最终实现。

I have seen a lot of software engineers struggle to communicate with business users effectively because they use too many technical details that aren’t relevant to the business. In addition, I have gotten a sense that many software engineers don’t understand how important relationships are for the successful execution of a project.
我已经看到很多软件工程师努力与业务用户进行有效沟通,因为他们使用了太多与业务无关的技术细节。 另外,我感觉到很多软件工程师都不了解关系对于成功执行项目的重要性。
As a result, there were many layers between the technical team members and the business, so the information got lost and transparency was compromised in the process. Therefore, improving one’s communication skills will add tremendous value to a software engineer’s marketability.
结果,技术团队成员与业务之间存在许多层,因此信息丢失了,透明性在此过程中受到损害。 因此,提高人的沟通能力将为软件工程师的适销性增加巨大的价值。
Always think of what’s important to your audience when communicating. If you have open questions on this, take initiative and reach out to the product owner or project manager for clarity. Usage of visuals and analogies for complicated subject matter also helps simplify concepts for the business.
交流时,请务必思考对您的听众重要的内容。 如果您对此有未解决的问题,请主动并与产品负责人或项目经理联系,以求清楚。 对于复杂的主题使用视觉和类比也有助于简化业务概念。
Relationships are the backbone of every successful project. You don’t have to be the most extroverted person on the team to develop meaningful, one-on-one relationships with other team members or the business team. In fact, folks who are the life of every party may not have enough patience to truly get to know the needs of another. You just need to have empathy, genuinely care about others’ needs, and not be a jerk (intentionally or unintentionally).
关系是每个成功项目的基础。 您不必成为团队中最外向的人即可与其他团队成员或业务团队建立有意义的一对一关系。 实际上,作为每个政党一生的人们可能没有足够的耐心来真正了解另一个政党的需求。 您只需要有同理心,真正关心他人的需求,而不是一个混蛋(有意或无意)。
结论 (Conclusion)
In conclusion, software engineers who have a basic knowledge of the business and take initiative to influence teams through effective communication will always have the upper hand compared to those who do not nurture these skills. Business teams and project teams will always ask for a developer with such skills instead of a developer who only has superior coding skills.
总之,与那些不具备这些技能的软件工程师相比,具有业务基础知识并主动通过有效的沟通影响团队的软件工程师将始终占据上风。 业务团队和项目团队将始终要求具有这种技能的开发人员,而不是仅具有出色编码技能的开发人员。
If you are intentional about upskilling in these areas and understand why these qualities are key to differentiating yourself, you can make small changes right away, as these are highly trainable skills.
如果您有意在这些领域进行技能提升,并且理解为什么这些素质是使自己脱颖而出的关键,那么您可以立即进行一些小的更改,因为这些都是高度可训练的技能。
You can start by asking business-related questions (business knowledge and initiative — check) in an inquisitive manner (effective communication — check) tomorrow!
您可以从明天开始以好奇的方式(有效的沟通-检查)提出与业务相关的问题(业务知识和主动性-检查)!
Thank you for reading and please leave a response below if there are any other skills that you would add to this list.
感谢您的阅读,如果您还有其他技能需要添加到此列表中,请在下面留下答复。
软件工程师 技能