现有的开发流程中,显著问题是:
- 产品无法理解技术难点,对产品有第一份理解
- 开发无法理解需求文档,对产品有第二份理解
- 验收阶段,测试加入,产生第三份理解
开发人员对需求无法掌握的点:一些模糊的需求、没有考虑足够的情况、功能冲突。需求文档实质应该是一份伪代码,覆盖足够多的分支
测试人员一定程度又扮演了产品的角色,除了反馈报告,开发回头又要补丁式的修改,还会对项目提出功能上的修改要求,回归测试可能要发生多次。
既然这样,开发为什么不是 产品直接对接测试,由测试出 spec,交付开发人员,在这个模式中测试人员完全有能力把产品中模糊的需求点校正,没有涉及的点覆盖,并且一份明确的 spec 对开发来说,大大减轻开发负担。不能说对三份理解降低成了一份理解,但三份理解通过 spec 可以取得较为一致的统一。
开发总是吐槽需求文档的问题,那么由专业的测试人士把需求变为 spec,开发做 TDD,PRD -> SPEC -> 实现 是否一种更好的模式?