Next Generation for Software Develop Process

来源:互联网 发布:手机分辨率修改软件 编辑:程序博客网 时间:2024/04/27 23:07

昨天,有机会聆听UML建模大师Ivar Jacobson的演讲,非常的震撼。就像当年第一次看Martin Flower的书一样,全身有种触电的感觉。趁着记忆还没有消失,把大师的只言片语记录下来,以后日后学习参照之用。

1。单独使用UML并不能给软件的质量带来多大的改善,只有把UML运用了一个良好的develop process中才能写出质量完好的软件。
   点评:这个观点其实不能算什么新观点,可惜大多数国内的IT企业仍然重视工具的运用,忽视对过程的改进,有怎么样的过程就有什么样软件。从哲学角度来说,有什么样的方法论(思想),就有什么样的行为和结果(实践)。

2。目前的流行RUP很多时候再做一些no-brain work(如印度很多公司通过了CMM5,no-brain work比重占整个比重的95%),应该对RUP做一个改进,去伪存真,留下真正有价值的东西,可以叫做essential RUP。或者让RUP变的更smart一些,那就叫做smart RUP.
   点评:我对RUP不怎么样了解,不过对RUP写文档之多早耳闻。essential RUP无法置评。对于smart RUP,从我角度看来,更像一个Agile Method和RUP的结合体。

3。smart RUP分为几个部分:Iteration Develop,Usercase Driven Develop等等。
   点评:说句实话听到这里的时候,我还是稍微有点吃惊的。Iteration Develop是RUP的东东,把软件用渐进的方式来开发,确保每一个迭代都在可控的范围里面。这个已经被许许多多的软件开发实践是一个好的idea。无需多说。问题是Usercase Driven Develop(UDD),并不是什么主流的想法。目前大热的应该是Test Driven Develop(TDD),从我目前掌握知识的角度讲,TDD很容易理解:1、程序中每一项功能都有测试来验证它的操作的正确性。2、编写测试的过程就也是从程序调用者角度来观察我们的程序,为了变成易于调用和可测试的,程序必须和别的模块减少耦合(所谓的测试优先)。
 UDD很难理解(从我的角度),对照目前存在的XP,只能找到相应的两点对应:1、开发人员和客户(这里客户是大客户的概念,凡是能决定需求内容的人都是客户)在一起工作,以便知晓对方的所面临的问题,然后一起解决这些问题。2、编写测试代码的就是客户调用的过程。我也只能找到这两点可以说是UDD。那么和TDD的根本区别在什么地方?

4。Virtul Agents可以用这个工具来取代结对编程(Pair Program)中的监督的一个人。可以大幅度的减少成本。
   点评:Pair Program的理念很好,可惜在中国的IT企业中我还没有看到过。我以前想过可不可以用频繁的培训和Code Review来取代它。Jacobson提出的这个Agents应该是一个类似于一个人工智能的东东,比如说可以在你coding需要一个设计模式的时候来提醒你。问题是真的有这么好的东西吗?我认为机器永远不能取代人的工作,适当的减轻也许有可能。

5。服务应该收费的,软件应该是免费的
   点评:可以看得出Dr Jacobson也是一个Open Source的鼓吹者。他用林肯的“民治民有民享”来形容他未来软件的模式(opensource?soa?),例子很独特。会心一笑。

6。TODAY TOMORROW
   点评:这部分我没有听懂。大概太过前沿。

以大师的最后一句话作为此文的结尾
Let them focus on creative tasks instead of no-brain work.诚哉,软件过程的改造目的就在如此。

原创粉丝点击