我的项目经验分为项目启动前,项目开发中,项目维护中三个阶段总结。
一、 项目启动前
1) 需求分析
根据需求给定的需求说明书,去仔细分析理解每一个需求任务,评估功能需求的可做性、技术可行性,评估功能的实现和耗费的资源(人力和时间)的可支持性。
例如:在TulipB B02项目开发过程中,在用户远程权限的需求中,就有一处逻辑问题,反馈给需求,改正。
2) 工作量评估
根据需求,确定项目范围,评估需要的人力和时间周期。其中包括单项需求的代码实现时间、跟客户端联调时间、整个联调时间等
3) 拟订计划
需求分析完毕,工作量评估完毕,可以大概制定整个项目的理想开展计划。当然其中需要多个组之间的协调沟通,确定任务之间的依赖性。
4) 组织功能设计
新增需求,功能的实现,需要设计文档来支持
5) 风险评估
项目开展前,风险评估是必要的,可能某些功能的实现会依赖其他的某些模块,甚至会占用内存过高,或者功能需求改动甚大,都有可能会在项目测试阶段引来未知问题。
6) 周期控制
周期控制包括开发周期、测试周期、版本阶段(功能稳定)。周期的控制依赖于项目质量控制和工作的合理安排。
二、 项目开发中
1) 质量控制
(1)代码质量:代码提交前,研发工程师必须考虑周全,并保证代码质量。提交时需SQA和研发组长审核代码,审核通过后,才能提交。提交后,下载一份最新的代码,根据修改的问题验证可能涉及影响到的模块功能
(2)版本质量:每个测试版本都应该在发布测试部前,研发首先根据基本功能测试用例验证一下内部版本,这样可以把问题提早发现并提早解决
2) 进度管理
督促项目,追是必须的。
3) 沟通管理
组内与组外的沟通也很重要,在预定时间内因为研发难度不能按时完成的,可以延期处理,或者请求援助。总比期限到了,理由不恰当
(1) 对上沟通:识别风险,及时暴露问题,及时求助
(2) 对内沟通:合理的时间安排
(3) 对外沟通:组外的沟通和求助需要耐心
4) 协调
协调资源和时间。
(1)在研发过程中,避免不了开发板紧张的情况。测试和研发之间需要相互协助;
(2)联调任务时需要研发与客户端的对接等;
(3)研发提前制定测试计划,知会到测试,进行安排。
三、 项目维护中
1) 风险评估
(1)测试过程中,遇到一些经常复现并且是必须功能的时候,可以把某些功能模块立为专项测试和重点开发项。
例如TulipB B02过程中的图片抓图
(2)项目的兼容性
两个分支合并代码,必须在版本稳定的前提下,合并。待合并后,需仔细验证功能
2) 质量控制
(1)质量的要求必须放在首位,每个版本应该含带的功能或者需求,心里面必须有数,哪些功能不能拖后应该清楚
(2)控制bug fail率
(3)严禁解决一个bug,引入新的问题
3) 版本控制
版本控制依赖于版本质量,不期望频繁的版本发布,但愿高质量的版本出现。但版本间隔时间又不能太久,这样可能会出现问题。
4) 沟通(有话好好说)
研发与测试之间的沟通:研发工程师大可花个几分钟时间跟测试工程师谈谈测试用例沟通,这样可能更容易发现问题。
App与VMP的沟通:保证好App跟VMP的联调阶段
与产品经理之间的沟通:适当根据项目进度和风险缩小项目范围;确认项目需求细节