原文转自thoughtworks员工gigix:
[url]http://gigix.thoughtworkers.org/2012/5/8/result-oriented-and-test-driven[/url]
“结果导向”是个职场里很流行的词。六年前我跟 夏姐姐 去校园招聘,她说如果是招销售的话就会更多要求结果导向。然而我现在发现,所谓结果导向,其实跟 测试驱动开发 是同一回事。所以像ThoughtWorks这样很认同TDD的环境,即使不是销售,做事同样要强调结果导向。

类似的话题其实我 之前也讲过 。我还可以再举一个最近的例子,读者们一起来做做思维练习:

[i]你是一个项目经理。你带着另外两个兄弟漂洋过海来到A国,客户是A国数一数二的保险公司S。你要跟S公司的人一起工作一段时间,然后回到中国来形成离岸外包的局面继续工作。可是事情没那么简单。S公司这是第一次把核心系统研发工作离岸外包,公司上下没人知道这事情该怎么操作。倒是负责风险控制的部门知道哪些事情不能做,比如说把源代码弄到中国这事就不能行,更不用说信用卡数据了,那是压根就不能允许在中国的显示器上出现。客户的团队对你们也持怀疑眼光,连自己公司在A国的同事也有点搞不清你们到底需要什么帮助。
现在,作为这个焦头烂额的项目经理,显然你有很多事要做。噢对了,你们的签证只有六周⋯⋯[/i]

你会做哪些事?你会首先做哪些事?

这时候我给这个团队的建议就是:你们需要测试驱动。如果要为这六周的onsite工作写一个验收测试,这个测试应该是什么?这个spec应该写着“可以离岸外包”。如何测试可以离岸外包?你需要让至少一个人尽早开始以离岸外包的方式工作。当你们在A国的时候,这个人从中国开始以离岸外包的方式工作了,客户开始为他付钱了,这个测试就通过;反之,不管你在客户现场做得再high、客户对你再满意,当你回国以后一定会出问题。

这一个验收测试又会被细分为更多的功能测试,例如“可以访问源代码”、“数据安全通过检查”⋯⋯最终某些功能测试真的会被实现为自动化的测试代码,另一些将会是人为的检查点。重点在于,你在客户现场要做什么、要先做什么,不是由你预先设计的,也不是拍脑袋拍出来的,而是由验收测试驱动出来的。我应该动手解决数据安全问题吗?我应该建议客户增加一个迭代经理吗?我应该给客户做一个关于中国文化的session吗?答案都在于:你当前“红”的测试是什么?你做这件事将以何种方式使哪个测试变“绿”?

传统的管理者们会说这就叫“结果导向”。

类似的案例还有很多。比如说,如果你要为离岸外包交付这件事写一个测试,你会怎么测它呢?你应该很快发现,像“客户满意”这种虚无缥缈而又变幻莫测的东西,并不适合作为验收测试。一个既简单又明确的验收测试应该是“客户为我们的工作付钱”。那么当你用这样一个测试来驱动自己的工作,你就不那么容易犯下填错timesheet之类的低级错误,因为你会意识到:不管工作有多认真多高质量客户有多happy,如果你的timesheet里没有填那么客户是不会为你的时间付钱的,那么你的验收测试就“红”了。

所以,结论一:就像德鲁克说的,一切绩效都在企业之外。忘记什么角色定义啦工作流程啦职位分工啦绩效考核啦之类的bullshit吧,如果你用“客户买单”这样的外在成就来作为大多数事情的验收测试,你会把工作这件事看得清晰得多。结论二:好的程序员干别的事都比较有希望,因为我们会测试驱动。(潜台词:糟糕的程序员能转成好的项目经理这回事怎么听怎么不靠谱⋯⋯)

原文转自thoughtworks员工gigix:
[url]http://gigix.thoughtworkers.org/2012/5/8/result-oriented-and-test-driven[/url]

