小账本APP——软件项目风险管理及解决办法案例
小账本APP——软件项目风险管理及解决办法案例
摘要
软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。如果对项目进行风险管理,就可以最大限度的减少风险的发生。
项目风险管理
人员风险(Personal risk):
一、人员流动风险:
在团队本项目过程中,技术人员的流动可能会给这款软件的开发带来很大损失,人员流动需要很高的成本,雇佣一个新员工的成本相当于老员工4.5~5个月的工资,人员的频繁流动还将抑制企业引进新技术、指定培训计划和发展策略,也就导致这款软件的开发、发展以及更新进度停滞不前
二、人员商业泄密风险:
在软件开发过程中,技术人员需要有着较好的保密性,如果在职开发人员将该软件的核心特色方面等泄漏给相似产品的竞争对手,那么对于我们软件的发布的初期将会造成非常大的阻碍以及损失。
三、人员恶意犯罪风险:
在软件开发中,有着极小概率的但不是没可能的会产生一种极端的情况:开发人员由于巨大的压力和各种负面化的情绪挤压,导致突发的情绪崩溃或者报复心理的激发,使得恶意的破坏整个软件的开发进度和内容,这种情况带来的损失将会是非常巨大的
四、人员技术风险:
对于账本业务而言,是指账本技术系统发生技术故障,导致数据中断、更新停滞、不畅,或在容量、运作等方面不能保障业务正常、有序、高效、顺利地进行,而可能给客户造成损失,创作团队因承担赔偿责任而带来经济或声誉损失的风险。还包括因软件设计缺陷,造成用户记录数据计算错误,给用户财产造成损失,作为先决条件的任务(如培训及其他项目)不能按时完成。以及在信息技术层面,用户数据数据被破坏、修改、泄漏等等风险。
五、人员关系风险:
开发人员和管理层之间关系不佳,导致整个软件的开发进度和内容;
六、人员冲突风险:
冲突的形成,原因包括个性差异的因素,创业团队内部资源的有限性,价值观的差异,角色的不同,职责划分不清等原因。而由于项目组成员之间发生冲突,导致沟通不畅、设计欠佳、接口出现错误和额外的重复工作。
七、人员滞留风险:
不适应工作的成员没有调离项目组,影响了项目组其他成员的积极性,拖慢整个项目团队的工作;
八、人员缺乏风险:
若在一段时间内,没有找到项目急需的具有特定技能的人,或者缺乏可以对新功能进行决策和开发的人员。那么将拉低整个团队的业绩,拖慢整个项目的进度。
问题解决方案:
1)对于人员流动风险方案:
①找出人员流动的原因。可以与项目现有人员一起探讨人员流动的问题。
②当项目启动后,假设会发生人员流动并采取一些技术措施保证当人员离开时的工作连续性。
③对所有工作进行详细复审,使得不止一个人熟悉该项工作。
④对于每一个关键的技术人员都制定一个后备人员。
⑤满足员工的个人成长需要,进行丰富的再培养计划,缓解员工压力,保证员工个人需求。
⑥持续培养团队文化,强调以人为本,给员工成就感,提供各种保证策略以提高员工对自己的满意度,给他们在企业足够的发展空间。
2)对于人员商业泄密风险:
①明确严格的规章制度,对于泄漏者采取法律手段严惩。
②当项目启动后,将项目小组的成员与其他无关该项目的人员分隔开,达到该项目的内容计划只有该项目的内部人员知道,将人员经行分区化管理
3)对于人员恶意犯罪风险:
①适时的开展一些活动拓展,缓解人员的压力,释放他们的情绪以及提高人员的幸福感
②及时了解开发成员的情况,对于员工的不满等倾诉,进行合理的,及时的解决,决不能放任不管
4)对于人员技术风险:
①PM重视是搞好团队培训的前提
②科学确定培训内容
③创新技能培训方式是搞好团队培训的保证
④选择适当的培训方式。包括贴身式学习,独立式学习,度假式学习,轮换式学习。
5)对于人员关系风险:
作为管理层,多倾听员工心声。开展团体活动,管理层多与员工进行沟通交流。指定详细的行为规范,用于以后闹矛盾有依可寻。
6)对于人员冲突风险:
开展员工活动,指定良好的奖励制度。促进员工之间的交流。平时之前员工可以达成共识,管理层不偏袒员工。
7)对于人员滞留风险:
①与有问题的员工进行开诚布公的交流是正确解决问题的一个好办法。在你发现哪位员工有问题时,应该第一时间与其交谈。
②不要等到他们自己也意识到同样的问题,也许这样的事情不会发生。如果你延误了这个时间,那么有问题的员工会以为他们的工作表现是被接受的,在你发现哪位员工有问题时,应该第一时间与其交谈。
③不要等到他们自己也意识到同样的问题,也许这样的事情不会发生。如果你延误了这个时间,那么有问题的员工会以为他们的工作表现是被接受的。
8)对于人员缺乏风险:
合理划分员工的职位需求,建立预测模型,观察基于饱和度的数据,可计算该职位所需人数。
流程风险(Process risk)
一、流程临时变更风险:
在软件开发的过程中,由于用户需求的临时变更,人员流动的变化,资金链的暂时短缺等各种因素可能会导致整个项目流程的临时变更,如果应对的措手不及,带了的损失也将会是巨大的
二、流程制定不妥当风险:
一个妥当完善的开发流程对于一款软件的开发是非常重要的,如果项目进行到一半发现后续流程有问题,不符合该软件的开发,那么在中途重新规划流程,不仅在时间上耽误了,更是浪费了大量的财力物力,直接将成本提高了不少,对于产品发布后的盈利也将造成不小的损失
三、流程纸面风险
大量的纸面工作导致进程比预期的慢。向管理层撰写进程报告占用开发人员的时间比预期的多。
四、流程正规风险
①太不正规(缺乏对软件开发策略和标准的遵循),导致沟通不足,质量欠佳,甚至需重新开发。过于正规(教条地坚持软件开发策略和标准),导致过多耗时于无用的工作。
问题解决方案:
1)对于流程临时变更风险:
①在项目开发启动之前,确定好用户需需求,并对未来可能的需求变化做好应对措施,同时对于其他各种情况造成的流程变更做好第二方案,使得整个项目留有足够应对大部分高概率情况造成的流程变更问题的后备流程方案
②在整个项目开发按照流程进行的过程中,制定的流程应该保证后一流程的变更不会对前一流程造成十分大的影响,能够在后备方案排不上用场的时候,仅仅改变后续流程即可接着进行项目
2)对于流程制定不妥当风险:
①在初期制定好一个妥当、晚上的流程,对流程的各个方面的可行性经行严格的分析和审核
②同样的,在整个项目开发按照流程进行的过程中,制定的流程应该保证后一流程的变更不会对前一流程造成十分大的影响,在发现流程有问题的时候,仅仅改变后续流程即可接着进行项目,将损失减到最小
3)对于流程纸面风险:
①缩减不必要的纸面材料,让开发人员专注于开发。
②招募一定数量的编写纸质材料的员工
③提前编辑好纸质材料的样式和模板。
4)对于流程制定不妥当风险:
①招募一定数量的需求分析师对产品进行分析
②做好完整的调查分析,规划软件的发展方向。
技术风险(Technologyrisk)
一、技术不足风险:
现有开发人员不足以实现软件全部功能,导致产品流产;
二、技术落后风险:
由于在软件项目的过程中,我们的软件还没完全开发出来,市面上就会产生新的技术来匹配同类的产品,那么这也许就意味着我们需要丢弃前面的开发进度,重新开始,这是一种在财力,人力,物力以及时间上的一种巨大损失,及时强行投入市面上也得不到可观的效益。举个例子,就好比几年前街道旁刚开始有出租车按钮,按一下过一会就会有的士收到信息并过来的的士按钮站,但它刚出现不久,就有手机打车软件出现,那么这种情况对于的士按钮站这个软件来说,无疑是一种巨大的冲击。
三、技术重点不匹配风险:
如果在项目中,没有把握好软件的定位以及功能,将技术的重点研究方向与产品不匹配,这样开发出来的软件将会是没有市场的,等于做了无用功。比如银行相关App的技术重点多半是放在加密技术和防入侵上。但如果你将界面视觉效果作为技术重点放在银行App上,那么结果可想而知,是没有前景和市场的,并且给用户和我们自己带来巨大的损失
四、技术更新缓慢:
在软件发布后,随着市场的发展,软件内的各种技术更新换代也是非常快的,如果没有及时的做好这一点,那么根据市场导向我们的软件也将会被逐渐淘汰
五、技术冗余风险:
开发额外的不需要的功能,延长了计划进度;重复开发已有技术;
问题解决方案
1)对于技术不足风险:
①认真做好可行性研究中的技术分析
②明确产品需要用到哪些技术
③仔细了解所用技术的局限性
④确保开发人员的能力符合要求,并定期开展相关技术培训
⑤认真考虑是否能遵循所用技术的版权协议
2)对于技术落后风险:
①首先最基本的是要求开发人员有着深厚的技术功底,能应对技术变更比软件开发进度快的风险,对新技术的学习能力强,能很快的对自身软件进行更新
②在软件开发中应考虑到留有一个技术相关的接口,能快速的将市面上出现的新技术嵌入我们的软件中
③使用敏捷开发思想,合理规划,即时上线,快速迭代
3)对于技术重点不匹配风险:
①结合需求和可行性定位好自己软件的主打方向,避免盲目开发
②将资金,物资,人力等分配,按照重点级别分配,这样即使在软件的技术不小心发展在了在非重点的方向上,也会因为各方面短缺的阻碍使得整个项目组停下里经行重新分析,使得项目组意识到存在的问题
4)对于技术更新缓慢风险:
①及时了解和掌握市面上的技术更新方向,对技术的更新换代进行及时处理,不能拖延
②要求开发人员有着深厚的技术功底,对新技术的学习能力强,能很快的对自身软件进行更新换代
③接纳变化,及时安排重构
5)对于技术冗余风险:
①认真做好需求分析,明确系统边界
②以业余理财为核心,认真划分各模块的重要等级
③严格控制项目进度,必要时放弃不重要模块的开发
④需求分析中合理划分模块,确保代码可重用性
环境风险(Environmentrisk)
一、市场环境风险:
可能会发生金融危机等市场大变动的环境风险,在这个期间开发软件,不管是对开发过程、初期发布以及后期发展都是巨大的阻碍,处理不当严重的甚至会导致项目直接宣告失败
二、内部环境风险:
开发软件的公司或者团队可能由于不良的负面新闻、失策的公关等内部因素的,导致人们对软件的了解度很低或者严重的是对我们自身而不是软件有着很低的评分以及负面的看法,那么即使你的软件做的再好,也会在初期造成十分大的损失。
三、开发环境风险:
①开发工具多样化,开发环境不统一,造成项目编译运行混乱,严重影响开发进度
②开发工具不如期望的那样有效,开发人员需要时间创建工作环境或者切换新的工具
③新的开发工具的学习期比预期的长,内容繁多
问题解决方案:
1)市场环境风险:
①在软件开发的每个阶段,都做好应对市场动荡的后备方案
②实时了解和分析市场情动荡,并根据情况及时修改后备方案以应对风险
2)内部环境风险:
①做好合理的公关,在做好软件的同时,打造团队的良好口碑
②在每一阶段适当的公开软件相关信息,提高人们的关注度
3)开发环境风险:
①开发工具应适合项目,功能强大,易于学习,最好请有经验且涉猎较广的开发人员推荐
②开发环境应与本软件项目密切相关
③必要时使用较多经费用于购买开发工具
④必要时向第三方购买解决方案
⑤统一开发环境
⑥为开发人员预留一定时间用于熟悉开发工具与开发环境
小账本APP——软件项目风险管理及解决办法案例的更多相关文章
- 当Vue可视化工具创建不了项目时的解决办法!
当Vue可视化工具创建不了项目时的解决办法! 当你尝试用可视化工具创建一个Vue的项目的时候,报错, 出现什么indexOf什么什么的错误! 我的解决办法是把可视化工具删除掉,重新下载! 如果你是 n ...
- windows 2008 server 服务器远程桌面连接会话自动注销,在服务器上开掉的软件全部自动关闭的解决办法
windows 2008 server 服务器远程桌面连接会话自动注销,在服务器上开掉的软件全部自动关闭的解决办法:
- 小程序Page里的函数比app.js先执行的解决办法
问题描述: 当我们初始化一个小程序时,默认文件 app.js 中有onLaunch函数, onLaunch: function () { console.log("onLaunch" ...
- Visual Studio Xamarin编译Android项目出错的解决办法
安装完Xamarin后,编译Android项目时,你会发现好长时间进度都不动,当你取消编译后,会发现其实是出错了,就是因在Android项目在第一次编译时要去google网站上下一个andorid s ...
- Visual Studio 2010 起始页中 不显示最近使用的项目问题,解决办法
最近新装了vs2010,发现打开vs2010 后 起始页面中的最近使用的栏目中 并未显示最近加载的项目 解决办法如下: 运行 regedit 打开下面的键值: HKEY_CURRENT_USER/So ...
- 全网最详细的U盘被损坏导致一般性的软件无法修复的解决办法(必须可以)(图文详解)
不多说,直接上干货! 问题详情 一般,在不正当地操作U盘时,容易出现如下的情况: 解决办法: 本人,在尝试多款U盘修复工具软件后,发现: 成功几率很大,博文本人亲自尝试,并强烈推荐. 欢迎大家,加入我 ...
- tomcat热启动没问题, 访问项目报500解决办法
新建maven项目 添加热启动 启动访问项目报错 报错提示 解决办法 思路:包冲突 在pom.xml中添加servlet <dependency> <groupId>javax ...
- [angular2/4/8]用ng new创建项目卡住的解决办法
官方文档 英文版:https://angular.io/guide/quickstart 中文版:https://angular.cn/guide/quickstart Installing pack ...
- 微信小程序-没有找到 node_modules 目录的解决办法
初次在微信开发者工具构建npm 没有找到 node_modules 目录的解决办法 第一步:设置-->项目设置-->使用npm模块 第二步:右键目录下miniprogram-->终端 ...
随机推荐
- 基于FPGA的视频时序生成
之前用FPGA做过视频时序方面的设计,现将视频时序的设计方法分享给大家,希望对大家有所帮助. 时序部分可以参考CEA-861D,VESA时序标准. 1080P一帧视频中,一行有2200个像素,其中28 ...
- 打包工具webpack安装·Mac
最近在学Vue.js,是我接触的第一个前端框架.本来感觉还不错,各种惊叹于它可以用很少的代码写出那种具备交互能力的神奇模块. 在学的过程中总是能碰到一个叫webpack的单词,查过,是一个模块打包器, ...
- python之dict(或对象)与json之间的互相转化
在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作. 在Python中自带json库.通过import json导入. 在json模块有2个方法, loads():将 ...
- 【javascript】随机颜色
调用该方法则会返回一个#xxx的rgb随机颜色 function color1(){ var sum=""; var shuzu2=['a','b','c','d','e','f' ...
- 菜鸟初学redis(二)
如果你的redis可以在myeclipse上运行小demo了,那么可以继续学习了 redis Java String 实例 string是redis最基本的类型,一个key对应一个value. str ...
- 运输计划NOIP2015Day2T3
运输计划 题目描述 公元 2044 年,人类进入了宇宙纪元. L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条 航道连通了 L 国的所有星球. 小 P 掌管一 ...
- 在 Azure 上部署 Kubernetes 集群
在实验.演示的时候,或者是生产过程中,我经常会需要运行一些 Docker 负载.虽然这在本地计算机上十分容易,但是当你要在云端运行的时候就有点困难了.相比于本地运行,在云端运行真的太复杂了.我尝试了几 ...
- 2.2JAVA基础复习——JAVA语言的基础组成运算符和语句
JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号 ...
- Node.js基础学习二之POST请求
本篇介绍下 Node.js post 请求 需求: 用户登录,前端界面输入用户名和密码,点击登录请求后台验证,根据后台反馈的信息做出响应 前端: (1)使用form表单 (2)使用ajax异步请求 服 ...
- PHP7.1 mcrypt_module_open() is deprecated
PHP7.1 mcrypt_module_open() is deprecated 一:函数前添加抑制符 @ mcrypt_module_open....;->@mcrypt_module_op ...