很高兴看到和真正的大拿一致的思考,一直以来,我们强调,实践是检验真理的唯一标准,提倡自己研发创造合适互联网行业发展需要的产品开发过程,今天看到一篇文章,说大拿对于过程的观点,发现英雄所见略同,看来可以更有信心地去突破在这一漫长过程里的种种障碍,报道如下
2008 中国软件技术英雄会上海站将于2008年9月5日在上海华亭宾馆大宴会厅举行。本次在上海举办的英雄会,内容涵盖量级人物的主题演讲、电梯游说、CTO论坛和创业论坛。届此,Ivar Jacobson将在上海英雄会的主题演讲中畅谈明智(Smart)软件开发。
今天,大家都想变得敏捷(Agile),然而仅仅是敏捷还不够!一个出色的程序员最重要的特质是明智(Smart)。
我们要如何面对时下火热的敏捷运动呢?首先是不要神化,不要迷信,不要迷失自我。存在即合理,现有的开发流程和工作方式一定有它的合理性,应渐进地采纳敏捷中一些合适的实践,仔细审视各种工件的合理性和必要性,要防止借敏捷的旗号来偷工减料(尤其是放弃必要的设计和架构工作)。同时,也应该充分利用这次文化运动所产生的变革力量和热情,推动一些最佳实践(如迭代开发),打破一些对软件开发活动不合理的束缚。总之,要弄潮,而不要被潮水裹挟,敏捷不是银弹。
1 、“明智”就是意味着我们要做为了成功应该做的事情,不多也不少。
做应该做的事情并不容易,不多也不少就更加困难了。那么,我们应该从需求分析阶段开始就引入“明智”。
用UML为软件的所有部分进行建模并不“明智”;不进行建模,直接编码同样不是 “明智”之举。而找出真正需要建模和编码的东西才是“明智”的。那些“东西”是什么呢?他们是最本质的用例和对这些用例所处场景的本质。他们是实现了场景本质的组件和这些组件中的特殊部分。因此,事关本质。
2 、你需要用不同来源的实践,结合自己的流程,改进自己的流程和工作方式,这样才能立于不败之地。
回顾一下软件工程的历史,整个趋势是在向前发展的,过程中有很多互相竞争的趋势。问题在于人们总是只跟踪一种趋势。当人们在用Scrum时,他们就会说:“不不不,我们不要CMMI,我们用的是Scrum!”或者有些人用Rational统一过程(Rational Unified Process)开发软件很多年,当敏捷出现之后,他们就会把以前积累的东西统统抛在脑后,从头学起。这是一种错误的决策!真正应该做的是持续不断改善你们开发软件的方式。你可以从CMMI、统一过程和敏捷中各取所长,合而为一