工程师意识
对有些同学来说,前两周是非常忙碌的两周。线上发生了几起事故,虽不全是我们部门的,但很多同学也在群策群力的一起去解决、复盘、改进。同时,我们上周也对部门H1的冒烟、事故进行了回顾。
我们希望通过对踩过坑的深度复盘,去发现需要改进的点,然后下次不再犯同样的错误。复盘后发现,引发故障的原因中,变更占比100%,其中代码逻辑占比45%,方案设计占比15%。“变更是万恶之源”。我们对变更的管理,有没有达到10成的把握,这里面有流程机制的问题,也有各位工程师的意识及执行的问题。流程机制上,我们想了一些对策,接下来会对变更三大件(技术方案 + Codereview + 上线回滚方案)进行强执行。接下来想谈一谈工程师意识和执行的问题。
回首这些冒烟和事故,是不是我们在技术方案设计的时候多考虑一下异常情况,就可以避免这次事故?是不是我们在自测的时候真正测试到改动的功能点、前后对比是否一致,就可以避免这次事故?是不是我们在写每一行代码的时候、认真的了解到调用的函数的副作用和运行机制,就可以避免这次事故?是不是我们在使用中间件的时候对实现机制有更透彻的了解和确认,是不是我们在巡检的时候更细致的检查毛刺并追查原因,就可以避免这次事故?是不是我们没有想当然,改过的配置真正去调一下接口,是不是就可以避免这次事故?
在我看来,一件事情没有做到位,有两方面原因。 一方面,是没有这方面的意识,不知道应该这样去做,如何去做。 另外一个方面,就是偷懒了,心存侥幸,但我们并不会一直这么好运。根据墨菲定律,该发生的一定会发生。
对于工程师意识,百度已经有非常好的总结了,希望大家都每个字每个字的认真研读,一个合格的工程师应该具备怎样的意识。这都是前人的智慧,我们应该把它传承下去。
- 质量意识
- 流程意识
- world class procedure:用流程解决具有共性的、重复性问题,提高效率
- 流程意识
- 既有的流程应严格遵守;没有流程的应创建流程
- 要对自己的工作质量负责,不要期待别人来发现自己的问题
- “稳定”压倒一切,线上服务最重要
- 用户体验最重要
- 工作安排:二八原则
- 优先解决线上服务稳定性问题
- 不要“想当然”:
- 不要默认“没问题”,而是缺省认为“有问题”;“肯定没问题”一定有问题
- 反复核实(double check)十分重要
- “我以为他们已经开始做,但我也没有跟他们确认一下”—导致项目延期
- “我以为这个接口是这样定义,但谁想到是那样的”—导致程序崩溃
- “我以为发出邮件,他肯定就知道了”—实际上,他/她根本不在相应的邮件列表中
- 时间意识
- 目标管理、结果导向
- 弹性工作制:上下班时间自由支配
- 目标管理、结果导向
- 关键是要按时保质完成工作
- 只争朝夕,争分夺秒
- 激烈的产业竞争环境
- 不要拖到最后才开始工作,因为总可能会有意外
- 能今天做完的绝不拖到明天
- 自我管理,自我推动
- 每件事情都有完成时间表,给自己一个约束,给别人一个承诺
- 每件事情有始有终,设立一些里程碑,在里程碑上检查进度,主动向其他人通报进度
- 建立个人品牌,树立别人对自己的信心
- 沟通意识
- 平等沟通
- 在沟通上没有级别概念
- 平等沟通
- 不要碍于面子,不要怕犯错误:报喜亦报忧
- CC文化
- 及时沟通:
- 邮件是最主要的沟通形式,但有时不是最有效的
- 当面沟通,电话沟通,召集会议都是有效的形式,但要留下文字
- 有效沟通
- 沟通要达到效果
- 如果没有效果,应让更多人知道,尤其是你的老板和对方的老板
- 团队意识
- 集体荣誉感:
- 用你的成绩为你的团队带来光荣
- 集体荣誉感:
- 互相帮助,互相学习
- 乐于给别人提供帮助
- 也勇于向别人学习:有问题不要憋在肚子里
- 互相理解
- 把周围同事当作你的资源,包括你的经理
- 对事不对人,尊敬身边每一个人
- 求实意识
- 科学求实是技术发展的基础
- 用数字说话,用事实证明,不要有“想当然”的思想
- 大胆假设,小心求证,不放过每一个细节和疑点
- 客观公正
- 杜绝“可能”,“大概”,“应该”这样模棱两可的用词,而是用准确的数字和事实来论证
- 每个工作能用量化的指标来进行衡量
- 性能、容量、准确性、召回率、死链率,etc.
- 没有量化,就没有绩效
- 通过这些指标衡量自己的成长和进步
- 通过这些指标知道工作的方向和重点
- 进取意识
- 永葆激情,积极主动
- 热爱你所从事的工作
- 永葆激情,积极主动
- 不要等别人为你分配任务,你就是自己的老板
- 与时俱进,不断学习
- 在高速成长的公司,你才会有高速成长的可能
- 要有和公司、团队的同步成长的意识
- 对技术、对质量的追求永无止境
- 没有最好,只有更好
- 目标远大,不固步自封,自我满足
- 忧患意识
- Case study和自我总结,自我学习和提高
- Case study是一种文化,从事故中吸取经验教训
- 容忍失败,但不容忍重复失败
- 经常反思一下自己
- 不放过任何一次问题,勇敢地剖析自己
除了意识之外,我们还希望我们的工作伙伴有什么样的特质?
- 靠谱:凡事有交代,件件有着落,事事有回音
- 别人交办的事情,请第一时间给出预计完成的时间点。
- 过程之中注意按时通报进展。
- 如果预计要延迟,延迟多久,提前多久通报。
- 如果请求别人做事情,请给出期望完成的时间点。
- Ownership:高度负责,结果导向
- 对自己的代码质量负责、线上系统负责,确保结果
- 对交办的事情负责,确保结果
- 开发质量的保证,是自己的职责,不是测试的职责。写优雅、可维护的代码是自己的追求,决不妥协。
- 二八原则,确保自己的精力在解决主要问题,拿主要的结果
- 学会时间管理,4象限安排工作优先级,确保重要结果产出
- 工程师的核心竞争力就是解决问题的能力,不管你用什么方法
- 认真负责,思考全面,提前计划,步步为营
- 自驱自发:我的工作我做主
- 不要等别人为你分配任务,你就是自己的老板
- 主动承担更多的职责、主动学习更多的知识
- 自己尽力都搞不定的事情及时寻求帮助
- No Excuse,实事求是:不怕犯错,不找借口,主动反思,持续改进
- 主动沟通,善于协作
- 报喜亦报忧,确保协作方信息的及时性、有效性
- 主动语音聊,电话聊,跟进聊
希望我们的工程师,都具备以上工作准则,作为球队的不可或缺的一员,各自发挥自己的才能,一起赢!!!