项目级Scrum再进一步,就是成立Scrum工作室——一个长期运营的、可以让Scrum软件项目快速启动的、一个全新的独立组织。有些公司用Scrum工作室来运营所有项目,也可以只将达到一定复杂程度、规模或者风险的项目放到工作室中运营。只在工作室中使用Scrum避免了在企业里全面推广Scrum的困难和可能遇到的潜在问题。
Scrum工作室是一个学习形的组织
在工作室里的所有工作都是基于Scrum的,每个在其中开发的项目都对后续项目的知识、技术、生产效率和价值作出贡献。随着越来越多的项目在工作室中进行,工作室也就能够积累更好的设施、实践和更多的知识。因此,每个后续的项目都能够拥有更高的生产率和价值。工作室拥有自己独特的文化,带来变化并使用Scrum为软件开发和管理提供必要的支持。任何人都可以使用这种文化开发软件或者系统,但是他们都必须学习并遵守这种文化的规则。只有那些愿意采用Scrum的人才能使用工作室,而其他人则需要呆在原来的地方用他们原有的方式继续工作。
工作室经理
成立工作室的第一步就是要找到一个能够建立并且管理工作室的人,这个人是工作室的经理同时也是Scrum Master。他的职责就是用手上最好的设施让工作室运营起来。作为工作室的经理:
-
应该拥有多年担任Scrum Master和管理Scrum环境的背景。
-
应该深刻理解软件开发。
-
应该具有管理和引导变革的技能。
-
能够为工作室的开发人员提供培训和辅导。
-
能够保证在项目上的Scrum Master都能称职地工作。
-
能够帮助项目优化产出。
-
能够逐步完善工作室的设施,从而使后续的项目能够更高效和有效地进行。
工作室经理需要寻遍整个软件行业,为工作室寻觅最好的、性价比最高的软件、实践和自动化测试工具。这些软件和工具可以是非常简单,也可以是非常成熟的,选用什么视乎工作室运营时间长短。 工作室经理的任务就是提供一个环境,让大家能够以尽可能低的成本开发出具有竞争力的创新软件。最低限度是要让工作室成为一个能够迅速启动Scrum项目的地方。
提供培训
第一次进入工作室的员工必须参加一个为期两天的Scrum基础培训课程。在课程中,他们将学习Scrum及其基本理论和原理。学员们还需要经历大量的模拟场景训练,直到他们能够理解Scrum项目运作的感受和心流(flow)。基本的规章制度、会议举行的时间、Sprint长度等等都需要在这两天里确定。
向团队成员简要介绍工作室中各种设施,这样他们就能够知道工作室中有哪些设施,如何使用这些设施以及如何寻求帮助。接下来还需要进行团队建设培训。团队成员之间通过参与一些解决问题和冲突的练习来加深对彼此的了解。每个人都有各自的想法,因此这些问题和冲突的场景在自组织的团队里很常见的。
工作室的使用协议
使用工作室的Scrum团队成员都需要签署工作室的使用协议,这份协议表明了工作室的使用者应该遵守的规则。下面是一些典型的使用协议中可能包含的条款。
– 每个项目都会基于Scrum流程及其经验主义的原则、自下而上的智慧和自我组织。
– 每个项目都会有一个Scrum开发团队、一位产品负责人和一位Scrum Master。开发人员最多不超过9个。
– 项目的Scrum Master必须拥有管理Scrum项目的经验,否则,他将必须接受Scrum工作室教练的指导。
– 产品负责人会积极地和团队协同工作,帮助团队澄清需求、检视工作和增量、利用经验主义优化项目的价值从而达成项目愿景或者目标。
– Scrum(开发)团队中的所有成员都掌握了能够将产品负责人的需求转化成潜在可用的功能增量的技能。
– 每个增量都要符合Scrum对“透明”和“完成”的定义。
– Scrum团队会使用工作室提供的现代工程实践,如果需要的话可以接受工作室的使用培训。
– 项目会遵守组织的标准和工作室的规则、流程以及标准。
– Scrum团队会尽可能地留在工作室工作,所有团队成员都要在项目上全职工作。
– Scrum团队会利用工作室的指标帮助自身管理工作。
– Scrum团队成员会根据自己在项目上的经验为工作室的知识体系添砖加瓦。
工作室的设施
刚开始时,工作室一般只提供一些基础设施,更多的则是提供Scrum的实施指导。随着工作室带来的好处越来越多,对工作室设施的投入也会越来越大。有了这些设施,任何项目都可能在工作室中开发。这些设施不常在主流的软件开发环境中出现:
1. 工作设施:Scrum团队在工作室的设施和支援团队的帮助下茁壮成长。这就意味着Scrum团队成员所拥有的空间足够让他们在开发软件的过程中自由互动,每个人的位置都能够容纳两位或者三位开发人员一起工作。工作室的座椅必须舒适,而桌子则需要可以自由活动。互联网、局域网和开发服务器都应该准备就绪,服务器还应该预装上Scrum团队需要的开发工具。硬件设备包括投影仪/电子输出设备(大屏幕电视)等,都安放在会议区,还需要放置足够的白板。工作室内还需要为到访的客人和临时加入的团队成员准备充足的空间。如果需要的话还可能根据实际需要重新调整工作空间。
2. 软件开发工具和实践:Scrum团队必须拥有完全自动化的开发环境,这样一旦有新的软件或者变更,就能马上进行测试。这种测试可以是大粒度的,如功能测试,也可以是代码单元测试那样的小粒度测试。稳定性测试、性能测试和安全性测试都是至关重要的。团队还应该采用精益质量的管理方法,也就是说质量控制需要伴随着整个开发过程,而不是在功能开发完成后再进行测试。
3. 计划和报告:在工作室内,有一整套标准化的计划、控制、风险管理和报告的规则和流程。Scrum团队必须按照工作室提供的模板开展工作。