传统的世界运作方式已经被打破,对于任何一个具有复杂性和创新性的活动而言,传统的管理方法都已经失效了
项目管理都要实现两个目标:可控性与可预测性。瀑布式方法会导致开发过程不能按照计划实施时,产出结果不能将前期的美好设想转变为现实。这种传统的工作方法容易导致人们因为无法达到目标而产生挫败感,进而导致项目交付延期,费用超出预期,甚至是完全失去可控性和可预测性,以失败告终。
美国医改网站Healthcare.gov就是采用瀑布式开发方法开发他们的网站,结果只在最后的有限的时间里完成对所有程序的测试,导致他的后端漏洞百出。
我认为,对于用来指导瀑布式开发的工具之一——甘特图来说,是不是可以不将其用来一味地制定那些强制执行的计划,而是运用到项目或者每阶段冲刺结束之后的回顾与审视中去。
Scrum的方法在用来管理项目时就能充分实现对不确定因素的控制,且具有鲜明的创造性,整个的运作过程是围绕着学习建立的。这使得一个团队不仅可以评估已经取得的成果,还可以评估取得这些成果的方法,并把成功的方法/经验放入工具箱中,以后也可以作为工具拿出来使用。这样可以帮助团队更好地自我组织,来提高团队工作的效率以及质量。而有的时候失败的原因不是前期计划做的不实际,而是交付周期长,其中客户的需求产生了变化。这时Scrum方法中降本增效的小步迭代就允许我们不断调整,来适应不确定性。
“障碍”的概念是由丰田汽车公司最先提出的,该公司致力于找出障碍并设法清楚障碍,来减少浪费,使效率最大化。一系列检查与调整不断循环的过程,需要团队成员有思想,能自省,有实事求是的精神和自我约束的意识。
Scrum方法的表现形式就主要体现为经常评估当下所做的事情,比如:是否朝着正确的方向迈进?存在哪些影响效率的障碍?如何才能做的更好?这样团队可以在真实的环境下不断调整行为,保持其在正轨上或及时更新为更正确的轨道。
反思Healthcare.gov的失败案例:有复杂性的开发工作不应在全流程开发完毕后才进入测试环节,而是开发人员、测试人员和管理人员应该团结一致,持续不断地发现问题并且实时修改。成员的频繁交流会提升内部信息的透明度,减少信息差,提高做事效率。交流时可以运用计划扑克这样的匿名评估工具帮助有效沟通,避免从众效应和光环效应。
同时他们对前端页面过于精美的追求也影响了他们对后端开发的注意力,在开发冲刺中要先明确任务的优先级,哪些任务能够带来最大价值,哪些就应该优先完成。
Scrum方法提倡人们在工作时一次专注于一项任务。犹他大学做过的人们对多任务处理的实验结果表明:人们对自己同时执行多项任务的能力往往有错误的判断。环境改变的确会产生成本,这时就能体现给任务优先级排序的重要性,因为这能减少同时执行多任务时任务转换造成的损失,增加相同时间下的产出。另外,成员数量过多或者新成员的加入也会在不同程度上影响进度,人数上升会使团队内沟通渠道呈指数增长,导致信息透明度和沟通效率下降。由于这种方法很依赖团队协作,也就是“1+1>2”的效应,所以团队应保持小而精以及人员流动上更要注意分配。
当遇到问题时,我们要从规则制度上找问题。电击实验、神学院实验还有新联合汽车制造公司都表明遇到问题不要归因于个人,要从制度、流程、系统中找问题,因为正是它们影响着人的行为。
Scrum方法需要团队持续循环PDCA,同样适用在做其他事情上,比如教育、扶贫、军事管理等等。