作者:陈勇

出处:blog.csdn.net/cheny_com

所谓生产线,就是大家各司其责,在一个线性的过程中配合工作。生产线尝试借助专业分工来提升效率,但也导致了问题:在传统生产线中,下游获得的中间产品是不太需要理解就可以在其上继续工作的,比如装配了一半的汽车,加工了一半的食品等等。

但在软件开发中就不一样了:人们需要深度理解上游产品,才能继续自己的工作,而这种“深度”最终导致了中间产品的膨胀,而中间产品大多数属于那种“没有它软件造不出来,等软件造出来它也没用了”的那类。另外一个严重问题是:各个产品线互相需要替对方解决问题,比如设计组设计不到位,开发组就要在开发中替其思考设计问题,而开发组质量不到位,测试组就要加班测试帮助其找缺陷。这种代劳而非协助的工作方式起因于分工,而最终会导致各个部门之家推诿打架。

生产岛则截然不同。假想一个人或一小群人失落荒岛,人们本非农民渔夫猎人,但却都有职责完成这些工作,而不能互相推诿。发生问题时主要工作不是弄清楚谁的责任,而是弄清楚如何解决,这样就解决了生产线上的打架问题。敏捷团队就是一个生产岛团队。

由于倡导故事负责制,敏捷开发人员更多地纵向分工,即一个人要跨越需求/设计/编码/测试这些工作。在139团队(另有博文描述)和“松结对编程”(另有博文描述,尚未写)中我们曾经提到过,为了解决并非每个人都能胜任需求/设计工作的问题,我们会安排类似1+3的松结对模式,即由一个高手带领三个新手结为一组完成一组工作,前者除了自己承担开发任务外,还以共同参与的方式帮助后者完成需求/设计工作。

那么类似测试这种人人都能胜任但却没人愿意干的活动怎么办呢?那就是以前曾写博文提到的敏捷测试。在“持续集成/自动测试”中,发现缺陷的不是测试人员而是提交代码的开发人员,这就把测试人员替别人发现缺陷变为帮别人发现缺陷。更进一步,如果开发人员自己开发测试程序(至少是可回归的功能测试程序),那么开发人员就在自己帮助自己了。如果有一天缺陷缠身,需要反省和行动的是整个开发团队,而不是测试团队指责缺陷太多,而开发团队指责设计不明确。

点击下载免费的敏捷开发教材:《火星人敏捷开发手册》

转载于:https://www.cnblogs.com/JPAORM/archive/2011/04/02/2510523.html

从生产线到生产岛:理解敏捷开发中的设计与测试活动相关推荐

  1. 浅谈敏捷开发中的设计

    敏捷开发在当今业界已经大行其道,想要快速交付,采用敏捷开发方法似乎是最好的方式,是否必须要用这就另当别论了.敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发,不过,想要真正做到快速 ...

  2. 独立测试团队在敏捷开发中的几个特别实践

    [原文发表在https://hespr.blogspot.jp/2009/03/blog-post.html 写在2009年3月 最近发现被人盗版了多处, 重新发布在CSDN] 最近读了<我和敏 ...

  3. BS和CS架构,软件开发的瀑布模型,快速原型模型、螺旋模型、敏捷开发、软件测试分类,测试的分类和理解

    1.BS和CS架构 1.1  BS:浏览器与服务器结构 优点:客户端无需安装,有web浏览器即可 缺点:在速度和安全性上需要花费巨大的设计成本 1.2  CS:客户机与服务器结构 优点:CS架构的页面 ...

  4. [转]敏捷开发之Scrum扫盲,及敏捷开发中XP与SCRUM的区别

    敏捷开发之Scrum扫盲篇 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP- 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自 ...

  5. 敏捷开发中的可用性测试

    陈 序明, 资深研发工程师及售前工程师, IBM 王 建芳, 资深软件测试工程师, IBM 李 雨恭, 软件工程师, IBM 简介: 近年来有两个词语在软件行业迅速"走红",一个是 ...

  6. [敏捷开发培训] 什么是敏捷开发中的Spike?

    什么是敏捷开发中的Spike? Spike,如果需要翻译的话,中文可以翻译成"探针",但是一般不会翻译而直接使用Spike这个词. Spike可以理解为:以回答问题或收集信息为目的 ...

  7. 敏捷开发之Scrum扫盲,及敏捷开发中XP与SCRUM的区别

    敏捷开发之Scrum扫盲篇 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP- 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自 ...

  8. 敏捷开发中的Code Review

    敏捷开发中的Code Review 一些敏捷团队在实施敏捷开发中忙于编码.忙于Unit Test.忙于沟通.忙于Build等,虽然也有编码审核阶段,但大都浮于表面,流于形式,效果不佳.本文结合实践,介 ...

  9. [转]敏捷开发中编写高质量Java代码

    本文转自:http://dev.yesky.com/103/11164603.shtml 敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的 ...

最新文章

  1. Android中用Application类实现全局变量
  2. [转帖]高档的moss页面修改工具SPCAMLEditor使用系列(1)--利用SPCAMLEditor,10分钟打造一个在线视频播放库...
  3. 选择主键:自然键还是代理键?
  4. 大粤桂谋定发展-丰收节交易会·林裕豪:从玉农业协作项目
  5. 【项目管理】各种常用工具图表说明和示例
  6. 别再用假任务做小样本学习实验了!来试试这个全新基准数据集
  7. 图像灰度变换及图像数组操作
  8. C#实现像微信PC版一样的扫码登录功能
  9. OSI参考模型和TCP/IP参考模型
  10. 全栈路线_程序员该走全栈路线还是深度专家路线?
  11. Java-HibernateValidation校验bean
  12. pycharm输入不了代码_最易懂的Python新手教程:从基础语法到代码详解
  13. malloc和new的区别和联系
  14. (转)DirectoryEntry的使用
  15. js传递参数时类型错误
  16. qlib里alpha158因子库的计算与缓存
  17. 马尔可夫毯/马尔科夫链/因果图/贝叶斯网络
  18. Offset commit failed with a retriable exception. You should retry committing the latest consumed off
  19. jzxx2600野猫过生日
  20. 带弧CAD和GDB数据导入ARCSDE后面积一致性问题

热门文章

  1. Springmvc+mybaits 分页处理+ajax翻页
  2. jq 中each的用法 (share)
  3. Android 自定义ListView控件,滑动删除
  4. 《编程能力基础》刷题笔记(41 题)
  5. VMvare 桥接模式无法联网、没有未桥接的主机网络适配器,无法将网络更改为桥接状态。
  6. 小程序入门学习18--springboot环境配置02
  7. 【网络安全工程师面试合集】— 网络攻防技术演化历程
  8. Mysql修改数据库密码的几种方法
  9. 5个让IT开发效率提高200%的工具,最后一个很实用,你用过几个
  10. 关于自然排序Comparable 和 比较器排序Comparator