加入一个项目组:开始开发一个全新的模块。对于开发流程,我有一点自己的理解,现在先记录下来,在以后的工作中觉得有什么不妥的地方,就做相应的改进。
第一步:需求文档,每个项目开始都应该有相应的需求文档。需求文档是重中之重,以后所有的工作都是围绕需求文档来的。
需求文档应该由产品经理与客户直接沟通,依据客户的需求整理而成的需求文档(个人觉得能否挖掘出客户潜在的需求或明确客户需求,设计出完全符合客户的需求文档是重中之重,否则就会衍生出一系列需求变更的问题)
-------》输出:需求文档(第一阶段的需求文档:原始档案)
第二步:需求分析,项目组所有成员都应当进行需求分析。包括需求分析师,产品经理,UI设计师,开发人员,测试人员等
1.需求分析师与产品经理等都是与客户的第一接口人,是需求分析中必不可少的人员,把控整个项目方向
2.设计师在这个阶段应该做好UML(统一建模语言,包括用例图,类图,状态图等),以及界面原型
3.开发人员与测试人员应当在这个阶段了解整个项目的需求,并提出开发与测试的风险点(例如实际条件中不能实现的地方)
首先,需求分析结束后,应当再次与客户沟通,并展示界面原型,确定整个项目需求没有发生偏离。UI,开发与测试是项目的具体实施者,应当充分保证相应的人员理解项目的需求。
-----------------------------------------------2018-01-18 补充-------------------------------------------------
最近两周一直在研究一个关于实验室管理项目的需求。需求来源有两个:老系统;客户沟通。有以下感想:
1.首先,应当确定客户的主要需求,客户想要做成什么样的效果
2.其次,确定业务流程,以及业务相关的模块,并与客户沟通确认
3.最后,完成界面原型,并将模块按照重要程度分级别,与客户确认。
注意点:一定要给项目确定一个范围,将客户的需求限定在该范围之内-->目的在于尽量减少客户大的需求变动;项目功能点划分出来重要程度,优先考虑重要性高的模块-->这样做可以为项目制定进度表;能做什么,不能做什么,一定要明确,不能盲目答应客户的一切要求-->规避后期项目中一些风险点。
------------------------------------------------------------------------------------------------------------------------
-------》输出:需求文档(第二阶段的需求文档:包括了UML,界面原型等)
第三步:数据结构设计,数据库架构师的工作了,依旧项目的特点选择合适的数据库,并设计数据库表结构
1.个人知识对于这一块真的很欠缺,建表都是随心所欲,这对后续的开发工作会有很大的影响,一旦表结构设计不好,会照成额外的多余的工作,对项目的质量也会照成巨大的影响。
-----------------------------------------------2017-12-25 补充-------------------------------------------------
2.经过与数据库打交道这段时间,给我的感想是:结构设计真的很重要!!!!!
目前这个项目需要使用到别人的数据库数据,于是研究别人的数据库结构,真是要命。
1)结构文档:没有数据库结构文档,直接看表结构,字段,全靠猜!而且连一个简单的字段注释都没有,我觉得至少关键字段应该有一个comment,这样便于理解。
2)结构设计:不知道是前期结构设计缺陷,还是需求变动,最近一段时间,数据库结构一直都在变动,造成不少sql语句失效,不得不重新来做,造成了许多额外的工作量。
3)数据不规范:很多数据格式不规范,例如id,在同一张表中有的是1,2,3这种自增长,有的是UUID 这种随机类型。时间类型保存也是五花八门,有的是时间戳,有的是2017-12-25,有的是201712125这种类型,没有规定统一的方式,不能理解为什么会做成这样。在多表联合查询的时候,遇到不同类型的时间格式,简直让人心烦气躁。
------------------------------------------------------------------------------------------------------------------------
-------》输出:需求文档(第三阶段的需求文档:新包括表结构设计)
以上三步就构成了整个项目完整的需求文档,这时的需求文档包括的内容有:项目背景,项目目标,名词解释,功能架构(核心流程图),用例图,功能结构,UI设计,表结构等
至此,所有前期的准备工作全部做好(当然,之后还会有需求变更等,也需要继续完善原型图等),开始具体的编码工作,以及测试准备工作。