你花了两天时间写了一份需求文档,每个按钮的位置、每个页面的跳转逻辑、每个异常情况的处理方式都写得清清楚楚。你觉得自己把一个月的沟通量都压缩在这份文档里了。然后开发做出来的东西,跟你的预期差了十万八千里。
你很崩溃:我写得这么详细,你怎么还能理解错?开发也很崩溃:你写了几十页,我看完之后根本不知道你到底最在意什么。
详细不等于清晰
这是需求沟通里最常见的一个误区:把详细当成清晰。你觉得写得越多对方理解越准确,但实际上文字越多,信息的优先级越模糊。对方在十几个要求中无法判断哪条是核心、哪条是不做就往死里砍的、哪条是"有就更好没有也无所谓"。
开发看需求文档的方式跟你看完全不一样。你不是在看自己的文档,你是在回忆你已经想明白了的东西。而开发是在用你的文档构建他脑子里的模型。如果这个模型的骨架没搭对,你往上贴再多细节都没用。
好的需求文档不是写得最多的,是能让别人在最短时间里建立正确心智模型的。
怎么让需求文档真的管用
第一,在最开头用一句话说明这个需求解决什么问题。不要一上来就讲功能,先说背景和目的。开发如果连为什么要做这件事都不知道,他一定会按照自己的理解去补全缺失的信息。
第二,给需求分优先级。哪些是必须做的,哪些是做不好会出事的,哪些是锦上添花的。用明确的语言标记出来。
当你把所有的功能都标记为重要的时候,就等于什么都没有标记。
第三,用场景代替描述。不是功能点写"用户点击按钮后跳转到页面B",而是写在什么场景下用户为什么要点击这个按钮、他希望看到什么结果。场景能让开发理解用户的真实意图,而不仅仅是操作逻辑。
最后,发完文档不等于沟通结束。花十分钟跟开发当面过一遍你的核心逻辑,让他有机会问问题。十分钟的面对面沟通,可以避免十天的返工。
需求文档不是用来自证的——不是证明你想得有多全面。它是用来让对方跟你在同一个画面里的。写得越想让对方省心,对方做出来的东西就越让你省心。
夜雨聆风