有一些概念的某些方面是今天有时落实,存在的其他方面避免。
保持团队规模小是敏捷方法的基本特征之一,但在敏捷之外也可以实践。
跨职能团队也是敏捷的主要组成部分,但在敏捷之外也很常见。
程序文员的角色主要由诸如版本控制系统,软件配置管理系统,变更管理系统,文档管理系统,Wiki,带有工件存储库的连续构建系统等计算机化系统所承担。我的意思是,您真的可以想象雇用一名全职员工打印出源代码,并手动对其进行索引和归档吗?
同样,DevOps之类的概念已淘汰了系统管理员(不是Mills外科团队的一部分,而是过去一个典型的跨职能团队的一部分)的角色(将Sysadmin的角色吸收为软件工程师的角色) ,平台即服务,基础架构即服务和实用程序计算(使Sysadmin成为“别人的问题”)或基础架构即代码(将系统管理转变为软件工程)。
我们今天要避免的方面之一是,最多两个人了解该系统。只有外科医生才能保证完全了解系统,副驾驶员可能会也可能不会。这样得出的总线系数在1到2之间。如果外科医生生病,则该项目已死。期。敏捷的答案是集体代码所有权,它与该模型完全相反:没有人单独负责系统的任何部分。取而代之的是,每个人都负责一切 为一组。
最后,该概念中包含了一些过时的假设。例如,即使没有明确说明,团队的建立方式是团队中只有一个人(外科医生)实际上拥有一台计算机。那当然是因为在撰写本文时,甚至整个团队自己拥有一台计算机,更不用说团队中的一个人的想法了。(即使在1980年Smalltalk发布时,导致其失败的原因之一是该系统的设置使得每个开发人员和每个用户都有自己的计算机,这在当时是完全不可想象的。)
因此,简而言之:我认为该概念的实现方式并非完全如所描述的那样,但是确实可以实现它的某些方面,某些方面被视为不受欢迎且应避免,某些方面已过时,有些则可能是Good Ideas™,但是没有人做。