作为软件开发人员不可避免的涉足软件过程管理,无论是管理者还是实施者都是过程参与者。当我们要向外行解释软件开发是怎么回事,通常来通过一个比方比如说建房子,这就是“隐喻”,当我们工作中遇到问题的时候,怎么深刻地正确地来理解和认识我们软件工作的本身,你潜意识里认为做开发应该这样,实际上做的事情不符合你的预想,这就是痛苦的根源。
有篇文章“软件开发不可与建筑类比”来表明一个不恰当的软件开发隐喻。 值得思考。
这与敏捷开发宣言有些神似。
那些经常用来描述软件的建筑隐喻是错误的。可悲的是,因为有了这层暗示,我们把很多重点放在了错误的地方:
力求把需求预先定义清楚,而不是接受:变化才是常态;
强调架构和架构师的重要性,而不是接受:软件是可适应的,可由团队里的任何人来改变;
假设人员是可替换的,并且时间问题可以通过增加人手来解决,而不是接受:每个人都是独特的;
追求可预测性,而不是接受:我们的领域还没有被很好地认知。
软件与建筑绝无关系!
我们不是在建造,而是在探索!
敏捷开发宣言:
个体和交互胜过过程和工具;
可运行的软件胜过面面俱到的文档;
客户合作胜过遵循合同;
响应变化胜过遵循计划
分享到:
相关推荐
### 敏捷软件开发核心理念与实践 #### 敏捷宣言与原则 敏捷软件开发,源于21世纪初,由一群软件开发领域的先驱者共同创立,旨在应对快速变化的市场需求,提高软件开发效率和质量。《敏捷软件开发宣言》明确提出了...
软件开发流程是软件工程的核心部分,它指导着从概念到产品的整个过程。在这个初步的认识中,我们将探讨传统的瀑布式模型,以及更为现代的统一开发流程RUP(Rational Unified Process)。这两种模型对于理解软件开发...
### 敏捷软件开发:一种以人为本的开发哲学 敏捷软件开发是一种强调灵活性、协作与持续改进的软件开发方法论,其核心价值观与原则体现在“敏捷宣言”中,这份宣言被视为敏捷运动的基石。宣言强调了个体与交互的重要...
敏捷软件开发,作为一种新兴的软件开发方法论,自1990年代以来逐渐获得了广泛的重视与应用。相较于传统的瀑布模型,敏捷开发强调灵活性、高效性和团队合作,旨在应对快速变化的市场需求,提升软件产品的质量和生产...
极限编程(Extreme Programming,简称XP)是一种敏捷软件开发方法论,旨在提高开发团队与业务之间的协作效率,确保软件产品能够紧密贴合客户的实际需求。XP的核心理念是将业务目标与软件开发紧密结合,通过一系列...
### 敏捷软件开发宣言解析 #### 一、宣言的核心价值观 **《敏捷软件开发宣言》** 是2001年由一群资深软件开发者提出的指导原则,旨在改变传统的软件开发方式,提升开发效率与质量。宣言提出了四个核心的价值观: ...
在软件开发中,设计模式可以被视为一种隐喻,它们是解决常见问题的标准化解决方案,为开发者提供了一个通用的语言,帮助他们理解和交流设计决策。 然而,以上内容与压缩包内的《李尔王》分析文档内容并不直接相关。...
敏捷软件开发是一种以灵活性和快速响应变化为核心理念的开发方法论,旨在应对现代软件项目中常见的需求不确定性与频繁变更。敏捷开发强调通过迭代和增量的方式交付软件,以确保软件始终能满足客户的需求。这种方法...
在当今信息技术高速发展的时代,软件开发已成为推动各行各业进步的关键力量。然而,要成功开发出一个高质量的软件产品,开发者需要跨越无数的挑战,从需求分析到设计实现,每个步骤都至关重要。本文档《软件开发经验...
《软件开发面试百问》这份文档旨在为招聘者提供一系列深度和广度兼具的问题,以鉴别优秀的软件开发人员。以下是一些关键知识点的详细说明: **需求分析** 1. **非功能性需求**:非功能性需求关注系统的性能、可用...
### 敏捷软件开发模型——Scrum #### Scrum的核心概念与角色 Scrum作为敏捷开发框架中的一个重要组成部分,其核心在于提供一种高效且灵活的软件开发方式。它通过定义明确的角色、流程以及规则,帮助团队更好地管理...
《闻缺陷则喜》系列书籍以“从缺陷中学习并成长”的理念为核心,旨在探讨软件开发中的各种问题和解决策略。作者何志丹通过分享个人经验,深入剖析软件团队的构成、软件开发流程以及思想,提供了丰富的实践指导。 1....
如何进行软件开发 这是我的方法。 在一开始的时候 软件开发基本上遵循以下路径: 数学(转换) 科学(分解) 建模(OO) 分析型 我使用的主要分析方法是: 批判现实主义 ...因为我们基本上是在建模,...隐喻软件开发
由于提供的文件信息是关于一本书籍《Code Complete, 2nd Edition》的内容摘要和目录,而不是一个具体的技术文档或指南,因此我们可以从这些信息中提取出关于软件开发最佳实践的关键知识点。《Code Complete, 2nd ...
软件隐喻是帮助开发者理解和表达软件开发过程的一种方法。常见的隐喻有软件书写、软件播种、软件珍珠培植法、软件创建、实用软件技术以及复合隐喻。这些隐喻通过类比帮助我们深化对编程的理解。 在软件构造的前期...
从标题"代码大全学习笔记"和描述中可以看出,本文将深入探讨软件构建的重要性和一系列相关活动,以及如何通过隐喻来更好地理解软件开发。 首先,让我们详细解析软件构建的流程。软件构建是一个复杂的过程,包括定义...
书中阐述了**软件开发隐喻**的概念,通过将软件开发比作建筑、园艺、烹饪等其他领域,来加深对软件开发过程的理解。这些隐喻不仅丰富了对软件开发的认知,还帮助开发者从不同角度思考问题,促进创新思维。 ### 上游...