chanzhiliao的个人博客分享 http://blog.sciencenet.cn/u/chanzhiliao

博文

中小型公司如何做项目管理?

已有 538 次阅读 2019-7-16 16:05 |个人分类:项目管理|系统分类:科研笔记| 项目管理, 敏捷开发

引子:因为要给公司提供项目管理提供咨询和建议,花费一个月时间梳理了过去的项目管理经验和现有各大IT公司的项目管理方案和流程,进行了中小公司软件开发项目管理的流程再造,重点突出如何解决项目管理中痛点问题。通过学习大企业的项目管理方法,提高项目管理效益,加强顶层设计,实现成本、进度和风险可控。

一、  现有项目管理的痛点

1.  策划分析

不注重设计,前期策划和分析不充分,急于上马或行动,在实施过程中发现很多方面没有具体的指导方法去解决,临时停下来再去找方法。

2.  风控意识

没有进行风险分析和失效模式分析,出了问题后不知怎样才能够将损失降到最低。

3.  执行管理

有完整完善的方案,还必须有强有力的执行,执行通过例会、里程碑节点评审进行监督,执行才是策划结果的保障。

4.  进度跟踪

埋头做项目,出了问题做裱糊匠,没有跟踪表或没有公示跟踪表,所有人都是盲人摸象,特别是高层管理人员对项目进度不掌握,无法对项目进行控制。

二、  典型IT公司的研发管理情况

1.  华为方案(IPD+CMM,后期转敏捷)

IPD(Integrated Product Development,集成产品开发)是2001年华为花重金从IBM购买的一套产品集成开发流程,而IPD并不是解决开发要怎么做,IPD做的是“投资决策、市场驱动”,更多的是决定做不做这个事情,做这个事情对于投资人员是不是受控的,以DCP点(决策评审点)为核心,每个点上都会去考虑该不该做、值不值得去做,在引入IPD前,华为实际上是技术驱动的,并不是市场驱动的,就是说以前华为听说有个新技术,然后就开始做,做了很多这样的东西,但是后来都卖不出去,后来就引入了IPD,以市场驱动。在引入IPD后,是解决了做什么的问题,但是怎么做,还是按照自己的想法去做,后来就引入了CMM(Capability Maturity Model for Software:软件能力成熟度模型),引入CMM后对华为起了非常大的作用,其产品开发的质量比起前得到很大提高,通过IPD+CMM使得华为走向了一个非常成熟的过程。(引申:IPD手册和CMM培训资料)

但是过度的关注过程而忽视人、技术和工具,出现了一些问题,2006年,发现了瀑布模型的问题,如交付周期特别长,每做一个客户的需求,然后进行分析,这样耗时长,响应慢,所以引入了RUP(Rational Unified Process统一软件开发过程),加速项目的交付周期,能够快速进行客户响应。2007年逐步在一定范围内转向敏捷开发这个方向,开始实施XP、SCRUM等方法,使用的管理平台是Teambition

2.        腾讯方案(自研敏捷开发平台:TAPD)

腾讯是一家典型的互联网企业,有着两万多人研发的企业,同时进行着两千多个项目,运行着四百多个产品。每个研发团队的研发规模和团队的研发模式都各不相同,腾讯的团队想要保持持续创新,除了秉承以用户为主的理念,一套敏捷高效的开发平台必不可少。2006年,腾讯自研敏捷研发体系TAPD,提炼借鉴主流敏捷方法,比如说Scrum、XP、FDD等等,并结合互联网产品研发的特色框架,承载腾讯敏捷研发最佳实践。TAPD的核心理念是敏捷迭代、小步快跑、快速改进、拥抱变化、用户参与等等,TAPD覆盖了腾讯敏捷研发生命周期的全过程,包括有Backlog的产品规划,有迭代计划,有故事墙和燃烧图来跟踪,还有测试计划和缺陷进行敏捷测试,WIKI文档还有发布计划来管理灰度发布,还有用户反馈。在此基础上,TAPD的定制化引擎帮助各个模块进行灵活定制,并且TAPD的开放平台提供了丰富的API接口,帮助第三方应用的接入。

