作者:Uncle Bob (本名Robert C. Martin),生于1952年,敏捷开发宣言17个奠基人之一,包括《整洁代码》等多本敏捷类畅销书作
译者:熊节,《重构》译者,「中国极限编程实践者社群」发起人
译者注:本文节选自Bob大叔的新书《Clean Agile》自序部分,中文版即将于2020年出版这本书不是研究论文。我没有做详尽的文献综述。你即将读到的是我本人对于敏捷20年发展历程的回忆、观察和意见,仅此而已。
本书采用了口头对话式的写作风格。我的用词有时略显粗鲁。虽然我并不是爱爆粗口的人,但你会发现书中偶尔会有一两句(经过修正的)脏话,因为有时我真找不到其他更好的表达方式。噢,这本书并非全然空口无凭。在必要的地方,我也给出了参考资料,读者可以去查阅。对于我所记得的事实,我已经尽可能地向敏捷社区的其他人求证。我还邀请了其中几位在单独的章节里提供补充和反对的观点。不过,请不要把这本书视为学术著作。最好将它视为一本回忆录——就像脾气暴躁的老年人满口牢骚,叫时尚新潮的敏捷小年轻们从他家草坪上滚开。程序员和非程序员都可以读这本书。这不是一本技术图书,书里没有代码。我想让读者大致了解敏捷软件开发最初的意图,而不必了解太多编程、测试和管理的细节。这是一本小书,因为敏捷本就不是什么大话题。敏捷是帮助做小事的小编程团队解决小问题的小主意。敏捷不是给做大事的大编程团队解决大问题的大概念。原本是解决小问题的小办法,却专门给它起了个名字,这也多少有些讽刺。毕竟,早在20世纪50年代和60年代,几乎在软件被发明的同时,这个小问题就已经得到了解决。那时候,开发软件的小团队能把小问题解决得相当好。但在20世纪70年代,这个原本是小团队解决小问题的行业冒出了一种新的理念,觉得必须要组织大团队来干大事,事情从此开始脱轨了。
难道我们不应该组织大团队干大事吗?老天,当然不!干大事靠的不是大团队,而是靠若干解决小问题的小团队之间的协作。这是50、60年代的程序员们靠直觉就知道的,而到了70年代人们却忘了这一点。
为什么人们会忘了这么重要的事?我猜是因为人才的断档。70年代,全世界程序员的数量爆炸式增长。在那之前,全世界只有几千名程序员。而70年代之后,程序员的数量已经达到数十万。到如今,这个数字已经接近上亿了。回到50、60年代,当时的第一批程序员不是年轻人,他们大多是在30、40甚至50多岁时开始编程的。而到70年代,在程序员人数剧增的同时,这些老字辈却开始退休了。于是,行业迫切需要的训练从来就没有发生。一帮20出头的毛头小伙子进入行业,恰好有经验的这帮人又离开了,老一辈的经验没有得到有效的传承。这之后的一段时期,有人称之为“编程的黑暗年代”。整整30年,我们一直受困于“用大团队干大事”的理念,根本不知道成功的秘诀其实在于用很多小团队解决很多小问题。
延伸阅读:大型敏捷,请和你的大老师远离敏捷
然后,在上世纪90年代中期,行业开始意识到自己失去了什么,小团队的理念开始重新萌芽生长。这个理念在软件开发者的社区里传播,涓滴细流逐渐汇聚成滔滔江水。到2000年,我们意识到,我们这个行业需要一次观念上的重启。我们需要重拾先辈们正确的直觉,我们需要重新认识到:任何大事,都是由很多做小事的小团队共同协作办成的。
为了让这个理念更广为人知,我们给它起了个名字,叫做“敏捷”。这篇自序写于2019年的第一天。从2000年这次观念重启至今已经过去快二十年了,我觉得是时候再来一次观念重启了。为什么?因为在过去二十年中,原本简洁明了的敏捷概念已经变得含糊不清,精益、看板、LeSS、SAFe、现代化、技能提升……形形色色的概念都掺杂其中。这些掺杂进去的理念未必不好,但它们并不是敏捷原初的讯息。所以,现在是时候了。让我们重拾先辈们在上世纪50、60年代已经掌握的知识,以及我们在新千年前后学到的知识。现在是时候为敏捷正本清源了。
这本书中没有什么新东西,没有令人震惊的新闻,没有突破性的革命。你将读到的是对敏捷的重申——以其在新千年伊始刚被提出时的形态。当然,讲述的视角变了,我们在过去二十年中学到了一些东西也纳入了书中。但整体而论,这本书传递的讯息来自于2001年,来自于1950年。
这是历史悠久的讯息。这是真实的讯息。这段讯息,会给那些做着小事的小团队带来小小的解决方案,帮助解决他们的小问题。