一、什么是软件项目管理
软件项目管理是按需求确定范围、按目标制定项目计划、按计划执行管理的过 程。对软件开发各阶段加强项目管理的根本目的在于增强对软件开发的控 制能力,提升软件开发的质量。软件项目的建设按软件工程的生命周期法可分为项目立项、启动、需求分析、系统设计、系统开发、系统测试、系统上线、项目验收 和上线后评估等9个阶段进行。
加强软件项目管理,就是以软件工程的各个环节为管理主线,将动态项目管理贯穿其中,通过对软件开发的项目范围、项目进度、项目质量、项目沟通、人力资源、项目成本六大核心要素的集成管理,实现软件开发管理效能的最大化,从而大大提高软件开发质量。
二、软件项目进度管理的定义及实施方法
软件项目进度管理是指项目管理者围绕项目要求编制计划,付诸实施且在此过程中经常检查计划的实际执行情况,分析进度偏差原因并在此基础上,不 断调整,修改计划直至项目交付使用;通过对进度影响因素实施控制及各种关系协调,综合运用各种可行方法、措施,将项目的计划控制在事先确定的目标范围之 内,在兼顾成本,质量控制目标的同时,努力缩短时间。
项目进度管理可以通过以下方式完成:制定项目里程碑管理运行表;定期举行项目状态会议,由软件开发方报告进度和问题,用户方提出意见;比较各项任务的实际开始日期与计划开始日期是否吻合;确定正式的项目里程碑是否在预期完成。
三、如何编制项目进度计划
识别进度计划所有者
识别所有者或负责开发所有或部分项目进度计划的个人,对于确保开发出好的进度计划是必要的。推荐采用WBS(作业分解结构)或者组织的分解结构作为进度开发的基础,因为WBS指定范围,组织分解结构(OBS)指定交付的功能区。
决定任务和里程碑
对于每一个最低级别的WBS元素,识别任务和里程碑对应交付的元素。可交付物通常设置为里程碑,产生可交付物的活动被称为任务。里程碑是一个时间点,被用于管理检查点来测量成果。
排序工作活动
在确定了交付产品的任物和里程碑之后,他们应该被逻辑的排序,来反映将被执行的工作方式。排序建立了任物和里程碑之间的依赖,并被用于计算交付产品的的进度。
任务历时评估
任务的历时评估是项目计划中最具挑战的部分,他也是后续成本估计的关键。这是一个不断细化的过程,贯穿于计划过程,因为它直接受人员安排和成本估算活动影响。
整合任务计划
一旦任务和里程碑被识别,排序,并且有了计划的历时评估,对每一个交付的产品就有了进度计划。没有整合,每一部分的进度是独立的,并且因此不能描述与整个项目相关的时间问题。
审查批准进度计划
一个较大和复杂的进度计划需要从多个人那里获得输入,没有人拥有项目的每一个方面的所有影响进度计划因素的所有的知识,因此团队应该执行进度计划的审查,来发现问题,或完善该进度计划。
四、如何有效的控制软件项目的进度
在当前的软件项目开发的过程中,无论是开发人员还是管理人员都越来越注意到项目进度的重要性。那么如何控制项目进度。
1、项目组长或项目经理,一定对整个项目的开发周期有一个清楚的了解,把任务的划分一定要一天为单位,不要一模块为单位,而每天无论是开发人 员还是测试人员,都要对自己的工作有一个大致的估计。即每天下午,有项目组长组织开发人员进行系统的了解,并且作好相应的记录。对已经解决的问题一定要一 个详细的记录。而对没有解决的问题一定要重视起来。不要向后退。找到根本的原因所在。
2、沟通和交流,作为项目组长一定要多多与开发人员进行交流,要调动其的积极性,让他们学会问题该如何解决,不要让他等待问题的解决。了解其实际的进展以及对开发工具的熟练程度,这对以后的任务的重新安排有重要的借鉴意义。
3、把一些难点提出,让大家共同克服,或者有一些技术比较精通的人来解决。解决完以后一定,让大家都熟悉其编程思路。而对经常用的知识点,一定有详细的说明。这样实现资源的共享。
4、做好项目的总结,无论是难点还是不难,只要有问题,一定要提出,并且解决完以后一定让大家都熟悉,这样有助于大家的技术水平的提高。
5、做到日清日结,是保证项目进度的关键所在。
五、软件项目进度管理中的软技巧
1、树立综合协调的观念
从本质上讲,项目管理是从全局出发,以项目整体利益最大化为目标,以项目范围、成本、质量等各专项管理的协调、统一为内容,所开展的综合性管理过程。因此,开展项目管理就要有项目各要素及各专项管理,进行综合协调的观念。
首先,IT项目的范围会影响IT项目的进度。一般来讲,项目范围越大,项目所要完成的任务越多,项目耗时越长;反过来,项目范围越少,项目所 要完成的任务越少,项目耗时越短。因此,如果项目进度很紧,或者进度拖延非常严重,就可以考虑与客户讨论,是否能够将范围进行收缩。如果客户同意缩小范 围,那么进度能得到有效缩短。
同样的,IT项目的成本、质量也会影响进度。一般来讲,追加成本,可以增加更多的资源,比如设备和人力,从而使某些工作能够并行完成或者加班完成。
如果项目不能按进度完成,可以考虑有些原定任务是否可以外包出去,这是项目采购管理与进度管理的协调内容之一。
显然,在缩减进度时,可以考虑上述各专项管理之间的协调,即砍掉部分任务、降低部分任务的质量、分包部分任务、追加部分任务的成本等。
2、掌握正确的需求调研方法
很多项目组一提到需求调研,就马上想到与用户访谈。在项目一开始,就与用户面对面访谈,并不是一种好的需求调研方法。
正确的方法应该首先请用户提供能反映用户业务的相关资料和书籍,开始文献调研。在阅读文献的过程中,就能够搞清楚对方的一些基本业务术语,并且对用户的业务流程有一个初步认识。
其次,如果需要,请用户带领项目组参观用户现场的业务流程,从而对某些字面上不容易理解的术语和业务环节,树立一种感性认识。
第三,在此基础上,根据文献调查和实地考察中发现的问题,有针对性地列出访谈大纲,与用户进行访谈。这时访谈的效率和访谈的质量都会提高,用户也会因为项目组提到的问题很专业、有针对性,从而产生较强的信赖感。
有的项目组在访谈完后,就认为得到了用户的真实、完整的需求,从而开始项目设计。事实上,有些IT项目比较敏感,因为访谈的结果是要记录的,用户为了回避自己的“风险”,会按照“官方”的口径讲话,这样,需求就可能被扭曲。
正确的方法应该是在访谈后,继续进行第四项任务,即发放无记名需求调查表。由于是无记名的,一般都能收集到比较真实的需求信息。
掌握了正确的需求调研方法的项目组,就能很快得到高质量的需求信息,缩短调研时间,使设计和实施的时间比较富裕,从而缩短进度。
3、缩短团队组建与磨合时间
任何一个项目组从接受任务到任务完成、团队解散,一般都会经历五个阶段:组建阶段,磨合阶段,正规阶段,表现阶段,解散阶段。
在五个阶段中,解散阶段由于项目任务已经完成,对于项目的影响不大。对于一个项目经理来讲,一定要清楚,真正工作的阶段是正规和表现阶段。因 而,项目经理的重要职责,就是使项目团队的组建和磨合阶段的耗时尽量短,这样,项目团队的正规和表现阶段的历时就会越长,在布置任务和执行任务时,就更加 从容。
六、如何避免项目进度失控
1、进度表失控的严重后果
(1)进度失控会扰乱规划进度失控导致的直接后果是不得不推迟系统正常完成时间。这个后果会增加业主的负担,包括时间、人力、物力和财力的继续投入,严重时会造成项目停滞和搁浅。
(2)进度失控与质量失控相互影响一般来讲,质量控制和进度控制是一对孪生兄弟,是相互起连锁反应的,进度失控可能导致质量失控;同样,质量的失控也会导致进度失控。
(3)进度失控会突破项目的计划成本项目执行的进度拖后之后,需要投入更多的资源解决存在的问题,重新制定计划。即使工作量没有增加,时间的增加就是费用的增加,也就是投资的增加。
2、避免进度表滞后的几点措施
(1)锁定需求,避免无休止的变更。
每一个项目都需要在开展之前锁定需求,不这样做必将会导致项目失败。在项目开发的过程中,多多少少都会发生一些范围变更,一定要严格控制这些变更,对这些变更有一个应对方案,把变更范围控制在可控范围内,不然便会出现很多并发症,导致进度表滞后和成本的增加。
(2)重新检查进度表项目进度表的一个很重要的前提是项目估算,项目估算最大的基础是基于经验值,而软件工程的经验值反映的只是业界的常规实 践,并不能够反映每一个团队。因此,在项目估算时应该以自己团队历史经验值为基础,让项目团队中的每一个成员参与估算,这样才能够保证项目计划的可行性, 从而避免出现系统设计与编码实现都超出进度表的计划估算。
(3)有效的进度表检查工具糟糕的执行会给项目带来在成本和时间两方面上 的失败,这会最终导致整个项目的失败。很多失败的项目开发的教训揭示 了能够充分地描述项目进度的检查工具简直太重要了。我得到的最宝贵的经验是要抓住项目开发过程中的关键环节,密切注意进展情况,一旦出现问题,应该马上能 拿出切实可行的措施。当出现可能严重影响进度表滞后时,就应该根据现阶段状况重新评价需求分析结果、工数估算、设计结果等。切勿匆忙采取头痛医头、脚痛医 脚的措施,致使进度表滞后更严重。
(4)在各种项目目标中进行平衡进度控制的目标与成本控制的目标和质量控制的目标是对立统一的关 系。项目进度、质量和成本构成一个相互制约的 三角关系,需要去平衡。如果经过评估确定项目进度确实已无法控制,就应当下定决心以牺牲软件功能范围、工作成果范围、成本预算、进度计划或软件质量中的某 一项目标为代价,来保住项目最重要的目标达成,最终确定一个最合适的解决方案。指望不采取纠正和干预措施,进度失控会自行消失的想法是不现实的。因此,如 果这些项目参数超出项目目标的限制范围,就必须马上采取纠正措施;如果发现这些项目参数有超出项目目标的限制范围的趋势,就必须马上采取预防措施。
(5)奖罚制度的制定进度表的执行还必须有相应的控制措施来保证。例如可以制定一些奖惩制度,奖励是主要,惩罚是辅助手段,调动起所有人员的 积极性。通过订立相应的评估指标,把项目执行作为项目人员的重要业绩进行考核监督,避免因为少部分人不配合工作导致项目整体延误,从制度上保障任务的顺利 完成。
软件开发进度管理
转载于:https://www.cnblogs.com/happyday56/p/4374678.html
相关文章:

