敏捷开发团队与传统开发团队有着很大的区别。如果组织想要敏捷转型,首先就要清楚它们之间的差异性。
具体来说,二者存在以下区别:
角色划分
在传统软件开发方法里,开发团队是由不同的角色组成的,如需求分析师、软件设计人员、编码人员、测试人员等。但是,在敏捷开发(Scrum)里面“开发团队”只是一个角色,这个角色是传统开发团队中的所有角色的集合。在Scrum里面,所有的人都被称为“工程师”。
巧了不是,很多军软开发单位设立的岗位也都只是“软件工程师”,可惜这种做法与敏捷没什么关系。
职责划分
敏捷开发过程中,每个开发团队成员同样都要在一个迭代中完成可交付的增量,都要完成分析、设计、编码、单元集成及测试,这与传统开发开发团队各角色各负其责是不同的。
全职与兼职
敏捷开发团队成员一般都是全职,这样他们就可以专注于本项目的工作,确保不会分心而影响开发效率。
在Scrum里,ScrumMaster需要保证他的团队成员不会受到干扰,项目外的任何其他工作,ScrumMaster都需要帮助团队成员推掉。如果有些项目外的其他工作无法完全推掉,就需要想办法管理这部分的工作量。理想的Scrum团队中,研发团队成员可以不被外界打扰只专心致志地做迭代中的工作。
而传统的开发团队中,很多角色比如测试人员都是同时兼顾几个项目的。
人才类型
敏捷开发团队一般由T型技能的成员组成(所谓T型的意思就是团队的成员在广度和深度两个维度都有发展)。例如,一个擅长手工测试的工程师,同时也可以去做一些文档和自动化测试的工作。这样的好处就是当他完成手工测试工作后,可以去帮助编写文档和自动化测试。
传统开发团队成员大多都是专才。
团队目标
敏捷开发团队以团队目标为共同的目标,开发团队成员在完成自己领取的任务后可以帮助其他成员完成任务,以确保团队目标(交付潜在可发布增量)的实现。
而在传统项目里,由于角色和职责的限制,团队成员完成自己的任务后大多只能等待。
管理方式
敏捷团队被称为自组织团队,所谓自组织就是团队自下而上,自发地管理和控制,这与传统开发团队都是自上而下的管理方式完全不同。
在自组织的团队里,团队成员通过讨论达成共识并且最终制定规则和流程,每个团队成员都能遵守这些规则和流程。在传统的控制管理中,团队成员是被动接受者,而在自组织团队中大家是规则制定者、监督者和履行者,所有团队的成员都是团队的‘领导者’。”
以上就是敏捷开发团队与传统开发团队的主要区别。
这正是:
敏捷团队异传统,全能角色集成中
自组管理同心力,迭代增量共赴功
参考书目:天天学敏捷:Scrum团队转型记,作者:杨蕾 郑江,出版社:清华大学出版社