首先祝贺KAVA社区的成立。 希望它能成为关注开源和JAVA技术的最好的网站。我的第一个博客就建在这里了。很凑巧的是我刚好开始了一个全新的项目,而且有些开发方法与技术也是我很少接触的。正好 记录一下我的体会和感想。
这是我第一次真正遵循敏捷(Agile)方法来进行实用的软件开发。项目的最终目标和设计都非常吸引人,所选择的技术也比较新,很有一些东西可以拿来讨论。比如jBPM, Drools, Seam, jMock, Guice, TestNG等等。比较熟的,比较生的都有。技术的东西以后慢慢讲了,第一篇想说说我对敏捷方法的印象和预期。
敏捷方法出现有一些时间了,也越来越被更多的人接受。简介和文章也不少,我只说一下自身的第一感受。做为有十年工作经验的软件工程师,我以前的开发经历基本都是设计-》实 现-》测试-》维护。在实施敏捷方法的不长时间里,我感受到了两个重大的不同:测试和交流。
测试驱动开发(test driven development)是敏捷的一个重要部分。在这个新项目中的测试覆盖率要达到百分之九十以上。恐怕我十年加起来的测试程序也不会有这次多。模块测试(unit test),集成测试(integration test)和系统测试(system test)通通要做。程序员部分的模块测试更是要提前,要全面。我估计源码量要超过实际代码四到五倍。
组内的交流也是以前从没达到过的。综合计划会(integration plan meeting),每日例会(stand-up meeting),成对开发(pair programming)等等的应用使人员之间面对面的交流大大增加。设计文档到了非常次要的地位。
负面印象是编程时间占用比较多,自己思考研究的时间少了。但在交流和共同开发中可以强迫自己加快思考,注意质量,提高了一些单位效率。在坚实的测试保障和代码优化之下,程 序的质量应该有所保证;维护也会比传统方法容易些。我所关注的是效率能否真正提高,设计是否达到最优。希望在项目完成时能有自己的答案。
说了些项目管理的事,有些程序员要打哈欠了。下一次拿个技术和大家讨论,别打哈欠的人更多就行了。



