(查看原文:
http://gigix.thoughtworkers.org/2007/11/13/improving-agile-in-product-designing)
InfoQ的一篇题为“
敏捷遭遇实效营销”的新闻指出:敏捷方法不是产品开发中的银弹。当然我们早就知道
没有银弹,但仍然有必要强调一遍,尤其是在这个敏捷方法在中国逐渐开始热门的时候。
有一件事是可以肯定的,即敏捷方法并不能解决业务中的根本性问题,尤其是当业务本身不能决定如何做,或无法决定优先级时,敏捷方法根本帮不上忙。
几乎同时,JavaEye出了一个题为“XP or not” 的帖子,提出了几乎同样的观点。这位作者说“XP isn't suitable for every type of software development, it has its own suitable area”,显然这是毋庸置疑的事实,我们甚至用不着为此进行讨论。我们应该做的是,找出敏捷方法(具体说,XP)为什么和如何不适合产品开发,并且找出改进的方向。正如我在InfoQ那篇新闻下面回复的,
对于产品研发,只有敏捷是不足够的。敏捷能做出你想要的,但没办法保证做出好的或者正确的或者受欢迎的。而且作为从内部IT项目衍生而来的敏捷方法,它本身有一种趋势:把功能做到能用而非完美。对于内部IT项目,这很好,两个能用的功能往往能提供比一个完美的功能多得多的价值;但对于面向公共用户的产品,你麻烦了,因为不完美的功能很可能根本就没人用。
王晓明显然经过和我在飞机上的讨论有了很多想法,并且这些想法看起来相当靠谱。问题的根源就在于:面对企业内部用户和面对公众用户,概念完整性的估价(priority)是完全不同的;同样,还有可用性——千万不要误会,我并不是打算说敏捷项目一定忽视概念完整性或者可用性。只是很多敏捷团队的经验来自类似C3项目这样的企业内部IT项目,他们的经验蒙蔽了他们的双眼,让他们看不到各种软件特性估价的变化。这个问题是比较容易解决的,只要意识到不够好用的功能将没有人用因此无法创造任何价值,他们就会重新调整自己对于各种软件特性的估价,因为敏捷的核心就在于价值驱动。
不那么容易解决的问题是方法和工具的欠缺。这也就是为什么我说“只有敏捷是不足够的”。譬如说为了提高可用性我们就需要交互设计。还有很多类似这样的、适用于产品开发的方法和工具,它们从不同角度影响软件特性。敏捷能做出你想要的,但如果只有敏捷而缺乏这些方法和工具,很可能你永远不知道自己究竟想要什么。然而更严重的问题是看待这些方法和工具的态度,
交互设计是改进的办法之一。但很多敏捷的组织对此认识并不充分,他们只是在项目进行中让交互设计师来做一 次评估和设计。这是不足够的,就好像在软件项目的交付之前才进行QA工作是不足够的一样。质量来自整个流程,同样好的交互设计也来自整个流程。
敏捷团队都充分地意识到,质量保证必须贯穿整个流程进行,这是敏捷方法带来更高软件质量的根本原因所在——测试驱动和持续集成当然是很好的实践,但这些实 践能够得以工作,是因为我们在流程层面对质量的重视。而对于概念完整性、可用性和其他软件特性,我们有类似这样的流程层面的重视吗?正如我在InfoQ的 回复里说的,有了敏捷方法,还要有一套全流程的产品设计方法支持,才可能做出好的产品。这就是我们要去学习和探索的方向。
分享到:
相关推荐
5. **迭代与增量开发**:敏捷开发通过一系列短小的迭代周期,每次迭代都产生一个可交付的产品增量。这允许团队在早期获得反馈,及时调整方向,避免在后期发现重大问题。 6. **风险管理**:敏捷方法鼓励识别和管理...
《敏捷软件开发:原则、模式与实践(C#版)》是一本深入探讨敏捷开发方法在C#编程语言中的应用的书籍。这本书旨在帮助开发者理解并掌握敏捷开发的核心理念,同时提供具体的C#代码示例,使理论与实践相结合。 1. ...
敏捷软件开发是现代软件工程领域的一项重要实践,它倡导快速迭代、持续集成和...通过将敏捷原则、模式与实践结合起来,可以有效提升软件开发的效率和质量,使开发团队能够更快地响应市场变化,最终实现产品的成功交付。
4. 用户故事与计划游戏:敏捷开发中的用户故事是从用户角度描述需求的一种方式,它们是产品待办事项列表的基本单元。计划游戏中,团队成员一起估算用户故事的工作量,制定迭代计划。 5. 持续集成:为了保持代码的...
《敏捷软件开发:原则、模式与实践》是Robert C. Martin(简称Uncle Bob)的一部经典著作,这本书深入探讨了敏捷开发的理念、方法和工具,尤其针对C#编程语言进行了详细阐述。作为一本实践导向的技术书籍,它旨在...
敏捷软件测试是一种与敏捷开发紧密结合的测试方法,强调在整个软件开发周期内持续进行测试活动,旨在通过频繁反馈循环提高产品质量并加快交付速度。相比传统的瀑布式测试模型,敏捷测试更加注重灵活性、协作性和响应...
总的来说,《敏捷软件开发:原则、模式与实践》是一本全面介绍敏捷开发的指南,对于希望在软件开发中实现高效、灵活和高质量的团队和个人来说,是一本不可或缺的参考书。通过深入学习和应用书中的原则、模式和实践,...
6. **反馈循环**:敏捷开发重视客户和利益相关者的反馈,通过频繁交付可工作的软件,可以快速获取反馈并调整方向。 7. **持续改进(Kaizen)**:精益与敏捷都提倡持续改进。团队定期反思其过程,识别并消除浪费,...
源自2001年发布的“敏捷宣言”,敏捷开发的核心理念是人与交互优于过程与工具,可工作的软件优于详尽的文档,客户合作优于合同谈判,响应变化优于遵循计划。 **敏捷开发的价值观和原则** 1. **个体和互动**:在...
敏捷开发团队中包含多种角色,如产品负责人(Product Owner),负责定义和优先级排序需求;开发团队,负责实现功能并确保代码质量;Scrum Master,协调团队,确保遵循敏捷原则和实践;还有利益相关者(Stakeholders...
### 敏捷软件开发与测试过程 #### 一、引言 随着信息技术的快速发展,软件开发领域面临着越来越多的挑战,包括需求变化频繁、项目周期缩短等。为了应对这些挑战,敏捷开发方法应运而生。敏捷开发强调的是快速响应...
《敏捷软件开发:原则、模式与实践》是IT领域中一本经典的著作,它深入探讨了敏捷开发的方法论、核心原则以及在实际项目中的应用模式。这本书对于理解和掌握敏捷开发理念,提升软件团队的效率和质量有着重要的指导...
### 敏捷开发中的EFT测试在Windows桌面应用 #### 敏捷开发概述 敏捷开发是一种以人为本、迭代、循序渐进的开发方法论。它强调团队协作、客户合作、响应变化以及尽早交付可用软件的价值观。敏捷开发的核心原则包括...
《敏捷估计与规划》这本书详细介绍了如何在敏捷环境中有效地进行工作量估计和项目规划,为实践敏捷开发的团队提供了宝贵的指导。 一、敏捷开发的核心理念 1. **迭代开发**:敏捷开发主张将大的开发任务分解为多个...
### 敏捷开发背景与意义 文中开头便提到,随着软件系统复杂性的增加和软件工程理论的不断演进,传统的软件开发流程已经难以满足现实中对于项目管理的高效、灵活和质量的需求。其中提及的“软件危机”是指软件开发中...
3. 客户协作优于合同谈判:在敏捷项目中,与客户的紧密合作是至关重要的,以确保产品符合实际需求。 4. 适应变化优于遵循计划:敏捷开发鼓励在开发过程中接受变化,以保持项目的竞争力。 敏捷宣言还包含十二个原则...
- **客户反馈**:随着社交媒体的普及,客户反馈变得更快捷和透明,这使得敏捷方法的重要性更加凸显,能够及时根据客户反馈调整产品方向。 #### 五、敏捷方法与传统方法的关系 - **比较分析**:虽然敏捷方法与传统...