为什么软件项目的需求分析工作比较困难
有几种原因使需求分析变得困难:
(1)客户说不清楚需求;
(2)需求自身经常变动;
(3)分析人员或客户理解有误。
1、客户说不清楚需求
一些客户对需求仅有模糊的认识,并非能清楚描述所需内容。例如,在全国各地众多的政府部门进行网络建设工作时, 这些部门的主要负责人及工作人员普遍认为计算机网络的作用不明显, 实际上需要由专业的软件系统分析师替他们制定详细的需求规格书。此类项目的需求高度主观, 以至于导致大量腐败现象产生
有些客户心里很清楚想要什么物品,却难以articulate其具体需求。读者或许不太看重这些细节,甚至会产生误解或轻视的态度。就举日常生活中的实例来说吧,比如说购买运动鞋或休闲鞋。我们对自身的足部构造相当熟悉,然而却难以articulate its specific dimensions and contours.通常的做法是亲身试穿才能做出判断:只有当穿上感觉舒适的鞋子时才会购买;(有趣的是有一些售货员竟然能够通过观察客户的手掌来推荐合适的鞋码)
如果客户本身具备软件开发能力,并能够清晰地表达他们的需求,则这种需求分析过程将会事半功倍且令人愉快。如果客户的软件知识完全缺失但仍然信任开发团队的专业性,则这种情况同样可行。分析人员可以通过引导对话的方式进行深入交流:首先让客户说明他们认为常规的需求是什么?然后让客户排除那些不需要的功能?最终能够准确把握客户的真正需求?这种方法往往能够取得良好的效果。
最让人头疼的是那些自以为是的"不懂装懂"型客户?特别是那些自封为"内行"身份的人群。
2、需求自身经常变动
唐僧曾说:“妖要是有了仁慈之心,就不再是妖,是人妖。”(《大话西游之大圣娶亲》)
妖精也会迷失本性,不要轻视普通人。因此好新恶旧是人之习性,世界因此变得丰富多彩。
软件的需求会变化吗?
根据历史记录显示, 任何软件的需求改动都不低于三次. 唯一仅改动需求两次的客户已故, 这位悲惨个体最终因车 crash 在运送第三次需求时丧生.
让我们承认"需求会变动"这一事实吧,以免因需求变动而导致紧张情绪.明白了这个道理之后,在进行需求分析时就要注意.
深入细致地全面准确地识别出所有能够长期稳定的用户需求以及那些不容易变化的业务需求。为了使系统设计更加科学合理时,请确保软件的核心架构以这些能够长期稳定的用户需求为核心构建系统的架构,并且避免因忽视这一点而导致后续维护升级过程中的诸多困难。
(2)在合同中必须明确界定"做什么"和"不做什么"的条款内容。如果合同描述模糊不清,则容易产生纠纷的情况就很多了。为了避免类似韩复渠这样的行为,在别人邀请其饮酒时应审慎行事:即使得到对方的热情款待也不宜立即承诺 future plans, 以避免以后出现无法兑现的情况发生
3、分析人员或客户理解有误
这个外星人潜伏在地球上收集情报信息。它向其汇报道:"主导地球的是车辆。它们消耗燃料并通过四个轮子滚动移动。声音极为响亮,在夜间双眼能照射出强光。值得注意的是,在车中生活着一种被称作'人'的寄生生物体这些寄生物完全控制了车体功能。
软件系统分析人才未必都能成为万能型专家。客户需求可能存在多种解读方式,在这种情况下若未能准确把握客户需求就可能造成不必要的麻烦与损失。学生时期我记得最害怕的是语文考试中的跑题现象,在这种情况下即使文章篇幅冗长依然无法获得理想的成绩。因此,在编写详细的需求说明文档后有必要邀请客户方的技术骨干及相关负责人共同审查。对于一些较为复杂的技术难题这时往往需要组织开发团队迅速搭建出一个简单的原型模型以便更直观地了解项目的核心思路随后再对需求说明书展开全面审查确保描述无误后再投入实际开发工作
因为大多数客户并不熟悉软件系统的基本功能特点,他们往往会产生一些误解,认为该系统能够解决所有问题,甚至提出一些无法由系统满足的需求。然而,由于技术限制或其他因素的影响,这些需求可能会被系统所拒绝或者无法得到满足,导致最终结果与预期不符。在某些情况下,这些客户的理解可能会与系统的建议或者回应产生偏差
有一位软件专家详细阐述了在信息高速公路运营的好处,并获得了客户的高度关注与兴趣; client was thoroughly engaged and interested. 最后,激动的客户听从软件专家的意见表示愿意立即采取行动,并指示了广告牌的尺寸以及希望放置的位置.
为什么软件系统分析员的工资要比普通高?就是因为需求分析困难嘛。
内容来自"岁月联盟"
