在工作上,除了写代码,程序员还经常需要跟其他人沟通,比如:
- 跟产品经理沟通需求设计和实现
- 使用了其他部门的中间件,咨询他们相关问题
- 遭遇线上问题,跟相关部门沟通处理
- 组内任务协作,组员间沟通
- ...
所以,沟通能力也是程序员的一个重要软技能。面试中,即使你的技术再好,沟通能力欠佳也可能被面试官拒掉。
接下来分享一些我的实用沟通技巧
(提前声明:本文所有例子,纯属虚构,如有雷同,不胜荣幸~)
1. 提供足够的信息
跟其他部门沟通的时候尤其要重视这一点。举例:
你的线上某个 kubernetes pod 创建异常了,需要去找 kubernetes infrastructure 组帮忙(报问题)—— 通常是在交流通信工具(比如slack,企业微信)上对应的群里发消息。
超级反面例子:
我们这出问题了!有人能帮忙吗?
我还真遇到过这种人,上面这句话提供的有用信息几乎为 0 。
反面例子:
我们有个pod创建异常了,你们帮忙看看吧
对于 kubernetes infrastructure 组 而言,上面这句话里提供的有效信息只有一个 “pod创建异常”。除此之外,你们用哪个 namespace ? 哪个集群? pod 名字? 这些最重要的信息都是缺失的。
于是,他们就只能继续问你这些问题,然后等你的回答,得到你的回答后再去debug。假如你没看到他们的提问,过很久之后才回复,他们等很久没回复也去做其他事情了,这么一来二去,沟通效率非常低。
所以,沟通的时候(尤其是与其他部门/组的员工),一定要及时提供所有必要信息,给对方一个完整的上下文。
正面例子:
我们有个pod创建异常了,namespace 是 xxxxxx, 集群 3, pod 名字是 abc。 同样的 pod specification 在另一个集群 2 是可以正常创建出来的。
如果这么表达,对方一下子就拿到了所有必要信息,可以立刻开始查问题。
2. 有头有尾,有始有终
这一点是我在实习的时候深刻学习到的,当时老板(广东人)拍着我的肩膀说:”......上次这个问题处理完就应该及时告诉我,也就是(广东话)俗话说的 —— 做事要有交代 ......“
我个人的理解:
处理事情,要及时给相关的人(同事,组长或者其他组的人)做反馈。
比如:
- 遭遇问题,要及时汇报;
- 组长获知问题后,决定延后处理的话,你就要去建个任务记录(比如 jira ticket 或者 redmine ticket 或者 其他任务记录工具);
- 建好任务记录后也要及时告知组长,并分享链接;
- 如果中途问题涉及到其他情况,也要及时跟组长同步信息;
- 如果提前解决了问题,也记得告知反馈给相关的人。
这么沟通的优点在于可以 让所有相关的人员保持信息同步,让他们感觉事态在掌控之中,同时也避免一些不必要的问题。
如:
- 另一个同事:”啊?这个问题已经解决了啊,那我刚刚岂不是白忙活了?“
- 组长:“我怎么不知道这件事?”
- 受影响的其他同事:“问题解决了怎么不告诉我们?我们在这干等”
3. 友好的文字格式
公司内部的交流通信工具通常是 slack (外企),企业微信,钉钉,甚至是内部自制的工具。
有时候在报bug或者其他沟通时,需要贴log,链接甚至是代码片段。我们可以对这些特殊的片段设置文字格式,让阅读体验更友好。
以 slack 为例
不做任何文字格式处理的版本
对特殊文本做了简单处理的版本
后者显然有更好的阅读体验 —— 良好沟通不仅是有效地交流信息还应该让整个过程显得舒服流畅。
大部分工具都有简单的富文本编辑功能,做点文字格式处理并不会很花时间。
slack 的富文本工具栏
4. 保持基本的礼貌态度
这是基本的职场礼仪,尤其是跟其他组/部门的同事沟通时,尽量保持友好礼貌的态度。多用“请”“谢谢”“麻烦了”“不客气” 这些礼貌用语,看似简单地多说几个字,可以让沟通保持舒适愉快。
我也遇到过一些用词不友好的奇葩同事
比如:
“@我的工名 解决一下xxx的问题,做完了跟我说!”
——(你又不是我leader,颐指气使什么?)
”@我们组的名字 你们这个xxx功能是不是有问题啊?我这边一直报错。“ ——(就你那边有问题,其他人没问题, 那你觉得是谁的问题?质疑别人之前能不能先看看文档看看自己的代码?)
遇到这种同事,对方会乐意认真帮忙处理问题吗?
关于程序员职场沟通技巧,就分享到这儿了。
在程序员职场中,技术固然重要,情商也是非常必要的,不求受欢迎,但求别被同事们”嫌弃“”吐槽“。
你有什么沟通技巧或者职场沟通小故事,欢迎留言分享或吐槽。
— 本文结束 —