3

你如何应对?

允许客户随心所欲地更改软件是否正常?我在一个没有规范和不断要求更改的环境中工作。

对于每个新客户,我们都必须创建一个新分支并进行如此多的更改,以至于当我完成时,我有一个完全不同的产品。因此,我几乎失去了对编程的兴趣。

所以,我说不应该让客户随意更改软件是不是错了?

英语是我的第二语言,所以请原谅任何错误。

相关:
如何处理不知情的客户选择

4

5 回答 5

2

我说不应该允许客户随意更改软件是错误的吗?

谁拥有该软件?你还是他们?

如果我拥有一所房子,如果我愿意,我可以雇人每周给它涂上不同的颜色。如果画家抱怨,我可以找一个新画家。如果我没钱了,也许是因为我是个白痴。但是画家在粉刷我的房子,拿了我的钱并用它来养家糊口方面没有做错任何事。

如果我拥有某个软件,我可以用它做任何我想做的事情。如果你不这样做,那么我会问别人。

于 2009-05-25T12:30:58.783 回答
2

编辑:我最初错过了您有很多客户并为每个客户定制一个软件的部分。我会留下我原来的答案以供参考,但它并不真正适用于这种特殊情况。

在你的情况下,我建议你需要一种不同的策略来解决客户的问题。我见过使用的一种技术是,任何更改都需要与使产品对所有客户更有用的一致。这意味着您可以对许多更改说“是”。例如,通过模板使 UI 可定制。这将使所有客户受益,但可能是由特定客户希望将外观融入其标准的愿望所驱动的。但这也意味着您需要对某些请求说不,或者以一种对所有人有用的方式对其进行修改。

您可能还希望让您的客户使用诸如UserVoice之类的东西来提出功能(和错误)请求并对其进行投票。这允许您的客户对产品的方向有一些直接的输入,但会强制要求通过所有这些过滤。同样,您不必总是接受评分最高的请求,您可以接受一些评分较低的请求。指导原则应该是让您的产品对最广泛的客户有用。

我认为为每个客户建立一个单独的自定义分支是不切实际的,除非您计划只拥有有限数量的高收入客户。最终,您的版本控制系统将成为您的瓶颈,并且不允许您的公司发展甚至为您当前的客户提供良好的服务。

一旦您进入更可持续的特征选择模式,我的原始答案可能仍然适用。希望这可以帮助。

原来的

我会提前说,有些客户不值得拥有。只有你能知道什么时候是这种情况。

但是,通常情况下,我们的工作是发现客户的实际需求并交付。我建议遵循敏捷开发方法来做到这一点。很少有客户真正预先知道他需要什么。开发人员在开始编写代码之前很少了解客户的需求。敏捷方法接受了这一现实,并遵循使变更对流程的破坏性更小的实践。

首先,敏捷方法采用轻量级流程,并将决策延迟到可能的最新时刻。有“刚刚好”的前期规划来布置一个基本的架构框架,但在大多数情况下,它是随用随设计的。这并不像听起来那样随心所欲,因为敏捷方法中使用的技术(例如 TDD、结对编程、重构等)是鼓励良好设计和设计改进的合理技术。

其次,敏捷方法很注重文档。虽然不是无文档的,但这些方法将文档维护降至最低。变更最糟糕的方面之一是文档变得过时并且必须不断更新以保持正确。敏捷方法识别那些真正有用的文档并维护它们,但其他过时的文档可以被丢弃。它们在需要的时候被使用,但你不受它们的束缚。敏捷方法非常重视代码和测试,并且可以自我记录。

第三,敏捷方法鼓励基于相互信任的合作开发形式。这是双向的。客户必须相信您牢记他们的最大利益,而您必须相信客户知道或至少可以在他看到时识别出他的需求。

最后,敏捷的标志是早发布,经常发布。尽早将产品交到客户手中是(再次,及早)获得客户真正需要的反馈的最佳方式。一旦你有了一个具体的产品,你就会开始获得关于真正重要的变化的信息。通过计划尽早和经常发布,并将其与其他敏捷实践相结合,您还将构建一个更容易适应变化的框架。

但是,即使遵循这些方法,正如我之前所说:有些客户不值得拥有。如果您的客户不够信任您,无法在更改不好时听从您的建议,或者如果客户不知道也无法识别他真正想要的东西,那么可能是时候切断您与他们的联系了。我建议与他们交谈,让他们知道你想得到他们需要的东西,但他们需要知道那是什么。花一些时间谈论它,以便你们双方都能更好地理解目标,并采用敏捷方法来应对变化的现实。如果它们仍然不合理,那么它可能不适合你。

于 2009-05-25T12:39:55.570 回答
1

指定应用程序与实施同样重要(甚至更重要)。至少给客户一个基准文档、UI 模型或类似的东西,我认为是至关重要的。

随着系统的发展和成熟,您必须接受变更请求,否则系统将遭受熵,您付出的任何努力都将永远失去。如果它是一种更商业化的产品,请尝试限制所有客户想要的更改。然后每个人都在获得附加值。

如果您有基线文档,则可以收取定制费用。您想要做的定制越少,您收取的费用就越多:P 确保您记录并估计所有更改请求。(我为此使用了fogbugz,但还有许多其他工具)如果客户为更改付费,那么在tleat,您将因更改系统的痛苦而获得报酬。

于 2009-05-25T12:29:56.743 回答
0

您的公司正在绝望地陷入困境。

你应该马上去找工作。

于 2009-05-25T12:29:28.710 回答
0

在我提出我的建议之前,我应该说我个人认为做生意是为了赚钱。因此,如果客户愿意为他们想要的东西付费,请弄清楚如何容纳他们(而不是拒绝他们)。

现在,一个解决方案:

我在一家公司,他们有一个软件包,他们卖给了许多政府组织——每个组织都有自己特定的调整和功能。

我问总经理他们是如何避免版本地狱的——考虑到他们必须为每个客户维护一个特定的版本。他说“我们没有,每个人都得到相同的版本”。他们只是为所有客户端维护一个版本,但关闭不特定于客户端的功能。

  • LM
于 2009-05-27T01:53:50.740 回答