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