SQLServer之ISO游标使用
什么是游标 结果集,结果集就是select查询之后返回的所有行数据的集合。 游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据。 一般复杂的存储过程&am…

JavaScript实现鼠标拖拽登录框
拖拽的本质是登录框获得光标的偏移来调整自身的偏移。 拖拽发生时,光标相对盒子的坐标不会变化,相对于页面的坐标却在变化,二者的差值就是盒子需要的。 两个注意点: 1. 赋值给盒子的什么属性 outer.style.top e.pageY - y p…

c++ STL容器初探
什么是容器 首先,我们必须理解一下什么是容器,在C 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对…

flutter开发中常用的dart插件
flutter插件官网地址:https://pub.dartlang.org/packages/ 1. image_picker 一个可以从图库选择图片,并可以用相机拍摄新照片的flutter插件 2. flutter_image 使用NetworkImageWithRetry 代替Image.network 加载网络图片可获得重试能力。 3. barcode_sca…

XML(eXtensible Markup Language)文件的解析
XML与HTML一样,文件中除了根节点以外,整个文件包含一个隐含根“/”,所以我们在解析文件同时一般采用XPath语法进行解析时,一般首先要以反“/”开始。 转载于:https://www.cnblogs.com/hibernate3-example/archive/2010/10/20/2492356.html

