如果没有QA,项目的状况不是对每个项目成员透明化,会出现以上的各种情况;
QA作为协同式任务管理工具,通过对每个任务的记录和跟踪,让项目成员对整个项目的情况有直观的了解,项目经理可随时监控项目推进中的风险是否在可控范围,并提前快速作出调整。
不管是前期开发的工作包还是后期的测试bug,均以任务的形式录入在QA里,然后对这个任务的一些基本属性做设置,如:属于哪个milestone、哪个模块等,然后由各个阶段的Triage的负责人按照需求等级标准来对任务作分类定级,并确定是否做,是否现在做;所有的任务都必须经过Triage并approve通过,才能开始工作。Triage的决策需要多个层面的知识(结合产品、技术、进度等多方因素),特别是在大项目中,Triage往往是一项群体工作,以功能小组(feature team)或产品决策组的方式来进行。在项目的不同阶段,可以由不同的角色来主导Triage流程。
在任务approve后,各职能方leader将任务指派给相应具体执行的人员。执行人员,也是任务的owner,必须设置任务的Status date,如:Status任务状态是Working(进行中);Status date即完成日期点,Status date应真实反映实际工作计划,并应契合项目时间表。
在执行人员完成任务时,QA会通知各职能方leader去关闭这个任务,关闭的意义在于通知任务的相关跟踪者,可以着手下一部分的工作,如某功能代码任务关闭,即相关测试人员知道可以开始这个功能点的测试工作;
通过任务在QA系统里的记录和跟踪,以及任务状态的实时更新,终会汇总生成各种可视化的图表,项目进展直观,且可度量,能够很好的把握整个项目推进的节奏,对项目中各项问题和风险定位更容易,并可在周会上对项目的所有成员公开进度信息,便于协调一致;
其中重要的图表:glide path任务走势图:
“实际任务走势”与“计划任务走势”的对比,可以衡量出计划与实际的偏差。
每日构建
技术 K:我们只在每个小milestone才会打build。
交互 E:希望可以每日bulid,我可以每天拿到新的版本进行测试。
测试 Q:我建议测试前期可以每个milestoen打版本,但是中期开始,每日build。
… …
每日构建(daily build)是指每天对整个项目做一次完整的自动构建,生成可执行文件的过程,对Web类产品,每日构建通常要伴随自动部署的过程,将这些可执行文件部署至测试环境,并按照一定的规则对这个安装包或测试环境做版本编号,是一种Public build的管理方式。
每日构建是编译管理的一种方式,项目初期,可根据根据需要按照一定的频率打,如:每周、每个milestone,随着项目的进行频率逐渐增加build的频率,如:每天build。
每日构建的好处:
每日构建让从产品经理、项目经理、策划、交互、视觉等所有的项目人员从第一个小功能模块完成开始,能够随时测试新的版本提交bug,并能及时了解技术开发的进度;
每日构建让测试人员从第一个小功能模块完成开始,能够每天测试新的版本,提交新bug和复查部分bug,而不需要等着某个小milestone或者所有的功能代码都实现了,再开始测试,大大增加了测试和开发的重叠时间,测试更充分,测试和开发的迭代效率更高,产品质量控制得更好;而且bug提交到qa上,也会一并附上build版本号,方便技术还原现场,更快地解决bug;
每日构建使得技术必须对每天自己输出的代码负责,一旦每日build失败,必须检查原因,并纠正不可再犯,以避免再次build失败,这样能非常有效地提高所提交代码的质量,减少bug的产生,加快开发效率;
虽然搭建并维护daily build,需要比较大的工作量,但物有所值。