小团队的敏捷开发-第七章
问题一 水晶项目管理体系的基础是什么?
最先的也是最好的基础是依靠经验得来的。
第二个基础是一套源自以社会人类学家的角度对软件项目的观察以及通过阅读人类交流以及流程设计的文献
所总结出来的原则。有以下这些原则:
1.不同的项目需要采用不同的方法体系协定,这一点非常明显。
2.较大型的团队需要更多的交流元素。团队规模是区别不同水晶家族成员的关键。
3.而开展潜伏着更大风险的项目则需要更多的确认元素。
4.一套小型的方法体系能够发挥很大的作用。内容过于繁重则付出的代价更多。
5.形式、流程和文件并不是用来取代原则、技巧和理解的。
6.互动的、面对面的交流是最廉价也是最快捷的信息交流渠道。
7.不断增加的反馈以及减少了对中间交付产品的需求。许多的方法体系包含了很多我称为“期票”的事物。这是 一些承诺团队将开发这个或那个项目,且这个或那个项目将在某某时间开发或像这个或那个一样的文件。
8.并行开发和连续开发用开发成本换取速度及灵活性。这一原则指的是恰当执行的并行开发能够加速项目的整个开发流程,但与正确执行的连续开发相比,并行开发的成本更高。
9.在无瓶颈活动中可以牺牲效率。每个流程都有一个“瓶颈点”,在这一点上整个企业的开发速度都会受到抑制。
10.“最佳点”可提高开发速度。而最好是要拥有:(1)专注的,(2)富有经验的成员,(3)坐在可听到对方讲话的范围之内,(4)使用自动回归测试,(5)与用户建立方便的联系,(6)每月或每两个月一次交付可运行的、已测试的系统给用户
问题二 什么是水晶家族?
水晶体系是一系列基于同一遗传代码的方法体系之集合,它可接受不同的家族成员为不同的环境而生。所有的家族成员都共同分享着家族的共性。遗传代码由以下方面组成:
* 前文所述之经济合作竞赛模型
* 用以做出决定的一套优先项目和原则
* 用于引导项目的一系列精选体系特征
* 取样(试用)策略和方法
* 用于模仿的取样实例
三个优先项目分别是:项目的安全、开发效率和形成惯例的可居性
问题三 这是一种什么样的方法体系描述?
我认识到一个方法体系只不过是一套团队同意采用的惯例!这些惯例会不断改变,因此团队成员们自然必须定期集合到一块对他们的工作惯例进行检查,即反思研讨会。
问题四 水晶项目管理体系的概要表是怎样的?
项目规模 最多6个或可能是8个开发者做搭档。经过精心搭配,可以由12个人组成。这个人数已经够了,团队过大会失去协调能力
系统潜在 在货品计价系统内舒适度的减少或可任意支配资金的减少。可以通过附加的测试、验证和论证规则,形成“必要性”资金。但不适用于“生命攸关”型系统,因为其缺少正确性的验证。
危害 系统类型 主框架、委托服务、以网站为基础、使用任何一种数据库、集中型或是分布型。
价值 加强交流,减少交付内容的“重量”。短暂、丰富、非正式的交流途径,包括与主办和用户社区的交流。产品要经常的交付和流程反馈。经费开支和中间工作产品的减少。要能容忍人们工作的不同风格。
容忍 如果没有等价代替物的话,政策标准是强制性的。例如,用Scrum或是极限编程技术对项目制定计划或搭平台是可以接受的;用TSP项目登录或重新登录的技术是可以接受的。
精确度 最初为低精确度,只有在交付人工制品时才需要高精度。
问题五 为什么要有不同的篇章形式?
关于方法体系的书大致都是写一套规则,告诉读者去做什么。本书不采用那种形式主要有以下几个原因:
第一水晶项目管理体系不是一套告诉你如何编写软件的属性、条件、规约,以及经常使用的能将某一级别的项目安全带回家的技术
之指导建议。来自不同背景的读者想在这本书里寻求的东西也不一样。
问题六 水晶项目管理体系处于方法体系万神殿的哪个位置?
水晶项目管理体系和XP: 它们有很多地方相似,不同点是XP在很多地方要比水晶项目管理体系严谨,松散的地方相对要少。
水晶项目管理体系和Scrum:Scrum和水晶体系非常匹配,能产生一位智者称为“没有流程的流程”其意思是,无论从什么地方开始,在短周期内保持高度的交流和反思性的反馈,最终你会得到所需要的东西。
水晶项目管理体系和RUP: RUP和水晶体系都是“方法体系生成者”它本身既不是方法体系也不是流程。两者都认为一种流程并不适合用于所有项目,所以团队必须调整方法体系以符合自身的实际情况。两者的区别在于三个核心成分不同,RUP将架构、视觉模型和工具使用作为核心成分。水晶体系将设计风格视为每个具体团队的事情。
问题七 CMM怎么样?
水晶项目管理体系并不是为了满足CMM的要求而设计出来的,且很难看到它提升自己的流程。尽管同权威CMM审核专家所习惯的方式不一样,但是水晶项目管理体系确实有提过一些在CMM中同样提倡的活动。然而,水晶项目管理体系的重点上放在项目上,而CMM的重点则是在机构上。
问题八 什么是UML,什么是结构?
统一模板语言是绘制的符号标准,而不是方法体系。根据一套标准的方法体系框架(角色、技术、标准、里程碑等等),UML是一个或两个角色的标准之一。它是方法体系的一个组成部分,不会对项目的结果有很大的影响。
水晶项目管理体系项目的特别方法是使用“灵活程序框架”和“增量重建”策略。UML或许有或许没有被用于对这个早期结构进行全面思考并把结果记录下来。
问题九 为什么目的只为安全区域?难道我们就不能做的更好?
方法体系中的水晶家族并不是为了使每个可能的项目选择最优化,它对生产力、追溯力、合法度、错误自由度、懒散与分布式的团队、最大限度地发挥初级员工的作用或其他优先选择就没有要求最大化。
问题十 分布式的团队怎么样?
团员分布在不同城市的团队更加需要依靠沟通技巧以及出色的成员来获取成功,他们获取参观的方法、很多,但是这些方法却都不在水晶项目管理体系所述范围内。
问题十一 教大型的团队又怎样?
水晶项目管理体系不打算扩大它的适用范围。当你能实现共同工作以及渗透式交流时,它就是一个有效的工作方法。但如果你不能达到最佳点,那么你就必须以不同的方法来展开工作。
问题十二 固定价格以及固定氛围的项目怎样?
现在有一种人们认为敏捷流程只适用于探测性项目的趋势。但是这显然是不正确的。我所有早期的试验都是在固定范围的项目中完成的我开始使用这些方法,只是因为当时已经没有其他方法可以让我们在最终期限之前超高效率地完成工作。在几乎所有的小型项目中,你都应能使用这些方法或调整这些方法。
问题十三 我该如何评价我们究竟有多“敏捷”或有多“水晶”?
敏捷开发的拥护者最害怕的就是被问到如何估量一个项目团队有多“敏捷”的问题。但是项目经理总是希望能够了解团队如何吸收水晶管理体系的元素。需要根据具体的项目来进行判断,我们可以做一个图表来预测。