Visual Studio Team Architect团队的敏捷软件开发(第三部分)

在开始之前,首先来回顾一下我们是如何得到在sprint中需要实现的用户故事(User Story)列表的 :首先,团队会根据开发团队在以往sprint的经验中得出的团队开发速度评估,以及对产品待开发事项( Product Backlog)的粗略的成本评估。基于这两个评估,开发团队从产品待开发事项中挑选出一个用户 故事的候选列表,提交给产品利益相关者(Stakeholder)进行讨论。在讨论的过程中,伴随着用户需求 的进一步明确与细化,该列表的优先级可能会有相应的调整。回顾这个过程,不正是敏捷开发过程与传统 瀑布式开发流程最大的不同所在吗?

在上一篇文章中,我介绍了开发流程中团队里的三个核心角色(项目管理,开发,测试)如何协作定 义用户故事。这种协作机制是非常重要的,因为它不但能够使团队中所有的参与人员对产品的设计有一个 统一的认识,同时它还帮助团队在进入编码阶段前就找到产品中一些可能的漏洞。

当然,这种团队内部的沟通协作机制也可以扩展到实现设计以及测试计划阶段。正如我之前提到的那 样,在我看来,敏捷开发并不意味着不需要架构设计和文档。对于任何一个有一定复杂度的项目,尤其是 对于那些开发团队分布在不同地方(就像我们Visual Studio Team Architect团队一样)的项目而言,编 写、评审设计文档对于实现那些复杂的功能是十分关键的。我们团队对此有两种处理方式。一种方式是: 如果功能不是非常复杂,并且各方能很好地理解设计、设计本身不存在重大的不确定因素时,我们就会召 集一个简短的评审会议,负责该功能的开发工程师会准备一些简单的设计文档(比如类图和顺序图),在 会上给团队里的其他人员讲解他/她的整个设计思路。团队成员会一起评审该设计,并且对开发工程师可 能忽视的地方提出意见。测试工程师则可以通过这个过程了解开发工程师的底层实现思路,从而他们能够 在自己的测试计划中添加所需的白盒测试。同时,这个评审的过程也给开发工程师和测试工程师提供了一 个机会,使得他们能够更清楚的划分单元测试、验收测试以及功能测试的范围,从而更好地各司其职。

[注意:这是一个有争议的观点,甚至可作为一个辩论的话题。对此我个人的观点是:多余的测试对于 项目组中珍贵的资源(比如工程团队和机器)来说是一种浪费。我认为既然测试工程师的最终目标是保证 产品的质量,那么为什么他们不能利用开发工程师编写的单元测试作为产品质量验证的一部分呢?]

另一种方式是:当功能非常复杂或者大家对设计内容理解不充分时,我们会尝试针对这个功能做一个 “试探”(Spike)(即构建一个原型系统)并将发现记录下来。我们团队,以及一些经过我的推荐使用 这个实践的团队都发现对于具体的功能实现来说,“试探”无疑是一个非常有用的方法。下面我给大家展 示一下“试探”结果的文档模版:

时间: 2024-10-26 22:34:37

Visual Studio Team Architect团队的敏捷软件开发(第三部分)的相关文章

Visual Studio Team Architect团队的敏捷软件开发(第二部分)

为了延续整个系列的行文思路,我也会涉及一些我们团队计划sprint的方法以及sprint过程中发生的 事情,并穿插着回答你们提出的那些问题. 首先,我想说的是,不存在敏捷无需计划的神话.可是,敏捷开发中的计划的确和传统软件开发中的 计划有着很大区别.正如我在上一篇博文中所说,我们针对利益攸关方(stakeholders)给出的上层需求创 建了带有优先级的产品待开发事项(product backlog).这一带有优先级的任务列表形成了最基本的 sprint计划.在这一过程中,我们一般遵循三阶段的步

Visual Studio Team Architect 团队的敏捷软件开发(第一部分)

在最近几次与客户面对面的交流中,我有幸分享了我们团队如何在日常工作中进行敏捷软件开发.毫 无疑问,这在中国开发人员中是个热门话题,我也想利用博客这个平台与更多的读者进行书面的交流.当 然关于敏捷开发利弊得失的争论有不少,而相关的开发模式也分成了TDD (Test Driven Development), Scrum, XP(eXtreme Programming)等流派.就我个人而言,一个团队是否严格遵循某种既定的敏捷方法并 不重要,但一定得选择并采用一种(或几种)最适合自己开发团队和开发项目的

