主题:【原创】闲聊敏捷开发——SCRUM(一) -- 哈酷
总结上一篇,简单概括就是说,需求变更是不可避免的,可以认为是常态,SCRUM作为解决需求变更的机制应运而生。
我的理解,最最能够概括SCRUM机制的话只有一句:
SCRUM就是打算以市场经济体制来对应需求与供给。
每当我说出这句话,总有人会说“老白,你也太扯了吧,有关系么?”。
有的,我讲完以后也许你会发现哲学层面上,两者高度统一。
客户在SCRUM项目中的角色,不是发布指令的上帝,而是购买者。上帝说要有光,于是就有了光?不对,上帝要有光,先得问问搞个光花费多少,然后上帝想想还有没有必要有光,然后再决定要不要买。在SCRUM中,这样的上帝被叫做product owner,简称PO。可能不止一个人,但是他们的声音必须是一致的,如果不一致,回去讨论完了再出来。
在SCRUM中,PO只是购买者,市场供给者就是TEAM。PO花费的钱是未来一定时间内TEAM成员们的工作总时间,PO的需求叫做story。
如果TEAM的人数不变,TEAM未来一定时间内的工作总时间就是不变的。把这个总时间以point来计算,发到PO手里,然后让PO用这些Point来购买他们的需求。所有的需求加在一起成为客户最后的产品。
客户=PO,
开发组=TEAM,
开发组未来一定时间内的总工作时间=PO可以花的‘钱’=Point
客户的需求=story。
PO拿着point来向TEAM购买他们的story。
既然是购买,那么总得有价格吧,每个story都有自己的价格,价格单位就是point。
此外还得有个规则的维护者,叫做SCRUM MASTER
先约定好一个point和时间的换算率,比如一个人工作1周为10个点数。那么如果TEAM里面有10个人,那么一周的总点数就是100点。我先不提其他什么factor,不重要,先就这样算。
演出开始了。
既然讲需求变更,那么第一个就是需求(story)能变更么?
能啊,如果这个story还没有开始做,就可以变更,不过如果story变更了,那么价格也变更了。(塑料的把手2块钱,镀铜的10块钱。我比较喜欢用装修的例子,容易换位思考,大家其实都当过客户)
如果这个story已经做过了,那么任何变更就是另一个story,随便你什么名字,polish, improvement, jump……,随便,都是另一个story了,另外花钱买。
较真党问如果正在做怎么办?我后面会详细说。
先要说一下价格怎么来?既然是市场经济体制,价格当然是市场定咯,注意,客户听到这里要光火了,TEAM自己决定?他开个天价我怎么办?等等,你怕不怕买到天价的面包?不怕,为什么?因为市场是有竞争的,不买你的可以买他的。那么我们这里的市场是TEAM和谁竞争呢?有些同学可能想到了Multi-TEAM,这个我先不说。由简入繁,只有一个TEAM的情况下,怎么处理呢?
SCRUM是这样解决的,开一个会,叫做Poker-plan meeting,用来给PO的story进行估价。在这个会上,PO先解释自己的story,比如这个story叫做‘卧室的房门’,需求是门上用镀铜的把手,油漆用清水的,贴面用胡桃木的,门正中央有个镀铜的福字……
如果TEAM觉得PO讲的还是不清楚,当场提问,比如,这个‘福’字要多大?镀铜的把手在什么位置,门朝里面开还是朝外面开?门套是不是一起做?……
PO(们)讨论了一下,回答完了TEAM的问题,然后TEAM可以估价了。
怎么估呢?每个TEAM成员自己手里拿一付扑克牌,从牌里抽出代表自己的价码的那张,说1,2,3一起摊牌。由于事先不商量,价码有高有低,通常差异很大,TEAM成员各自阐述一下理由,然后再出一次牌,如果还是差异很大,那么再商量出一次,一般不超过三次。第三次如果差异还是很大,那么SCRUM MASTER(以后我简称SM,想歪的去面壁)宣布价格为平均数,此时SM把各自谁出了什么价记录下来,将来有用的。
这个流程基本已经过滤掉‘天价’的可能性了。在我实际项目运用中也确实如此。
大概分析一下天价牌可能出现的几个情况:
1, 故意哄抬物价,由于TEAM成员此时出牌并不知道这个story将来会谁做,他故意出天价牌,看不到直接好处,由于他的天价牌,倒是需要他做出技术上的解释的。所以这种情况可能性很小。
2, 个别成员经验不足,那么第一次摊牌之后,大家商量一下,解释完了,第二次摊牌的时候这张天价牌也自然消失了,与此同时,在解释商量的过程中,这个经验不足的成员也因此学习提高了一下(这是个SCRUM的副好处)。
3, 大多数成员经验不足,只有极个别精英成员意识到这个story不像看上去那么简单,那么这个精英会和大家解释大家没有看到的陷阱。如果能说服大家,下一轮摊牌,大家会提高点数的。如果说服不了,那么也无所谓,精英保留自己的高价牌。SM会记录下各自的出价的。
但无论大家有没有达成共识,三轮以后,报给PO的价码只有一个。PO把刚才说过的细节写下来,然后TEAM的价格也填上去,SM作证。这个story就有点像是一个合同了(合同的交货日期不用现在定,后面再说)。
由于是‘市场经济体制’,这个决定story价格的会议非常重要,需求在这里由价格来反映。一定要好好开,需求问题都得问清楚,写下来。之后反悔就有字据了。我的经验表明,之后绝大多数问题追根溯源都能发现是这个poker-plan 没有开好。
总结这个poker-plan会议的要点。
1, PO充分表达story的细节
2, TEAM充分了解story的细节(觉得不清楚的要问清楚)
3, 出价过程要被记录下来
4, 价格一旦被敲定,story内容不再修改。
5, 如果story内容要修改,这个会重开,重新估价。
6, 如果因为其他story牵扯到这个story的价格必须出现跟进变化,这个story可以重新开会估价。
开过poker-plan会后,相当于客户去市场上逛了一圈,了解了一下他需求的东西的价格,至于买不买,先买什么后买什么,还没有定。之后就要讲到优先级和sprint了。
本帖一共被 2 帖 引用 (帖内工具实现)
- 相关回复 上下关系8
🙂总人数×总时间 1 哈酷 字169 2009-06-10 02:27:50
🙂明白了,换种说法,可以消费的人月,另外一个白痴问题 1 羽羊 字244 2009-06-10 02:33:56
🙂一点不白痴,很实际的问题 5 哈酷 字504 2009-06-10 03:20:58
🙂【原创】闲聊敏捷开发——SCRUM(二)
🙂我觉得让多个TEAM成员来开价不太可能 2 颓废客 字262 2009-06-12 18:29:50
🙂agile里的做法相反 3 风北客 字880 2009-06-14 08:13:29
🙂很好的问题,很多人问这个 1 哈酷 字365 2009-06-14 05:57:10
🙂这个poker-plan是否可以这样理解 qingttt 字156 2009-06-12 00:26:36