需求与项目风险

从定制一个软件项目到最终的实现不仅是个漫长的过程,也是充满变数的过程,全面理解与正确领悟用户需求演变的本质与应对的策略应当是需求分析人员所要具备的素质。有理由认为面向对象的理念降低了开发过程的难度,但却强化了需求分析在项目过程中的地位与作用。需求分析人员是否具备、是否能够驾驭面向对象的概念对项目的成功率关系会更加重大。下面就说明一下需求分析与项目风险的关系。
1.5.1  来自用户的风险

投资者总是在摸索的过程中不断调整自己的实现目标,尽管软件开发商使尽浑身解数也跟不上用户需求的变化,最终只能是疲于应付敷衍了事。投资方的感觉是上当受骗却又无可奈何,开发商则抱怨用户需求漫无边界、任意变更。这种公说公有理、婆说婆有理的局面在合同条款中难分伯仲,不能说是两败俱伤,起码也是各有苦衷。
      造成这种局面固然存在着客户方的原因,但要把责任全部归结给“上帝”似乎也有失公允,因为用户对于计算机应用毕竟是外行。现实地说问题解决的关键只能是提升自身的设计能力来化解这种项目过程中可能出现的危机,所以需求分析在项目过程中的作用就像航标或是舵手,一旦有所偏颇对项目过程影响重大。
      “对象”作为最接近真实事物的载体,把主观思维与客观事物形成映射关系。通过这种映射把设计构思的模式标准化,把实现的方式规范化,这就是“对象”在软件设计过程中的作用。所以,需求分析过程中善于发现与发觉可以被归结成“对象”的元素非常必要。它以体现为承载技术设计的单元载体,也可以被构造成同时承载技术与业务的合成载体。
面向对象的设计理念为软件的开发开辟了一条前所未有的光明之路,但要想在这条路上走好,就要学会全面应用并自由驾驭面向对象的理念。规避项目过程中的风险,应当是从需求构架的构思过程开始,而不是在设计过程中开始。
1.5.2  来自开发过程的风险
      如果基于“面向过程”的开发理念,面对项目过程中源源不断的用户需求及频繁的功能变更,会使开发效率、工程质量与服务能力面临着严峻的考验。进度停滞不前、性能难以把握、可靠程度低、测试工作量大、整体成本失控等一系列的问题很可能发生,最终导致交付周期长、实施难度大、应变能力差、相对寿命周期短的必然性后果。面向对象的诱惑力就在于它能彻底改变这种困惑被动的局面。
      达到设计目标的途径可以有很多种,如果没有得力的指导与约束,问题就会变得复杂起来。设计者常常会在仁者见仁、智者见智的抉择中困惑不已,而客观评价这些主观构思方面的优劣并没有多大的说服力,这里有技术上的原因,也有思维方式不同、习惯上的差别、视野视角的变化等原因。这往往是造成项目管理难度大、可控性不强的主要原因之一。
      对于专业人士来说崇尚“阳春白雪”的高雅固然没错,但如果对“下里巴人”的技术不屑一顾也未必就是合理的选择。因为“阳春白雪”会意味着更多成本的支出,如果“下里巴人”能够兑现订单也未必非要“阳春白雪”不可。
      技术的意义在于创造价值并兑现市场利益,当企业面对市场的时候,驾驭技术的本质并不在于技术本身,如何用尽量小的代价获取相对好的市场回报才是技术价值的意义所在。推崇先进的开发理念并不等同于对技术的迷信或盲目崇拜,技术对于企业来说只是一个生产手段,而不是研究的对象。忽略技术在企业过程中的作用并不妥当,但盲目追求技术上的先进性也同样具有极高的风险性。制定技术路线、把握技术介入的深刻程度都是决定项目盈利能力的控制要素。软件企业中不能没有技术,但企业毕竟不是基础技术的机构,这也是技术管理人员经常容易步入的一个误区。
      在引入了面向对象的理念之后,通过对象的封装可以在很大程度上形成设计实现的客观约束,从而避免过多的自由发挥空间,使整个团队能够沿着基本相同的设计方式完成设计任务。关于业务对象的抽象与封装如果是从实现的过程中去总结摸索,将会是一个漫长而重复的实践过程,如果在需求分析阶段就能够造出对象原型,对于有效屏蔽上述种种风险具有非常明显的改进效果,也就是说面向对象绝不仅仅是编程人员需要掌握的理念,需求分析人员对此理念的驾驭能力对项目的影响程度要比程序员多得多。

