zoukankan      html  css  js  c++  java
  • 技术管理:项目开发中的几种风险管理

    软件开发是一种高脑力,高体力,高风险的活动,在开发过程的任何一个阶段都可能存在风险。
    在项目开发过程中,为了使项目开发更加平稳,获取更高的价值。避免风险,缓解风险带来的不利影响。所以要进行有效的风险管理

    一:什么是风险管理

    风险管理是对项目风险进行识别、分析、应对和监控的过程,是项目管理中很重要的管理活动,有效的实施软件风险管理是软件项目开发工作顺利完成的保证

    二:项目管理中存在哪些风险

    A:需求不明确

    需求不明确,这个是项目开发中最容易遇到的问题,也是开发经常遇到的问题。这类问题往往是需求要求未细化,需求描述不清楚,需求考虑不周全,需求逻辑矛盾等等,
    这些问题的出现,往往会影响项目的开发进度,甚至打击开发人员的积极性。

    那怎么解决?
    1、写出详细的需求文档
    写出详细的需求文档,甚至可以和开发一起讨论重要的需求

    2、开发原型图
    产品经理用原型开发工具,开发出原型图,这样把需求可视化了,能让开发人员更清楚的了解需求,有利于开发人员的逻辑开发。

    3、需求讨论会
    对于那些大项目,用户比较多的项目,需要收集更多的用户需求,跟各个部门配合,大家一起讨论这些需求,把需求明确定义,排定开发优先级

    4、需求分析
    需求分析是一个项目的基础,是重中之重的事情。
    因为你开发的软件项目,用户是不是喜欢?能不能帮助用户解决问题?是不是用户需要的产品?这些都涉及到了用户需求分析,能不能抓住用户痛点,然后提炼出用户需求,这些都是需求分析的基础

    后补:第一:最重要的是了解自己公司的业务,才能更好的理解需求,才能判断哪些是真需求,哪些是伪需求,哪些是不重要的需求。
    第二:同理心,站在对方的角度考虑问题

    B:项目管理缺少可见性

    在项目开发过程中,缺少可视化的管理。
    在管理项目的时候,让大家能够感受到项目开发的进度,用眼睛能够看到项目开发到哪里了,有一个直观的感觉

    1、看板
    可以把项目分成几个大的模块,每个模块下面有几大功能,写到看板上面,然后在后面写上开发的进度百分比,让大家都能够看到这个项目开发进展情况

    2、甘特图
    甘特图也可以对项目的进度进行管理,可视化

    3、持续集成
    我们把一个较大的项目集成分成小的项目来开发,每次都集成这个小项目,而不是一次开发完一次集成大的项目。这样我们可以每一天每一周都进行集成,遇到了错误就可以及时的改正。“大事化小”的方法

    持续集成,让项目的进度跟踪工作也变得容易。也能看见已完成和未完成的功能 - 可视化。

    4、bug管理
    用一些bug管理工具,进行bug的集中管理,也是一种很好的可视化管理。

    C:一次性开发完成

    我们开发项目最终是要交付功能完善的项目。
    对于小型项目,可以一次性开发完成并交付。但是对于大项目,我们可以设置里程碑式的开发模式,阶段性的交付。这样既可以修正前面开发阶段中出现的bug,也可以阶段性的完成功能点,大家有一点满足感。
    里程碑式:把大项目分解为几个小的里程碑,每一个完成的里程碑都是一段开发的结束。分阶段的完成项目的开发方式。分解的方法模式

    D:新技术

    新技术,它是一把双刃剑,既能促进你的开发效率,交付效率增加,也能给你制造未知的bug,从而降低软件的可用性。
    因为新技术一般都是为了更为有效的解决问题才发明的。但是因为新,可能存在潜在的风险和bug,而这种风险又是未知的。

    怎么样降低这种风险?
    1、技术活跃度
    我们要看看这种技术活跃度,开发这种技术的人是不是很活跃,不时的修改bug,在社区回答问题等等。 还有这个技术的社区是不是很活跃,大家积极的讨论各种问题,用这种技术解决各种问题,开发出各种项目等等。

    2、大厂使用情况
    看看其他场景的使用情况。通常情况下,大厂一般都会有布道会之类的,我们可以看看大厂使用这种技术的情况,他们做了那些项目,解决了哪些问题,可以参考参考

    3、自己实践
    自己动手实践。自己亲自去探索这门技术,看看它的使用,难易度,这门技术解决了什么问题,适不适合现阶段使用,全面的进行评估。

    4、开发人员掌握的程度
    对于新技术,开发人员有多少人愿意尝试,有多少已经尝试了,哪些人掌握的比较好,这些都是需要搞明白弄清楚。因为只有成员掌握了,遇到问题才能很好的解决。

    E:质量管理

    交付的项目,一般我们都希望用户操作满意,带给用户良好的体验,而不要出现操作不顺畅,甚至出bug之类的质量问题。

    1、自己测试
    测试人员要尽可能多的测试软件,找出潜在的bug风险。
    开发人员尽可能多的写功能测试,自己来测试自己开发的功能是不是有bug,积极的保证自己写的代码质量不出大的问题。

    2、自动测试
    引入一些自动化的测试,来测试软件各方面的功能

    3、code review
    开发人员可以相互交叉code review,不仅能相互学习,还能自查bug。
    或者更高级的人员review低级别人员写的代码。
    这些都是保证软件质量的一些手段。

    F:人员流动的风险

    公司的人员流动是一件很正常的事情,不管是谋求自身发展还是对公司发展不满,总会有一些人员的流动。我们不能因为人员的流动,就给项目开发进度带来影响。
    1、程序开发文档
    一些难点程序,必须要有程序开发文档来说明这段程序开发过程,目的

    2、人才储备
    后备人才的培养,最好形成一个梯队,前面的人员离职之后,梯队后面的人能顶上来。
    所以领导要做好日常人才的培养工作。平常多组织大家相互交流项目开发经验,比如在开发项目中使用了好的方法,好的设计模式,好的架构,都可以在技术分享会上宣讲,这样大家相互交流,促进大家技术的发展,也让大家相互了解开发的项目内容。

    3、核心功能分配
    核心功能的开发,可以分解成多个部分,分配给不同的开发人员来开发,不要集中在某个人身上。

    4、人员轮岗
    轮岗的好处当然不止这一个,还有很多好处。
    比如可以培养同理心,站在对方角度考虑问题,因为你到他的岗位了,就必需站在他这个岗位上思考问题。
    比如对业务的熟悉,不止是自己的那一小块业务技术了。
    以后与这个岗位沟通,协作也更顺畅。
    等等,好处多多。

    [完]

  • 相关阅读:
    WPF/MVVM 快速开始指南(译)
    Rose2003的安装和破解
    自定义vs代码段
    silverlight中Grid.ColumnDefinitions属性设置错误
    vs绑定和取消绑定项目和解决方案
    firefox浏览器中silverlight无法输入问题
    silverlight中当前上下文中不存在名称“InitializeComponent“错误
    inotify使用代码
    build android toochain on mac (gcc 4.4.3 compile)
    istat 一个不错的widget
  • 原文地址:https://www.cnblogs.com/jiujuan/p/11493328.html
Copyright © 2011-2022 走看看