惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
量子位
大猫的无限游戏
大猫的无限游戏
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - Franky
美团技术团队
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
罗磊的独立博客
Jina AI
Jina AI
小众软件
小众软件
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网
博客园 - 聂微东
博客园_首页
The Cloudflare Blog
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队

Posts on WKLKEN THINKING

apisix 中的 lrucache apisix 中的服务发现机制 apisix 中的负载均衡 apisix etcd机制 聊聊框架 关于 k8s 的 zero downtime deployment 一些建议 apisix 遇到的一些问题 关于在除夕前一天换了一个洗衣机的故事 Django DRF 性能优化 DRF 的一些实践 Part1: Serializer DRF继承关系图 Better Code: 关于接口的灵活性 新的仓库: wklken/naming 缓存使用的一些经验 Better Code: 抽象: 可扩展性与可维护性的抉择 Better Code: 异常时, 该提示用户哪些信息? Better Code: 更好的异常日志打印 Go: some libs Go: go-redis/cache升级的坑 Go: logrus性能提升 Go: gin validation 远程办公的一点总结 Go: 开发过程中的一些bug 项目管理实践: 风险驱动开发 Go: 一种error wrap调用链处理方式 漫谈技术选型 Go: 基于 apitest 做handler层单元测试 Go: go-sql-driver interpolateparams参数优化 [分享]深度工作 你需要更多的思考时间
后端不高兴——关于协作和沟通
2014-04-24 · via Posts on WKLKEN THINKING

==================

再过两月毕业三周年,回顾一下,突然想起了一些问题,顺手记录一下

选择后端的原因之一,代码写得好一些,然后改需求的时候,刷刷刷改几行代码发布,然后泡杯茶站在前端同学后面看他们苦逼地改页面:)

unhappy

工作那么久,逐渐变得“冷血”,要学会说no,学会排期,学会去“降低”一些人的期望甚至是“无情”扼杀,所以或许初次合作会给人一种不“友好”的印象。

但是在“友好”和“效率”,我选择了后者,记得当初很菜很菜的时候,我还是很“友好”的。(妈蛋,一天要处理N多问题,跟运营运维产品前端测试等等沟通,还得挤时间码代码测试发布上线,只能高效至上了)

不扯了,归正题,聊一些平时沟通合作遇到的问题

PS:这里后端偏指服务端开发,当然,问题普适于各个角色


1. 问问题的方式

之前在微博看见人说过的一个现象,再次提一下

假如有人找你咨询一个问题

A: 在? (在么?/在不在?)
B: 额
A: xxx功能你知道么?
B: 知道
A: xxx有个功能有问题了,能帮看下么
B: 什么地方
A: xxxxxxxx
B: 算了你切个图过来吧
A: [图]

这个,首先,可能我在写代码,闪动弹窗对有轻微强迫症的人来说,必须要点开的啊(妈蛋),然后,我即时响应了,可能由于你有事什么的,过一会回答,但是这个等待过程中我又很那去投入一件事,很容易投入没几分钟被打断…这几句对话可能跨度是几分钟,甚至几个钟头(跑去吃了个饭回来看到消息给才给回复,哥都快忘了),其次,我真的很吝啬打那么多字>_<#

效率杀手之一

最有效率的其实是:

A: 在吗?xxx功能你知道么?现在有问题了,xxx异常,访问链接 http://xxxxxxx,截图如下
   (给力一点的还会圈起来标注说明)
B: ok,稍等我看下
.....
B: 已修复,验证下
A: 好的

感受下吧

推荐一篇文章 如何提问 | 一本书 学会提问

2. 搞明白“这事谁的问题”

当一个人发现一个问题的时候,总是很兴奋地,迫不及待想要证实

然后就会有如下

A: xxx系统是不是挂了,我登陆不上去【有时候是页面差异,系统操作失败等】

B: 稍等,我看下
三分钟后
B: 后台正常,刚才重新走了一遍流程,没问题,[切图]
   你再试下,可能xxx问题
A: 我忘改xxx了/登陆超时了/xxx了/我忘记做xxx操作了

吐血的问题,很多时候,都是自己机器的问题,可能是host/网络/浏览器/系统登陆等等因素导致的,但是大多数人已发现问题,总是认为是别人的问题(系统的问题),然后迫不及待,然后,我们要花费时间来排查各个可能的问题,跳转N多机器,检查N多服务,而且,相信我,这个过程不会很有趣,而且问题本身的种类很难导致很难将其自动化….《论排查问题的复杂性》

当然,如果是可以自动化而你偏偏要每次人肉查而且乐在其中,那我没办法了。

后来就变成

A: xxx系统是不是挂了,我点发布了但是前台没更新

B: 重做一遍,10分钟后没更新通知我 【够冷血吧】

这类问题次数少也就忍了,担心的是对应人员新人进来的时候,没有老员工带或者培训,那么系统开发者往往一次又一次成为“义务培训导师”…..

