========================= 转载 ==========================
Scrum的精华有两点,第一是短迭代,第二是自组织。
短迭代让团队可以形成节奏感,并在每个迭代后有机会进行回归,并在下一个迭代中提高。相比传统的瀑布流程,因为缺乏这样的反馈机制,团队的改进相对困难。
自组织的目的是让团队对目标进行自我承诺,激发团队最大的能量以达成目标。这是在公司这种权威组织中实行的小规模民主激励。对于自尊心较强的工程师团队,相当有效。不过也有缺点,那就是团队自我意识可能过强,导致跨团队合作出现问题。
但如果仅仅实现这两点,Scrum的结果可能是非常糟糕的。特别是短迭代造成两个负面后果:
第一,短迭代倾向于产生短期设计,在将来的迭代中需要经常重写。
第二,短迭代导致没有时间进行全面的回归测试,导致bug数量上升。
为了有效的解决这两个问题,Scrum必须伴随一些关键的工程实践。
第一,最重要的,是测试自动化。无论是单元测试还是功能测试,都是在短迭代下保证质量的重要,甚至是唯一手段。
第二,重构。有了自动化测试,敏捷团队应该勇敢的不断重构代码,消除技术债务
第三,持续集成。有了自动化测试,持续集成可以在最短的时间内报告问题,并要求团队将CI的错误作为最高优先级立即处理。
所以可以看出来,自动化测试是scrum最重要的实践之一。一个没有自动化测试的组织,采用scrum虽然也可以受益,但达不到“高绩效团队”的水准。
短迭代让团队可以形成节奏感,并在每个迭代后有机会进行回归,并在下一个迭代中提高。相比传统的瀑布流程,因为缺乏这样的反馈机制,团队的改进相对困难。
自组织的目的是让团队对目标进行自我承诺,激发团队最大的能量以达成目标。这是在公司这种权威组织中实行的小规模民主激励。对于自尊心较强的工程师团队,相当有效。不过也有缺点,那就是团队自我意识可能过强,导致跨团队合作出现问题。
但如果仅仅实现这两点,Scrum的结果可能是非常糟糕的。特别是短迭代造成两个负面后果:
第一,短迭代倾向于产生短期设计,在将来的迭代中需要经常重写。
第二,短迭代导致没有时间进行全面的回归测试,导致bug数量上升。
为了有效的解决这两个问题,Scrum必须伴随一些关键的工程实践。
第一,最重要的,是测试自动化。无论是单元测试还是功能测试,都是在短迭代下保证质量的重要,甚至是唯一手段。
第二,重构。有了自动化测试,敏捷团队应该勇敢的不断重构代码,消除技术债务
第三,持续集成。有了自动化测试,持续集成可以在最短的时间内报告问题,并要求团队将CI的错误作为最高优先级立即处理。
所以可以看出来,自动化测试是scrum最重要的实践之一。一个没有自动化测试的组织,采用scrum虽然也可以受益,但达不到“高绩效团队”的水准。