技术开发 频道

需求的实践 细节需求时期(下)

    8、客户如何参与
    这是一个纯粹的补充问题。一次,一位读者写信来问我,中国的客户素质比较低,对计算机不了解,XP强调的现场客户现实中根本做不到。

    XP要求开发人员在开发软件的过程中随时予以支持。诚然,要做到这一点是很难的。我自己也遇到过这种难题,知道问题的棘手程度。我想,这个问题可以分为两个方面。

    一种是定制的软件。对于这种项目,你需要解决用户的参与问题,往往客户方的老总愿意投入资金,但是却不愿意投入支持的人力。我也曾见过客户方专门招了一个应届生来对付需求的情况。遇到这种情况,如果你没有能力克服它,那么这个项目绝对是失败的。即便项目最后成功了,申请了什么"重大攻关"之类的奖项,你我都很清楚,这只不过是表面功夫而已。造成这种问题的原因有很多,你需要分析它们,列举出最深层的原因,并且保证列出的这些原因之间并不会相互影响。然后再试着来解决它。一般而言,如果客户方是真正愿意实现这个软件的话,事情并不是不可解决的。

    另一种是产品化的软件。我们可以把这种软件的客户分为三类:市场人员、领域专家、最终用户。市场人员往往对软件有最初的认识,但是这种认识往往不够深入。所以,在开发产品化的软件时,一定要配备专门的市场人员,他们对客户的需求最了解,是需求的第一手来源。既然你的老板想要开发这个软件,说明对软件的未来市场有期待,市场人员加入的要求应该是可以得到满足的。其次是领域专家,现在很多的软件公司都配备有领域专家,他们的作用可不小,和市场人员相比,他们也同样熟悉需求,因为他们自己就是资深的用户,并且他们还熟悉理论,能够为软件开发出大力气。最后是最终用户,前面的两类人的参与还不够,如果最终用户不认可软件,那还是没有用。所以,要求市场人员找寻可能的目标客户,试用软件,提出意见,是非常重要的。我们常说的Beta测试也就是这样做的。

    9、结语
    最早这片文章的想法是来自于一个信贷系统(以文章的观点来看,这个系统是一个失败的案例)。除此之外,还加上了一些以前的项目的经验,以及朋友的一些经验。最后综合成了这一篇文章。 这个系列的文章的写作时间的跨度很长。在这个期间,我的思想也经历一个很大的转变,所以在写作中也出现过对已经完稿的部分大肆删修的情况。这篇文章虽名为『需求的实践』,但所提到的各种想法、方法,都有理论的依据。当然也是参考了很多的资料。而我个人的能力又极为有限,所以有些时候是心有余而力不足。在这样的情形下,文章难免会出现很多的错误。还希望能得到读者们的谅解和指正。

    在写作的过程中,也有很多的热心人写来信件,其中好些还成为了好朋友。曾经想把里面的问题整理出来,但是由于疏忽,其中的一部分已经找不到了。希望还能有机会做这件事情。

    参考资料:

    Karl Wieger:《Software Requirements》
    Scott W. Ambler: AgileModeling: http://www.agilemodeling.com
    Scott W. Ambler: The Object Primer 2nd Edition
    Jacobson, I., Booch, G., and Rumbaugh, J. (1999). The Unified Software Development Process
    GOF:《Design Patterns: Elements of Reusable Object Oriented Software》
    Eric Gamma, Kent Beck: Junit: http://www.junit.org
    Kent Beck,Martin Fowler:《Planning Extreme Programming》

0
相关文章