JavaScript 立即执行函数的两种写法
(function(str){console.log(str欢迎你~);})(行步至春深);(function(str) {console.log(str欢迎你~);}(行路易知难)); 可以看到,每种写法都比平常多出两个小括号,其中一个可以看作是调用,里面装参数,另一个可以看作防止语法错误。…

【Android动画】之Tween动画 (渐变、缩放、位移、旋转)
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。 第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。 下面就讲一下…

Mac下PHP7.1+Nginx安装和配置
https://blog.csdn.net/haiyanggeng/article/details/79186982 PHP:7.1.13Nginx:1.12.2 1. 安装PHP# 添加源brew tap homebrew/dupesbrew tap homebrew/versionsbrew tap homebrew/homebrew-php#更新源brew update#安装brew install php71 --with-imap -…

黑木耳的功效是什么
黑木耳,生长在朽木上,形似人的耳朵,色黑或褐黑,故名黑木耳,又名木菌、树鸡。黑木耳营养极为丰富,据史料记载,它是上古时代帝王独享之佳品,含有大量的碳水化合物、蛋白质、铁、钙、磷…

Javascript 移动的海绵宝宝
效果描述: 做一个简单的动画效果,刚刷新页面时,SpongeBob在页面的左上角位置,随着时间推移,他匀速向右移动,直到右侧抵达页面右侧停下来。 分析: SpongeBob作为一张图片被存放在<img>里…

