项目管理

在寻找项目管理软件以前,应该先明确一下咱们的目的,但愿软件可以带给咱们什么价值,价值来源于需求,那么咱们的需求是什么呢?需求简单来讲,就是但愿一款软件可以帮助咱们进行管理性工做,如今的项目管理工做其实分为“项目管理”、“敏捷项目管理”这两种方式,这两种管理方式虽然在管理流程存在差别,但目标是一致的,都是让项目尽量的实现商业价值。咱们的项目适用于以上哪一种方法,这个须要按照项目的特性、以及团队的水平来肯定。编程

“项目管理”是一种预测型的管理方式,它提倡在项目开始前,尽量的预测并计划咱们要作的每一件事情,好比:运维

1) 预测一个商业问题能够转化为机会;工具

2) 预测咱们设计的项目范围可以抓住商业机会;学习

3) 预测咱们须要在3个月内交付项目才能取得较大的商业价值;测试

4) 预测咱们依照指定的质量政策才可以知足质量要求;优化

5) 预测咱们须要10个开发人员才能保质保量的交付;翻译

6) 预测咱们可能遇到风险有哪些、预测完成这个项目须要500万人民币。设计

以上的预测,是对范围、时间、质量、资源、风险、成本这几个因素的预测,它们相互制约着,而且最终影响到客户的满意度,如图:3d

 

相互制约的例子:对象

1) 小张原本一周内只能完成10个功能,但由于项目急,开发时间短,如今须要小张在1周内完成15个功能,小张加班加点,勉强完工,虽然进度是遇上了,但质量可能会出现问题。这是时间、范围、质量之间的制约。

2) 而后仍是小张,小张在一周内可以完成10个功能,这个速度没法使咱们按时交付项目,因此咱们决定增长一个开发人员老王,若是老王加入后,团队每周能够完成25个功能,这样能够达到项目的进度要求,可是受限于成本缘由,咱们请不起老王,那老王就来不了了。这就是资源、时间、成本之间的制约。

3) 老王一我的独立开发项目,开发过程当中发现某个功能的实际开发工时超出了预期工时,这致使了项目关键路径的改变,若是咱们想要按时交付项目,在不加入小张的状况下,只能砍掉几个没必要要的功能,延后至下一个版本上线。这是范围、时间、成本之间的制约

项目管理就是对于这些制约因素的管理,在这些制约因素的相互影响下,帮助企业实现最高的价值收益。

 

项目管理是一套管理体系,主要包括5大过程组:启动、规划、执行、监控、收尾。在前面说到的预测,就是启动与规划,咱们能够在规划后,获得详细的计划,计划包括但不限于:

1) 范围管理计划;

2) 进度管理计划;

3) 成本管理计划;

4) 质量管理计划;

5) 人力资源管理计划;

6) 风险管理计划。

这些计划就是项目的基准,指导团队执行项目活动,有了基准就是有了目标与规范,你们在规范的指导下,向着明确的目标共同努力完成项目。

当项目执行中,咱们还须要及时监控项目的执行状况,保证项目的执行方向与目标方向保持一致,这个时候就有了绩效,经过对于绩效的把控,来衡量项目团队当前时间点的任务完成状况,若是发现误差,须要及时调整,发现误差的方法能够是:

1) 趋势分析

2) 误差分析

3) 挣值绩效

4) 统计抽样

可能存在的误差有:进度误差、质量误差、成本误差、范围误差,咱们经过修正这些误差,保证项目是可控的,以实现商业价值。

范围、进度、质量、成本,这几个制约因素,在这里就被称做为“多快好省”, 由于多快好省正是衡量几个指标的目的,除掉“多快好省”以外,项目管理还须要对团队成员进行管理,管理他们的指望,管理他们的工做状态,这就要求项目经理具备必定的软技能,和人力资源相关的方法论。

风险管理,积极和消极的风险一般被称做为机会和威胁。若是风险在可承受范围以内,而且与冒这些风险可能获得的回报相平衡,那么项目就是可接受的,咱们经过识别风险、定性风险、定量风险、制定风险应对策略、控制风险,这样的处理流程对风险进行监控。

