• 软件过程与管理学习之(1)Project management Methodologies & Standards(项目管理方法和标准)


    项目管理方法和标准(Project management Methodologies & Standards)

    常见的方法和标准

    在这里插入图片描述

    • waterfall:先做设计,设计完了之后再进行实现,实现完了测试
    • scrum:和 agile 非常相似,都试图克服 waterfall 这种线性方式,他们试图通过迭代的方式来完成项目的管理
    • prince2
    • agile

    Waterfall

    • 从其他领域学习来的(建一个大桥或者建一个房子)应该首先规划所有的需求(构建蓝图)
    • 在构建和完全完成实施之前不会进行测试工作
    • 所以 waterfall 是建设没有任何的替代方案,直接将blueprint 设计成完美形态
    优势
    • 广泛的计划,这种彻底性通常会导致更精确的时间线和预算;在实施之前就会把所有的东西都设计好,你明确地知道要设计多少个 class,使用多长的时间,雇佣多少开发者来完成这件事 因此实施过程中是非常舒服的
    • 但是在 waterfall 的框架下一旦发现问题也是很难解决的( 难以应用更改或修改/纠正之前的步骤(水不能倒着跑),需要主动预测问题)

    Agile

    • 非常适合经常发生需求变动的开发场景(开发过程中使用的依赖库发生改变···,这时候需要相应的改变代码;或者使用新的硬件的时候)
    • 通常开发过程中会经常收到来自用户的反馈情况
    • 开发过程中可以将开发到一定程度的产品给用户展示,方便在中途收到反馈,这是 waterfall 不具备的
    • 但是 agile 的过程非常依赖经验,如果之前没有这么做过可能会做的不好

    如何选择项目管理的方法

    • 没有最好的项目管理方法,要根据下面的几个指标进行考虑:
      在这里插入图片描述

    清晰稳定的范围(clarity and stability of scope)

    • 如果你什么都不知道,你只是想开始并且看看事情会发展成什么样,不要选择 waterfall 因为你没有需求是没法使用 waterfall 的;
    • 相反如果需求非常明确,那么就采用 waterfall

    时间线(timelines)

    • waterfall 使得 timeline 的规划非常简单直接(比如前两个月做 requirement,再一个月做 design,两个月编代码,两个月做测试)
    • 但是对于 agile 或者 scrum,不太容易规划时间线,比如你在开发过程中可能需要获得用户的反馈,但是你并不知道用户什么时候会愿意给你反馈,因此不确定性很高;而且如果他们一直有新的想法,那么时间线的规划就更加遥遥无期

    项目失败与否及其主要原因

    一些衡量的主要指标

    在这里插入图片描述

    • Successful: 项目定期完成,并且在预算范围之内,实现的功能和特点也都达到预期
    • challenged:完成了,但是逾期或者超预算,或者没有完全达到预期的功能要求
    • failure:中途的某个时间点取消了项目

    决定项目成功的因素

    在这里插入图片描述

    • 技术并不是最重要的,管理也不是最重要的,最重要的是钱、员工的成熟度、用户的参与度、优化

    了解组织如何选择最佳/正确的项目(项目筛选)

    在这里插入图片描述
    在这里插入图片描述

    思维导图

    在这里插入图片描述

  • 相关阅读:
    pyenv安装python,Makefile报错
    AcWing 138. 兔子与兔子
    网格搜索和交叉验证
    网络安全(黑客)自学
    MFC文本输出学习
    肺部阴影识别检测 matlab算法技术
    MatrixOne 支持多样化生态工具
    【算法 - 动态规划】最长回文子序列
    Rust开发——使用rust实现Redis中hset
    Maven依赖详解
  • 原文地址:https://blog.csdn.net/qq_42902997/article/details/126563631