Visual Studio Team System 2010中的敏捷规划工具

本文以 Visual Studio Team System (VSTS) 2010 的预发布版为基础.所有信息均有可能发生变更. 本文将介绍以下内容: 产品和小版本规划 产品积压工作簿 容量规划和报表 小版本积压工作簿 本文使用了以下技术: VSTS 2010.VSTS Process for Agile Software Development 1.0 "敏捷规划"存在语意矛盾吗?希望您不会这样认为,但在最近于洛杉矶召开的一次专项小组会议中,其中一位与会者指出其组织已从敏捷开发转为采

使用 Visual Studio Team Test 进行单元测试和java中的测试

原文:使用 Visual Studio Team Test 进行单元测试和java中的测试   C#中test测试地 方法一. 1.从NUnit官网(http://www.nunit.org/index.php)下载最新版本NUnit,当前版本为NUnit2.5.8. 2.安装后,在VS2008中新建测试项目StartNUnit 3.右击项目选择属性,在打开的窗口中选择调试.如图: 4.选择启动外部程序,并定位到NUnit的启动程序nunit.exe.如图: 5.在项目中添加NUnit引用,如图

敏捷模型驱动开发(AMDD):攀登敏捷软件开发的关键

Agile Model Driven Development (AMDD): The Key to Scaling Agile Software Development 敏捷模型驱动开发(AMDD):攀登敏捷软件开发的关键   Table of Contents 目录 Overview 概述 Envisioning 展望 Initial agile requirements modeling 初始化敏捷需求建模 Initial agile architecture modeling 初始化敏捷架

敏捷软件开发实践:概括

应朋友之邀,我准备写一组文章关于敏捷软件开发的实践,也帮助广大没有用过Agile的或者只停留在书本内容上的朋友亲临敏捷软件开发这个惊心动魄的历程. 所谓敏捷,书本上有很多的介绍,我也不想重复发明轮子了,反正就我的理解,敏捷的精髓就是面向变化,敏捷这个词语,我最早遇到是出现在玩各种游戏中,所谓的"力量型"英雄,"敏捷型"英雄,比如暗黑的亚马逊,比如魔兽世界的猎人,这种职业往往有很高的闪避,而且可攻可守,或者说三国杀里面最典型的赵云"闪杀杀闪闪,能进能退&qu

Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发

Scrum 求助编辑百科名片:http://baike.baidu.com/view/1528674.htm    敏捷软件开发模型--SCRUM Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发.包括了一系列实践和预定义角色的过程骨架.Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员. 目录 简介 Scrum创始人简介 历史 Scrum的特性 Scrum中的角色 Scrum会议 文档 展开 简介 S

敏捷软件开发宣言及敏捷宣言遵循的原则

http://agilemanifesto.org/ 敏捷软件开发宣言 我们一直在实践中探寻更好的软件开发方法, 身体力行的同时也帮助他人.由此我们建立了如下价值观: 个体和互动 高于 流程和工具 工作的软件 高于 详尽的文档 客户合作 高于 合同谈判 响应变化 高于 遵循计划 也就是说,尽管右项有其价值, 我们更重视左项的价值. 敏捷宣言遵循的原则 我们遵循以下原则: 我们最重要的目标,是通过持续不断地 及早交付有价值的软件使客户满意. 欣然面对需求变化,即使在开发后期也一样. 为了客户的竞争

敏捷软件开发之何为敏捷开发

敏捷开发,Agile Development,就是指能够在需求迅速变化的情况下快速开发软件.我们接触最多敏捷实践方式有:极限编程(XP).结对编程.测试驱动开发(TDD)等. 追究敏捷的历史,就必须要提到著名的敏捷开发宣言,2001年,17位业界专家(其中包括我们非常熟悉的Martin, Martin Fowler)组成了一个敏捷联盟,并且创建了一份敏捷联盟宣言,宣扬了4条核心价值观:     1, Individuals and interactions over processes and