用户登录
用户注册

分享至

软件研发管理 软件研发是什么专业

  • 作者: 别鸡眼我愿意闹
  • 来源: 51数据库
  • 2020-04-14

软件研发管理

软件开发的管理和控制要注意什么?

软件开发是一项很复杂的工作,对于软件开发的管理和控制,现在有一门专门的学科:软件工程。

在这方面有许多国家标准和国际标准。

许多公司也有相应的文档模版,及相关规定。

现在不谈技术角度来规范软件开发的管理和控制,从管理和实践的角度来探讨软件开发的管理和控制应遵循的的一些原则。

对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。

前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上机日期,由于开发时间太短,过于仓促,上机时,问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。

后者,如某套系统未弄清楚需求,或因设计问题,开发失败。

通过提炼这些成功和失败的例子,软件项目成功或失败的根本原因可能会更清晰一些。

在讨论这些原因之前,我们先来说明一下什么情况可以称为失败的软件项目。

1. 由于费用超支或计划执行超时而终止。

2. 完成计划的时间或费用超过了原计划的50%。

3. 由于质量或性能上的原因引起和客户的纠纷。

下面我们将按其影响大小的顺序排列说明5种错误的实践方式。

错误1:没有软件项目开发的历史数据 缺乏软件开发的历史数据是大多数软件项目失败的关键所在, 这样的结论也许使很多人感到吃惊,但事实就是如此。

没有一个可靠的软件开发的历史数据会使项目经理,程序员,客户对于软件开发的过程缺少清醒的认识。

假设现在你正在管理一个软件项目,而这个项目还没有一个公司在36个月内完成。

作为一个负责的经理,你作了一个比较细致和保守的估计,然后告诉你的客户和你的手下说你认为这个项目需要36-38个月完成。

然而常常有这样的情况发生:你的客户和程序员要求把时间压缩到18个月。

客户一方面希望软件尽早投入使用而产生经济效益,一方面也想压缩项目时间作为一个讨价还价的筹码;而程序员一方面可能过于自信,一方面尽早结束项目也能使他们多赚点钱。

而此时你的手头上也没有一个可靠的软件开发的历史数据,在他们的压力下你同意了18个月的计划,于是一场灾难开始了。

在项目的开始阶段你发现计划被拖延了,于是开始向程序员们施加压力,要求他们加快进度,程序员为了追求进度而不得不把其它指标放在一边,这些问题不断的积累下来而项目经理却蒙在鼓里。

到了项目中后期这些质量问题会不断暴露出来,而且互相关联并且难以解决,甚至有些是系统设计的问题,这时才发现好多模块要推倒重来,18个月完成计划变成了天方夜谭。

虽然上面只是一个虚拟的例子,但在实际中这种情况比比皆是。

问题的关键就在于软件开发的历史数据是反映软件开发队伍的能力的标尺,没有了这个标尺, 就无法对软件的开发过程有一个清醒的认识。

错误2:不重视使用软件费用估值工具软件和计划工具软件 软件开发方法述评 60年代中期开始爆发了众所周知的软件危机。

为了克服这一危机,在1968、1969年连续召开的两次著名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善。

与此同时,软件研究人员也在不断探索新的软件开发方法。

至今已形成八类软件开发方法。

一、Panas方法 最早的软件开发方法是由D.Panas在1972年提出的。

由于当时软件在可维护性和可靠性方面存在着严重问题,因此Panas提出的方法是针对这两个问题的。

首先,Panas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。

这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的模块,其它模块不受影响。

信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可靠性。

现在信息隐蔽原则已成为软件工程学中的一条重要原则。

Panas提出的第二条原则是在软件设计时应对可能发生的种种意外故障采取措施。

软件是很脆弱的,很可能因为一个微小的错误而引发严重的事故,所以必须加强防范。

如在分配使用设备前,应该取设备状态字,检查设备是否正常。

此外,模块之间也要加强检查,防止错误蔓延。

Panas对软件开发提出了深刻的见解。

遗憾的是,他没有给出明确的工作流程。

所以这一方法不能独立使用,只能作为其它方法的补充。

二、SASA方法 1978年,E.Youdon和L.L.Constantine提出了结构化方法,即SASD方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。

1979年TomDeMaco对此方法作了进一步的完善。

Youdon方法是80年代使用最广泛的软件开发方法。

它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程SP)。

这一方法不仅开发步骤明确,SA、SD、SP相辅相成,一气呵成,而且给出了两类典型的软件结构(变换型和事务型),便于参照,使软件开发的成功率大大提高,从而深受软件开发人员的青睐。

