技术开发 频道

Jazz,开放协作与开发即过程的前奏

    “开发即过程”!我十分惊喜的发现“开发即过程”这个词组在Google和百度上搜索的结果都是零!在这个信息爆炸的时代能够创造出一个词组是值得惊喜的,说明我吃到了第一只螃蟹!如果可以申请专利!?如果现在就有一个Wiki来记录那些创造出新词汇的人们!?呵呵,或许我也有机会在历史上留下一个足印……闲话了几句,还是书归正传吧。

    长久以来,开发被归为技术范畴,过程被归为管理学范畴。学科分类如此,社会分工也如此。自从软件危机发生,人们引入软件工程学以来,软件技术和软件方法一直是在两个分枝上发展的。软件技术从结构化设计到面向对象,从J2EE到SOA;软件方法从ISO到CMM,从RUP到敏捷;然而软件成功最为关键的这两项技术却遗憾的处于一种分离的状态。在一个典型的项目里,质量部门、项目经理或过程小组设定一个软件开发过程,搭建管理工具;技术经理、架构师或设计师做出技术决策,决定开发环境;于是,开发人员在学习软件技术和使用IDE工具之外,还要学习和遵守软件过程,使用软件过程工具。开发人员懂得软件过程是必不可少的,但就他们的感受而言,在写代码的同时遵守软件过程和使用过程管理工具多少都是一个负担;尤其当软件过程过于复杂以至于拖累开发效率的时候。而我所憧憬的“开发即过程”是这样一种场景:软件方法服务而不是管理软件开发,它隐藏在开发背后,开发人员在开发过程当中感受不到过程的存在。这正如一条高度自动化的生产流水线,,生产过程隐藏在流水线背后,流水线上的工人只需要专心的完成自己的装配工作。

    开发即过程意味着,我们需要这样一个平台,它将软件方法和软件技术集成在一起,开发人员只需像流水线上的工人一样,拿到自己的任务,完成自己的任务然后提交自己的任务。而软件方法则在背后默默完成配置管理、质量管理、项目管理等软件方法范畴的工作。

    Jazz再次赢得了我的掌声。这并不是因为Jazz集成了配置管理、质量管理等工具,更重要的是Jazz将软件过程管理也集成到了开发工具当中。可配置的开发流程让Jazz拥有了定制高度自动化生产流水线的可能,Jazz不仅仅是实现软件技术的IDE,同时Jazz也是开发流程的管理平台。我很高兴能看到这样一个场景:软件管理人员在Jazz里定制开发流程来体现软件管理方法,将软件管理工具集成到Jazz里实现对开发的管理;开发人员使用Jazz完成开发工作任务的同时也完成了软件管理的任务。我相信如果流程定义适当,Jazz的这个特性一定会受到程序员欢迎并大幅提高生产效率!

    掌声之余不得不说,现在的Jazz仅仅是一个开始。Jazz对“开放协作”和“开发即过程”这两方面的支持也不是完美的,例如离我心目中真正的“开放协作”也有一些距离。并且我对Jazz的期望可不仅仅是“开放协作”和“开发即过程”,而是还有更多的期望。例如项目文档协作(不仅仅是分享,类似GoogleDoc)、自动社区信息集成(将开发过程社区化)、代码地图( 图形化快速定位代码)、代码依赖RSS(获知所依赖代码的变更)、虚拟共享计算环境(这需要通过云计算获得,我期望异地协作者不仅仅是通过即时通讯工具等沟通,而是就如同两个人并排坐在 一台计算机面前)等等……这些想法在我脑子里很久了,今天就这个时机简单的把它们罗列了一下,等以后我将再撰文详细讨论这些愿景的细节。

    最后,期待Jazz能够成功,并且由此引发软件行业的下一个大事件。

    原文出处: http://coffeewoo.itpub.net/post/9169/482517

0
相关文章