每一次痛苦的开发经历之后,痛定思痛,我们会去思考究竟是哪里出问题了。其中,需求的管理是非常重要的一环,糟糕的需求管理往往带来混乱的开发活动。
需求的分析与澄清
在将需求交付给开发团队之后,需求不明确将给开发活动带来很大的不确定性,最终交付的产出也是不明确的。最终交付物的不明确,会造成团队中的不同角色之间的相互指责甚至冲突。需求方指责开发团队不尽力,没有按照需求做,测试会根据自己的理解提出各种bug,开发人员则显得最委屈,“需求也没有说要这样或者那样啊”。在这个过程中,团队的士气和凝聚力受到了损害。
有一些具体的方法,如实例化,可以帮助团队厘清需求,使得团队中各个角色达成一致的理解。而不只是一句话,“不就是实现xxx功能吗?”
需求的拆分和估算
需求澄清之后,就需要根据团队的生产率安排开发计划,这时就需要用到估算。由于一个需求往往很大,经过估算之后发现不能在一个周期内开发完成,就要对需求进行拆分。
通过拆分成一个个小粒度的需求,从而实现真正的迭代式、增量式开发。
需求的变更管理
永远不变的就是变化,需求同样如此。问题的关键是我们如何管理这种变化。
需求变化后,相应的澄清、估算、拆分都要再次进行,优先级需要重新排定,开发计划也可能要重新调整。
约束“铁三角”
需求的变更会带来需求范围(Scope)的变化,可能变大,也可能变小。对于范围变大的情况,需要根据优先级将部分需求移出当前这个迭代;如果范围变小了,则可以在迭代中加入一些需求。对于前面那种情况,我们需要避免不切实际地要求必须按照既定的日期(Time)交付既定的所有功能。
在上图的约束三要素中可以看到,在质量、交付日期、成本都不可改变的条件下,只能调整需求的范围。除此之外的其它手段都是镜中花、水中月。
愿景、目标、道路
根据产品的愿景、目标,我们会制定前进的路径。在某种程度上体现为项目的短期、中期和长期的需求。一个明确、清晰可见的需求列表是团队前进的方向。
没有方向的团队,如同没头的苍蝇,无法对未来要做的事情形成稳定的预期,经常处于与应激式的工作状态,也就不能形成稳定的节奏感。
小结
需求管理是整个开发过程的“牛鼻子”,只有这个环节做好了,才能带动其它环节,有效地将开发过程中的各个环节衔接起来,并持续稳定地交付价值。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。