三、面向数据结构的软件开发方法 Jackson方法 1975年,M.A.Jackson提出了一类至今...

软件开发项目管理过程中如何进行风险管理呢?

软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。

软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。

如果对项目进行风险管理,就可以最大限度的减少风险的发生。

但是,目前国内的软件企业不太关心软件项目的风险管理,结果造成软件项目经常性的延期、超过预算,甚至失败。

成功的项目管理一般都对项目风险进行了良好的管理。

因此任何一个系统开发项目都应将风险管理作为软件项目管理的重要内容。

在项目风险管理中,存在多种风险管理方法与工具,软件项目管理只有找出最适合自己的方法与工具并应用到风险管理中,才能尽量减少软件项目风险,促进项目的成功。

项目风险管理 项目风险管理是指为了最好的达到项目的目标,识别、分配、应对项目生命周期内风险的科学与艺术。

项目风险管理的目标是使潜在机会或回报最大化,使潜在风险最小化。

风险管理涉及的主要过程包括:风险识别,风险量化,风险应对计划制定和风险监控,如图1所示。

风险识别在项目的开始时就要进行,并在项目执行中不断进行。

就是说,在项目的整个生命周期内,风险识别是一个连续的过程。

(1)风险识别:风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目。

风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行。

(2)风险量化:涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程。

风险量化的基本内容是确定那些事件需要制定应对措施。

(3)风险应对计划制定:针对风险量化的结果,为降低项目风险的负面效应制定风险应对策略和技术手段的过程。

风险应对计划依据风险管理计划、风险排序、风险认知等依据,得出风险应对计划、剩余风险、次要风险以及为其它过程提供得依据。

(4)风险监控:涉及整个项目管理过程中的风险进行应对。

该过程的输出包括应对风险的纠正措施以及风险管理计划的更新。

每个步骤所使用的工具和方法详见表1: 表1 风险管理过程中所使用的工具、方法 软件项目中的风险管理 1、软件项目中的风险 软件项目的风险无非体现在以下四个方面:需求、技术、成本和进度。

IT项目开发中常见的风险有如下几类: (1)需求风险 ①需求已经成为项目基准,但需求还在继续变化; ②需求定义欠佳,而进一步的定义会扩展项目范畴; ③添加额外的需求; ④产品定义含混的部分比预期需要更多的时间; ⑤在做需求中客户参与不够; ⑥缺少有效的需求变化管理过程。

(2)计划编制风险 ①计划、资源和产品定义全凭客户或上层领导口头指令,并且不完全一致; ②计划是优化的,是"最佳状态",但计划不现实,只能算是"期望状态"; ③计划基于使用特定的小组成员,而那个特定的小组成员其实指望不上; ④产品规模(代码行数、功能点、与前一产品规模的百分比)比估计的要大; ⑤完成目标日期提前,但没有相应地调整产品范围或可用资源; ⑥涉足不熟悉的产品领域,花费在设计和实现上的时间比预期的要多。

(3)组织和管理风险 ①仅由管理层或市场人员进行技术决策,导致计划进度缓慢,计划时间延长; ②低效的项目组结构降低生产率; ③管理层审查 决策的周期比预期的时间长; ④预算削减,打乱项目计划; ⑤管理层作出了打击项目组织积极性的决定; ⑥缺乏必要的规范,导致工作失误与重复工作; ⑦非技术的第三方的工作(预算批准、设备采购批准、法律方面的审查、安全保证等)时间比预期的延长。

(4)人员风险 ①作为先决条件的任务(如培训及其他项目)不能按时完成; ②开发人员和管理层之间关系不佳,导致决策缓慢,影响全局; ③缺乏激励措施,士气低下,降低了生产能力; ④某些人员需要更多的时间适应还不熟悉的软件工具和环境; ⑤项目后期加入新的开发人员,需进行培训并逐渐与现有成员沟通,从而使现有成员的工作效率降低; ⑥由于项目组成员之间发生冲突,导致沟通不畅、设计欠佳、接口出现错误和额外的重复工作; ⑦不适应工作的成员没有调离项目组,影响了项目组其他成员的积极性; ⑧没有找到项目急需的具有特定技能的人。

软件开发管理的必要性是什么?

当今计算机工业发展迅速,软件产业更是如此,技术和产品的更新换代常令技术人员和管理人员感到明显的压力。

我国信息技术产业的蓬勃发展促使各种先进技术和产品广泛应用,为国内的软件开发注入了活力。