在实际工做中,传统团队中的高级管理者一般承认上面这种项目管理方式,他们关注的问题诸如:

1) 项目可否完成预期价值?

2) 项目何时可以交付?

3) 当前的进度如何,可否按时完成里程碑?

4) 质量是否达标?

5) 咱们是否须要作出调整?

他们但愿以可控的方式来对待项目,这种项目管理方式在定制化项目中很是适用,由于它知足PDCA的管理循环理论,以SMART的方式制定项目计划,以挣值管理的方法监控过程,最终获得预期的结果并进行复盘。而且这套流程一样符合企业管理的流程,可以监控团队的绩效,得到团队的执行状况,这是高层管理者最但愿看到的,因此必然会在企业内获得承认和推广。可是如今的互联网企业基本不作定制化项目了,若是套用这一套项目管理体系,在执行过程当中会很是的难受,他们会发现来自用户、市场、销售的需求范围随时都在发生变动,没法创建详细的执行计划,若是让团队作一个月的计划是能够实现的,可是若是作半年的计划,那是痛苦的,没有详细的计划,就没有完善的监控过程,也就没法准确的评价绩效。

不一样类型的项目须要不一样的对待。就像咱们的生活同样,吃中餐的时候咱们使用筷子比较方便,而吃西餐时咱们使用刀叉比较便捷。而咱们再进行开发工做时,也会基于不一样的环境选择不一样的方法。

“敏捷项目管理”是一种适应型的管理方式,它以价值驱动交付,项目团队须要保证最有价值的功能最早被交付,而后经过用户的反馈获得改进的意见,及时调整适应,整个开发过程遵循计划->执行->调整的环状结构流程,在敏捷团队中,个体和交互大于流程和工具,这要求每一个团队成员都具备良好的沟通能力和专业技能,若是每一个成员都是T型人才,可以胜任产品设计、开发、测试中的每一个岗位,那敏捷团队将会表现的很是高效。这样看起来,敏捷团队就像是一个特种部队,每个成员都拥有普遍的专业技能,随时可以填补团队中的空缺,保证任务的稳定执行,若是想要尝试敏捷项目管理的,能够了解如下敏捷方法(只作介绍不作详细说明):

Scrum:

 

Scrum特指一种敏捷开发的模型。它是一个迭代小、增量性的流程,适用于任何的产品开发以及工做管理。Scrum将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具有的最佳典范与技术,具备高度自主权,紧密地沟通合做,以高度弹性解决各类挑战,确保天天、每一个阶段都朝向目标,明确的推动。

Scrum三大支柱:

1) 高透明性:信息的高度透明,任何方面都能被观察到

2) 检查:常常性的检查,防止重大误差

3) 适应:当发现可交付成果不合格时,应该及时修正,减小误差

Scrum 团队:

1) 开发团队:是自组织的、跨职能的、他们拥有创造产品增量所须要的所有技能,包括设计,相似特种部队。

2) 产品负责人:是管理产品待开发项的惟一负责人,相似军队中的军长。

3) Scrum Master:确保Scrum被理解并实施,相似军队中的政委。

Scrum 事件:

1) 迭代:一个迭代就是一个时间盒(有时间限制),在这个时间盒中至少应该有产品发布,这个时间盒的长度通常为1~6周的时间。

2) 迭代计划会议:肯定在这个迭代中须要交付哪些产品以及如何达成目标。

3) 每日立会:天天15分钟的时间,开发团队须要同步他们的活动,彼此进行沟通以及提出问题。

4) 迭代评审:迭代结束时举行的会议,产品负责人决定本次迭代是否完成。

5) 迭代回顾:回顾反思整个迭代过程须要改进的地方。

Scrum 工件

1) 产品待开发项:全部须要开发的功能。

2) 迭代待开发项:产品待开发项的分解,一次能够交付的最小迭代目标。

3) 燃尽图:翻译工做量完成状态的趋势图。

极限编程(XP):

XP是敏捷方法中的一种软件开发方法。若是说Scrum更加关注项目管理工做的话,那么XP更加关注软件开发的良好实践。XP的核心价值是监督、沟通、反馈、勇气、尊重,这些价值体如今XP的整个生命周期中。

