我不懂scrum。最近浏览JavaEye的帖子,越来越多的scrum字眼撞入了眼球,于是开始关注它、学习它。《Scrum敏捷项目管理》由Scrum的缔造者Ken Schwaber撰写,算是Scrum相关的一本经典作品。书中确实总结了一些有效的敏捷方法,但阅读过程中也有一些疑惑。标题中提到的这个观点是我遇到的其中一个。
在该书中文版第109页中写到:
引用
我与(Service1st团队的)哈尔及经理们探讨优化团队绩效的最重要因素。……我还建议取消开发过程中仅支持瀑布式方法的人工因素,比如设计文档等。Scrum依赖高密度、面对面的交流和团队合作;……
看到这里,我吃了一惊。取消设计文档?真的要颠覆传统吗?我知道开放的、面对面的交流很重要:大家能够从不同的角度评价问题,有利于全面地权衡解决方案的优劣;同时集中式讨论有助于迅速地发现问题,集体的智慧也提供了更快找到解决方案、找到更优解决方案的可能。但是,仅仅通过面对面的交流就够了吗?我有几点疑惑:
一、以这样的方式得到的解决方案肯定就是最优的方案吗?
二、解决方案肯定不会存在漏洞了吗?
三、解决方案在未来不可能扩展或改变吗?
四、过了一段时间后,大家仍能清晰地记得当初的解决方案吗?
如果以上疑惑中至少有一个是问题,我们该如何解决呢?把面对面的交流成果以书面的方式保存下来(比如写成设计文档),我们不用担心遗忘,我们可以冷静地重新审视方案,每位参与交流的成员都有机会知道自己的理解与团队的理解(在文档中反映)是否一致。如果不这样,我们得用什么方式来应对这些可能的问题呢?这些方式的代价会(比以书面的方式保存下来)低一些吗?
我知道一些朋友会提到一个观点:好的代码就是文档,或者类似的说法。但是代码不能代替文档,因为:一、与文档相比,代码与人类的普通逻辑思维差异甚大。二、因为第一点,代码只适合程序员阅读,而文档的适应范围更广。三、代码通常是散布的(比如一项使用Java开发的Web应用解决方案就可能涉及到数据库、用Java编写的组件及页面),而文档可以把这些内容组织为一个便于理解的整体。
或许还有朋友会提到:文档很难维护,容易过时,特别是设计文档。没错!代码最终是要转换成可运行的程序,并在交付给客户之前进行测试和验证。如果发现问题,代码必须修正。在这种外在的动力下,代码最终会与产品目标达到一致。但文档(特别是不需要交付给客户的文档,其中最特别的是主要由程序员使用的设计文档),在没有外在动力的情况下很可能不被维护而迅速过时、失效。在一次性的项目中(我的意思是指项目的产品仅用于某个特定的客户,后期的维护时间很短或维护内容不太复杂,团队也不需要在该项目的开发过程中积累更多的知识),文档失效可能并不是最突出的问题。此外,我个人有种感觉:找到代码写得很烂的程序员很容易,但找到文档写得很烂的程序员更容易!这或许得部分归咎于我们的教育吧?不管怎样,我始终认为文档的问题是一个管理上的问题,文档本身没有错。团队要生产好的代码,也要生产好的文档。
这两天在Scrum Alliance的网站上看到一篇访谈:Scrum Meets Waterfall - An Interview with Mike Cohn (
http://www.scrumalliance.org/articles/93-scrum-meets-waterfall)。Mike是Scrum Alliance的奠基人之一。在文中Mike提到:
引用
There are a lot of myths in agile about things like, you know, “documentation is horrible.” Documentation is not horrible, right? The Agile Manifesto says we value working software over comprehensive documentation. It doesn’t say get rid of all documentation. And a lot of agilists are opposed to Gantt charts and things like that. Those are mistakes. Gantt charts are wonderful communication tools. So I don’t go in and want to try to change how a, how a company looks at things.
看到这里,我想,这可以理解为对书中的那段话的一个修正吧。或许对于那句话我应该理解为,作者只是想在Service1st这个团队中取消设计文档?
分享到:
相关推荐
在道路工程的线路设计阶段,GPS-RTK技术可以快速准确地对地形地貌进行测量,为设计人员提供详尽的地理信息,辅助他们进行更为科学合理的线路规划。在线路放样阶段,它又能实时提供精确的三维坐标,使得施工人员能够...
小议网络工程的设计与建设.pdf
小议我国的价格听证制度-论文.zip
Struts 1是一款经典的Java Web框架,它在2000年代初期被广泛使用,为MVC(模型-视图-控制器)设计模式在Java Web应用中的实现奠定了基础。随着时间的推移,虽然Struts 2和其他现代框架如Spring MVC、Play Framework...
### iOS内存管理核心知识点 #### 一、前言与背景 在探讨iOS内存管理之前,有必要理解为何这一主题如此重要。对于从C++或Java转向Objective-C(简称OC)的开发者来说,OC语言的特性显得既独特又挑战性十足。...
小议算机平面美术设计教学法.doc
小议机械设计中的CAD技术.pdf
小议排水设计在高速公路的应用.doc
【小议手工艺风格建筑设计】 手工艺风格在建筑设计中是一种独特的表达方式,它注重传统与现代的融合,体现出尊贵典雅且时尚的气息。这种风格不仅仅体现在建筑的细部装饰上,更深入到整体的规划设计之中,营造出一种...
企业应鼓励知识的分享和传承,通过内部培训和文档系统记录员工的经验和学习成果,形成企业内部的知识库。即使在员工离职后,这些知识仍能为公司提供持续的价值。 此外,培训与企业文化的建设相辅相成。一个积极的...
小议企业网络交易的税收问题-小规模企业税收问题.docx
小议机械设计自动化设备的安全控制管理.pdf
【网页视觉设计概述】 网页视觉设计是一门融合了艺术、技术与用户体验的学科,随着互联网的普及和发展,它已经成为网页设计的关键环节。网页作为信息传播的主要载体,其视觉设计不仅影响用户的第一印象,还直接决定...
小议外汇期权会计在新规则中应用 本文主要探讨了小议外汇期权会计在新规则中的应用,涉及到外汇期权的概念、分类、确认、计量和披露等方面的知识点。 一、外汇期权的概念 外汇期权是一种金融衍生工具,允许持有人...
小议经济型酒店消费者心理及消费方向.doc
本文将对湿地公园景观设计的几个重要方面进行小议,以期为未来的湿地公园建设提供一些参考和借鉴。 首先,湿地公园景观设计应着重展现其独特的自然景观特征。湿地公园通常以水面为主体,陆地为辅助,形成鲜明的水陆...
工业设计中的情感化设计是一种将人类情感和心理需求融入产品设计过程的方法,旨在创造与用户建立深厚情感联系的物品。这种设计理念强调以人为本,注重产品在功能之外所传递的情感价值,以此提升用户体验和满意度。 ...
基于信息化手段的设计说明教学小议.docx