对高绩效敏捷团队的早期历史感兴趣的人,可以了解一下 1580 年左右在意大利佛罗伦萨兴起的佛罗伦萨歌剧同好社(Florentine Camerata),他们因创造了歌剧而改变了当时的音乐形式。该俱乐部在组织上更像是一种聚会,而非正式的团队,它是跨职能的,其中融合了包括音乐家、艺术家、诗人、占星师、哲学家和科学家。 Jessica Kerr 在 Explore DDD(探索领域驱动设计)2018 大会上所做主题演讲的主要内容是佛罗伦萨歌剧同好社的经验。
在佛罗伦萨歌剧同好社看来,改革当时复调音乐(polyphonic music)的最佳方式,是沿革古希腊人以文字为音乐的做法。虽然事实上他们并没有看到任何古希腊的音乐记录,但是该理念为他们的创造提供了理论依据,正如现代软件架构师会引用上世纪七十年代的计算机科学论文一样。该组织也不仅仅是一个公开讨论的论坛。赞助商之间的竞争导致了音乐风格的分歧。类似于代码审查,一个思想总是在反对者的挑战和捍卫者的辩护声中产生的。正是因为此,才得以诞生歌剧这一形式,它由单一的旋律和单一的音乐表现组成。
如果故事至此戛然而止,那么它就不会成为本次技术大会的主题演讲内容。真正值得学习的经验是,看看歌剧这一创新是如何影响所有俱乐部成员的,此后各位成员继续对音乐发展做出了独立贡献。Kerr 在演讲中引用了Ruth Katz 博士在《创意史研究》(“Journal of the History of Ideas”)发表的《音乐史上的集体“问题解决”:佛罗伦萨歌剧同好社实例分析》(“ Collective ‘Problem-Solving’ in the History of Music: The Case of the Camerata, ”)一文。
纵观历史,个人从群体中受益的现象比比皆是,尤其是在科学领域。尽管我们习惯于将科学发现归功于某个人,但事实上并非如此。那些与其共事并提出建议的人往往被忽视了。举个例子,我们认为是本·富兰克林发明了电力,但事实上他只是数十位早期的电力学家之一。他的那些“不可见的同事”互相提出了很多建议。如果没有这样的群策群力,社群就无法掌握如此重要的想法。如果你的想法无法被他人接受,那么这个想法也不会走得太远。社群有助于推进想法、说服他人接受想法,这与有人提出想法同等重要。
Kerr 为阐述群策群力的优点。重点列举了多个著名的历史事件。Joseph Priestley,启蒙运动期间在伦敦咖啡馆聚会的辉格党人俱乐部(the Club of Honest Whigs)中的一位成员,他对氧气的发现推动了整个化学领域的发展。形成于巴黎的沙龙,是艺术创作力的培育场所。艺术家、评论家和经销商可以在这些地方见面,因为他们认识到,单靠自己是无法变得伟大的。这不仅限于艺术家,因为有一个沙龙是由 Gertrude Stein 运营的,她是一位作家、哲学家和数学家。从近期的软件领域看,一个很好的例子是 2003 年至 2006 年期间 Thoughtworks 伦敦创意总部。Jez Humble(持续交付领域的顶级专家,《持续交付》和《精益企业》两书的首要作者)、Dave Farley(持续交付布道师,《持续交付》一书的合著者)、Dan North(敏捷软件开发专家)、Nat Pryce(独立软件顾问,英国敏捷开发的先行者)和 Sam Newman(《微服务设计》一书的作者)等人曾在此聚会,分享理念,进而提出了一些影响了全球软件开发团队的重要思想。
伟大团队造就伟大人士。
在列举上述历史实例之后,Kerr 提出了本次演讲的主要观点,即“伟大团队造就伟大人士”。我们常说,企业需要将优秀的员工招致麾下,但事实总是大相径庭。如果企业在招聘高效开发人员上存在问题,那么它永远不会招聘到高效的员工。高效开发人员并非通过培训得到的,更不用说通过自学了,而是通过共同学习的团队培育的。
Kerr 在演讲中提出了共同学习体(“Symmathesy”)这一术语。该词最早由 Nora Bateson 提出,是表示“共同”的“Sym”和表示“学习”的“Mathesie”组合而成。尽管最初提出该词是用于描述持续变化的生态系统,但是该词适用于更广的范围。一个系统并非是其各个组成部分的简单累加,聚合而成的。而是系统各部分通过以往的相互作用产生的。
Kerr 进而指出,相比起给出的这些历史实例,软件系统更像是这样的共同学习体。软件系统并不仅仅是软件团队,而且还包括客户,以及软件的运行、数据库、硬件,还有团队使用的所有工具。各个部分相互作用,互相学习,构成了一个团队,团队成员可从中成长和发展。
要参与到这样的环境中,人们应该表现出全身心的投入,并已准备好加入这个有活力的系统,成为其中的一份子。kerr 指出,这正是采用此心态的困难之处。不仅要考虑自身或所在的团队,还必须更加广泛地从整体上考虑所在的组织、部门甚至是企业,并在必要时与其它的团队建立沟通桥梁。如果不改变环境,共同学习体是不可能存在的,所以 Kerr 认为不能将团队封闭起来。体系需要让具有影响力和与外部有联系的人取得成功,进而将共同学习体推广到整个组织中。由于系统的各个部分均具备学习的本质,因此 kerr 提出,团队不应直接招聘一些成功者。因为你的系统是独一无二的,并且每天都在发生独有的变化,我们必须聘用那些对系统具有潜在影响的员工。
Kerr 还讨论了团队与个体对于推演系统模型的重要性。作为个体,首先得确定软件中需更改什么,而这个工作正是使用个人心智模式的练习,代码更改只是个副产品罢了。事实上,在某种角度来说,每个个体的模型均是过时的,不完备的。这时我们需要的是一个团队,因为个体的脑中无法掌控整个模型。由于各个模型之间存在着差异,因此团队必须协作,以确保模型之间相互重叠并保持一致。这样做确保了团队得以在正确的地方做正确的更改。Kerr 也承认,团队要达到这一理想状态,要比每个个体所设想的更难。
在与此相关的演讲部分中,Kerr 指出,这些不完整的模型通常会抛出一些想法并将其重写一遍。她说,“从头开始构建一个复杂的系统,要比理解一个已有复杂系统的工作原理更容易”。她在此开了个玩笑,说这可以解释了为什么存在如此之多的 JavaScript 框架。
Kerr 说,要使团队成功,需要考虑团队成员的激励措施。如果是一个完全针对个人开发者的奖励系统,那么这将导致一种封闭的心态。个体对团队做的最糟糕的事情,就是保留自己的想法。因此,我们需要寻求各种可使整个团队学习最大化的方法,并找出在学习时互相给予信任的方法。“局限性并非在于我们能做多少,而是我们知道的多少”。Kerr 偏好 Mob 编程,因为这种方法最大限度地发挥了学习的作用,并融合了各种心理模型。
在结束演讲时,Keer 回顾了文艺复兴时期。在文艺复兴之前,并不存在所谓的艺术这一概念。在公元 1200 年至 1600 年间,对艺术的认知已从仅是一种职业技能(仅限行业协会许可)发展为普世大众(在学术和文化圈得到讲授)。文艺复兴时期是一个分裂期,它打破了导致墨守成规的旧有障碍,并加以重组。这一“新风格”强调的是在设计和工艺之美上的表现力。
借鉴文艺复兴,Kerr 尝试对软件分分类,从它不是什么开始着手。
软件并非一件工艺品。Kerr 并不认为自己是一名手工艺者,也不认为编程是一项技能。软件并非只是我们编写的代码,而是我们将如何影响这个世界。
软件并非一项艺术。软件正以不同于艺术的方式在无时无刻地改变着我们这个世界。此外,软件也是我们以前从未涉足的一种工作媒介。
软件并非一项工程,也并非过去任何“受人尊重”的职业。它是一项新事物。
以软件为媒介的共同学习者
Kerr 认为“软件是继艺术之后的下一次变革”。发展中的软件开发是共同学习体的实践,参与者可称为“以软件为媒介的共同学习者”。该理念并不属于任何个体,而是整个社区。我们都是共同学习者,目前我们正处于继文艺复兴之后的下一次时代变革。
Kerr 在她的博客上,撰文详细介绍了“歌剧的起源和编程的未来发展”( Origins of Opera and the Future of Programming )。在 YouTube 的 Explore DDD channel 上,提供了本次主题演讲的视频。
查看英文原文: A Brief History of High-Performing Teams by Jessica Kerr
感谢冬雨对本文的审校。
评论 1 条评论