如何更加完善的考虑和完成需求

首先,我们需要明确的一点是,用户也无法清晰的知道自己的需求是什么。所以我们在跟用户讨论需求的时候,不要去问用户想要什么功能,否则往往会陷入细节却无法得出真正想要的结果,更好的方式是去引导用户讲述自己的使用场景,以及为什么会有这样的使用场景,自己的痛点是什么。收集过后,使用 MECE 法则,针对用户的场景和痛点穷举出可能的需求及其解决方案,列在白板上,然后对这些列举出来的方案进行抽象归类,这样就形成了一个一个的模块,然后对各个模块进行去重和提炼,提取出各个模块的核心,建立他们之间的关联,然后形成文档之后,与用户再进行多次沟通和交流,多次完善需求和方案,最终达成一致。

在完成需求的时候,需要对各个模块进行充分的评估,然后确定出各个模块的优先级和大致的实现顺序,然后再对各个模块进行更细粒度的拆分,建立起相关的任务,与相关方一起评估实现的难度和方案,讨论得出实现的时间节点(一定要预留足够的 buffer),对于那种有依赖方的需求一定要提前进行沟通,保证正式开发之前依赖已经准备就绪,而不是等做完了某些需求,等要做有依赖的需求才发现依赖方还未准备就绪,这样会有极大的延期风险。实现需求的之后最好能够用 TDD 的方式进行开发,这样可以更明确的了解到需要实现到什么程度,也能在一定程度上保证和提升开发的质量。