sqlserver任务导出Excle
--sql语句就用下面的存储过程 /*--数据导出Excel 导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件,如果文件不存在,将自动创建文件,如果表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型 使用方法: 直接复制执行创建储存过程--陈…

Oracle集合操作
Oracle集合操作 UNION:并集,所有的内容都查询,重复的显示一次 UNION ALL:并集,所有的内容都显示,包括重复的 INTERSECT:交集:只显示重复的 MINUS:差集:…

Mongodb 4.0+安装
mongodb 4.0:windows 环境选择默认安装路径;存储文件夹自定义: 1.原配置文件删除.mp2.data下新建db文件夹 Mongod -- dbpath D:MongoDB/data3.!!!!!close windows防火墙(…

JavaScript 慢慢移动的海绵宝宝
前情提要:Javascript 移动的海绵宝宝 这个海绵宝宝是匀速运动、突然停下来的,有点不合理。现实中我们跑步都是速度慢慢减小到0。 要实现这个效果,就必须速度逐渐减小,本质上是盒子的步长逐渐减小。 step (targetLocation - nowL…

Linux(CentOS)目录操作命令、文件操作命令、压缩解压缩命令
一、目录操作命令 ls命令 — 功能说明:显示文件和目录列表。 — 命令格式:ls [参数] [<文件或目录> …] — 常用参数: -a : 不隐藏任何以“.”字符开始的条目。 -b : 用八进制形式显示非打…

阿里巴巴持续投入,etcd 正式加入 CNCF
2018 年 12 月 11 日,在 KubeCon CloudNativeCon 北美峰会上,etcd 项目正式加入云原生计算基金会(CNCF)。CNCF 是一个厂商中立的基金会、云原生技术推广和普及的领导者。 etcd 在 2013 年由李响,Brandon Philips, Al…

小机上监控AIX和数据库管理系统的运行情况直到性能优化(SQL语句优化和排除硬件问题)...
AIX下的命令 1)topas 检测操作系统的运行状况 2)nmon(c--cpu,m--memory,d--disk) 检测这3个的情况 ORACLE下的命令 提示:下面这些视图都是实时监控生产机上数据库的情况查询结果每个时刻都随数据库系统当时的情况在变化 (1) selectopname,…

从前端框架到前端架构参考资料
参考资料 • Wiki - MVC https://zh.wikipedia.org/wiki/MVC • Wiki - MVVM https://zh.wikipedia.org/wiki/MVVM • Mustach https://github.com/janl/mustache.js#usage • Handlebars Introduction | Handlebars • React React – A JavaScript library for building us…

(转)(c#)数据结构与算法分析 --树
树 首先,在win下,进入命令行,输入tree,它会以树的形式返回当前文件夹下的所有子文件夹及文件。如上图,就是一个树。就像一棵被颠倒过来的苹果树,每一个元素称之为节点,如图,A就是这棵…

.vimrc文件
1 set number 2 set shiftwidth4 3 set softtabstop4 4 set tabstop4 5 set expandtab 6 "set hlsearch 7 set noerrorbells 8 set smartindent 9 set autoindent 10 set nobackup 11 syntax on 12 filetype on 13 filetype plugin on 14 filetype indent on转载于:https:…

Javascript中undefined,NaN等特殊比较
以下内容转自:http://blog.csdn.net/hongweigg/article/details/380900931、问题:在Javascript中,typeof(undefined) undefined成立吗? 答案:不成立,全局函数 typeof()返回值类型为字符串类型,…

ECMAScript 6 模板字面量的常见用法
模板字面量可以理解成是字符串的一种,形式上用反引号 将内容括起来。 目录 特点一:模板字面量会保留反引号内部的空格、回车、tab,会将\n,\t翻译。 特点二:支持字符串插值 特点三:和标签函数搭配食用 特点一:模板…

Pycharm去掉项目所有 # 注释
通过快捷键ctrlshiftR 进入 项目全局替换窗口,点击右上角 勾选正则,然后 搜索框输入 (#.*) 即可 ,然后点击 replace all 去掉所有注释 转载于:https://www.cnblogs.com/rgcLOVEyaya/p/RGC_LOVE_YAYA_890days.html

引擎设计跟踪(九.14.2i) Android GLES 3.0 完善
最近把渲染设备对应的GLES的API填上了. 主要有IRenderDevice/IShader/ITexture/IGraphicsResourceManager/IIndexBuffer/IVertexBuffer.都是体力活, 根据文档(https://www.khronos.org/opengles/sdk/docs/man3/)填上对应的API就可了.遇到的问题纪录在下面: Stick to the standa…

NUnit在VS2008中的安装使用
声明:在方法二中图片可以显示不完整,读者可以将图片保存到本地查看。看完再删除了。方法一为转载的。方法二是自己写的。 方法一、 1、从NUnit官网(http://www.nunit.org/index.php)下载最新版本NUnit,当前版本为NUnit…

Egg 初学笔记
egg是什么 egg.js简称egg,属于小而美的框架,不直接提供功能,它拥有强大的插件机制,扩展性好,egg基于koa(https://eggjs.org/zh-cn/intro/egg-and-koa.html)开发,可基于egg制定上层框架。 Koa特点 提供很好…

HttpModule与HttpHandler详解
ASP.NET对请求处理的过程:当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过http管道&…

《梦断代码Dreaming In Code》阅读笔记(三)
最后这几章感觉上更多是从软件完成整体上来讲的。比如说技术、方法等。 在我看来,其实一个团队一直坚持一种好的、先进的方法是不可少的。如果一个优秀的团队刚愎自用,只随着成员们喜好发展,那不能长久。比如说,在开发软件工程课程…
个人建议之PHP面试的准备
你好,是我琉忆——PHP程序员面试笔试系列图书的作者。 随着越来越多的人开始迈入PHP开发工程师的队列,不管是一个PHP新手还是一个有一两年开发经验的PHPer都不得不去面对找工作前面试这件事。 我现在以个人对面试的经历和见解来全面的对PHP面试考点PHP真…

关于2D互动技术的一些要点
没有动画的程序很难称作是互动产品。 2D图形技术主要涵盖 动画原理 动画是定时器改变元素属性,渲染引擎重新渲染的过程。 动画的本质是 关于时间的函数 PS:右图就是一个快进慢出的动画 动画的要素