我们的软件开发存在着巨大的风险,当我们经历了数月的辛苦工作后才发现,我们的软件并不是客户满意的软件。这时候往往出现几种情况:
1.客户开始频繁挑刺,大量的需求变更在很短的时间发生,加班再所难免,团队士气降到最低点;
2.甲乙双方开始相互推诿,谁是谁的责任,争吵不可避免,甚至最终谈判破裂,项目失败,双方不欢而散。
这些都是我们不愿看到的,却不得不面对。到底问题出在哪里呢?就在我们的开发过程中。以往的开发过程被称为瀑布式开发,它要求我们在正式的软件开发之前,在需求分析阶段,就要把客户的所有需求都分析清楚,确定下来。而在正式的软件开发的数月间,我们不再与客户交流,而是按照需求规格说明书自己埋头开发,直到最终交付客户。这样的方式,最终交付客户的风险可想而知。这种开发方式的弊端主要有这几个方面:
1.客户描述不清自己的需求。客户不是专业人士,因此在起初他们描述不清自己的需求,只有一些简单的想法。一句经典的话是这样说的:“When I saw it, I have changed.”只有当他们看见我们制作的一个个demo版界面原型时,甚至操作着原型的模拟操作流程时,他们才开始整理,并使自己的需求逐渐清晰起来。这需要一个过程。
2.我们理解客户的业务领域也需要一个过程。我们是技术专家,我们掌握着丰富的软件知识,但我们不是领域专家,我们不了解客户的业务领域,因而这不能让我们的软件获得成功。我们只有深入理解客户的业务领域之后,才能深刻理解客户的业务需求,才能使我们的软件成功。这需要一个逐渐深入的过程,因此不可能在软件开发的初期那短短的需求分析阶段完成。
一切的一切说明了一点:我们必须改变我们的开发方式。我们需要一个持续的需求分析过程,这个过程应当与我们的设计、开发、测试过程同步;我们需要不断地向客户展示我们的软件成果,听取客户的意见,使我们开发的软件不会偏离正确的轨道。而这就是迭代式开发,另一种软件开发模式。
一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(续)
分享到:
相关推荐
适应UP的关键在于保持其基本原则,如迭代式和进化式开发、风险管理、以客户为中心以及持续的质量验证,同时根据项目的具体情况进行实践和文档的选择。例如,在Inception阶段,可能会编写发展案例文档,详细说明项目...
迭代式开发允许团队分阶段完成项目,每个阶段都会产生可用的产品版本,并根据用户的反馈进行调整。这种方法有助于保持项目的灵活性,同时确保开发工作始终围绕用户的真实需求展开。 ### 总结 软件需求开发是确保...
- **RUP(统一过程)**:一种迭代式的、基于组件的软件开发过程模型。 - **结对编程**:两名程序员共用一台电脑进行编程的一种实践。 - **重构**:在不改变外部行为的前提下,改进代码结构的过程。 2. **传统...
- 特点:迭代式开发,包括四个象限:确定目标、识别风险、评估选项、实施工程。 - 应用场景:适合大型复杂系统或高风险项目。 #### 三、软件工程概念及其作用 - **定义**: 软件工程是一门研究如何高效地开发、...
2. 坚持增量式开发:通过逐步构建软件,每次增加一部分功能,降低一次性开发的复杂性。 3. 强调需求获取和确认:确保充分理解用户需求,避免在开发后期才发现需求不符。 4. 使用形式化方法:借助数学工具验证软件...
- **螺旋模型**:软件开发模型,强调风险评估和迭代开发。 - **软件需求阐明书**:详述软件需求的文档,是软件开发的基础。 - **基本途径测试,覆盖**:确保程序的主要执行路径被测试。 - **构件**:可重用的...
- 其他分类:通用软件/定制软件、一次性/频繁使用、高可靠性/一般可靠性。 - **软件危机**: - 在软件开发和维护过程中遇到的一系列问题。 - 表现包括计划不准确、用户满意度低、质量不可靠、系统难以维护、文档...
第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...
- **软件工程**则涉及软件开发的全过程,包括但不限于软件结构的设计。 #### 十八、模块化及其特征 - **模块化**意味着将软件划分为独立的功能单元。 - **特征**: - 深度:表示层次结构的层数。 - 宽度:表示某...
第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...
第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 阶段计划和迭代计划 40.4 如何使用用例和场景来计划迭代 40.5 早期预算的有效性(无效性) 40.6 将...