控制返工的关键不是禁止变更,而是把每次变更都变成可验收的小交付:先明确改什么、谁确认、改完看什么结果,再决定是否进入开发。对张家界做网站的项目来说,页面结构、内容栏目、表单和移动端样式最容易在开发中途反复调整,如果没有变更记录和验收标准,返工就会从一次小修改扩散成整站重做。
返工多发的环节不是写代码,而是需求描述和验收标准脱节。收到变更时,至少写清四项:变更对象(哪个页面或哪个模块)、期望结果(文字、图片、按钮、跳转如何表现)、不改变的部分(哪些已有功能不能受影响)、验收方式(在什么设备、什么浏览器、什么操作路径下检查)。
例如,客户提出“首页轮播图要改成三张”。这句话不能直接进入开发,应补充:三张图的尺寸和文案是否已定、是否自动播放、移动端是否也显示三张、点击后跳转到哪里。假设其中两项未定,开发先做就会产生至少一轮返工。适用条件是变更涉及视觉或交互;判断结果是:如果验收方式无法用一句话描述,就说明变更还没准备好。
分类的目的是避免把功能变更当成“顺手改一下”。功能变更一旦混入日常内容修改,测试范围会被低估,返工往往出现在上线之后。判断方法是:如果变更需要改数据库、接口或权限,就归入功能变更。
从最终要交付的页面倒推,比从开发任务正推更容易发现遗漏。可以按下面的顺序核对:
如果某项资料缺失,不要用占位内容直接上线再等替换。占位内容上线后容易被忽略,后续替换时又可能牵动布局,形成二次返工。适用条件是项目已有页面、需要在原有基础上改进;判断结果是:资料不全的变更应停在“待补充”,而不是进入开发。
开发执行阶段,至少检查以下内容,避免改一处坏一处:
这里说的检查是通用做法,不依赖某个特定工具。若使用版本管理,可以用提交记录对应每次变更;若没有版本管理,至少保留修改前的文件副本。两种方式都能降低回退成本,区别在于前者更适合多人协作,后者适合单人维护的小项目。
不是所有变更都值得立即做。出现以下情况时,推迟比强行开发更省成本:变更目标无法用一句话说清;所需资料无人提供;变更会影响已上线且正在使用的功能,但没有测试时间;同一位置在短时间内被反复提出不同要求。此时应先把变更写成待确认清单,等条件具备再排期。
下一步可以做一件事:把当前准备修改的页面列出来,为每一项变更补上“验收方式”和“责任人”两栏。填不出来的项目先不进入开发,这样能直接减少因需求不清造成的返工。