卖电脑记录纸怎么样(从需求变更看需求获取,纸和笔比电脑更靠谱)
纸和笔
你是不是经常碰到这样一个场景:客户需求提交人都认识,需求基本明确,再把他们聚在一起开会只是浪费时间。但是,突然有个没见过的人提出了新的需求。而他是公司的审计。这些新需求非常困难,甚至需要推翻整个系统。这时你是不是想骂:客户是傻*,提前没说这些需求。
所以,在做需求时我们要确认已经统计到所有需求提出者。如果有遗漏,就一定会有新需求打乱你的计划。作为一个产品经理,你必须要明白和客户以及其他需求提出者沟通需要反复确认,反复了解。
在美国,立法者每两年都会修改法律,甚至修改了银行法。银行的人只能修改系统来适应新法律。这种变化就是系统的需求。未来是来自过去的延续,你研究了过去,就可以得到更多的不可预见的需求。你可以看在你的银行过去一年发生了什么,或者其他银行,或者其他业务的情况,或者网络的变化等。做好准备,我们知道会再发生什么,因为在过去发生过的将来还会再发生。这就是最好的预见未来需求的方法。
银行系统
以美国为例,现在的企业会雇佣人类学家或社会学家,作为一个需求获取团队。他们从各个方面仔细观察人们如何使用系统。这个观察会持续很长一段时间,最后总结人们使用习惯和使用环境的变化,来预测下一阶段系统需要对应适应变化的需求。
以我工作中的例子来说:我的用户是喜欢用菜单还是用快捷键来建立一个档案,系统现在都能记录这一点。如果人们改变了工作方式,系统也需要适配改变。也就是说这个需求是要求系统可以随人们的改变而改变。
比如谷歌(Google)的竞争对手开始了什么新的东西,谷歌就要作出回应,这些是没有办法预计的。另外还可以通过模拟来预见需求。在建系统之前,先假设我们就是这个系统。通常在新系统开发之前把人都聚在一个房间里。每个人扮演系统的一个角色,我做记录客户订单的软件,你是计算的,你是负责发货的,还有人是负责现金和支票记录追踪的,还有人做不同的客户。
这样在单位时间内的同一场景下,我们可以明确系统的使用方式。以避免犯严重的错误。因为之前你只看到各个部分,对于他们之间怎样一起工作没有认识。
模拟使用场景
有时可以做电脑模拟,比如各种交通阻塞的情况,去发现长龙的起源在哪里等等。这些事情人们可能不太愿意投入地去做,因为它很花费时间和金钱。
交通模拟
如果需求真的变了,要学会聪明地对待变更是必然的。我从没见过所谓能够准确无误理解客户需求的人。
我们可以一丝不差地编程,但永远不可能一丝不差地知道人们要什么。所以只要需求过程一开始,就要意识到我们永远不可能准确无误地捕获到需求。
当你构建系统时,你会不断地发现不同的需求。在软件开发过程中要把这点加进去,这很有用。
大家可能听说过敏捷编程,这种方法是说系统建了一点儿,你就去和客户确认:这是你要的吗?他们说不完全是,这里有些不一样,忘了告诉你这件事,然后你再回去做出些不一样的东西。事情不可能一次搞定,一定会产生变化。
有一种应对需求变更的方法,那就是需求管理。你将需求存放在一个地方,和你管理代码的方式一样,用同样的方法来控制变化,这就需要有一个需求文档系统。
记得我们构建美国空间追踪系统时,我们服务的对象——政府的代理机构,总是不断地要求变更。然后我们开始注意到上周才提出的变更,到一周后可能又要改回原样
。我们的控制方法之一就是做任何变更前先暂时扣在手里2周,如果2周后他们不再变,我们再处理它。总的来说,我们当时做的就是告诉客户变更对他们而言是有成本的。
如果你的客户可以无休止地提出变更,一点成本也没有,那么你不可能管理好你的需求。
做工程需求分析时有两件事很重要:每个需求都包括它的成本和是否值得我们去做。这种成本必须是客户能理解的。
以我碰到的案例为例:客户们坐在办公室里,想到什么好主意就说“好吧,我们要做这个、那个”。我们说这可得花掉上百万,但对于他们来说这是不起作用的,因为他们花的是公司的钱。
不妨用这样的方式让他们个人付出成本:如果你要我们考虑你的主意,你就要坐下来和我们一起工作,直到我们有了清晰的需求候选。如果你不愿意花时间来和我们说清楚确切要的是什么,我们就不会把它作为需求。这是控制需求变更的一个根本依据。你不得不让人们在要求变更时有一定的成本,不然他们就会变来变去。通常大多数情况就是这样的。
需求变更管控
极端的情况是甚至要到了系统构建好你才知道需求是什么。假设你在互联网上开始做卖玩具的生意,你从前没有做过这样的系统,所以不可能在做之前就得到确切的需求。
只有在真正投入其中之后才明白业务是怎样。这时你可以有一个样板需求。我们无论做什么都要很容易更改,不把任何事情完全确定下来,因为只有当系统开始使用后才会有新的需求。许多或者大多数的系统构建永远不会结束,在整个需求过程中不断会有新的需求。
以前我们使用瀑布过程,在设计或写代码之前把一切东西都做好。现在就不一样了。你的软件过程必须计划成在进行中随时都会有新的需求和澄清工作。每向世界发布一件产品,只是此阶段需求的结束。
一有新产品,系统就要变化。必须就计划成这样,时刻都要将变化在项目中的成本计算在内,因为每做一次变更都需要花一些时间。因此我们在系统的很早阶段就对需求的变更订下了非常严格的规则。但另外的情形下你可能需要在整个项目中都安排需求变更,这可能会持续多年。
拥抱变化
记录需求最有效的工具是铅笔和纸,我喜欢用即时贴,或者用胶带把纸贴到桌子上,有时是地板上。我们把每个想法写在一张纸上,放在地板上,移动它们,把它们放在一起看,把相似或相矛盾的放在一起,和人们交谈,就用这些纸片工作,澄清问题。最糟的就是用电脑,尤其是最开始的时候。如果这样做可就大错特错了,太复杂了。它在你和你要获得需求的人中间平添一道阻碍。
另外的工具是,你要让你的耳朵保持工作状态,要听仔细,听清楚。也就是说你要听清别人说什么。程序员常常在寻找需求时认为他们要告诉客户,说服他们什么才是他们想要的,但这不是他的工作。需求是倾听,听清楚别人说什么,确认他们理解自己在说什么。
纸与笔记录
做好了这件事才轮到我们开始说:你不能同时做这个和那个等等。这些就是需求的工具。其它任何工具我都不会去用。有些不一样的地方就是,有些人用卡片,有些人不同事情用不同颜色的纸,这都可以,但不要搞得太复杂了。
简单的项目不应该用很多的工具或者软件来捕获需求。一旦你对需求有了很好的理解,当然可以将它们放到电脑里,这样更容易管理,或者做些小的更改。你从纸和铅笔开始,有时对于一些系统或者项目来讲这就足够了。项目最多有两周,1个月或者6周就结束了,把所有东西都输入电脑里太浪费时间。对于大一些的项目,有了基本想法之后,可以放在电脑里,根据事情的规模而定。
如果项目在全世界好几个国家进行,你应该使每一个人都可以得到它,可以放在服务器上,这样每个人都可以访问。我没有说铅笔和纸是唯一可以使用的工具,只是它的是最开始要使用的,也是最简单的工具。产品经理必备的技能是要善于倾听,擅长沟通,在写作上清晰易懂。你也许只是一个可怜的软件开发人员,而面对的可能是高层的大老板,非常严厉又精明,你要能够和他们交谈。
你要在不懂的时候说我不知道而不去猜。这种个人技能不是每个人都擅长的。你必须要能和人们打交道。如果你不擅长这些就不要做需求的工作,让更有这方面的特长的人去做。
擅长写作
在做需求时,我还会去找那些写作好的人。我发现这个圈子里的人们在写作上没有很好的练习。如果他们不能用中文写得很清楚,就做不好需求的工作。以上是我建议产品经理去发展的技能。