我们的软件开发存在着巨大的风险,当我们经历了数月的辛苦工作后才发现,我们的软件并不是客户满意的软件。这时候往往出现几种情况:
1.客户开始频繁挑刺,大量的需求变更在很短的时间发生,加班再所难免,团队士气降到最低点;
2.甲乙双方开始相互推诿,谁是谁的责任,争吵不可避免,甚至最终谈判破裂,项目失败,双方不欢而散。
这些都是我们不愿看到的,却不得不面对。到底问题出在哪里呢?就在我们的开发过程中。以往的开发过程被称为瀑布式开发,它要求我们在正式的软件开发之前,在需求分析阶段,就要把客户的所有需求都分析清楚,确定下来。而在正式的软件开发的数月间,我们不再与客户交流,而是按照需求规格说明书自己埋头开发,直到最终交付客户。这样的方式,最终交付客户的风险可想而知。这种开发方式的弊端主要有这几个方面:
1.客户描述不清自己的需求。客户不是专业人士,因此在起初他们描述不清自己的需求,只有一些简单的想法。一句经典的话是这样说的:“When I saw it, I have changed.”只有当他们看见我们制作的一个个demo版界面原型时,甚至操作着原型的模拟操作流程时,他们才开始整理,并使自己的需求逐渐清晰起来。这需要一个过程。
2.我们理解客户的业务领域也需要一个过程。我们是技术专家,我们掌握着丰富的软件知识,但我们不是领域专家,我们不了解客户的业务领域,因而这不能让我们的软件获得成功。我们只有深入理解客户的业务领域之后,才能深刻理解客户的业务需求,才能使我们的软件成功。这需要一个逐渐深入的过程,因此不可能在软件开发的初期那短短的需求分析阶段完成。
一切的一切说明了一点:我们必须改变我们的开发方式。我们需要一个持续的需求分析过程,这个过程应当与我们的设计、开发、测试过程同步;我们需要不断地向客户展示我们的软件成果,听取客户的意见,使我们开发的软件不会偏离正确的轨道。而这就是迭代式开发,另一种软件开发模式。
一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(续)
分享到:
相关推荐
RUP是一种面向对象的、基于构件的软件开发过程框架,它结合了迭代开发的思想和最佳实践。RUP提供了详细的指导,包括工作产品模板、角色定义、活动和最佳实践,以支持软件开发的各个阶段。 ### 4. 优点 - **适应...
总之,迭代化开发是一种更为灵活和高效的软件开发方法,它通过将大型项目分解成一系列可控的小型迭代,从而有效地解决了传统开发方法中存在的诸多问题。这种方法不仅提高了项目的成功率,还提升了产品的质量和用户的...
迭代软件开发流程是一种新的软件开发方法,它不同于传统的瀑布式开发流程。在传统的瀑布式开发流程中,整个软件开发过程被划分为顺序相接的几个阶段,每个阶段都需要完成全部规定的任务(文档)后才能够进入下一个...
7. 迭代步骤本身可在进行过程中得到改善和精炼:一次迭代结束时评定不仅要从产品和进度角度来考察项目标情况,而且还要分析组织和步骤本身有什么待改善之处,方便在下次迭代中愈加好地完成任务。 迭代软件开发作业...
迭代软件开发流程是一种应对传统瀑布模型中问题的现代软件开发策略。传统的瀑布模型强调文档驱动,按照需求分析、设计、编码、测试和维护等顺序进行,这种线性方式容易导致需求变化带来的返工,项目延期和成本超支,...
迭代软件开发流程 ...8. 迭代流程自身可在进行过程中得到改进和精炼:一次迭代结束时的评估不仅要从产品和进度的角度来考察项目的情况,而且还要分析组织和流程本身有什么待改进之处,以便在下次迭代中更好地完成。
### 软件工程中的迭代开发方法 #### 第一章:软件工程概述 - **软件工程定义**: - 软件工程是一种系统化的、规范化的、可度量化的方法论,旨在指导软件的开发、维护及运行过程。 - 其目标在于提升软件的质量、...
总的来说,迭代化开发提供了一种更灵活、风险更低的软件开发方式,它通过不断反馈和调整,确保项目能够适应变化的需求和技术挑战。在实践中,理解和掌握RUP等迭代开发方法论,对于提高软件项目的成功率至关重要。...
迭代开发模型是一种软件开发方法,可以根据实际情况灵活调整需求,每次迭代都能交付可用版本,有利于客户的验收和反馈。这种方法有助于及早发现问题,提高软件质量。增量开发模型是一种基本功能版本开发出基本功能较...
5. 编码和修正生存周期:编码和修正生存周期是一种迭代式的软件开发模型。该模型将软件开发过程分为多个小的迭代,每个迭代都包括编码和修正两个阶段。 6. 阶段交付模型:阶段交付模型是一种基于瀑布模型的软件开发...
螺旋模型是以风险驱动的迭代式开发模型。变换模型是以形式化开发方法为基础的模型。 在软件开发过程中,CASE工具和环境也扮演着重要的角色。CASE工具可以支持软件开发的各个阶段,包括需求分析、设计、实现、测试等...
- **Microsoft**:采用增量式迭代开发模式,持续优化产品功能和性能。 - **Spotify**:通过不断发布新功能增量来吸引用户,以小规模实验验证新功能的有效性。 #### 第四章:迭代与增量开发的比较 1. **共同点**...
迭代是软件工程中的一种开发模型,它将软件开发过程分解成多个小的迭代周期,每个迭代周期都包括需求分析、设计、编码、测试和维护等阶段。迭代的目的是为了让软件开发过程更加灵活和有序。 1. 迭代的发展 迭代...
在IT行业中,迭代计划是软件开发过程中的关键环节,它为团队提供了清晰的工作路线图,确保项目的有序进行。本文将详细解析"第一次迭代计划1"的相关知识点,包括迭代计划的组成部分、任务分配、预期成果以及风险管理...
《人件集:人性化的软件开发》是一本深入探讨软件工程中人性因素的重要著作,作者通过对软件开发过程中人的行为、心理、沟通等多方面因素的分析,提出了以人为本的软件开发理念。这本书的核心观点是,软件开发的成功...