3.3问题定义的先决条件
码农不为写代码而生,而是为了解决问题而生,只不过是运用coding的手段去解决各种问题。
遇到一个问题,应该对其描述,即就是我们要解决什么问题,专业点的说法就是问题的定义。问题定义清楚之后,我们才能围绕其进行分析,设计的工作,提出解决方案,最终解决问题。所以,问题定义是万里长征的第一步。
问题应该怎么定义呢?问题定义应该是从客户的角度出发,纯粹的对问题进行描述,不涉及任何解决方案,是一个比较宏观的、方向性的指引。
3.4 需求的先决条件
问题定义之后,我们需要详细的阐述系统应该做什么,涉及到较多的细节,也就是需求分析。
通常拿到项目之后,大家都急于开始编码工作,因为功能的实现是最直接的成就感,也是最直观的进度,而忽略了之前的需求分析工作。需求分析为什么重要呢?有以下几点:
1、明确需求,与用户达成书面上的共识,落实需要的功能点;
2、多个码农协同开发时,如果对某个功能点存有争议,那么可以提供一个正确的功能点描述,解决争议;
3、保证开发方向正确。需求错误通常比代码bug严重得多;
需求一次搞定,之后再也不会做更改,是很理想情况。通常,用户一开始对自己的需求也并不是很明确,而随着项目的开展,用户不断的理解真正需要的东西,所以,此时,需求很容易有变更。那么,作为码农,怎么来应对开发过程中的需求变更了,因为这实在是一件很让人头痛的事情。为此,我们可以做如下工作:
1、核对需求表,提高需求质量,尽量能够理解用户需要并进行全面的分析;
2、计算需求变更成本并反馈出来,进行评审,从而协调用户需求和开发成本的矛盾;
3、对于大型项目,可以进行演进交付,模块化的进行调整;
4、需求变更太多、不明确、混乱,可考虑放弃该项目。
说了这些,其实在项目进行过程中,大家都仍然未对需求分析引起足够的重视,而且,即便是这样,项目也在可控范围内,不会导致太恶劣的后果。估计是项目较小的缘故吧,如果大型项目,如果不按标准走,对于项目来说应该是灾难性的吧。