从2011年接手C项目后,开始对需求有了更深刻的认识,需求第一次以文档具体化的形式出现,任何一个需求如果满足不了,都可能让项目直接丢掉。
关于需求,我很喜欢这么一个例子:鲜艳的花一般都是很大的,而小的花一般会散发香味,很少有那种既很鲜艳又带香味的花。仔细分析就会发现,这2种类型的花分别用不同的方式满足了对吸引昆虫的需求,繁殖的需求。一旦自身有一个功能能满足需求,它不会产生另外一个功能满足相同的需求。
其实,需求存在于生活和工作的各个方面,马斯洛理论就有很好的描述:生理需求、安全需求、社交需求、尊重需求、自我实现需求。这些层次可以应用到工作中的各个方面,老板的需求,下属的需求,产品的需求,客户的需求,客户的客户(产品最终用户)的需求,作为一个项目经理,我的工作,就是跟这些需求打交道,达到我想要的目的。
有这么一句话,需求,是理想与现实的差距,为了减少甚至消除这个差距,就产生了需求。至于如何把它做好,有几个层次:
1. 理解需求
理解需求,并不是客户说了什么,我们就按照他们来,很多时候,连客户自己都搞不清楚自己的需求,或者说他们对产品的用户的需求理解上也会有偏差。C项目的项目需求一开始是80多页的文档,详细描述了每个功能。但是随着项目深入,发现里面很多需求很多逻辑都很有问题,需要我们站在最终用户的角度来重新理解和整理。
S项目的客户一开始对我们的项目组成人员提出了工作经验5年以上,3年以上某平台开发经验的要求,那是就算是我也只有4年的工作经验,通过与客户进一步打交道,我们重新理解了客户的需求,重点不在那个平台上有多少开发经验,而是能迅速的掌握那个平台的开发技巧,学得快善于总结的人。
2. 满足需求
在合法和不违背道义道德的前提下,发散你的思维,想尽各种办法满足需求,我这里有几个例子。
C项目的第一版schedule排出来后,比客户一开始定的远远超过了一倍的时间。这时,满足客户按时完工的需求摆在了第一位。
另一个例子是以前有个项目,需要在一个月内找到5个人,以往的做法就把人头开给HR就完了,然后筛选简历面人。但是就算是一个星期内敲定5个人offer,也需要额外一个月的时间onboard,一个月内找到5个几乎不可能。那时的上司一句话点醒了我,你需要运用你已有的各种资源来完成这个事情,不能单单依靠HR。所以后面用到的各种途径:内部各个项目经理都问一遍,挖内部的;已经给offer但还没onboard的人,看看能不能先拉过来顶;以前面试没过的,可能是跟以前的项目不大匹配,把近三个月面fail的人再筛一遍,还真找到了些合适的候选人;最经典的一个是我打听得到一个员工,本身技术能力很强,觉得目前的工作难度到前景都不满意,打算离职,最后找他聊,发动大老板跟他聊,最后他觉得这个项目很有技术挑战而留了下来。
3.1 超越需求
星巴克是个很好的例子,咖啡固然好喝,但是重要的是它满足了美国人社区交流,日常休闲的生活需求;满足了中国人追求档次的逛商场休息的需求。《星巴克体验》里面有5个原则:当成自己的事情;关注细节;惊喜与愉快;包容阻力;留下印记。
S项目一开始是只有10个人左右的测试团队,从ramp up到开始日常的delivery,我们花了3个月的时间,让客户感受到我们是站在他们的角度思考问题,而不仅仅是完成交给我们的任务:
这个项目一开始文档化工作很差,在rampup阶段,我们不仅把每次的training都记录下来(找过的资料,点过的链接),还把看过的代码抽成UML图,把接触到的新技术做了很多小的demo,最后在ramp up结束的时候,整理成系统的ramp up plan,客户感觉到了我们的专业。
有一次客户给了我们一个修改测试工具bug的任务,我们利用改bug的机会,研究了整个测试的框架,并针对现有框架的问题,提供了一个全新的符合最新需求的框架,让客户印象相当深刻。
还有后面发的bug,做的任务,都是站个客户的角度,产品最终的角度思考问题,做事情。通过这一系列超过客户预期的积累,我们取得了客户的信任,半年后,S项目得到了一个好的机会,成了60+的大项目。
3.2 转移需求
当需求得不到满足时,转移需求是另外一个很好的方式。海底捞在用餐高峰排队的时候,给顾客做指甲,做头发,玩游戏,看报纸,打牌等等,都是一种需求转移。
3.3 创造需求
苹果公司是经典的创作需求的代表,如果把产品分成三个层次:能用(满足基础需求),好用(满足期望需求),很想用(增值,满足兴奋的需求)。苹果的产品都是本来可以不需要,但是看到别人用后被吸引很想用的产品。
这2年很火的双11是另一种创造出来的需求,把一个本来没有的节日硬生生造出来。
要做到这个级别很难,目前自己还没有很好的例子,以后补充。
相信随着经验的累积,对需求的理解会越来越深刻,最后引用2段话结束这篇文章:
伟大的需求分析师,可以无视用户想要的东西,去探究他内心真正的渴望,再给出更好的解决方案,或者说是用户真正的东西!
除了写代码,做设计,搞得定需求也是一项技术活。