effective engineer-关注迭代周期
2018-11-18 本文已影响4人
MontyOak
大多数互联网公司的发布系统都提供了CI/CD(持续集成/持续发布)的功能,这使得每天多次发布成为了可能。有比较完备的单元测试/集成测试,加上金丝雀发布以及完善的监控看板,即使快速的发布也不会对生产环境的稳定造成太大问题。
小步快走的发布策略使得产品策略的试验,功能特性的发布/排错都变得成本更低。
快速行动 高效学习
快速迭代带来更多学习的机会,集成发布系统通过实现便捷的一天多次发布来帮助我们快速定位问题,快速验证想法。
投入在节省时间的工具上
简单原则就是尽量减少手动重复操作,将重复性工作使用工具来做。高效易用的工具将会节省大量的时间,甚至颠覆整个原有的工作流程。观察现有工作流程中存在的瓶颈,尝试引入外部工具或者自己编写工具来修正工作流程,衡量效果。
缩短bug验证时间
尽量缩短bug的验证周期,从而大大减少开发所用时间。省略非必要的步骤。
管理编程环境
使用高效的编程环境,包括IDE,web调试工具,优秀的命令行工具等等。熟练使用快捷键操作都能节省大量的时间。
- 熟悉你选用的IDE或者文本编辑器 熟练掌握常用的相关操作
- 掌握至少一种高效的高级语言 至少掌握一门脚本语言,这会帮助你快速构建小工具
- 熟悉*nix命令行 掌握诸如
grep
,find
,sort
,uniq
,wc
,awk
,sed
,xargs
,find
等命令 - 熟练使用键盘操作而不是鼠标 快捷键提供了大多数的常见操作,减少手从键盘到鼠标之间的来回切换
- 手工流程自动化
- 在交互解释器中快速验证想法 在交互命令行中快速验证算法/数据结构设计等等是否可行
- 快速运行和修改代码有关的单元测试
别忽视非工程方面的瓶颈
最常见的非工程瓶颈是对外部团队的依赖。这里可能是产品经理,设计师,外部工程团队,运营人员,销售人员等等。
解决人际间瓶颈的主要方法就是沟通,多种形式的沟通(当面沟通,会议记录,邮件等等)方便你把握整体进度。
另一个常见瓶颈是等待领导层批准。比如项目立项的批准,上线的批准,产品特性的批准,发布紧急修复的批准等等。在等待批准之前,可以做一些预先准备工作来减少阻塞的消耗。