外包驻场开发如何做好需求沟通、任务管理和工作复盘
外包驻场开发如何做好需求沟通、任务管理和工作复盘
前言
作为一名外包驻场开发,平时经常会遇到这种情况:
- 甲方安排的任务比较零散;
- 一会修改接口,一会查数据,一会处理配置;
- 同时对接多个不同的人;
- 有些需求只是口头说明,没有完整文档;
- 当时感觉自己听懂了,真正开始做时又发现有些细节不清楚;
- 再次去询问时,对方可能会觉得已经说过了,从而产生不耐烦。
我自己也遇到过类似问题。
后来我发现,很多时候并不是技术能力不够,而是缺少一套固定的工作流程。
如果没有做好需求记录、需求确认、任务拆分和完成后的检查,即使每天很忙,也容易出现遗漏、返工和重复询问。
下面整理一套适合外包驻场开发人员使用的日常工作流程。
一、外包驻场开发容易遇到的问题
1. 工作内容比较零散
外包驻场的工作不一定都是完整项目,有时可能是:
- 修改一个接口字段;
- 查询一条异常数据;
- 调整一项配置;
- 帮其他同事部署项目;
- 配合前端联调;
- 修改数据库脚本;
- 处理测试环境问题;
- 临时排查线上日志。
这些任务看起来都不大,但数量一多就很容易混乱。
如果全部靠脑子记,很可能出现:
- 忘记任务;
- 搞错优先级;
- 做了一半被其他任务打断;
- 忘记向需求方反馈结果。
2. 需求没有一次理解完整
有些需求是别人站在旁边口头说的。
当时可能觉得自己已经听懂了,但真正写代码时才发现:
- 原来的接口要不要保留;
- 历史数据要不要处理;
- 新增字段是否允许为空;
- 哪些模块会受到影响;
- 最终由谁验收;
- 什么时候必须完成。
如果这些问题没有提前确认,后面就会反复询问。
询问本身没有问题,但如果同一个问题问了多次,或者每隔一会问一次,对方就可能觉得沟通成本很高。
3. 只记录了任务名称,没有记录细节
例如只记录:
修改订单接口过几个小时再看时,可能已经不知道具体要修改什么。
更完整的记录应该是:
任务:修改订单详情接口 需求人:张三 需求内容:增加付款时间字段 注意事项:原来的字段不能删除 完成时间:今天下午5点 验收人:张三记录不是为了写得好看,而是为了避免自己忘记。
4. 完成后没有认真检查
一些问题不是不会写,而是提交前没有检查,例如:
- 代码文件遗漏;
- 数据库脚本没有提交;
- 配置文件被误修改;
- target目录被提交;
- 测试环境配置提交到了代码仓库;
- 只测试了正常场景,没有测试异常场景;
- 修改公共方法后,没有检查其他调用位置。
这些问题重复出现后,会影响别人对自己的信任。
二、接收需求时应该怎么做
1. 先听完,不要急着回答
当别人安排任务时,不要对方刚说一句,就马上回答:
好的,明白了。因为有时候只是听懂了大概,并没有真正理解细节。
可以先说:
好的,你先说,我记录一下。然后把对方说的关键信息记下来。
2. 重点记录七个内容
每次接收需求时,至少确认以下内容:
- 谁提出的需求;
- 具体要做什么;
- 为什么要做;
- 涉及哪些系统或模块;
- 哪些内容不能修改;
- 什么时候完成;
- 最终由谁验收。
可以使用下面的模板:
## 任务名称 - 提出人: - 提出时间: - 具体需求: - 需求目的: - 涉及模块: - 注意事项: - 完成时间: - 验收人员: - 当前状态:3. 对方说完后,立即复述
需求沟通结束后,不要只说:
我知道了。最好把自己的理解重新说一遍。
例如:
我确认一下,这次是修改订单详情接口, 增加付款时间字段,旧字段继续保留, 改完后先部署到测试环境, 今天下午5点之前发给你验收,对吗?复述的好处是:
- 可以及时发现双方理解不一致;
- 减少后面重复询问;
- 防止写完后大面积返工;
- 给需求方留下认真负责的印象。
三、遇到不懂的需求应该怎么问
1. 不要想到一个问题就问一次
比较容易让对方不耐烦的提问方式是:
这个字段要不要加?过一会又问:
历史数据要不要处理?再过一会又问:
旧接口还要不要保留?这样会不断打断对方。
更好的做法是先自己分析几分钟,把问题统一整理出来。
例如:
我整理后还有三个地方需要确认: 1. 原来的接口是否继续保留; 2. 历史数据是否需要补充新字段; 3. 完成后由前端验收,还是由你验收。一次集中问清楚,比反复询问效果更好。
2. 提问时带上自己的理解
不要只问:
这个应该怎么做?可以改成:
我看了一下原来的代码,目前有两个方案。 方案一是在原接口上增加字段,对前端改动比较小; 方案二是重新增加一个接口,影响范围更小。 我倾向使用方案一,你看这样处理是否合适?这样对方会感觉你已经做过思考,只是在确认方案,而不是把问题全部推给他。
3. 同一个问题问完后立即记录
对方给出答案后,要立刻记录下来。
例如:
确认结果: 旧接口继续保留; 历史数据不处理; 新数据从本次上线后开始记录。不要只听完点头,否则过一段时间还是可能忘记。
四、开始开发前需要做什么
1. 不要拿到需求就立即改代码
正式修改前,先检查:
- 这是公共方法还是私有方法;
- 是否被其他模块调用;
- 是否涉及数据库字段;
- 是否会影响旧接口;
- 是否需要兼容历史数据;
- 是否需要前端同步修改;
- 是否需要增加日志;
- 是否需要处理异常情况。
尤其是修改公共方法时,不能只看当前功能。
2. 使用IDE查看影响范围
在Java项目中,可以通过IDE的“查找引用”功能检查:
- 哪些地方调用了这个方法;
- 哪些接口使用了这个对象;
- 哪些模块依赖了这个字段;
- 修改返回值后会影响哪些代码。
例如在 IntelliJ IDEA 中,可以使用:
Alt + F7查看方法或字段的引用位置。
在修改旧代码前,先搞清楚:
这个方法是做什么的? 谁在调用它? 修改以后会影响谁? 有没有更安全的扩展方式?3. 把任务拆成小步骤
例如修改一个接口,可以拆分成:
1. 阅读需求; 2. 查找相关接口; 3. 查找业务实现类; 4. 确认数据库字段; 5. 分析调用范围; 6. 编写代码; 7. 本地测试; 8. 检查日志; 9. 提交代码; 10. 部署测试环境; 11. 通知需求方验收; 12. 记录处理结果。任务拆分后,更容易知道自己当前做到哪一步,也不容易遗漏。
五、开发过程中如何避免混乱
1. 建立统一的任务清单
不要把任务分散记录在:
- 微信;
- 聊天窗口;
- 纸上;
- 临时记事本;
- 脑子里。
最好固定使用一个地方,例如:
- Markdown文档;
- Excel;
- 飞书文档;
- OneNote;
- Notion;
- 每日工作日志。
任务状态可以分为:
待处理 处理中 等待确认 等待他人配合 待测试 待验收 已完成示例:
| 任务 | 提出人 | 优先级 | 截止时间 | 状态 |
|---|---|---|---|---|
| 修改订单接口 | 张三 | 高 | 今天17:00 | 处理中 |
| 查询异常数据 | 李四 | 中 | 明天上午 | 待处理 |
| 部署测试环境 | 王五 | 高 | 今天15:00 | 等待权限 |
2. 同时收到多个任务时,先确认优先级
不要所有任务都直接回答:
好的,我马上处理。如果当前正在做其他事情,可以这样说:
我现在正在处理订单接口,预计下午3点完成。 这个新任务也需要今天完成吗? 如果两个都比较紧急,我应该先处理哪一个?让需求方明确优先级,可以避免最后所有任务都延期。
3. 遇到阻塞及时反馈
不要一个问题卡半天也不说。
正确的反馈应该包含:
- 当前完成了什么;
- 卡在什么地方;
- 需要谁协助;
- 下一步准备怎么做。
例如:
订单接口代码已经完成, 目前卡在测试环境数据库权限, 暂时无法完成联调。 我已经联系了运维人员, 权限开通后继续测试。这比只说“还没做完”更清楚。
六、任务完成后如何检查
1. 功能检查
提交前确认:
- 是否符合需求;
- 正常流程是否正确;
- 异常流程是否处理;
- 空值是否判断;
- 参数是否合法;
- 是否影响原有功能;
- 是否处理重复请求;
- 是否需要添加日志。
2. Git提交检查
提交代码前,重点检查:
1. Git状态中是否有遗漏文件; 2. 红色文件是否需要提交; 3. 是否误提交target目录; 4. 是否误提交本地配置; 5. 是否误提交日志文件; 6. 数据库脚本是否遗漏; 7. pom.xml是否有必要修改; 8. 是否包含调试代码; 9. 是否包含无关格式化内容。对于Java项目,通常不应该提交:
target/ .idea/ *.iml *.log 本地临时文件 个人环境配置应该通过.gitignore进行排除。
3. 提交信息要写清楚
不要使用这种提交信息:
修改代码可以写得更具体:
fix: 修复订单支付时间返回为空的问题或者:
feat: 订单详情接口增加支付时间字段清晰的提交信息方便以后查询修改记录。
七、交付任务时应该怎么说
不要只说:
已经好了。可以说明完整结果:
订单详情接口已经修改完成。 本次增加了支付时间字段, 原来的字段保持不变, 本地测试和测试环境验证均正常。 代码已经提交到测试分支, 可以开始验收。如果存在注意事项,也需要一起说明:
目前只处理了新产生的订单, 历史订单暂时不补充支付时间, 这个方案之前已经确认。八、发生问题或被批评时怎么处理
1. 不要急着解释
对方生气时,如果马上解释:
因为你之前没有说清楚。或者:
我最近任务比较多。很容易让矛盾继续扩大。
可以先说:
不好意思,这次是我记录和确认得不够完整, 确实耽误你时间了。然后说明补救措施:
我现在重新整理需求, 整理完成后先发给你确认, 确认没有问题后再继续修改。2. 不要只道歉,要让对方看到改变
真正有用的不是一直说“对不起”,而是后续做到:
- 需求开始记录;
- 沟通结束后主动复述;
- 不确定的问题集中询问;
- 完成后先自查;
- 同样的问题不再重复发生。
别人对你的评价,最终还是来自后续的工作表现。
3. 是否需要请吃饭或者买奶茶
适当维护同事关系是可以的,例如:
- 对方帮助解决了重要问题;
- 团队共同加班;
- 一个阶段任务完成;
- 平时偶尔请大家喝饮料。
但是不要把请客当成解决工作问题的主要办法。
如果每次犯错后立刻请奶茶,可能会让人感觉是在用东西弥补错误。
比较自然的方式是:
前几天麻烦大家帮我确认了不少问题, 今天给大家点点喝的,感谢大家。最好是请整个小组,不要过度针对某一个人。
真正重要的人情世故是:
尊重别人时间; 沟通表达清楚; 别人帮助后及时感谢; 答应的事情按时完成; 同样的问题不要重复出现。九、每天上下班应该做什么
1. 上班前检查
每天上班后先花十分钟确认:
1. 昨天有哪些任务没有完成; 2. 今天有哪些截止任务; 3. 哪些事情正在等待别人回复; 4. 今天最重要的三个任务是什么; 5. 是否需要主动向别人同步进度。不要上班后完全等别人安排。
2. 下班前复盘
每天花十分钟记录:
今天完成了什么
完成订单接口字段修改; 完成测试环境部署; 完成前端联调。今天遇到了什么问题
需求没有一次确认清楚; 修改公共方法前没有查看引用; 提交代码时遗漏数据库脚本。问题出现的原因
不要只写“粗心”。
应该写具体原因:
没有进行需求复述; 没有使用提交检查清单; 同时处理多个任务导致遗漏。下次怎么避免
需求沟通后立即文字确认; 提交前固定检查Git状态; 公共方法修改前先查找引用。十、每周进行一次工作总结
每周可以总结以下内容:
1. 本周完成了哪些任务; 2. 哪些问题重复出现; 3. 哪些知识点还不熟悉; 4. 哪些工作流程需要优化; 5. 下周重点改善哪个问题。每周只重点改善一两个问题。
例如本周重点解决:
需求重复询问问题那么下周所有需求都执行:
先记录; 再复述; 集中提问; 文字确认。持续一段时间以后,就会慢慢形成稳定的工作习惯。
十一、工作之外也需要注意
1. 不要反复内耗
工作中被说了以后,很多人下班后会一直想:
他是不是讨厌我? 我是不是能力很差? 我是不是不适合这份工作?可以进行复盘,但不要无限反复回想。
建议给自己规定:
下班前用十分钟记录问题和改进方案, 记录完成后,今天的工作暂时结束。有解决方案的复盘叫总结,没有解决方案的反复思考叫内耗。
2. 保证睡眠和休息
长期睡眠不足会导致:
- 注意力下降;
- 记忆力下降;
- 理解能力下降;
- 情绪容易紧张;
- 更容易听漏需求。
工作时每隔一段时间应该:
- 起身活动;
- 远眺放松眼睛;
- 喝水;
- 调整坐姿;
- 避免长时间盯着屏幕。
十二、外包驻场开发日常工作标准流程
以后每天可以按照下面的顺序执行:
第一步:上班查看任务清单; 第二步:接收任务时立即记录; 第三步:对方说完后进行复述; 第四步:不确定的问题集中整理; 第五步:开始开发前分析影响范围; 第六步:把任务拆成小步骤; 第七步:遇到阻塞及时汇报; 第八步:完成后进行功能自测; 第九步:提交前检查Git文件; 第十步:交付时说明修改结果; 第十一步:等待需求方验收; 第十二步:下班前记录和复盘。十三、最重要的五条工作原则
原则一:不要依赖记忆,要依赖记录
人的记忆很容易受到任务打断。
重要的需求、结论和时间,都应该留下文字。
原则二:不要做完再确认,要在开始前确认
开始前多确认一分钟,可以减少后面几个小时的返工。
原则三:不要零散提问,要集中提问
先自己思考和整理,再一次性向对方确认。
原则四:不要只道歉,要改变工作流程
道歉只能解决当时的情绪,新的工作方式才能真正解决问题。
原则五:工作靠谱是最好的人情世故
请客、奶茶和吃饭只能起到辅助作用。
真正让别人愿意和你合作的是:
沟通清楚; 及时反馈; 按时完成; 主动检查; 出了问题能够负责; 同样的错误不重复发生。总结
外包驻场工作任务比较零散,沟通对象也比较多,因此更需要建立自己的工作流程。
遇到不懂的需求并不可怕,真正需要避免的是:
- 不记录;
- 不确认;
- 假装听懂;
- 反复询问;
- 做完以后才发现理解错误;
- 同样的问题多次重复出现。
只要坚持做到:
接收需求有记录; 沟通结束有复述; 开始开发有分析; 开发过程有反馈; 任务完成有检查; 每天结束有复盘。工作会逐渐变得更加清晰,别人也会慢慢觉得你做事越来越可靠。