作为一个软件开发人员,如何做好软件需求分析对我们的这个工作非常重要,可以说这是我们这个行业工作的基础和核心。如果一个软件工程师连做起码的客户的需求都搞不清楚,那还谈什么开发软件。
通过阅读者篇文章,我了解到:
- 当客户提出业务变更的时候,我们不能被客户牵着走,客户说啥就是啥。我们要从业务角度深入的去分析,他为什么提出变更,提得合不合理,我有没有更合理的方案满足这个需求。当我们提出更加合理的方案时,客户是乐于接受的,变更也变得可控了。
- 我们不能非要按照可客户的方式去设计软件,毕竟客户没有学过软件开发这个专业,不了解软件开发过程中的技术实现,但对于我们技术人员,需求分析必须要实事求是,基于技术可以实现的角度去考虑。
- 一个软件项目的需求调研首先必须要进行角色分析,然后对不同的角色分别进行调研。而且不能一蹴而就,必须与专家建立联系,反复沟通后完成。
- 在软件开发的整个过程中,需求分析不是一蹴而就的,我们需要不停地将开发成果给客户看,与客户交流,及时的获取反馈,将需求分析贯穿于整个开发周期,这样才能保证项目的成功。
我们应该怎样做需要求调研:初识
在我们第一次与客户的接触过程中,我们保持适当的谦卑是必要的,但是不能过于谦卑,起初的唯唯诺诺,这会为日后项目的进行带来风险,让客户不在关注你的意见,让客户提出许多不现实的需求,让我们做的很累。我们应该对客户的需求进行深入地分析,利用我们的专业知识,将客户的需求总结为合理的、可操作的解决方案,让客户感觉你说的正是他们想要的。如果做成这个,客户不仅会接受你的方案,而且也会感觉你非常专业,让你在客户心中的形象提高,这也让你有更多的机会提出其他的可行方案,降低开发风险。做到这个良性循环很不容易,所以,在与客户接触初期的表现起到了很关键的作用。
在第一次与客户接触的过程中,我们需要客户有哪些角色,谁是这些的需求提出者与决策者,这些角色可能是一个单位,一个集团,也可能是一些不同的部门,什么部门的需求就要跟什么部门谈。另外在与不同的客户交流需求的时候,我们也需要分析客户中关注的点,例如,对于高层领导,他们关心的是宏观的目标,因此软件研发目标、宏观统计报表、决策支持功能,都应当与高层领导谈。不要与他们谈那些细枝末节;对于中层领导,他们关心的是具体效益,即软件给各个部门信息化管理方面带来的效益,因此,中层领导是各项业务流程、功能模块的需求决策者。他们关心功能的定义、业务流转的衔接、查询报表的设计,但不太关心一些具体的操作,以及一些具体业务流程的细节;对于基层人员,他们是每项业务流程的操作者,也是软件今后真正的使用者。他们是真正了解我们所要开发的软件的业务需求的领域专家,是你进行需求调研的重点对象。但是,基层人员往往受到自身视野的局限,可能只清楚自己工作涉及的十分狭小的一个范围,因此我们需要努力寻找那些业务涉及面广,经验丰富,又有一定大局观的真正的专家。另外,他们就是软件今后真正的使用者,让他们参加,会让他们成为今后软件推行的忠实支持者,对其他操作人员的指导者,益处多多。而他们关心的则是每项操作的细节。
最后,与客户方领导制订出软件目标,是相当重要但常常被我们忽视的一个步骤。软件信息化管理不是包治百病的神药。很多项目的失败都归因与项目目标不明确造成的项目范围的失控。因此,这时讨论项目目标,既重要又适时。
我们应当怎样做需求调研:拜访
这个拜访的过程就是与各种角色,各种类型的客户建立联系的过程。中国人讲究感情,做事先培养感情,将感情培养起来,这样才好慢慢做事。需求调研不是一蹴而就的事情,而是一件持续数月,甚至数年的事情,所以我们与客户建立的是长期共赢的战略协作关系,这跟需要我们与客户建立长期友好关系。所以,我们要团结一切能团结的客户,依靠他们去学习和认识业务知识,收集业务需求,为日后的软件开发提供素材。
我们应当怎样做需求分析:业务流程分析
许多软件最终失败的非常重要的原因就是对需求分析过于草率、浮于表面,而没有深入细致地去分析,往往到了项目后期才把需求搞懂,才发现真正的需求与起初的认识大相径庭,才恍然大悟需求原来是这样,而往往那时已经追悔莫及了。
所以,我们一定要沉下心来仔细的做需求分析,一定要做到位。
我们应当怎样做需求调研:画UML图
在分析业务流程的过程中,最常用,最清晰的还是用UML图来表示,通过用例图,类图可以清晰地表现出业务,用户之间的交互关系。在分析业务流程的过程中,我们每个人都是需要不断学习的,一个人不可能在每个领域都有所涉猎,我们需要了解业务流程的各个方面,以便确定业务流程。