把“日志文件查看”作为一项可交付能力来建设时,阶段性交付物的制定方法很简单:先定义用户要查什么日志、以什么条件筛选、看到什么结果,再把这项能力拆成可独立验收的小块,每块都给出输入、输出和判断标准。下面用一个假设项目说明具体做法。
假设你负责一个已有运维后台,需要新增“日志文件查看”功能。用户是值班工程师,需求是:选择服务器、选择时间范围、输入关键字,查看匹配的日志行。
不要一上来就写“完成日志查看功能”这种交付物。它无法验收,也无法判断进度。合理的做法是先写清用户动作链:进入页面 → 选服务器 → 选时间 → 输关键字 → 得到结果列表 → 翻页或导出。
每个阶段都能单独上线、单独验证。前一阶段没通过验收,不进入下一阶段,这样问题不会被拖到最后一起爆发。
常见错误有三种。第一种是交付物写成“完成后端接口”,这是任务不是结果,验收时无法判断接口是否满足查看需求。第二种是把多个阶段压成一个,比如筛选和导出同时做,一旦导出格式有争议,筛选功能也被卡住。第三种是验收标准写成“基本可用”“性能良好”,这类描述无法判断通过与否。
判断一个交付物是否合格,可以问三个问题:用户能完成哪个具体动作?输入是什么、输出是什么?什么情况下算不通过?三问都答得出来,才算可验收。
如果这个日志查看页需要被外部用户找到,那么交付物还要加一条:页面有独立标题、有说明文字、不依赖登录后才能看到全部内容。抓取、索引、排名是不同环节,能被抓取不等于会被索引,能被索引不等于会有排名。因此阶段性交付物里应包含“页面可访问性检查”这一项:用纯文本方式打开页面,确认核心说明文字存在;检查是否有阻止抓取的设置。这一项可以和阶段一并行,不必等到功能全部完成。
拿一张纸或一个文档,按阶段列出:交付物名称、用户动作、输入、输出、验收标准、不通过时的处理方式。写完后找一位不参与开发的人读一遍,如果他无法判断每项是否完成,就继续改,直到每一项都能被独立验证。