尽管如此,大多数开发人员仍然面临来自非技术客户的需求。有时会有项目经理与客户打交道,并转换他们的需求,而其他时候则不然。无论如何,需求会改变这一事实是不可避免的。
大多数包含“良好编程实践”的内容都与开发适应性强的系统有关,以便它们能够承受不断变化的需求。YAGNI、DRY、松散耦合等原则都有助于这一点。迭代开发过程(如敏捷)也试图解决试图实现移动目标的问题,当然,让系统处于测试中可以使更改变得更加可行。
尽管如此,对于我们中的许多人来说,改变需求不仅可以是损害了我们软件的质量,还可以是耗尽我们的动力,并使我们想要刺伤某人。
这个问题是关于如何管理客户,使他们能够以他们所需要的方式更改他们的需求,同时阻止任意或琐碎的更改。你是怎么做到的?
发布于 2009-01-26 13:36:12
如果你正在寻找一个理想的世界,客户永远不会改变他的想法,或者你得到了理想的规范-,你是在错误的商业。尽管如此,我发现管理客户期望和变更请求的最有效机制是建立一个精确的测量系统。
我就是这样管理我的团队的:
1)我们从用户故事开始。客户参与编写它们,开发团队估计每个用户故事将以相对方式花费多长时间。
2)利用以前的经验,我采用了这些相关的估计(故事点),并为项目的主要里程碑何时完成创建了一个粗略的时间表。
3)在这些里程碑中,我们进行了两周的迭代。客户参与设置审批标准,以及是否已批准该故事。一张简单的刻录图向客户展示了我们离完成发射目标有多近。
4)在审批过程中,客户通常会请求更改,因为功能并没有达到他预期的结果(尽管它符合他最初的批准标准)。此时,您用新的估计生成了一个新的故事。您还可以适当地调整里程碑日期。这就把球放回了顾客球场:
关键不是逃避更改请求,而是确定每个更改请求都会对产品产生影响。没有免费午餐这样的东西。
发布于 2009-01-26 13:18:46
我是合作开发人员,所以直接与客户联系。大多数时候,他们根本不知道自己到底想要什么,这是正常的。因此,我们开始缓慢,我给他们的原型,在早期发挥,然后变化将逐步作出。如果我认为客户想要“轻率”的改变,那么我就告诉他,这种改变不起作用,也不需要改变。如果这是5分钟的工作,那么我甚至可能做它无论如何。
它有助于在以后的合同中添加一些维护条款,以便为那些稍后会出现的小更改提供资金。对于更大的变化,你只需按小时收费。
发布于 2009-01-26 14:47:09
管理客户很难,而且很容易出错。
我发现尽早您需要获得客户的信任。对我来说,我认为你可以这样做:
一旦您这样做了,并且客户信任您,那么您就可以开始反击不合理的更改,或者要求为以前被认为超出范围的事情支付额外的费用/时间。
当然,你不能与每一个客户建立这样的关系,有些人是白痴(在这种情况下,看看你是否可以任命一个不同的产品经理),但是你应该尽你所能建立一种有效的工作关系。
https://stackoverflow.com/questions/479739
复制相似问题