极限误差的核心实践:

 

项目团队使用FDD的方法首先能够为产品开发一个总体的模型,构建特性列表和工做计划,而后对开发的特性进行设计和构建迭代。FDD推荐了一系列的良好实践,这些都是从软件工程中延伸而来。这些实践包括:

1. 领域对象建模

2. 安装特性开发

3. 类拥有权

4. 特性小组

5. 审查

6. 配置管理

7. 按期构建

8. 可视性进度报告

动态系统开发方法(DSDM):

 

DSDM倡导以业务为核心,快速而有效的进行系统开发,其的基本观点是,任何事情都不可能一次性地圆满完成,应该用20%的时间完成80%的有用功能,以适合商业目的为准。实施的思路是,在时间进度和可用资源预先固定的状况下,力争最大化地知足业务需求(传统方法一步是需求固定,时间和资源可变),交付所需的系统。对于交付的系统,必须达到足够的稳定程度以在时间环境中运行;对业务方面的紧急需求,也要求可以在短期内获得知足,而后在之后迭代阶段中对功能进行进一步完善。

DSDM周期有7个阶段

1) 项目准备阶段

2) 可行性检验局阶段

3) 业务研究阶段

4) 功能建模阶段

5) 系统设计编程阶段

6) 实施阶段

7) 项目后期阶段

精益开发(LEAN):

精益开发不是敏捷的方法,可是精益和敏捷的价值观是紧密相关的,精益的一系列原则是从精益生产中来的,并应用于软件开发。对于精益来讲有7个核心的概念:

 

中消除浪费是为了最大化价值。浪费来自一些没必要要的功能。为了提高咱们在项目中得到的价值,咱们必须识别一种方法以消除浪费。

看板方法(Kanban):

看板开发方法是近年来最热门的敏捷和精益开发方法。愈来愈多的案例代表,它可以改善协做、优化管理,显著提升交付速度、质量和灵活性。看板开发方法的规则简单,但其有效的实施依赖于对原理的理解、对原则的坚持和实践的应变。

一个看板在敏捷开发中的最佳实践如图:

 

每一个卡片表明开发中的各各流程,图中以 规划->开发->测试->发布这样的流程来进行管理,开发任务在这个工做流中扭转执行,最终被发布。整个过程显的十分灵活可控。

“敏捷项目管理”在质量保证的流程中须要借助一些自动化方式,如:

1) 持续集成(CI);

2) 持续部署(CD);

3) 测试驱动开发(TDD);

4) DevOps(开发、运维、质量管理一体化);

经过自动化的流程,提升交付的效率,减小人为出错的概率,提高质量。

与预测型项目管理相比,敏捷有他的优点,肯定短时间的需求,快速迭代交付、快速验证价值,采用周期性评价代替复杂的绩效管理、让整个团队的目标一致,以价值驱动。

敏捷看似简单,但想要达到真正意义上的敏捷是比较困难的,好比敏捷提倡“拥抱变化 高于 遵循计划”这在不少团队执行时每每会陷入两个极端,要么根本不作规划,要么就在计划上投入大量的精力直到本身确信计划是正确的,不作基本规划的小组可能连什么时间交付产品都没法回答,而作了大量计划的小组会自欺欺人地认为某个计划是“正确的”,他们的计划也许更全面,但并不意味更准确或更有用。这两种极端都是敏捷须要避免的,“咱们实施敏捷,再也不须要计划和文档了”的论调是极其错误的。敏捷不是不须要计划,相反它须要更多的规划。不肯定性是影响计划正确的主要因素,对大部分不肯定而言,获取知识、减小不肯定性的惟一办法是开发获得一些原型,收集反馈,而后分析其价值,最后作出调整,这是规划-执行-调整的方式。一个项目的不肯定性越高,敏捷开发方法对取得成功就越相当重要,不断学习和调整是敏捷开发的核心。

 

四、太长不看的结论性总结

 

在选择项目管理工具前,须要肯定咱们使用的是项目管理方法仍是敏捷项目管理方法。若是使用的是项目管理方法,我推荐“project”;若是使用的是敏捷项目管理方法,我推荐使用

“日事清”。

相关文章
相关标签/搜索