另外遇到问题也要忍住证实的欲望,先自己确认下

有一本书推荐《你的灯亮着么》

3. Suprise

后端最讨厌的是suprise,安排和做事情的节奏都会被打乱。

我的原则是,不接受&unhappy,紧急的会去配合做,当然心情不会happy

方案设计,评审,开发,测试那么多环节都没发现,要上线前,需求变更或者xxx有问题,suprise

然后,上线时间有时候又是固定的,所以必须要配合处理

当然,作为一枚“有责任感”的后端,肯定都会全力配合处理,不高兴是一回事,把事情完美地搞完是一回事。

但这时候,往往会发现,时间不等人,所有人都盯着你,瞬间亚历山大,如果没搞好还很容易成为“责任人”,延期什么的很容易落到你头上,属于吃力不讨好的角色,前期按时完成,suprise却要背负所有,心里瞬间失衡(╯‵□′)╯︵┻━┻

问题是,这个suprise的来源. 才是问题所在,更多的应该反思这里,否则很容易造成后续合作困难。

另外,suprise很容易导致黑逻辑、补丁、牛皮糖、硬编码等等,将一块干净的自留地变成垃圾桶,而且破窗理论,所以,要控制。

4. 要明白一个道理

1个人1个月能干好一件事情,不代表30个人在1天能把这件事做了

很简单的一个道理,但是很容易被人忽视

5. 关于估时间

后端需要信任,虽然我们有时候估时间不大准,但是基本都能在少于估算的时间内完成,超过的情况并不多。

而且随着工作经验积累,估算时间会越来越准。(三小时就是三小时,额,上下误差几分钟)

一般问题过来,很简单顺手做了,复杂的会给个完成时间。

不要站在自己的角度去给后端的估时间,常见的理由是:“就简单加一个xxx”,“修改一下而已”等,你要知道有些系统并没有那么简单,你要的可能是一个现在能用的东西,但我们需要一个以后无论怎么改都好改而且能用的东西。(相信我,差异很大),同理,不要估工作量啊(2天的量估0.5天,要做完,那另外1.5天怎么破,哥做不到>_<)

记住,除非火烧眉毛,否则,能在承诺完成时间内搞定的,不要催。

我们需要的是冷静和清晰的思路。催促和打断于事无补。

6. 上帝,同一时间内有且仅只有一个

所有人,都认为自己的需求优先级最高。

对后端来说,合作和沟通的每个人都是上帝。

但是要记住,上帝,同一时刻内只有一个。

所以,有了优先级这一说,会排期,一次只做一件事。

再给力的后端也不是超人,一次处理N件事情效率很低容易出错,非常不明智的

所以,要学会接受排期,除非排的时间不合理要去沟通。

你会发现,在截止日期到来的前一刻,后端小伙伴的东西已经搞完提供了。

7. 合理使用项目管理工具/邮件/IM/电话

综合使用工具进行沟通

涉及项目跟踪通知等,请用项目管理工具(目前tower)

极重要事情,请邮件

极紧急事情,请当面,或者电话

其他,IM

小事,确认,疑问,突发奇想?灵机一动?等等,注意除非这个沟通有可能导致你必须要去等,否则不到万不得已不要杀过去打断一个程序员的思路。

打断是效率杀手,如果不用电话,那恕我只能定期去查,异步回复,所以就不要傻等。

8. 被开会

不重要的会议不要勾选抄送我,谢谢

冗长无聊相关性不大的会议允许早退,或者过了跟自己相关的部分允许早退

超紧急临时会议,没问题

其他临时会议,没提前发邀约提前通知的会议都是耍流氓,要知道本来用来码代码的两小时被突如其来的会议占用,打乱了计划安排,那么晚上就得花一个小时加班补回来【别问我为啥是一个小时】

9. 拿到承诺

如果有一件事,你提给后端,不说明问题,优先级,截止时间,或者,压根你就扔给后端就不管了。(被动等待会等到海枯石烂的)

然后你期望他把事情给做了,把结果给你,或者将事情跟完。很多时候,这都是你的幻想。

如果我们没做出承诺,可能这件事情就被排后了,至于完成的时间,完全与取决于工作安排和工作量。

所以,一般提给后端的时候,可以多问一句,“什么时候能搞定”,拿到承诺,一般没问题了。

10. 当面沟通时提供上下文

遇到次数不多,但是还是会遇到,干活中都是有“状态”的

有时候在做一件事情,一半

然后例如这样

A: 把xxx字段改成xxxx.... blablablabla.......

B: 啊?(脑补痴呆状)

或者这样

A: 把xxx字段改成xxxx.... blablablabla.......

B: 不合适吧,xxxxxxx.......

A: 我在说xx问题

B: 我以为你说XXX问题

其实可以这样:

A: 关于xx的问题,我们..........

你要相信,大部分后端都是善良的孩子……

而且大部分后端,一个人干N个人的活(N>=2), (╯‵□′)╯︵┻━┻