做项目以后,我开始重新理解“完成”

写出功能只是开始;能被真正打开、使用、维护,才更接近完成。

以前我理解的“完成”很简单:功能写出来,页面能打开,任务就可以划掉。真正做过一些项目后,我才发现,代码停止变化的那一刻,往往只是工作刚刚进入后半段。

一个功能在自己的电脑上能运行,不代表别人打开也能用;桌面看起来整齐,不代表手机不会错位;按钮能点,不代表点完以后真的发生了正确的事。许多问题都藏在“看起来已经完成”之后。

从交付功能到交付结果

现在我会把完成拆成几件更具体的事:入口找得到、流程走得通、错误有提示、手机能使用、重新打开后状态仍然正确。最后还要在真实环境里再走一遍,而不是只相信编辑器里的结果。

这套标准看起来让工作变慢了,实际上减少了反复。越早把验证放进过程,越少需要在最后靠运气收尾。

现在的完成清单

  • 功能解决了最初的问题,而不是只完成了描述里的动作。
  • 桌面和手机都能正常使用,重要入口不会消失。
  • 异常情况不会悄悄失败,用户知道下一步该做什么。
  • 上线后的真实页面经过检查,测试产生的进程和文件被清理。
  • 以后再回来时,仍然能看懂它为什么这样设计。

我仍然会低估边界情况,也会遇到测试没有覆盖的问题。但至少现在,“完成”不再意味着我写完了,而是这件东西已经可以被可靠地使用。