“实效主义”是一匹“黑马” —— 现实驱动开发

发表于:2008-3-05 14:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

分享:

        软件架构师Gustavo Duarte的一些观点最近引起了热烈的讨论。针对物理学家Richard Feynman关于挑战者号航天飞机失事报告以及其中的一些发现,他提出了一些观点,并讨论了它们与工程级质量软件的关系。Gustavo 将Feynma的原则应用于软件领域,并提出四个主要观点:

        软件工程的好坏和它与管理的关系是正相关的; 
        大量的事先设计非常“愚蠢”; 
        软件与其他工程上的法则有很多共同之处; 
        可靠的系统是通过严格的测试、以“确保最高质量的态度”采取自底向上增量式工程化开发得到的。 
        在后续的一篇文章中,Gustavo详细阐述了“实证”的概念, 并引入了“现实驱动开发(Reality Driven Development)”这一想法:

        行动和尝试是经验主义的基石。不要试图让现实屈从于广泛的分析和丰富的文档,因为现实是通过试验得来的。某个以经验主义为指导方针的公司不会苦苦执着于市场研究,而是雇佣实习生用一个夏天的时间开发出一个产品。而不以经验主义为依据的公司会组织43个人用了一年的时间进行计划和设计却没有付之实施。
从进化角度来看,这一概念奉行“适者生存”的哲学。实质上,你尝试一些东西,然后取其精华去其糟粕。Gustavo解释到:

        好的软件开发过程应该完善那些尝试,并从现实结果中得到反馈。这就是我想通过“现实驱动的开发”所表达的意思。而对于软件来说,最重要的现实就是用户体验和技术质量(technical quality),而主要的试验就是写代码和软件。这并不是一个非常正式的模型(呵呵),我只是喜欢用它来代表软件开发。我喜欢“现实驱动”这个词,因为当你提到“现实”时,人们会想到“用户”。 
        该想法与敏捷共享一些共同的核心原则和技术,而Gustavo并没有提倡某种新方法论(感谢上帝):

        现实驱动开发没有什么特定的方法论,它与敏捷原则有很多共通的想法(当然敏捷原则会影响这些想法),但魔鬼存在于细节之中。我喜欢将软件工程想象为工具箱,其中充满了我们根据正确的形势要选择的技术。“完善那些尝试”的过程工具包括迭代开发,可执行的架构(executable architecture), 持续集成,以及单元测试
Gustavo的方法更偏爱用户和质量:

        基于这一模型,我们在意的就是以下两个现实:用户体验(包括软件实用性)和技术质量。而在敏捷和类似瀑布这样的方法中,用户体验常常被忽视[译者注:敏捷方法是强调用户体验的]。 
        Gustavo用自低向上的方法总结到:

        更注重试验而不是分析,尽管二者都很重要; 
        完善试验:尽可能让这些试验更容易、更快、更便宜、更广泛。分析可以帮助我们这一点; 
        更多的尝试; 
        必须聪明和主动地度量现实:即用户体验和技术质量; 
        对反馈做出反应,让现实来驱动。

100家互联网大公司java笔试题汇总,填问卷领取~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号