全面规范的软件需求可以规避项目风险相关推荐

  1. 自动测试软件 需求,一种基于自动化需求分析软件的快速测试方法

    朱婷婷 摘要:概述软件测试目前的研究现状,根据测试工作常出现的问题,提出了基于自动化需求分析软件的快速测试方法.通过使用自动化需求分析软件,有效降低了需求分析阶段所需的人力和时间.通过历史类似项目软件 ...

  2. 《软件需求》学习笔记

    为什么80%的码农都做不了架构师?>>>    <软件需求>学习笔记 前几天读了Karl E.Wiegers<软件需求>,书的内容写得非常好.我这里谈谈读了此 ...

  3. 北京高级软件需求分析师培训招生!

    中国科学院计算技术研究所是国家专门的计算技术研究机构,同时也是中国信息化建设的重要支撑单位,中科院计算所培训中心是致力于高端IT类人才培养及企业内训的专业培训机构.中心凭借科学院的强大师资力量,在总结 ...

  4. 软件项目开发流程以及人员职责 实行软件工程项目管理: ▲ 项目经理(负责人):项目经理(负责人)对整个项目负完全责任,是指导、控制、管理和规范某个软件和软/硬件系统建设的人,项目经理(负责人)是最终

    转载自csdn(danieldaniel19851023的专栏) 软件项目开发流程以及人员职责 实行软件工程项目管理: ▲ 项目经理(负责人):项目经理(负责人)对整个项目负完全责任,是指导.控制.管 ...

  5. 201571030121《小学四则运算练习软件软件需求说明》结对项目报告

    201571030107/201571030121<小学四则运算练习软件软件需求说明>结对项目报告 结对小伙伴:冯晓(201571030107) 任务一 首先,我们进行了实例体验,把我们已 ...

  6. 某银行高级软件需求分析师内训圆满结束!

    2014年12月9--12日,某银行"高级软件需求分析师"培训,经过招标.讲标.开标的过程,最终由我单位中科院计算所培训中心中标,谢老师亲临授课,在某银行总部进行,参加人员涉及业务 ...

  7. 故障处理 软件 需求_如何根据GJB 102A开展软件安全性分析 —— 下篇

    前言 在中,我们介绍了GJB 102A的现状.解读.建议等.今天,我们继续介绍GJB 102A应用详细步骤. 上  篇 1.GJB 102A的型号应用现状 2.GJB 102A与其他标准的关系 3.G ...

  8. visionmaster视觉软件说明书_测试策略与软件需求层次

    1.需求层次 在软件开发过程中,需求一般有三个层次,第一层是用户有个想法.困难或者痛点,称作为用户需求:基于用户需求进行可行性分析和价值分析后,在众多解决用户需求的方案,选择一条最优解方案,称之为业务 ...

  9. 最初步软件需求说法的简单调查报告

    缘起 笔者在这几年工作中,接触了各类需求,不同人员在不同的时间点按照不同表述方式来提供.在沟通交流中,有些时候会因为说法的不同和不同的说法,浪费不少时间,往往会有这样的感觉:唉,原来你说的是这个啊? ...

  10. 《软件需求(第二版)》阅读笔记02

    阅读第2章(客户的需求)所得: 一般情况下都会出现客户这样的疑惑:"你的意思是什么?我不是刚告诉你我的需求了吗?".这些高层次的也无需求并不能够为我们提供足够的详细信息来确定最后的 ...

最新文章

  1. 理论与实践中的CNN模型结构,如何引领深度学习热潮
  2. php 常见的算法题,php最常见最经典的算法题(1)
  3. Python应用实战-从pandas的角度来对比MySQL,教你如何更快更好的学习sql
  4. 2021年 第12届 蓝桥杯 第4次模拟赛真题详解及小结【Java版】
  5. [css] 什么是视差滚动?如何实现视差滚动的效果?
  6. python2和python3中的map()
  7. Atitit 项目质量管理 目录 1. 标准化 规范化 1 1.1. 而项目管理中的39个标准过程(PMI)或42个要素(ICB)全部是一次性过程或要素, 1 1.2. 休哈特(shewhart 统
  8. 你手机里装过最牛的软件是什么,精选15款分享,有一个你没用过
  9. 2009年SNS社区源码大集合
  10. ANSYS APDL学习(4):ANSYS 基本介绍
  11. 直通串口线和交叉串口线
  12. c 语言 如何优化cpu占用率,C#程序优化-有效减少CPU占用率
  13. 当我们谈论跳槽时在谈论什么
  14. 消费卡“裸奔”倒计时!商务部:排查风险,异常发卡企业将上“黑名单”
  15. 获取新浪开放平台的Access token
  16. 太原理工和山西大学计算机,双一流建设后,山西大学和太原理工你更想去哪一个?...
  17. adaboost.M1与adaboost.M2差别比较
  18. RemoteViews的用法
  19. 【React-Native】集成微信官方安卓端SDK,实现微信登录、发送/分享小程序消息等功能
  20. android 加载三方so的方法_Android开发教程之动态加载so库文件的方法

热门文章

  1. 队列的实现(二) 链式队列的实现
  2. 中国电子科技集团公司第三十八研究所(合肥9月29日)
  3. [原创]BizTalk 开发系列
  4. 运行roscore出现unable to contact my own server无法启动小海龟的部分故障问题解决
  5. JQuery之基本操作
  6. hdu 5461(2015沈阳网赛 简单暴力) Largest Point
  7. 以下内容为Stackoverflow上整理以作纪录
  8. win10+anaconda3+python3.7+pytorch-cpu安装
  9. 从Label Smoothing和Knowledge Distillation理解Soft Label
  10. 我的小导师-天津大学张梅山老师要招NLP方向的研究生啦!