腾讯在敏捷开发方面的实践大致包括3个部分:一是产品:采用FDD,即产品特性开发驱动的一种模式,腾讯的产品会有一个明确的产品经理这样一个角色,他会负责整个产品,包括产品的验证、产品的方向、市场调研、用户调研等。FDD模式是一种非常适合产品经理来对产品做一些滚动的要求,腾讯在产品设计上引入了类似FDD这样的模式,但是也不完全是FDD,只是参考FDD,所有的开发团队都是由产品经理所归纳出来的产品特性去驱动整个产品的研发。二是项目管理过程:腾讯采取了SCRUM,但也不完全是SCRUM,有腾讯根据自己的特点去总结的一些实践,大概的项目管理过程同SCRUM的过程是比较类似的,包括每天的晨会、迭代、timebox、每个迭代完成的时候会有showcase、回顾总结等。三是开发实践:参考了很多XP的实践,比如自动化测试和持续集成,通过这样的实践就能保证产品有一个快速发布的过程。

3.        阿里方案(自研云效RDC:企业协同研发云)

为了解决阿里项目管理当中遇到的挑战:一是涉及的团队和业务众多, 组织方式和结构复杂;二是开发模式和风格极多样化,受业务和团队成熟度等影响;三是充满不确定性,任何环节都可能出问题。他们研发协同平台——云效RDC,规范研发管理,提高效率,缓解风险。云效是一站式企业协同研发云,源于阿里巴巴多年先进的管理理念和工程实践,提供从“需求->开发->测试->发布->运维->运营”端到端的协同服务和研发工具支撑。支持公共云、专有云和混合云的协同研发,助力企业产品快速创新迭代和研发效能升级。云效产品涵盖了项目协作域,研发域,测试域以及运维域,其中项目协作域包括项目管理和指挥部;研发域包括代码管理、配置管理、应用管理、交付管理等;测试域包括单测持续集成、测试环境管理、WebUI自动化、性能压测自动化、接口自动化、集成自动化、Mock测试中心,测试数据中心、缺陷管理、用例管理等;运维域包括资源管理、发布部署、作业平台、P2P文件分发、堡垒机、运维通道,账号权限管理、智能监控等。

总结分析:目前各大IT公司在项目开发模式上,都转型敏捷开发模式,管理的框架上是采用的SCRUM,指导如何编码实现采用一些XP的实践,使用敏捷研发协作平台(TeambitionTAPD云效RDC)进行可视化的项目管理。

三、  研发项目管理的目标

项目管理的三大目标:时间、成本和质量。属于项目管理九大领域中的三块,分别代表花多少钱、多少时间、做成什么样。目前而言,主要关注时间和成本两个要素,确保项目在进度上和成本上可控,并且以结果为导向推动项目进展。急需解决的两个问题:一是解决人的能动性问题:如何进行有效的管理又不流于形式,如何不过分关注过程从而充分发挥人的创造性。二是解决流程问题,严格按照流程工作,防止项目跟着人走,人走茶凉,项目推动不了,通过完善的流程降低对人的依赖。三是结果导向的过程监控与考核评价,项目管理的关键是否能够按照里程碑节点完成任务,要强调成效。可以利用一个公式来表示:项目成功=人+流程。“如果没有人愿意为你干活,再好的流程都是纸上谈兵。”如何激发人的主动性,主要来自各种激励,公司早期发展主要靠价值观和股权激励,后期来源于充满活力的组织管理。在具体带领团队的过程中,要展现四个基本的行为准则。展现尊重,积极主动地关心对方;先聆听,知道团队成员不这么做的原因;接着明确期望,对项目要达到的效果达成共识;最终承担责任,让团队成员知道自己在项目中的重要意义。项目中最重要的因素永远是人,要让团队成员感受到尊重,只有对方感受到了尊重才可能支持我们的行为。本篇文档重点谈如何做好流程。

四、  研发管理的关键步骤