然而,值得注意的是,各种先进的操作系统,开发工具等在带来效益的同时,也使得我们的开发环境日益复杂化而难以管理。

无组织的开发环境会导致潜在问题的产生,甚至影响整个系统。

比如:团队沟通困难,软件重用率低下,开发人员各自为政,代码冗余度高,文档不健全等;结果造成数据丢失,开发周期漫长,产品可靠性差,质量低劣,软件维护困难,用户抱怨使用不便,项目风险增加等。

事实已经表明,随着整个软件业的迅速发展,没有得到有效管理的软件开发过程中所出现的风险和挑战将越来越突出。

加强软件开发管理,通过管理和追踪软件开发环境中产生的变更,建立规范化的软件开发环境,早已为西方发达国家软件产业的发展实践证明是解决上述问题的唯一有效途径,并已在软件业发展领先的国家和地区得到普及。

软件开发管理的必要性 考试大论坛 1.软件资源作为企业赖以发展的关键财富日益受到重视的同时,软件的开发逐渐转变成为一种工业化的生产过程,因此必须对其所有环节施加有效的管理和控制。

2.处于激烈市场竞争中的软件开发机构若想在预定的期限内用有限的资金,满足不断增长的软件产品需求,就必须努力加强软件开发过程的管理。

3.ClientSeve已成为今天软件开发的主流,而在日益复杂的分布开发环境下,要实现团队开发所必须的代码共享就更为困难,需要跨越的平台增多。

4.一个应用系统的开发可能包含成百上千个软件模块以及数万行代码,而任何一个编程人员都不可能了解和追踪应用系统的各个片段。

5.任何一段软件代码对开发机构来说都是负有重要使命的软件财富,因而使其具备可管理性和可审核性就显得尤为重要。

6.软件产品与其它产品不同,在投入使用后的维护和支持工作十分重要,因此需要可靠的维护支持、有序的文档资料,以及完整的开发、维护记载

项目管理在软件开发中的应用有哪些?

如果用两个字概括当前社会的特点,那就是“变化”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户需求与市场不断变化,人员流动也大大加快。

在这种环境下,企业需要应对的变化以及由此带来的挑战大大增加,也给管理带来了很多问题和挑战。

软件行业是一个极具挑战性和创造性的新行业,管理上没有成熟的经验可供借鉴。

而项目管理应该说对于软件企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。

因此,项目管理在软件开发中的应用日益受到重视。

项目管理的两个问题 1、什么是项目管理? 项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。

2、为什么要有项目管理? 没有项目管理,项目也有可能成功。

但没有管理的项目,很难保证项目的利润空间,对公司来说,亏损的风险就大。

所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。

另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。

关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分的发挥作用。

还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。

3、项目管理的发展与现状。

今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。

随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。

当前,越来越多的企业和组织在内部推广项目管理的理论方法及管理模式,如果都采用项目管理软件进行管理,效果就更加明显,可以节省大量的资源和财富。

国外90%以上的项目管理都采用软件进行,但我国在这方面的应用还不到10%.新世纪项目管理在中国的迅速兴起,给软件企业的发展带来了前所未有的发展机遇。

项目管理在软件开发中的应用的成因 随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。

各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。

从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。

实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。

同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。

迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。

同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。

软件开发是一项复杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的问题,甚至面临失败。

如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。

早在20世纪60年代中期,人们就发现软件的生产出现了“问题”,主要表现在生产过程不规范,缺乏管理。

后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。

但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。

目前的软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难。

如果管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。

因此,随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。

而项目管理技术的发展与计算机技术的发展是密不可分的,随着计算机性能的迅速提高,大量的项目管理软件涌现出来。

它们可以用于各种商业活动,提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。

软件项目管理常见问题及解决方案 对于软件开发项目中,经常出现两种极端情况,一...

中小型软件开发组织一般使用什么研发管理软件?

我认为软件比较好啊软件技术专业(原“计算机软件专业”)软件技术专业现有软件工程、软件开发、网络编程三个方向,学生在第一学年后根据学生志愿和学习成绩再分专业方向学习。

软件技术(软件工程)>>培养目标:本专业培养德、智、体全面发展,掌握软件技术专业必备的基础理论和专业知识,熟悉软件开发的计算机软件工程师。

本专业方向与北大青鸟APTECH计算机教育公司以教材置换方式进行合作,考试合格,学生除可获得大专毕业证书外,还可获北大青鸟APTECH的ACCP(Aptech Certified Computer Professional)软件工程师证书、劳动部职业技能鉴定中心颁发的“初级程序员”、“程序员”、“软件工程师”证书,ORACLE WDP证书,这一专业方向需另收一定的教材置换及认证费。

