博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

有感于迭代式开发[转]

Posted on 2007-01-01 21:00  ╁蓝驿┲→  阅读(175)  评论(0编辑  收藏  举报

首先你必须要承认的一点是,至少在企业应用开发中,没有两个项目是完全相同的,包括软件开发本身和其过程在内。这也解释了为什么在软件开发行业没有形成一套放诸四海皆准的,成熟的标准的开发过程。
所以我们成天贫于奔命于未知,不知道自己该怎么做才好。我们怎么就这么倒霉?为什么会这样?举个反例,比方说在汽车工业,其生产流程一开始也不完善,但是人家生产的不只是一辆汽车,而是成千上万辆。每生产出一辆汽车,生产流程就改进了一次,直至达到完善。但是做企业应用软件就不行了,全世界就那么一套,开发组做完它就散伙了,哪有机会让你去改进啊!
近年来,对于软件开发本身的问题,一些实践家们发现了一个好办法,那就是迭代式开发。即先拿出一部分需求,设计它,实现它,测试它,让用户使用它,然后用户可能就会提出改进要求和新需求。然后我们把这些新东西加入需求,再从头来一遍。如此反复,直至系统全部实现。
如此这样,软件开发本身的问题就解决了。但是,开发软件是需要过程的,这个过程通常是一开始就定好了的。那么,如果过程出了问题怎么办?通常大家都是等到做下一个项目时再改进。这样做的话,出了小问题倒没什么,顶多是导致组员们心里不爽;要是出了大问题就坏了,很可能会导致项目失败,即使你采用了迭代式开发。还有,因为项目个个不同,下个项目中未必有此问题,或者在下个项目中此问题反倒变得有好处了!亦或下个项目中又出现了新新问题,等等。总之,你永远也等不到一个已经解决了所有问题的项目!
针对这个,我想提出一个“迭代式过程改进”方法,即象对软件一样,对过程也进行迭代式改进。这不是我个人的突发奇想,有人已经这么做了,他叫Alistair Cockburn,他的Crystal Clear中的ReflectionWorkshop就是干这个的。我只不过把它跟迭代式挂上了钩。
汇成一句话就是,“软件要迭代式开发,过程也要迭代式改进。”


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=386991