弗雷德里克·菲利普斯·布鲁克斯二世(1931年4月19日-2022年11月17日)是美国计算机架构师、软件工程师和计算机科学家。他以管理IBM System/360大型机系列及OS/360软件支持包的开发而闻名,并后来在 seminal 著作《人月神话》中坦率地撰写了这些经历。他的工作塑造了软件工程领域,并引入了计算机架构和布鲁克斯法则等概念。
布鲁克斯出生于北卡罗来纳州达勒姆,其职业生涯横跨学术界和工业界,对两者都留下了持久影响。他创立了北卡罗来纳大学教堂山分校的计算机科学系,并获得了包括国家技术奖章和ACM图灵奖在内的众多荣誉。
教育
布鲁克斯就读于杜克大学,于1953年获得物理学学士学位。随后他前往哈佛大学,在计算先驱霍华德·艾肯的指导下,于1956年获得应用数学(计算机科学)博士学位。在哈佛期间,布鲁克斯担任肯·艾弗森的助教,后者后来开发了APL编程语言,而该课程是世界上第一个“自动数据处理”研究生项目。
在IBM的早期职业生涯
布鲁克斯于1956年加入IBM,在纽约波基普西和约克敦的工作场所工作。他为IBM 7030 Stretch的架构做出了贡献,这是一台价值1000万美元的科学超级计算机,仅售出九台;以及IBM 7950 Harvest,这是一台为国家安全局建造的专用计算机。这些项目为他提供了高性能计算和复杂系统设计的深厚经验。
在20世纪60年代初,布鲁克斯成为IBM System/360系列计算机和OS/360软件包开发的经理。这个庞大的项目是当时最大的工程努力之一,涉及数千名程序员和硬件工程师。在此期间,布鲁克斯创造了“计算机架构”一词来描述计算机系统的概念结构和功能行为,这一术语成为该领域的基础。
在System/360项目中,布鲁克斯最具影响力的决策之一是将字节大小从6位改为8位。这使得小写字母的使用成为可能,并大大扩展了字符集,影响了几乎所有后续的计算系统。布鲁克斯后来将此视为他最大的技术成就。
《人月神话》与布鲁克斯法则
1964年离开IBM后,布鲁克斯加入北卡罗来纳大学教堂山分校,在那里创立了计算机科学系。几年后,他撰写了《人月神话》,该书于1975年首次出版。这本书源于IBM首席执行官小托马斯·J·沃森在布鲁克斯离职面谈时提出的一个问题:为什么管理软件项目比管理硬件项目困难得多?布鲁克斯的回答成为软件项目管理领域的经典之作。
该书引入了布鲁克斯法则,即:“向一个已延误的软件项目添加人力只会使其更加延误。”这一观察基于他在OS/360上的经验,突显了软件开发中沟通与协调的复杂性。1995年出版了20周年纪念版,新增了四章内容。
布鲁克斯还撰写了有影响力的论文《没有银弹,,软件工程中的本质与偶然》(1986年),他在文中论证,没有任何单一的技术突破能带来软件生产力的数量级提升,因为软件开发的本质困难是固有的。
学术生涯与研究
在北卡罗来纳大学,布鲁克斯担任计算机科学系主任长达二十年,从1964年到1984年。他是创校的Kenan计算机科学教授,一直担任该职位直至2015年退休。他的研究专注于虚拟环境和科学可视化,并在这些领域做出了重要贡献。UNC-Chapel Hill校园内的布鲁克斯计算机科学大楼以他的名字命名。
布鲁克斯的学术工作连接了理论与实践,他指导了许多后来取得有影响力职业的学生。他的教学和写作强调软件工程中的人性方面,包括协作和设计。
服务与会员资格
布鲁克斯曾在多个美国国家委员会和委员会任职,为国防和技术政策贡献其专业知识。这些包括国防科学委员会(1983–86年)、人工智能任务组(1983–84年)、军事软件任务组(1985–87年)、计算机模拟与训练任务组(1986–87年)以及国家科学委员会(1987–92年)。他的服务反映了将计算机科学应用于国家优先事项的承诺。
奖项与荣誉
布鲁克斯在其职业生涯中获得了众多奖项。1976年,他因“对计算机系统设计和计算机科学学术项目发展的贡献”当选为美国国家工程院院士。他于1985年获得国家技术奖章,并于1999年获得ACM图灵奖,后者是计算机科学领域的最高荣誉之一。2005年1月,他发表了关于“设计中的协作与远程协作”的图灵讲座。
个人生活与遗产
布鲁克斯是一名福音派基督徒,并积极参与校园基督徒团契。他于1956年与南希·李·格林伍德结婚,育有三个孩子。他以肯尼斯·E·艾弗森的名字为长子命名,反映了他对导师的尊重。
布鲁克斯于2022年11月17日去世,享年91岁,此前因中风后健康状况不佳。他的遗产通过他对计算机架构、软件工程和教育的贡献而延续。他的书籍和论文继续被阅读和引用,他对项目管理的见解在软件开发现代时代仍然具有相关性,包括在人工智能和机器学习等领域。
布鲁克斯的工作为后来计算领域的发展奠定了基础,从大型机到个人计算机及更远。他对清晰架构和现实项目规划重要性的强调,在当代关于复杂系统的讨论中引起共鸣,包括在生成式人工智能和大型语言模型等领域,在这些领域中,管理大规模软件项目仍然是一个挑战。