权的人更快乐并能取得更好的成果
原则:
定义清晰的目标,信任团队并给予自主去取得成果
去中心化决策
定义清晰的目标,信任团队并给予自主去取得成果
我们还是讲一个好的需求应该用User Story的方式进行阐述,而好的User Story最重要的特点是要求陈述需求的价值,而不只是说想要什么,更要说想要什么背后的目的。
所以有时候我们会拒绝客户的“需求”(其实是客户提出的解决方案),用更少的成本达到客户更大的业务价值。
去中心化决策
日常的软件开发中经常会有一些团队级别的公共事件,比如每日站会的主持、CI纪律责任、回顾会议主持和纪要等。比如Scrum就要搞一个Scrum Master来主持每日站会。但是这些所谓的公共事件,其实除了要做什么事情,背后还有一些不大不小的决策。
如果我们不把决策权给到团队,而是握在所谓的XX Manager手上,就会导致决策信息和决策执行分离,变成敏捷里面鸡和猪的故事,引发团队内的不信任和冲突。决策和执行不一定要同一个人,但需要大家都在一个战壕里面能感同身受,能即时根据情况进行变化。
价值三:成果 优于 输出
衡量交付的价值,而不是做了多少工作
明确价值并经常度量
衡量交付的价值,而不是做了多少工作
有个俗语叫“没有功劳也有苦劳”,然而问题是我们往往衡量苦劳而不衡量功劳。
这要说世界是多么的不公平,有些人辛苦付出却一无所获,有些人轻轻松松却满载而归。
马云说,轻松付出就能满载而归的人是福将,应该多用。
因为business is business,我们不是弱势群体互助会,而是拿人钱财替人解决问题的商业组织。
虽然这个话说起来很简单,但往往因为外部的交付价值变数多并难以衡量,而内部做了多少工作比较明确。
比如经常要加班到几点几点,前天昨天又通宵了什么的,搞得自己很敬业,其实是在唱悲情戏。
如果唱悲情戏能在企业获得认可,我觉得无论对于个人还是企业都是悲哀的。即使是在华为这样的企业,非常强调奋斗,天天加班,但在衡量绩效的时候也还是拿实际产出说话,而不会因为谁加班多(但没产出)就多给钱。(当然我不反对加班, 因为有时候加班确实能交付更多的价值)
有些人代码写得不好,经常出bug,一出bug还找不到原因,跟无头苍蝇似的乱找,搞得自己很辛苦,对客户来说其实价值很低,甚至是负产出。但如果以工作态度或工作量衡量,这种人反而应该得到嘉奖。所以公平其实是相对的,要看从哪个角度去看,精益思想认为应该从外部价值来看。
明确价值并经常度量
什么是价值?
可能很多人会说,但又明确不了,就更不要说经常度量了。
我觉得我们的重要价值是高响应力、高质量、可持续维护的软件,然后应该度量每个交付项目,看看是否获得了重要价值。
比如外部缺陷率是否很少并持续降低(并持续增加需求),需求响应力是否持续提高,维护成本是否持续降低?
这些指标都可以在精益价值流中明确的度量和展现出来。
价值四: 管理流动优化价值
减少批次大小
管理队列
交付速度
减少浪费
响应客户的需求 优于 创造库存
减少批次大小
如果要我说软件开发管理中最重要的工作是什么,我觉得应该是减少批次大小。
软件管理中存在很多问题,比如需求不明确、需求易变、开发估算不准确、难测试、上线后发现没有真实价值等。
这些问题其实都可以靠减少批次大小来解决,我一般建议把User Story分解到1~2人天(当然还是要用故事点的方式,不能