敏捷软件开发:以客户为中心的实践之道
在软件开发领域,如何满足客户需求、确保项目成功一直是核心议题。本文将深入探讨软件开发中以客户为导向的重要原则和实践方法,帮助开发者更好地与客户合作,交付有价值的软件产品。
专注客户故事编写代码
开发者应避免编写与当前正在处理的客户故事无关的代码。这是一种主动选择,旨在避免陷入不必要的困境。像 Kent [Beck] 也有类似做法,不过他更多是出于习惯。问题的关键在于开发者害怕什么,正如 Kent 所说,所有方法论都基于恐惧。有些开发者非常害怕无法让客户满意,而对技术困境的担忧较少;另一些开发者则可能更担心技术上陷入困境,比如团队重构能力不足时,他们会做出不同的权衡。
在项目中,很多开发者会自作主张地为客户添加一些他们认为未来可能需要的“东西”,这往往导致大量资金的浪费。实际上,集成决策虽然看似是技术决策,但它本质上是一个特性,应该由客户需求驱动。如果客户坚持快速且“粗糙”(这里的“粗糙”指缺乏集成,而非存在缺陷)的方案,在指出长期负面影响后,开发者应尊重客户的选择。最终,客户需要对功能和特性做出决策,开发团队的职责是提供决策建议,而非替客户做决定。
例如,Sam 曾试图说服一家高科技公司使用焦点小组来更好地了解客户需求。公司创始人认为自己非常了解客户需求,列出了产品的技术特性;然而,公司总裁却认为公司并不清楚客户是谁以及客户购买产品的原因。这充分说明倾听客户声音是产品开发中最困难的任务。
构建共同责任的合作关系、让客户控制功能和优先级、花足够时间沟通以了解业务流程和客户实际问题,这些是敏捷开发的关键。在 HAHT 公司,实施焦点小组花费了 Sam Bayer 大量精力。找到客户的真实需求并非易事,选择合
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