结果导向和测试驱动(转)相关推荐

  1. Visual Studio 2010 Ultimate敏捷测试驱动开发

    在微软Visual Studio 2010 Ultimate Beta2版本中,MSF for Agile Software Development 5.0过程框架,是以Scrum模型为基础导向扩展, ...

  2. 测试驱动开发 测试前移_测试驱动的开发可能看起来是工作的两倍-但无论如何您都应该这样做...

    测试驱动开发 测试前移 by Navdeep Singh 通过Navdeep Singh 测试驱动的开发可能看起来是工作的两倍-但无论如何您都应该这样做 (Test-driven developmen ...

  3. 在敏捷中应用测试驱动开发

    在敏捷和DevOps领域,企业越来越关注持续集成和持续部署问题.他们更频繁地更新软件,给软件测试造成额外的时间压力.而测试驱动开发可以成为解决这个问题的一剂良方. \\ 什么是测试驱动开发? \\ 测 ...

  4. TDD测试驱动开发过程

    TDD测试驱动开发过程具有4 个基本步骤: 1)编写测试 2)核对和确认测试 3)编写产品代码,接着测试 4)重构产品代码. 其中一个例子可为,用户必须记录产品的生存期值.一项完善的测试需要确保用户数 ...

  5. 测试驱动开发 测试前移_测试驱动陷阱,第2部分

    测试驱动开发 测试前移 单元测试中单元的故事 在本文的上半部分 ,您可能会看到一些不好但很受欢迎的测试示例. 但是我不是一个专业的批评家(也被称为"巨魔"或"仇恨者&qu ...

  6. 测试驱动陷阱,第2部分

    单元测试中单元的故事 在本文的上半部分 ,您可能会看到一些不好但很流行的测试示例. 但是我不是一个专业评论家(也被称为"巨魔"或"仇恨者"),没有任何建设性的话 ...

  7. 测试驱动开发 测试前移_测试驱动开发:它是什么,什么不是。

    测试驱动开发 测试前移 by Andrea Koutifaris 由Andrea Koutifaris Test driven development has become popular over ...

  8. python可以开发驱动吗_Python机器学习实践:测试驱动的开发方法

    Python机器学习实践:测试驱动的开发方法 作者:(美)马修·柯克(Matthew Kirk) 著 出版日期:2017年10月 文件大小:30.91M 支持设备: ¥40.00在线试读 适用客户端: ...

  9. 【软件测试】测试驱动开发

    TDD,测试驱动开发,从敏捷软件开发方法开始流行,是一种非常实用的质量保证执行方式.敏捷软件开发方法使得TDD流行起来. TDD的思想就是要在开发(设计和编码)应用程序代码(要测试的单元)之前,必须先 ...

最新文章

  1. python消费kafka逻辑处理导致cpu升高_请教:Python模块KafkaConsumer会被Kerberos的状态影响嘛?...
  2. php破坏代码,php不破坏单词截取子字符串
  3. 创意美食海报,悬浮跳动食材,视觉刺激大脑(PSD分层模板)
  4. 同步助手iphone4_88 元淘来的 iPhone 4 降级到 iOS 6,甚至还能跑 “大型游戏”
  5. VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转
  6. MySQL FAQs (持续更新中)
  7. 通过重新训练语音识别来改善iPhone上的嘿Siri | MOS86
  8. 基于SSM实现后勤报修系统
  9. fastdfs fild_id
  10. 如何在python中输入复杂的数学公式_如何快速输入复杂的数学公式?这里有 3 个实用技巧...
  11. centos7 配置samba共享服务
  12. 【VUE2开发20221004】-day1.1
  13. 使用pdf.js把PDF文件转图片
  14. k折(k-fold)交叉验证
  15. Python——LeetCode刷题——【387. 字符串中的第一个唯一字符】
  16. 柏力纪德:成功对接类目小二的关键是什么
  17. ANSYS Fluent 压力基求解方法
  18. 狂吃不胖11种食物化解油腻
  19. 这些10款优秀的交互设计软件,你知道吗?
  20. 继电器是如何成为CPU的

热门文章

  1. PAT 数组元素循环右移问题(转自柳神)
  2. 查看计算机bios版本,Win10系统下查看电脑主板BIOS版本的方法
  3. python格式jpg转换png(批量处理,深度24,尺寸不变)
  4. linux mailxdingding机器人报警
  5. stp实验心得_STP 实验
  6. PostgreSQL 14 版本发布,快来看看有哪些新特性!
  7. Xcode14 正式版编译报错‘ does not contain bitcode.解决方案
  8. java形参和实参的三种传递方式(值传递,地址传递,引用传递)
  9. ar8171 linux网卡驱动,ar8171 8175网卡驱动(ar8171网卡驱动下载)V1.0.1 官方最新版
  10. Opencv Mat记录