软件需求的本质

      “喂,Phil吗?我是人事部的Maria。我们在使用你开发的人事系统时遇到一个问题。有位职员刚刚把她的名字改成Sparkle Starlight,但我们无法在系统中改。你能帮个忙吗?”

  “那么她是结婚了,随老公姓Starlight?”

  “没有,她没结婚,只是改名字了,”Maria回答道,“问题就出在这里。好像我们只能在某人婚姻状况发生变化时才能在系统中改名。”

  “好吧,是,我从来没想过有人可能会改自己的名字。当初我们在讨论系统的时候,你可没告诉过我有这种可能性。” Phil答道。

  “我以为你知道任何人随时都可以合法更改名字呢,”Maria回应道,“我们得在星期五之前解决这个问题,否则Sparkle就领不到工资了。你可以在此之前修复这个bug吗?”

  “这不是什么bug,好吗?!” Phil反驳道,“我从没想过你们需要这项功能。我现在正忙着做一个新的绩效评估系统。你所说的问题我只能在月底修复,但周五之前肯定不行,抱歉。下次如果再有类似情况,请早点告诉我,并请提供书面材料。”

  “那我怎么和Sparkle说呢?”Maria追问道,“如果她领不到工资,会很难过的。”

  “嗨,Maria,这不是我的错,”Phil抗议道,“如果当初你早提醒我你需要能够随时更改某人的姓名,这种事情就不会发生。你不能因为我没猜透你的想法就怪我。”

  Maria怒了,但又无可奈何,只好厉声说:“是,你说的都对!好吧,这种破事儿让我对电脑简直是恨之入骨。问题解决好了,就马上打电话告诉我,可以吗?”

  如果你是以上对话中的客户一方,就会明白无法使用软件系统来完成一项基本任务多么令人沮丧。你会痛恨自己得求着开发人员,因为关键变更请求最终掌握在他们手中。另一方面,开发人员也很沮丧,因为他们只有在系统开发完成之后才会明白用户期待有哪些基本功能。对于开发人员来说,更恼火的是,得中断手头的项目去修正以前已经完成的系统。

你可能感兴趣的:(软件需求的本质)