题解:做了多个系统的需求分析之后,有做总结的必要了。
在需求分析阶段,甚至是整个软件开发阶段,需求的变化是唯一不变的东西。项目中最难做的也是如何去控制需求。这个有点复杂,放到后续文章去说,先说说如何
将客户的问题信息转化为需求:
1.分清客户的问题是“需要”还是一个“需求”
需要,指问题已明确。需求则表示问题未明确
2.分清最好有与必须有。
必须有,这个是硬性需求;最好有,非硬性需求。根据项目的实际情况,如成本,时间(计划),范围的约束来综合评定。
3.客户对问题的描述是为了说明问题还是提供一种解决方案
在收集和分析客户需求时,一定要搞清楚客户是在描述问题本身还是问题的解决方案
4 有哪些人使用这个系统
俗语说,有什么样的客户,就有什么样的系统。客户的能力以及偏好,包括理解力,对系统的设计至关重要。
5.有那些人不喜欢这个系统
是办公室政治?是易用性?是稳定性?maybe something else
6.挖掘潜在问题,形成问题链
客户大都没有系统训练,他们对问题的描述往往比较零散和随意。如何将问题窜成链,挖掘更深层次的问题是需求分析人员需要帮助他们完成的。记住是帮助,不是
强迫他们按照你的思维思考问题。这里面最难的部分属于如果从软件专业人员的角度提出建议。同时又要让自己的的建议不干扰到客户的原始需求。
根据个人的经验,需求阶段最大的悲哀在于你出于最好的目的却造成了最坏的结果——建议客户如何如何,建议有时会掩盖客户的真实想法。客户信任我们的建议,
他们误以为我们的建议可以解决他们的问题,然而有时事与愿违。所以,我们应该多听客户的想法,延迟你的建议与引导。
7.非功能性需求的采集
易用性,扩展性,交互性,性能,安全性等等。