工程师意识

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