写在前面
这期间,实现了很多的产品需求,也积累了一些经验。这里稍作总结,希望能给新入行的前端小伙伴们一些参考。
做好需求的关键点
要说如何做好一个需求,展开来讲,可以写好几篇文章,这里只挑重点来讲。
最基本的,就是把握好 3W :what、when、how。
what :做什么?
when :完成时间?
how :如何完成?
需求场景假设
为了下文不至于太过枯燥,这里进行需求场景的模拟,下文主要围绕这个“需求”,从what、when、how 三个点展开来讲。
假设现在有个论坛的项目,产品经理小C提了个需求 “给论坛增加评论功能” 。作为 前端工程师 的小A接到需求后,该如何高质量的完成这个需求。
项目名称:兴趣论坛。
项目组主要成员:前端工程师小A,后台工程师小B,产品经理小C。
产品需求:给论坛增加评论功能。
备注:此时我们脑海里浮现的应该是下面这张图。
What:做什么?
可能有同学要拍案而起了:Are you kidding me?不就加个评论功能吗,我还能不知道该做啥?
答案很残酷: 是的 。
根据过往经验,不少前端同学,包括一些前端老司机,做需求的时候,的确不知道自己究竟要做什么。导致这种情况发生的原因有哪些呢?
产品经理:提的需求不明确。
前端工程师:没做好需求确认。
情况1:产品需求不明确
说到产品需求不明确,前端的兄弟们估计可以坐一起开个诉苦大会,因为实在太常见了。典型的有“拍脑门需求”、“一句话需求”、“贴个图求照抄需求”。
回到之前的例子:给论坛增加个评论功能。
别看连原型图都贴出来了,其实这就是个典型的“需求不明确”。比如:
是否需要支持富文本输入?
是否需要支持社会化分享?
发表评论后,评论怎么展示?
。。。
也许经过一番确认,最终的需求会是下图所示。遇到这种情况,一定要做好 需求确认 ,避免后期无意义的返工和延期。
情况2:未做好需求确认
再次强调一下,无论何时,一定要做好 需求确认 。再有经验、再负责的产品经理,也几乎不可能提出“100%明确”的需求。
同样,回到上面的需求。
现在已经确认了,需要支持富文本输入、需要展示评论,这就够了吗?其实不够,还有很多需求细节需要进一步确认。比如:
· 评论最大支持输入多少个字?(非常重要,关乎后台存储方案的设计)
· 1个中文算1个字,多少个英文字母算1个字?(产品语言、技术语言 之间的沟通转换)
· 输入内容过长,如何进行错误提示?(交互细节)
· 输入内容过长,是否允许提交评论?如允许,是对评论内容进行截断后提交?(容错)
· 用户未输入内容的情况下,评论框内默认提示文案是什么?(交互细节)
。。。
可以、需要确认的内容太多,这里就不赘述。
看到这里,读者朋友们应该明白,为什么前面会说,几乎不存在“100%明确”的需求。
很多需求细节,同时也跟技术实现细节强相关,不能苛求产品经理都考虑到。这种情况下,作为开发者的我们应该主动找出问题,并与产品经理一起将细节敲定下来。