软件开发的专业性

焦油坑与熔岩湖

Frederick P. Brooks在他的不朽著作《人月神话》中,把现代大型软件开发类比于焦油坑:

史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。

过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。他们中大多数开发出了可运行的系统——不过,其中只有非常少数的项目满足了目标、时间进度和预算的要求。各种团队,大型的和小型的,庞杂的和精干的,一个接一个淹没在了焦油坑中。表面上看起来好像没有任何一个单独的问题会导致困难,每个都能被解决,但是当它们相互纠缠和累积在一起的时候,团队的行动就会变得越来越慢。对问题的麻烦程度,每个人似乎都会感到惊讶,并且很难看清问题的本质。

相信我们中的绝大多数人,在软件开发的大多数时候都有掉到焦油坑的感觉。

Ron Jeffries在他的新书《The Nature of Software Development: Keep It Simple, Make It Valuable, Build It Piece by Piece》中,将软件开发比喻为穿越熔岩湖,一不小心就会掉下熔岩湖,尸骨无存。

本书试图在软件开发这个焦油坑/熔岩湖中间找到零星分布的凉爽的、长满青草的、安全的落脚点,期望能够将这些落脚点串接起来形成一条安全的小路,成功达到彼岸。这些“熔岩湖中的安全落脚点”就是数十年来业界探索和定型的一些专业方法,如果它们得到了充分的采用,虽然不能保证项目的成功,至少可以大大提高项目成功的几率。

以下是专业软件开发方法的一个不完全列表:

  • 敏捷开发
  • 面向对象和领域驱动设计
  • 测试驱动开发和行为驱动开发
  • 构建自动化
  • 持续集成和持续交付
  • 质量检测与优化
Copyright © yyang.io 2016 all right reserved,powered by Gitbook该文件修订时间: 2016-05-24 22:33:56