Ivar Jacobson 谈软件工程和敏捷的融合

阅读数:133 2007 年 5 月 10 日

话题:SOA敏捷架构语言 & 开发文化 & 方法

UML 创始人之一、雅各布森咨询公司创始人 Ivar Jacobson 在 5 月 10 日参加了一场由CSDN承办的“最佳实践之旅”的研讨会。在会上,Ivar 博士详细介绍了其最新提出的核心统一过程(EssUP,Essential Unified Process)方法。

时下在软件技术社区,相对于火花四溅的 Agile、XP、Scrum 等灵巧方法,UP、CMMI 等“高大而笨重”的软件工程显然受到了不少冷落。其实就其内涵,它们都是非常好的软件开发方法,只是现在人们更多地将其形式化了,正如与会的中创软件集团CEO 景新海对此事的评价一样:

……一阵风一样,在各方因素的推进下,很多企业争相上马 CMMI,宣称自己通过了几级认证,然后给出厚厚的一堆文档资料作证。可他们真的理解了 CMMI 的内涵了吗?我看未必。……

尽管有被形式化、笨重化的原因,UP、CMMI 等还是显得复杂了许多。EssUP 可是说是对此类软件工程的一次革新。在软件工程领域摸爬滚打了近 40 年,Ivar 博士显然知道哪儿是 UP 或 RUP 的精髓,哪些又是繁文缛节。和以前要理解软件工程必须先阅读海量数据和指南所不一样的是,Ivar 在发现人们并不喜欢阅读书籍之后,将 UP、RUP、CMM,甚至包括敏捷在内的开发方法进行了提取,形成一套核心而易操作的实践,也就是 EssUP。通过 EssUP,软件开发人员不需要很陡峭的学习曲线,通过为数不多写在卡片上的指南就可以完成对项目的梳理。Ivar 这样阐释 EssUP 的概念:

EssUP 是建立在软件开发实践之上的第三代软件开发过程,它集成了来自 UP、Agile 和 CMMI 等传统统一过程阵营的最佳实践。应用面向方面软件开发(AOSD)的思想和技术分离出众多软件过程中的最佳实践。

EssUP 包括五个基本实践

  • Iterative Essentials
  • Architecture Essentials
  • Use-Case Essentials
  • Component Essentials
  • Model Essentials

    和三个支撑实践

  • Product Essentials
  • Process Essentials
  • Team Essentials
  • 另外 Ivar 还提到 EssUP 现在并不单纯是一套理论,它已经获得了很多主流开发平台的支持,比如Visual Studio Team SystemEclipse等。值得一提的是,软件工程和敏捷两个看似矛盾的方法在 EssUP 里却能相得益彰。在《程序员》杂志04 月刊 Ivar 发表的《敏捷究竟是什么?》一文中,他较为详细地阐述了相关内容:

    ……软件工程与敏捷抓住了软件开发的不同方面。软件工程的强处在于技术性实践;而敏捷的优势是社会工程。因此它们是互补的。软件工程就像是件紧身衣,而敏捷是轻巧的,并且更难于驾驭。问题在于,我们能否集合两个世界的优点。是的,我们能!