作为软件开发团队的一员,你是否经常为客户时不时提出来的需求改动而烦恼?作为软件的交付客户,你是否常常抱怨开发团队无法满足自己提出来的需求?
让我们来看这么一个故事:
"一天,一头猪和一只鸡在路上散步。
鸡看了一下猪说:“嗨,我们合伙开一家餐馆怎么样?”
猪回头看了一下鸡说:“好主意,那你準备给餐馆卖什么呢?”
鸡想了想说:“餐馆卖火腿和鸡蛋怎么样?”
猪说:“不开了,我全身投入(火腿是一次性资源),而你(鸡蛋是可再生的)只是参与而已!”
当一个人要付出全部,而一个人只付出部分,两个人无法长期在一起合作,生存。当自己只付出部分,如何要求他的伙伴一起奋斗付出呢?然而问题不在于此,问题在于鸡老喜欢下决策,并且指挥着猪去执行。所以,在製定策略,拍板决策执行的时候,是不允许鸡这样人物出现。只要这个项目对他毫无影响,他的利益与该项目没有直接关係,我们将不考虑此种人在该项目的任何决策性意见(需要考虑的是建议性意见)。
在Scrum的项目管理里,区分角色是一项重要的工作。把有兴趣关心,并无利益或价值牵扯的人,排除在项目决策团队以外,明确清楚地知道决策者是那位,听从他的指挥安排,是敏捷项目开发的重要方法。
"猪"角色 (Pig):
猪是全身投入项目和Scrum过程的人;they are the ones with "their bacon on the line."
产品负责人 (Product Owner)
产品负责人代表了客户的意愿。这保证了Scrum团队在做从业务角度来说正确的事情。产品负责人编写用户故事,排出优先级,并放入产品订单。
As described in the co-author of scrum ken schwaber's book , product owner should be the pig as he/she has the responsibility and accountability in the project.
Scrum主管 (Scrum Master)
Scrum 主管促进Scrum过程,他的主要工作是去除那些影响团队交付沖刺目标的障碍。Scrum主管并非团队的领导(由于他们是自我组织的),而是负责屏蔽外界对开发团队的干扰。Scrum主管确保Scrum过程按照初衷使用。Scrum主管是规则的执行者。
开发团队 (Development Team)
负责交付产品的团度。由5至9名具有跨职能技能的人(设计者,开发者等)组成的小团队完成实际的开发工作。.
"鸡"角色 (Chicken):
鸡角色并不是实际Scrum过程的一部分,但是必须考虑他们。敏捷方法的一个重要方面是使得用户和利益相关者参与到过程中的时间。参与每一个冲刺的评审和计划,并提供反馈对于这些人来说是非常重要的。
用户
软件是为了某些人而创建!就像“假如森林里有一棵树倒下了,但没有人听到,那么它算发出了声音吗”,“假如软件没有被使用,那么它算是被开发出来了么?”
利益所有者(客户,提供商)
影响项目成功的人, 但只直接参与冲刺评审过程。
产品经理 (Product Manager)
为产品开发团体架起环境的那个人