`
fangang
  • 浏览: 860121 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
311c4c32-b171-3767-b974-d26acf661fb2
谈谈用例模型的那些事儿
浏览量:37615
767c50c5-189c-3525-a93f-5884d146ee78
一次迭代式开发的研究
浏览量:67616
03a3e133-6080-3bc8-a960-9d915ed9eabc
我们应当怎样做需求分析
浏览量:405546
753f3c56-c831-3add-ba41-b3b70d6d913f
重构,是这样干的
浏览量:85351
社区版块
存档分类
最新评论

一次迭代式开发的研究:软件开发的风险

阅读更多
我们的软件开发存在着巨大的风险,当我们经历了数月的辛苦工作后才发现,我们的软件并不是客户满意的软件。这时候往往出现几种情况:

1.客户开始频繁挑刺,大量的需求变更在很短的时间发生,加班再所难免,团队士气降到最低点;

2.甲乙双方开始相互推诿,谁是谁的责任,争吵不可避免,甚至最终谈判破裂,项目失败,双方不欢而散。

这些都是我们不愿看到的,却不得不面对。到底问题出在哪里呢?就在我们的开发过程中。以往的开发过程被称为瀑布式开发,它要求我们在正式的软件开发之前,在需求分析阶段,就要把客户的所有需求都分析清楚,确定下来。而在正式的软件开发的数月间,我们不再与客户交流,而是按照需求规格说明书自己埋头开发,直到最终交付客户。这样的方式,最终交付客户的风险可想而知。这种开发方式的弊端主要有这几个方面:

1.客户描述不清自己的需求。客户不是专业人士,因此在起初他们描述不清自己的需求,只有一些简单的想法。一句经典的话是这样说的:“When I saw it, I have changed.”只有当他们看见我们制作的一个个demo版界面原型时,甚至操作着原型的模拟操作流程时,他们才开始整理,并使自己的需求逐渐清晰起来。这需要一个过程。

2.我们理解客户的业务领域也需要一个过程。我们是技术专家,我们掌握着丰富的软件知识,但我们不是领域专家,我们不了解客户的业务领域,因而这不能让我们的软件获得成功。我们只有深入理解客户的业务领域之后,才能深刻理解客户的业务需求,才能使我们的软件成功。这需要一个逐渐深入的过程,因此不可能在软件开发的初期那短短的需求分析阶段完成。

一切的一切说明了一点:我们必须改变我们的开发方式。我们需要一个持续的需求分析过程,这个过程应当与我们的设计、开发、测试过程同步;我们需要不断地向客户展示我们的软件成果,听取客户的意见,使我们开发的软件不会偏离正确的轨道。而这就是迭代式开发,另一种软件开发模式。

一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(续)
分享到:
评论
1 楼 EnterLee 2012-11-09  
博主 可以叫你一声老师吗? 我看了几乎所有的博文 写的很好 你可以出书了  整理整理
你的见解很独到 再次感谢 受益匪浅

相关推荐

    迭代化软件开发

    新型的软件开发流程 采用迭代化开发控制项目风险

    Scrum敏捷软件开发过程

    Scrum敏捷软件开发过程 敏捷软件开发是软件项目的一个概念框架. 有许多建立在敏捷概念上的方法,如 Scrum 和 Extreme Programming (XP). 与僵化的、重量级的、...最大限度地降低短期固定时间的迭代式软件的开发风险.

    嵌入式与实时系统开发:使用UML对象技术框架与模式.part2.

    本书将实时系统、对象建模、快速开发过程以及系统保险性等几个完全分离的学科统一起来,重点介绍了使用统一建模语言进行基于模型的实时系统和嵌入式系统开发以及被称为ROPES的基于风险的迭代开发生命周期。...

    需求迭代与项目风险控制

    作者介绍:柯自聪/eamoi舜亚科技软件工程师,专注于Web应用程序开发,关注OA、门户、电子政务、电子商务领域、RIA,著有《Ajax开发精要--概念、案例与框架》一书以及《Ajax开发简略》、《LiferayPortal二次开发指南...

    RUP迭代开发计划的两种方法

    好的迭代开发计划可以有效降低项目的风险,提高团队的协作,提高项目开发效率。笔者结合在以往项目中应用RUP迭代开发的实践,总结了两种开发迭代计划的方法,并对比两者的适用情况,以期对应用RUP的项目管理人员提供...

    软件开发过程规范

    1.5 软件开发过程模型 3 1.6 开发过程划分 3 2. 技术过程规范部分 3 2.1 概述 3 2.2 业务建模阶段 4 2.3 需求阶段 5 2.4 分析设计阶段 6 2.5 实现阶段 7 3. 管理过程规范部分 7 3.1 概述 7 3.2 接受项目 8 3.3 重新...

    论文参考:基于敏捷开发方法的企业信息化系统开发流程改进研究

    文章在全面分析传统流程模型存在的问题之后,提出了运用敏捷开发方法来改进企业信息化系统开发流程的方案,并详细介绍了改进后的软件开发流程中各个环节的设计和实施。该流程具有迭代周期短、更符合用户需求、风险...

    软件工程—实践者的研究方法

    ·软件开发中可以应用什么过程模型? ·线性过程和迭代过程有何区别? ·它们的优点和缺点是什么? ·在软件工程中可以建议什么更高级的过程模型? 一旦回答了这些问题,读者就能够更好地理解本书其余部分给出的工程...

    最完整的Scrum敏捷软件开发过程

    敏捷软件开发是软件项目的一个概念框架.有许多建立在敏捷概念上的方法,如 Scrum 和 ...与僵化的、重量级的、官僚式的方法形成对照,比如瀑布模型(指纯粹形式的)最大限度地降低短期固定时间的迭代式软件的开发风险.

    软件开发计划Software-Development-Plan

    一个完整规范的软件开发计划Software-Development-Plan,内容包括: 1 简介 4 1.1 目的 4 1.2 范围 4 1.3 定义、首字母缩写词和缩略语 4 1.4 参考资料 5 1.5 概述 6 2 项目概述 6 2.1 项目的目的、规模和目标 6 2.2...

    UML和模式应用(架构师必备).part01.rar

    3.2 案例研究策略:迭代开发+迭代学习 3.3 案例一:NextGen POS系统 3.4 案例二:Monopoly游戏系统 第二部分 初 始 阶 段 第4章 初始不是需求阶段 4.1 什么是初始 4.2 初始阶段的持续时间 4.3 初始阶段会...

    软件工程课件——计算机专业主干课件

    软件开发模型 1.瀑布模型:将软件生存周期的各项活动规定为依照固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件产品。 2.螺旋模型:为了克服瀑布模型的不足,螺旋模型于1988年提出。该模型中加入了风险...

    UML和模式应用(架构师必备).part07.rar

    3.2 案例研究策略:迭代开发+迭代学习 3.3 案例一:NextGen POS系统 3.4 案例二:Monopoly游戏系统 第二部分 初 始 阶 段 第4章 初始不是需求阶段 4.1 什么是初始 4.2 初始阶段的持续时间 4.3 初始阶段会...

    UML和模式应用(架构师必备).part02.rar

    3.2 案例研究策略:迭代开发+迭代学习 3.3 案例一:NextGen POS系统 3.4 案例二:Monopoly游戏系统 第二部分 初 始 阶 段 第4章 初始不是需求阶段 4.1 什么是初始 4.2 初始阶段的持续时间 4.3 初始阶段会...

    UML和模式应用(架构师必备).part06.rar

    3.2 案例研究策略:迭代开发+迭代学习 3.3 案例一:NextGen POS系统 3.4 案例二:Monopoly游戏系统 第二部分 初 始 阶 段 第4章 初始不是需求阶段 4.1 什么是初始 4.2 初始阶段的持续时间 4.3 初始阶段会...

    UML和模式应用(架构师必备).part03.rar

    3.2 案例研究策略:迭代开发+迭代学习 3.3 案例一:NextGen POS系统 3.4 案例二:Monopoly游戏系统 第二部分 初 始 阶 段 第4章 初始不是需求阶段 4.1 什么是初始 4.2 初始阶段的持续时间 4.3 初始阶段会...

    UML和模式应用(架构师必备).part04.rar

    3.2 案例研究策略:迭代开发+迭代学习 3.3 案例一:NextGen POS系统 3.4 案例二:Monopoly游戏系统 第二部分 初 始 阶 段 第4章 初始不是需求阶段 4.1 什么是初始 4.2 初始阶段的持续时间 4.3 初始阶段会...

Global site tag (gtag.js) - Google Analytics