主要课程 :英语、高等数学、软件技术基础、程序设计基础、VB高级编程、面向对象程序设计(C++)、JAVA编程基础、J2EE实现企业级应用开发、.NET平台及C#编程、ASP网络编程、ASP.NET编程、WinForm开发、SQL SERVER数据库设计和实现、ORACLE数据库设计和实现、软件项目管理、面向对象分析与设计(UML)、基于软件开发项目的毕业设计。

软件技术(软件开发)>>培养目标:本专业培养德、智、体全面发展,掌握软件技术专业必备的基础理论和专业知识,精于程序设计,掌握.net架构及C/S(客户/服务器) 应用系统开发技术,又熟悉软件项目管理的软件开发人才。

主要课程:英语、高等数学、程序设计基础、面向对象程序设计基础(C++)、数据库原理及应用(SQL)、数据结构、计算机网络(NT)、软件工程(UML)、可视化程序设计(VB)、C/S开发(VB.NET)、WEB程序设计(ASP)、WEB开发技术(ASP.NET)、Windows表单设计(C#)、COM组件技术、HTML语言与网页设计、XML基础、计算机软件专业技术资格(程序员、软件设计师)认证考试训练。

软件技术(网络编程)>>培养目标:本专业培养德、智、体全面发展,掌握软件技术专业必备的基础理论和专业知识,精于网络编程,掌握J2EE架构及B/S网络应用软件开发技术,又具有一定的网络管理能力的软件设计人才。

主要课程:英语、高等数学、数学实验、计算机应用基础、程序设计基础(C语言)、数据结构、数据通信与网络技术、面向对象程序设计基础(C++)、网络操作系统(UNIX/LINUX)、软件工程、网络数据库管理系统(SQL/MYSQL)、可视化程序设计(VB)、Java程序设计基础、XML基础、WEB应用软件设计(ASP/PHP)、B/S应用软件开发技术(JSP)、网络安全技术、HTML语言与网页设计、计算机软件专业技术资格(程序员或软件设计师)训练与考证、毕业设计与实习图形图像制作专业(原“软件技术(图形图像制作)”)培养目标:本专业培养德、智、体全面发展,掌握专业必备的基础理论和专业知识,熟练掌握平面设计、3D设计、网页制作技能,又具有一定编程能力的软件应用人才。

主要课程:英语、高等数学、程序设计基础、面向对象程序设计基础(C++)、可视化程序设计(VB)、计算机网络、美术基础、广告设计、网页设计、高级网页设计技术(Flash)、图形图像处理技术(PhotoShop)、三维动画设计、光影渲染技术、项目设计、计算机专业技术资格(多媒体应用)认证考试训练。

计算机信息管理专业培养目标:本专业培养德、智、体全面发展,掌握计算机信息管理必备的基础理论知识与专业技能,掌握数据库管理系统知识和现代办公自动化应用技能,具有从事计算机信息管理的计算机应用人才。

主要课程:英语、高等数学、高级语言程序设计(C语言)、数据库原理及应用、计算机网络、面向对象的程序设计基础(C++)、管理信息系统、网络数据库系统设计(ORACLE)、可视化程序设计(VB)、管理信息系统开发(Delphi)、信息安全技术、网站规划与建设、HTML语言与网页设计、程序设计实训、网站规划与建设、Excel与数据处理、文书档案管理、计算机专业技术资格(数据库工程师、信息系统管理员)认证考试训练。

网络系统管理专业培养目标:本专业培养德,智,体全面发展,掌握计算机网络系统管理及软件设计必备基础理论知识和专业知识,具有在企事业单位从事网络系统管理、网络建设与维护等专业技术工作的应用型人才。

现这一专业与ATA合作,可以进行微软认证及Linux工程师认证。

主要课程:英语、高等数学、程序设计基础、数据通信与网络技术、面向对象程序设计基础(C++)、可视化程序设计(VB)、网络操作系统(NT/2000)、windows server 网络基本架构的实现和管理、网络数据库系统管理与应用(Sql)、Linux应用基础、Linux系统管理、Linux网络管理、网络安全技术、路由配置、WEB开发技术、网络安全与代理服务器应用、微软认证系统管理员证书(MCSD)、LINUX工程师认证考试训练。

公共选修课大学英语(二)、高等数学(二)、计算机应用基础

软件开发中项目管理复杂性如何分析呢?

软件需求是整个软件开发项目的最关键的一个输入,和传统的生产企业相比较,软件的需求具有模糊性、不确定性、变化性和主观性的特点,他不像生产汽车、电脑等硬件的需求,是有形的、客观的、可描述的、可检测的,软件需求是软件项目最难把握的问题,他的复杂性体现在以下方面: 1、需求的描述问题。

缺少正式的完整的需求文档浪费了大量的人力物力,但是有了需求文档又出现了新的问题。

在用户方进行的需求评审会完全是走形式,因为用户根本不去听他读那上百页的需求文档。

不同层次的客户(用户)关心的问题是不一样的,想要每个客户都成为需求专家是不现实的。

2、需求的完备程度问题。

需求如何做到没有遗漏?如何准确划定系统的范围?这确实是一个两难问题,稍微大一点的系统要想穷举需求几乎是不可能的,每次开需求评审会时,总会冒出新的需求,以至于系统没有一个准确的范围界定。

即使是这样,系统还是要开发,没办法,系统的范围还要硬性的划定一个,从而建立一个基线。

3、需求开发的工期问题。

在需求上花费了大量的时间,客户、软件公司是否能够忍受?为了确保需求的正确性,完备性,项目经理往往坚持要在需求阶段花费大量的时间,但是客户与公司的高层领导却会为项目迟迟看不到实际可运行的软件担心不已!他们往往会逼迫项目组尽快往前推进,而项目组的成员往往也会为系统复杂的善变的需求折腾的筋疲力尽,他们也希望尽快结束此阶段。

4、需求的细致程度问题。

需求到底描述到多细,才算可以结束了?仁者见仁,智者见智,并没有定论,如果时间允许,要想细总可以细下去的。

但是,需求的周期越长,可能的变化越多,对设计的限制越严格,对需求的共性提取要求越高,所以只要大家(客户、用户、需求分析人员、设计人员、测试人员)认为描述清楚了,就可以进入设计阶段了。

5、需求的变化问题。

在软件开发过程中如果只有一条真理的话,那一定是:需求的变化是永恒的,需求不可能是完备的。

软件开发的过程实际上是同变化做斗争的过程,需求的变更不一定是坏事,也有可能是好事,是商业机会,对市场敏感的人可以从需求的变化中发现市场机会。

需求变化的原因很多,如: ·一开始没有识别全,需要增加需求; ·业务发生了变化,需求必须变化; ·需求错误; ·需求不清楚。

需求的变化问题是每个开发人员、每个项目经理都遇到的问题,也是最头痛的问题,一旦发生了需求变化,你不得不来修改你的设计、重写你的代码、修改你的测试用例、调整你的项目计划等等,需求的变化好比是万恶之源,为项目的正常的进展带来不尽的麻烦,怎么办?管理它!使需求在受控的状态下发生变化,而不是随意变化,需求管理就是要按照标准的流程来控制需求的变化。

难题随之而来,需求中的变化一般不是突发的革命性的变化,最常见的是项目需求的渐变(Poject Scope Ceep)问题,这种渐变很可能是客户与开发方都没有意识到的,当达到一定层度时,双方才蓦然回首,发现已经物是人非,换了一番天地。

哪家公司的研发项目管理软件好

研发项目管理软件用8Manage PPM,研发项目全程管理,实时跟踪项目进度,问题,成本,风险,资源分配等,数据动态实时,精准,多维度呈现,可自定义,预警提醒. 另外,OA+PM一体化把企业办公自动化与项目组合管理,不但可以实现准确的量化管理,还可以实时追踪每项工作的执行细节与结果。

并且8Manage PM 提供有效的可交付成果验收机制,严格监控智力工作的质量。

员工可以随时根据实际完成情况更新每项工作的完成率,系统会实时更新,但是若没有提交可交付成果员工无法随意把完成率更新为100%完成,必须提交可交付成果并且通过审核和验收,系统才会自动判断此项工作是否100%完成。

此外,系统还会自动实时追踪每个可交付成果的审核通过率及质量等级,真正实现智力工作的量化与精细化管理。

软件开发(整体)项目管理要注意哪些事项呢?

开发模型确定 一个项目的好坏,开发模型优良是项目成功重要保障,有了好的开发模型我们可以很好的控制项目进度、降低风险。

所以我们在项目开始前首先需要确定项目的开发模型。

这里我们建议采用迭代式的开发模型。

我们知道原有早期传统的开发模型是一个文档驱动的流程,它将整个软件开发过程划分为顺序相接的几个阶段,每个阶段都必需完成全部规定的任务后才能够进入下一个阶段。

项目开始首先完成系统需求规格说明书,之后才能够进入概要设计阶段,编码则在系统设计完成之后进行。

这就意味着只有当所有的系统模块全部开发完成之后,我们才进行系统集成,对于一个由很多个模块组的复杂系统来说,这是一个非常艰巨而漫长的工作,且存在着潜在的风险。

如:需求或者设计中的错误无法在项目早期发现,只有在系统交付客户之后才能发现原先对于需求的理解是错误的,系统设计的错误也只有在测试阶段才能被发现。

软件项目常常延期完成或开发费用超出预算项目开发进度往往会被意外发生的问题所打乱,需要进行返工或其他一些额外的开发周期,造成项目延期或费用超支。

项目管理人员专注于文档的完成和审核来估计项目的进展情况所以项目经理对于项目状态的估计往往是不准确的,当他回答系统已完成了80%的开发任务时,剩下20%的开发任务实际上消耗的是整个项目80%的开发资源。

在传统的瀑布模型中,早期是无法发现,需求和设计中的问题,只有当系统第一次集成后,这些设计缺陷才会在测试中暴露出来,需求缺陷则需要等到系统与用户见面后,方可暴露。

从而导致一系列的返工:重新设计、编码、测试,进而导致项目的延期和开发成本的上升。

为了解决传统软件开发流程中的问题,我们建议采用迭代化的开发方法来取代瀑布模型。

在瀑布模型中,我们要完成的是整个软件系统开发这个大目标。

在迭代化的方法中,我们将整个项目的开发目标划分成为一些更易于完成和达到的阶段性小目标,这些小目标都有一个明确的阶段性评估标准。

迭代就是为了完成一定的阶段性目标而所从事的一系列开发活动,在每个迭代开始前都要根据项目当前的状态和所要达到的阶段性目标制定迭代计划,整个迭代过程包含了需求调研、软件设计、软件实现、版本集成、软件测试、软件发布和产品交付等各种类型的开发活动,迭代完成之后需要对迭代完成的结果进行评估,并以此为依据来制定下一次迭代的目标。

开发计划制定 确定好项目的开发模型,一整套配套可行的项目开发计划是开发过程中进度控制的标准,同样是用户、公司管理层了解项目进展的依据。

通常项目管理人员、需求人员和用户根据用户原始需求(可以是项目方案书或者是建议书),一起定义整个项目过程中的项目迭代过程个数以及每个迭代过程的开发目标和范围。

如何进行迭代过程的划分和范围有效定义呢?是我们迭代开发计划制定的首要任务,我们这里推荐两种划分原则。

一、用户需求至上原则,也就是根据用户需求的优先级,进行逐个模块击破,每一个迭代是用户需求一个的模块,当然模块小时或者人员充足时,也是在一个迭代中完成两个或者三个模块。

二、当用户需求没有鲜明优先级时,我们可以采用功能逐步求精开发法,类似于我们早期采用快速原型开发,划分多个迭代,确定每个迭代需要达到的功能的完善层次,例如,首先第一个迭代仅完成系统的原型开发,第二迭代则紧接着完成各业务基本功能,然后逐步完善直至满足用户需求。

无论怎样划分我们的迭代过程,总之需要把握一个原则,框架尽早规划,版本快速集成。

项目只要进入软件实现过程早期,建议实现周版本的概念,确保一周一个版本,一来方便项目管理人员了解项目进度、质量,从而根据前期项目完成情况和近期的用户需求变动及时调整计划。

二来可以尽早将系统与用户见面,及时发现对于用户需求理解不正确之处,同时还可以激发用户潜在需求,细化需求。

在软件实现过程后期,则可以根据需要调整集成版本频率。

所以,虽然每个迭代开发过程中的开发活动是可以选择性的裁减,但通常软件实现、版本集成和软件测试是每个迭代不可缺少的活动,否则迭代过程将失去它的含义。

对企业内部的软件开发缺乏管理意识,具体体现在哪几个方面?

对企业内部的软件开发缺乏管理意识,具体体现在以下几个方面:首先,项目负责人项目管理经验不足,项目功能相对较少,涉及面相对狭窄;其次,项目开发人员较少,人员结构简单;再次,项目进度缺乏控制,项目成本预算较难,缺乏完整的项目文档;缺乏后续维护。

转载请注明出处51数据库 » 软件研发管理

软件
前端设计
程序设计
Java相关