(转)Engineering Productivity
(转)http://www.wandoujia.com/blog/from-qa-to-ep
这个文章之前读过,很不错。今天再读,有不一样的感受!推荐下。
下面是几段摘录:
EP 是什么
说到这里,EP 这个词才第一次出现,这个词的内涵之丰富,可能需要仔细说说。
我最早看到 EP 这个词,是在当时还是 Google EP 团队成员的 James Wittaker 写的那一个有名的 「How Google Test」的系列博客中,内容我就不转述了,很多人都读过。
EP 是 Engineering Productivity 的缩写,工程生产力的意思,这个团队,就是给整个大技术团队,甚至整个公司提高工作效率的。通俗直白的说,就是一个工具团队。因为工欲善其事、必先利其器,不要小看工具团队,某些程度上来讲,一个产品随着市场的变化可能很快凋亡,而一个好的工程工具,生命力要强得多,比如,开发语言其实就是最基本的工程工具了。那么,对一个公司,或者说交付团队来讲,怎么衡量工程生产力的高低呢?这个衡量方式其实就决定了「EP团队」的工作方向。我们自己定义的工程生产力从低到高的定义是这样的:1)质量,这是最基础的指标,什么都不行,也要保证质量过关,否则一个产品连生存的可能都没有。2)同等质量水平下,追求速度。质量过关了,就要看迭代速度了,你比竞争对手快,你就能活下来。3)同等质量和速度下,工程师的幸福感。如果质量也过关了,速度也快,但是大家过得很苦,天天加班,重复劳动,看不到未来,这也不行。幸福是什么?对我们来说,就是不被反复的简单问题所困扰,该自动的都自动,自动不是说一定快,但是一定省心,这里的幸福就是省心,有精力去关注更多的有意义的事情,而不是每天处理简单重复的问题。4)同等质量和速度,也有幸福感,再看成长。工程师们有没有感受到成长?不断的解决问题或开发产品,感受到的是重复劳动还是成长?其实前三点都做到了,第四点一定是有的。
EP 做什么
我们回头说 EP 团队,EP 团队也有自己的人生理想,那就是一个三部曲:替、教、独立。
第一个是替的阶段,其实就是比较老式的开发过程,我替你测试、替你上线、替你运维。
这个阶段,完全不符合我们「吃狗食」那一条价值观,按照狗食法则,一个人自己设计开发编码,当然要自己测试,自己写的代码 bug 多要一遍遍回归,这个苦果自己不吃谁来吃?但没办法,大多数程序员在如何测试自己的程序方面没有受过什么训练,为了尽快发布产品,只能替,但这个替的时间要越短越好,尽快进入下一个阶段,教。
第二个是教,就是教技术团队的其他成员,如何测试自己的程序,如何构造环境、构造数据,如何部署和运维自己的产品。这里的自己做,并不是回到蛮荒时期,例如创业初期只有一个程序员的时候,他当然是自己开发自己测试自己部署,但我们到了第二阶段的自己做,是自己规范的做,通过我们提供的相对完善和规范的工具做。我们就处于这个阶段的初期。
第三个阶段是独立,独立是说 EP 团队从一个替人做事的下游团队,到一个教人做事的教练团队,真正进化为一个提供技术服务的产品团队。这个产品团队的产品,大多数应该是以一个标准化的、健壮的服务的形式,而不是人力资源的形式,提供给其他团队的。当然这是我们的理想,能否达到或者是否切合实际,还需要时间来观察。
(转)Engineering Productivity的更多相关文章
- [ZZ]From QA to Engineering Productivity
http://googletesting.blogspot.com/2016/03/from-qa-to-engineering-productivity.html In Google’s early ...
- Docker与CI持续集成/CD
背景 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...
- 小课堂week14 Google软件测试之道
读<Google软件测试之道> 在IT领域,Google是一面旗帜,是一家非常善于思考善于尝试的公司.随着面临挑战的不断增大,传统的测试开展方式也越来越力不从心,这本书讲述的就是一次完整的 ...
- 【转】从QA到EP
从QA到EP 两三年以前,和友人谈到 QA(软件质量保证) 这个行业,还有 QA 这个团队的未来,就有了一丝忧虑.而现在,终于有机会实践一下自己之前的想法,在这里分享给大家. 从我有限的从业经验到现在 ...
- 10.读google测试之道有感
(一)读google测试之道有感.
- 从QA到工程能效团队
Engineering Productivity Productivity is our job; testing and quality are the job of everyone involv ...
- <自动化测试方案_9>第九章、持续集成平台搭建
第九章.持续集成平台搭建 (一)什么是持续集成 参考文章地址:https://blog.csdn.net/qq_32261399/article/details/76651376 敏捷软件开发(英语: ...
- CI/CD持续集成/持续部署 敏捷开发
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...
- Docker与CI持续集成/CD(转)
背景 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会 ...
随机推荐
- 【原创】小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载五(给按钮加图标)
在范例5-4所使用的导航栏中,已经为按钮加入了图标的样式,但是当时并没有介绍按钮的图标究竟是怎么一回事.下面截取范例5-4中导航栏部分的代码: <divdata-role="foote ...
- Python脚本控制的WebDriver 常用操作 <三> 浏览器最大化
下面将模拟执行一个控制浏览器最大化的操作 测试用例场景 当我们在测试中使用一些基于图像和坐标的辅助测试工具时,我们就会需要使浏览器在每次测试时保存最大化,以便在同一分辨率下进行图像比对和坐标点选. 举 ...
- Node.js中的模块化
每天一篇文章来记录记录自己的成长吧.大二,该静心了.加油~ 好了,废话不多说,今天说说nodejs中的模块化.(注:此文为自己对书nodejs实战的总结) nodejs一个重要的特性就是模块化,模块就 ...
- [原创]EnterpriseDB测试key申请方法
各位有对EnterpriseDB感兴趣的朋友,可以通过邮件方式申请测试key: 发送邮件至:zws@focus-soft.com,官方收到邮件后会有专人与您联系,一般情况都会很快得到一个测试key. ...
- core java 8~9(GUI & AWT事件处理机制)
MODULE 8 GUIs--------------------------------GUI中的包: java.awt.*; javax.swing.*; java.awt.event.*; 要求 ...
- R Tools for Visual Studio
https://www.visualstudio.com/en-us/features/rtvs-vs.aspx https://www.microsoft.com/en-us/cloud-platf ...
- 如何配置DNS服务器(局域网——域名指向某个IP地址)
单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器. 如有必要,向管理单元添加适用的服务器,然后连接该服务器.在控制台树中,单击适用的 DNS 服务器. 在“操作”菜单上 ...
- win7虚拟打印驱动开发注意事项
win7虚拟打印驱动开发注意事项 通过控制面板安装遇到以下问题:错误1.提示“Printer driver was not installed. Operation could not be comp ...
- CString string char* char 之间的字符转换(多种方法)
在写程序的时候,我们经常遇到各种各样的类型转换,比如 char* CString string 之间的互相转换.首先解释下三者的含义. CString 是一种很有用的数据类型.它们很大程度上简化了MF ...
- C++异常机制知识点
在这里总结一下,C++中的异常机制,以及如何使用异常的知识点 C++中处理异常的过程是这样的:在执行程序发生异常,可以不在本函数中处理,而是抛出一个错误信息,把它传递给上一级的函数来解决,上一级解决 ...