需求分析作为软件开发过程中的非常重要的环节,在确保软件质量,尽可能挖掘软件价值方面起着不可替代的作用。中培伟业《需求分析最佳实践》培训专家郭老师作为该领域的知名专家,就需求分析过程中需要认知的问题进行了详细介绍。郭老师指出,在需求分析过程中,技术人员应该明白以下几个问题。
(一)需求完整性需要诸多用户的参与和确认,而且用户间需求本身也存在冲突的可能,因此需求更加强调角色和场景和划分,一个所有用户需要都能够满足的需求往往不是一个好需求。
(二)需求过程缺乏用户的参与,我们往往是技术驱动,习惯性的跳到模块的划分导致需求本身验证困难,也导致了需求间耦合很紧,很难在后期组织有效的迭代开发。因此要考虑按流程和业务梳理需求。
(三)需求无法实现也可能不是架构问题,而是需求本身不切实际。
(四)用户想要和真正需要是有区别的,没有真正的识别需求优先级可能导致需求过量开发和需求镀金。
(五)需求优先级识别往往并不能完全依靠用户,用户往往只会把自己关注功能讲优先级识别的很高,因此需求优先级识别应该是通过业务规则,流程和模式来确定。优先级识别方法(离主营业务的远近,发生的频率两个方面来度量)
(六)沟通失真,要认识到文档仅仅是中介而不是全部,要通过即时的验证来减少沟通失真。
(七)需求捕获和调研常见问题-用户告诉你的是他转化后的解决方案,而不是最原始的需求。
(八)变更频繁,但是要响应变化,比如通过对变更分类来识别哪些变更是可以通过复用和可配置解决的。
(九)非功能性需求为有效的识别,仅仅是定性,而没有通过定性->场景->定量的路线。