从生产线到生产岛:理解敏捷开发中的设计与测试活动
作者:陈勇
出处:blog.csdn.net/cheny_com
所谓生产线,就是大家各司其责,在一个线性的过程中配合工作。生产线尝试借助专业分工来提升效率,但也导致了问题:在传统生产线中,下游获得的中间产品是不太需要理解就可以在其上继续工作的,比如装配了一半的汽车,加工了一半的食品等等。
但在软件开发中就不一样了:人们需要深度理解上游产品,才能继续自己的工作,而这种“深度”最终导致了中间产品的膨胀,而中间产品大多数属于那种“没有它软件造不出来,等软件造出来它也没用了”的那类。另外一个严重问题是:各个产品线互相需要替对方解决问题,比如设计组设计不到位,开发组就要在开发中替其思考设计问题,而开发组质量不到位,测试组就要加班测试帮助其找缺陷。这种代劳而非协助的工作方式起因于分工,而最终会导致各个部门之家推诿打架。
生产岛则截然不同。假想一个人或一小群人失落荒岛,人们本非农民渔夫猎人,但却都有职责完成这些工作,而不能互相推诿。发生问题时主要工作不是弄清楚谁的责任,而是弄清楚如何解决,这样就解决了生产线上的打架问题。敏捷团队就是一个生产岛团队。
由于倡导故事负责制,敏捷开发人员更多地纵向分工,即一个人要跨越需求/设计/编码/测试这些工作。在139团队(另有博文描述)和“松结对编程”(另有博文描述,尚未写)中我们曾经提到过,为了解决并非每个人都能胜任需求/设计工作的问题,我们会安排类似1+3的松结对模式,即由一个高手带领三个新手结为一组完成一组工作,前者除了自己承担开发任务外,还以共同参与的方式帮助后者完成需求/设计工作。
那么类似测试这种人人都能胜任但却没人愿意干的活动怎么办呢?那就是以前曾写博文提到的敏捷测试。在“持续集成/自动测试”中,发现缺陷的不是测试人员而是提交代码的开发人员,这就把测试人员替别人发现缺陷变为帮别人发现缺陷。更进一步,如果开发人员自己开发测试程序(至少是可回归的功能测试程序),那么开发人员就在自己帮助自己了。如果有一天缺陷缠身,需要反省和行动的是整个开发团队,而不是测试团队指责缺陷太多,而开发团队指责设计不明确。
点击下载免费的敏捷开发教材:《火星人敏捷开发手册》
转载于:https://www.cnblogs.com/JPAORM/archive/2011/04/02/2510523.html
从生产线到生产岛:理解敏捷开发中的设计与测试活动相关推荐
- 浅谈敏捷开发中的设计
敏捷开发在当今业界已经大行其道,想要快速交付,采用敏捷开发方法似乎是最好的方式,是否必须要用这就另当别论了.敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发,不过,想要真正做到快速 ...
- 独立测试团队在敏捷开发中的几个特别实践
[原文发表在https://hespr.blogspot.jp/2009/03/blog-post.html 写在2009年3月 最近发现被人盗版了多处, 重新发布在CSDN] 最近读了<我和敏 ...
- BS和CS架构,软件开发的瀑布模型,快速原型模型、螺旋模型、敏捷开发、软件测试分类,测试的分类和理解
1.BS和CS架构 1.1 BS:浏览器与服务器结构 优点:客户端无需安装,有web浏览器即可 缺点:在速度和安全性上需要花费巨大的设计成本 1.2 CS:客户机与服务器结构 优点:CS架构的页面 ...
- [转]敏捷开发之Scrum扫盲,及敏捷开发中XP与SCRUM的区别
敏捷开发之Scrum扫盲篇 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP- 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自 ...
- 敏捷开发中的可用性测试
陈 序明, 资深研发工程师及售前工程师, IBM 王 建芳, 资深软件测试工程师, IBM 李 雨恭, 软件工程师, IBM 简介: 近年来有两个词语在软件行业迅速"走红",一个是 ...
- [敏捷开发培训] 什么是敏捷开发中的Spike?
什么是敏捷开发中的Spike? Spike,如果需要翻译的话,中文可以翻译成"探针",但是一般不会翻译而直接使用Spike这个词. Spike可以理解为:以回答问题或收集信息为目的 ...
- 敏捷开发之Scrum扫盲,及敏捷开发中XP与SCRUM的区别
敏捷开发之Scrum扫盲篇 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP- 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自 ...
- 敏捷开发中的Code Review
敏捷开发中的Code Review 一些敏捷团队在实施敏捷开发中忙于编码.忙于Unit Test.忙于沟通.忙于Build等,虽然也有编码审核阶段,但大都浮于表面,流于形式,效果不佳.本文结合实践,介 ...
- [转]敏捷开发中编写高质量Java代码
本文转自:http://dev.yesky.com/103/11164603.shtml 敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的 ...
最新文章
- Android中用Application类实现全局变量
- [转帖]高档的moss页面修改工具SPCAMLEditor使用系列(1)--利用SPCAMLEditor,10分钟打造一个在线视频播放库...
- 选择主键:自然键还是代理键?
- 大粤桂谋定发展-丰收节交易会·林裕豪:从玉农业协作项目
- 【项目管理】各种常用工具图表说明和示例
- 别再用假任务做小样本学习实验了!来试试这个全新基准数据集
- 图像灰度变换及图像数组操作
- C#实现像微信PC版一样的扫码登录功能
- OSI参考模型和TCP/IP参考模型
- 全栈路线_程序员该走全栈路线还是深度专家路线?
- Java-HibernateValidation校验bean
- pycharm输入不了代码_最易懂的Python新手教程:从基础语法到代码详解
- malloc和new的区别和联系
- (转)DirectoryEntry的使用
- js传递参数时类型错误
- qlib里alpha158因子库的计算与缓存
- 马尔可夫毯/马尔科夫链/因果图/贝叶斯网络
- Offset commit failed with a retriable exception. You should retry committing the latest consumed off
- jzxx2600野猫过生日
- 带弧CAD和GDB数据导入ARCSDE后面积一致性问题