通常讲研发管理的范畴包括:确定如何立项,如何确定产品目标,如何把控项目进度,如何驱动产品一代代完善以及如何调动团队积极性等。在时间周期上来说,可以归纳为3 个最为关键的步骤:选方向、定目标、控进度(项目计划和收尾也很重要,暂不讨论)相配套的,则是在这三个关键步骤的一些流程和工具的使用。

第一步:立项——选方向

1.产品立项

在整个研发过程中,立项称为ProductBrief或者Project Brief。团队产品负责人需要撰写一个1-2页的文档,然后和执行团队进行评审,如果评审通过,表示立项成功。文档一般应包含以下内容:

2  愿景:一句话表达清楚要做什么;

2  分析市场机会和趋势,决定当前策略;

2  确定目标用户的特征和核心需求;

2  现存的解决方案和各自的优劣势;

2  该项目对公司项目的利益点;如果不做该项目,哪些竞争对手会做;

2  需要哪些技术的支持和驱动;

2  人力需求;

2  项目的紧急程度,是否需要快速推进;

2  发布策略;

2  核心衡量指标,用来衡量成功的指标。

输出:参考附件1 IT项目管理文档模板-立项管理

2.技术预研

关键技术是公司发展的千里眼和发动机,没有技术的顶层设计和规划,就会一直处于应付问题的状态,易打乱仗,做裱糊匠。预研就是在在混沌中寻找战略方向,抓住战略机会,迅速转向立项。技术和研发上要注重积累,形成条例清晰的技术框架。要建立面向中长期技术跟踪的组织,坚定做好新产品的研发、企业核心技术的积累。

1.技术预研要在产品委员会的指导下进行,形成定期讨论机制和评审机制。预研的摸索看似复杂,但实则是必须的。这是“爬山找路”的过程,是扫清前行障碍的过程,这为后续展开总体设计、详细设计指明了方向。

2.预研研发人员主要职责:跟标准,推提案,参会议,写专利,申报预研项目。广泛参与国际论坛和相关的技术协会、标准组织,捕捉竞争对手以及潜在竞争对手最新的技术情报,参与国内标准的编写和确立,直接参与到技术的源头、标准工作中去;跟踪国内外技术发展,分析技术发展趋势。

输出:参考附件1 IT项目管理文档模板-技术预研

第二步,OKR 体系——定目标

对一个项目来说,设定目标是非常重要的,因为这决定了如何去做,以及能做到何种程度。目标管理是从Google 引进的OKR 体系(Objectives amp; Key Results,目标与关键成果),这跟传统的KPI(Key Performance Indicator,关键绩效考核)稍微有些区别:

1. OKR 首先是沟通工具:公司员工每个人都要写OKR。为了便于沟通,所有这些OKR都会放在一个文档里。任何员工都可以看到别人的这个季度最重要的目标是什么。

2. OKR是努力的方向和目标:OKR代表你到底要去哪里,而不是你要去的地方具体在哪里。

3. OKR必须可量化。少用定性的语言,多用定量的表述。

4. 目标必须一致:制定者和执行者目标一致、团队和个人的目标一致。首先,制定公司的OKR;其次,每个团队定自己的OKR;第三,每个工程师或设计师写各自的OKR。这三步各自独立完成,然后对照协调这三者的OKR。

5. 通过月度会议Review ,时时跟进OKR: 在月度会议上需要确定如何去达到目标,是一个帮助达到目标的过程。

6. 通过季度会议Review ,及时调整OKR:应时而变,所以每季度有一个OKR 的review,调整的原则是目标(Objectives)不变,只允许调整关键成果(Key Results)。

输出:OKR汇总表

第三步,项目执行——控进度

目标设定以后,非常重要的就是执行,一般的项目管理实际上就是控制进度。

1.  任务/进度勤同步

整个公司所有人的calender,包括会议、要做的事情、项目的时间节点都需要及时同步。在整个战略布局上,如果某个项目工期非常紧,就必须进行更多的沟通,确保每一个环节都没有问题。

