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

  • 2007-05-10
  • 本文字数:1010 字

    阅读完需:约 3 分钟

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 包括五个基本实践

  1. Iterative Essentials
  2. Architecture Essentials
  3. Use-Case Essentials
  4. Component Essentials
  5. Model Essentials 和三个支撑实践
  6. Product Essentials
  7. Process Essentials
  8. Team Essentials

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

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