Conversation

沟通是需求管理最重要的部分

需求如同迷雾一般抓不住,捉摸不定,内在往往被表象所蒙蔽。可需求又总是不断的在人与人之间流动传递,这个过程十分容易造成所有人的对需求的理解是不一致的。这会产生大量的常见的浪费:来回的返工、修Bug;PO和团队前期调研不足,对需求没有充分认识,在迭代中频繁的变更需求导致一个功能反反复复的做等等。 那么到底需求的本质是什么?并不是我们常在需求文档中看到的各种解决方案。而恰恰是这些客户或者PM表达出来的解决方案掩盖了用户的真实需要(need)。这些need可能是某个用户的问题,可能是用户想要达成的目标等。Need如同宝藏一般,需要我们去挖掘。因为大多数时候,大家表达自己的需要的时候,往往通过具体的解决方案来描述的。直接把解决方案拿来当做需求往往会导致用户的问题迟迟不能被真正解决,还可能会带来负面效果。其实用户有问题来找我们解决,是因为我们是这方面的专家,可我们却没有针对用户的问题设计解决方案,反而使用用户告诉的解决方案。这本身就不符合逻辑。 还有很多时候,用户自己都不一定清楚自己真正的需要。我们需要通过访谈,观察等形式和用户一起来挖掘他们的真实需要。

Agile

被我们工作影响的人

上次说到我们需要一个明确的目标,那么实现目标最重要的是什么?人!人是第一要素,我们需要最先考虑的。 在实现目标的过程中,我们需要改变哪些人的行为?谁能帮助我们产生我们想要的效果?谁又会阻碍我们实现目标?谁会被我们工作影响?如果我们是在做产品,那么哪些人是客户,哪些人是用户也是需要我们想清楚的。在我们决定开始做什么功能之前,不妨先把这些问题回答一下,看看我们是否能得到一份清单。现在大多数需求都忽略了这点,大家都更多的专注于我们的软件应该做什么,而不是哪些人可以从中受益,哪些人的情况会变得更糟。 我们的祖师爷Gerald Weinberg曾经将质量定义为“对某人的价值”。如果一个功能没有给任何人带来价值,这个功能做的再华丽,再完美有什么用呢?软件不是在真空中独自运行的,它总会涉及到一些人。这些人都有各自的需要,目标和偏好。如果我们真的想要达到我们的目标,应当先考虑这些人,而不是只想着交付什么软件功能。