2.  站立会议(Daily Sync)

每天进行站立会议,一般控制在十分钟之内,每个人说明自己今天要做的工作,需要什么帮助,有谁可以帮忙,可以更有效的调节资源和公关。

3.周会(Weekly Report):每周总结

团队产品经理要做周报,汇报一周的工作、发布、取得效果以及数据。项目管理控制进度中长期靠里程碑、短期靠汇报周期,也就是项目的例会。里程碑是中长期的控制节点。而汇报周期(一般是周例会),是日常的管理机制,必须要坚持。要能够做到:

2  按时取得项目中的管理数据;

2  分析与项目计划(基线)的偏差;

2  找到产生偏差的原因;

2  制定并采取相应的应对措施。

核心目的是通过这样一种方式,及时了解项目的情况,预见可能的问题,找到解决的方法,同时周期性地和主要干系人进行沟通(项目周报+面对面的讨论)。“后看一、前看三”,每次例会回顾之前一周项目的执行情况,讨论未来三周会做哪些工作,有什么潜在的问题。 输出两张清单:一张是风险清单、一张是问题清单,这两张表是每次例会必须要讨论的内容。也是通过这样一种机制,将项目计划落实到行动上。

输出:参考附件1:IT项目管理文档模板-项目监控、风险管理

4.进度看板(SCRUM可视化)

SCRUM的核心可以概括为:3个3

一、开发流程中的3个角色。产品负责人(Product Owner),负责决定产品要做什么,做成什么样子;流程管理员(Scrum Master)主要负责整个Scrum流程在项目中的顺利实施和进行。开发团队(Scrum Team)包含开发、测试、质量等等所有的人。

二、3种会议。迭代的计划会议、中间的站立式会议、迭代的评估会议,属于三个管理的活动。

三、3个交付件。待开发的任务列表、待修复的缺陷任务列表、项目的进度图。

SCRUM就是通过这3个3将项目非常简洁的管理起来,那么项目的进度怎么进行可视化?敏捷项目的进度可视很简单,就是通过一个白板(进度墙、任务看板),每个人的进度情况贴上去,这是最简单最直接的管理方式,能够清晰明白的体现项目进度。

近几年,为了提升产品研发效率,很多IT公司推广使用项目管理工具和协作平台。比较好用的包括腾讯TAPD和Teambition。作为内部的沟通工具,它主要用来做跨团队沟通,全公司所有员工都可以使用。重要的roadmaps 必须在这里登记,登记了以后,一个项目需要多少设计师、需要多少marketing、每个阶段是什么样以及工程师的发布状态都可以看得到。

输出:附件6一页纸项目管理模板、附件9软件项目进度表

五、  研发管理的输出文档模版

通过上述过程,还会有一些输出,具体的文档模版都已经进行整理。通常项目组要完成以下常用文档,公司以结果为导向进行项目的监控与考核,重点关注:项目进度看板、一页纸项目管理报告、项目例会报告。

2  项目组成员表

2  项目策划/任务书

2  项目WBS表

2  项目进度计划表

2  项目风险管理表

2  项目沟通计划表

2  项目会议纪要

2  项目状态报告表

2  项目变更管理表

2  项目总结表

 

附件:

1.IPD项目管理手册.doc

2.CMM规范描述文档.doc

3.IT项目管理文档模板.doc

4. 项目管理10大模板.xls

5. 项目管理的49个过程ITTO.xlsx

6.一页纸项目管理模版.xls

7.软件项目立项方案.docx

8.项目风险管理矩阵.xlsx

9.软件项目进度管理模板.xls



另:参考了很多文章和书籍,在此致谢,因为是博文,就不一一列出了,侵权删除!如果需要文中的模版请留言或者Email:wwliu@whu.edu.cn联系我。



http://blog.sciencenet.cn/blog-3389351-1189809.html

上一篇:[转载]你需要什么样的分类算法?深度学习吗?未必
下一篇:大数据安全研讨交流会小记

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-8-22 17:49

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部