1. 传统的开发流程存在哪些弊端?
作为一名程序员我们比较熟悉的开发流程:
看起来好像是一个完美的前后端开发流程,其实在开发中存在很多的问题?
(1) 上图看起来时前后端分离,但是实际上前端依赖后端开发,因为往往前端的页面开发比较快,会出现持续等待Api接口,浪费大量的时间
(2) 前端和后端会因为接口不通,结果集的格式或者参数不正确,接口不够等问题等问题,争吵,讨论,导致接口请求时间长,服务器压力大,前端等待服务端修改接口,
(3) 开发直接通过原型开发,由于信息量不足,存在假设的情况进行开发,导致开发偏差,例如我们曾因为审批流的流程问题反复调整
(4) 随着验收不断临近的截止日期,大家都忙于开发功能,越来越没有时间编写文档,一但在验收中对文档的完整度和正确性提出要求,会非常的苦恼,而延长交付时间
2. 采用文档驱动开发的是优势
既然我们已经清除了传统开发存在,前后端依赖的问题,前端后端存在调试接口的问题以及文档等问题。那么我们对开发流程需要优化,我们把设计文档,开发文档放在最前面设计,看能否解决我们研发问题呢?
1.第一阶段:设计阶段
[图片上传失败...(image-c736c6-1621935973384)]
2.第二阶段:开发阶段
(1) 编写开发文档
参与人(UI,测试,服务端,前端)负责人,所有参与人并行开发
① 前端任务:产出接口文档(字段没有和数据库表字段对应)
[图片上传失败...(image-c21e5-1621935973384)]
② 服务端任务:产出数据库模型和数据库,待产出数据库后,实现接口文档和数据库的字段对接,最终产出完整的API接口文档
[图片上传失败...(image-db4920-1621935973384)]
③ 测试任务:根据产品原型编写测试用例
④ UI任务:根据产品原型制定整体设计风格
(2) 编写代码
① 服务端任务
根据相关文档按模块输出ap
[图片上传失败...(image-555459-1621935973384)]
② 前端任务
根据相关文档按模块编写功能,并提测
[图片上传失败...(image-d2a5f7-1621935973384)]
③ 测试任务
如果API文档有输出,按照接口文档测试API文档
如果前端有模块输出按原型需求文档测试模块
④ UI任务
按照产品原型文档设计页面
优势:
(5) 在设计阶段,开发设计阶段,只需要各端负责人进行评审和相关文档的输出以及标准的制定,无需所有开发人员接入,节省人力
(6) 在所有开发阶段中严格保证了所有开发人员的分离开发,无需相互依赖,充分减少每个端上人员的交流,真正的实现了多端分离
(7) 严格保证了所有开发人员在开发中有据可查,大大提高编写效率
(8) 减少了在研发周期人员更替,新员工上手难的问题
(9) 随着项目开发的完成,开发文档也完成,减少项目交付时缺少文档的尴尬
3. 如何采用文档进行管理
文档贯穿了整个项目,既然我们要依赖文档来进行开发,那么文档应具备以下特性,才能方便我们依赖他管理整个项目
1.可修改性
虽有的文档都是在前期编写的,可能会存在一些未考虑到的问题,所以更需要所有人员共同发现文档的缺陷,及时修改完善文档。
修改文档应该是由下向上逐级反应,最终有相关负责人评估后方可修改文档,研究各人以任何理由私自篡改文档。
2.正确性
在设计编写文档时,应该保证保证文档的正确性,不应将未确认,未评审的文档流入开发阶段,或者开发人员手中
3.同步性
在研发周期中不管是在任何阶段,任何环节如果需要修改文档,变更需求都应经过评审后,修改所有相关文档,不能只修改某一个文档,严格保证所有文档的同步性,避免多端开发不统一的问题
4.约束性
所有相关人员都应该严格遵守文档中的要求,按照文档开发,坚决避免私下确立开发方案,不按照相关文档开发测试
4. 如何依赖文档管理项目
项目管理非常帮的一种管理方式就是通过任务来管理项目,但是在实施中有一个很大的问题那就是如何把一个项目细分成任务,如果不能把项目有效的划分成任务,那么通过任务管理项目就无法实现,那么如何把一个项目有效的划分任务并管理呢?
1.通过项目原型文档和API接口文档等文档来划分任务
(1) 通过原型文档可以把项目划分成模块,在划分成最页面,组件等最小单元,以页面,组件给前端,UI设计分配任务是个非常不错的选择
(2) 因为API接口文档本身就是最小单元,那么服务端任务就非常容易划分
2.规划开发周期
通过任务计算开发周期,通过交付时间规划任务开发时间,正向反向论证,确保在交付时间内,完成项目,如果在交付时间内不能完成开发任务,方便前期就做各种预案,避免尴尬
3.建立里程碑
通过开发周期,任务完成度划分里程碑,让开发人员获得相应的成就感,并时刻保持激情