乐趣区

关于项目管理:如何做好创业公司研发团队的项目管理

1 前言

探讨守业公司中的软件研发项目管理问题:

大部守业公司的软件研发治理处于什么阶段?

如何改善软件研发过程和提高效率?

软件研发过程会波及哪些工程实践和办法?

2 如何掂量软件研发团队所处的项目管理成熟度阶段?

2.1 项目管理成熟度掂量办法

目前成熟度模型总数超过 30 种,其中,以美国卡内基·梅隆大学软件工程研究所 (SEI) 提出的 CMM(Capability Maturity Model For Software)、驰名项目管理专家 Harold Kerzner 博士提出的项目管理成熟度模型 K-PMMM、美国项目管理协会 PMI(Project Management Institute) 从组织面策定的 OPM3(Organizational Project Management Maturity Model) 和 PM solution 提出的项目管理成熟度模型 PMS-PMMM 等最为出名。

软件能力成熟度(CMM)是 1987 年美国软件工程研究所(SEI)首先提出的,该模型 CMM 侧重于软件开发过程的治理及工程能力的进步与评估,基于以往软件工程的经验教训,为软件开发抉择过程改良策略提供了框架和指南。并将软件过程改良的进化步骤组织成 5 个成熟度等级,如表所示。

级别 级别数字 形容 备注
初始级 1 软件过程是无序的,有时甚至是凌乱的,对过程简直没有定义,胜利 取决于个人努力 治理是反应式的
已治理级 2 建设了 根本的项目管理过程 来跟踪费用、进度和软件的性能个性。制订了必要的过程纪律,能反复新近相似利用我的项目获得的成功经验。
已定义级 3 已将软件治理和工程两方面的过程文档化、标准化,并综合成该组织的 规范软件过程。所有我的项目均应用经批准、剪裁的规范软件过程来开发和保护软件。
量化治理级 4 剖析软件过程和产品质量的 具体度量数据 ,对软件过程和产品都有 定量的了解与管制。治理流动有一个作出论断的主观根据,可能在定量的范畴内预测性能。
优化治理级 5 过程的量化反馈和先进的 新思维、新技术 促使过程 继续不断改进。有能力辨认软件过程中的薄弱环节,并有足够的伎俩改良它们,避免缺点的产生。

2.2 大部分守业公司所处的阶段

虽有存在不同掂量项目管理成熟度的办法,但总体来说,大部分守业公司处于“已治理级”,正在走向“已定义级”的过程中(处于 CMM 5 级中的第 2 级,正在往第 3 级倒退)。企业制订了局部标准、纪律,但未造成体系欠缺的规范,或者造成了一些标准规范,尚未齐全落地。

2.3 咱们为什么要在一个组织中推广规范流程,它有什么价值?

亚当斯密在《国富论》中提出“分工产生效力”,因而,一个组织冀望进步整体效率,其外部也须要进行“精细化分工”,然而,精细化分工会带来不同分工角色之间的“简单合作”,因而,组织须要一套解决合作问题的流程机制,这也是建设标准化流程的基本动机。

因为社会化大分工显著进步生产效力,同时也产生简单合作需要,而进步这些简单合作的效率须要迷信的治理办法。1911 年,“科学管理之父”泰勒发表《科学管理原理》,提出迷信的分工治理办法。其办法演变为工业时代的流水线生产管理模式,经典代表是福特的汽车流水线生产模式。1913 年,福特实现驰名的流水线生产.第一条流水线使每辆 T 型汽车的组装工夫由原来的 12 小时 28 分钟缩短至 90 分钟,生产效率进步了 8 倍。

对于守业公司来说,随着守业公司的逐渐壮大,外部分工变得更精密,其软件研发过程也须要一套解决外部简单合作的流程机制,也就是规范研发流程。

软件研发流程标准化,它通常蕴含两个方面:

  1. 资源的集中管理和调度
  2. 流程和治理标准化

它们为什么如此重要?

以春秋战国的秦国为例,它通过建设国家的集中管理和标准化,实现本身效力的显著晋升,最终实现现代中国的对立。并且,在 2000 多年前的技术条件下,实现建筑万里长城、灵渠、西安兵马俑等匪夷所思的世界级工程,这些事件即便放在明天的科技条件下,也都是十分有挑战的雄伟工程。

为什么秦国能在残暴和强烈的战国竞争中胜出?

  • 周朝是一个由多个大小不等的分封诸侯国组成的弱集权国家。
  • 晚期的秦国外部就是一个放大版的“周朝”,分封的对象是秦国外部的贵族。
  • 重要的转折点——商鞅变法:中央集权、标准化、非人格化的行政体系(制度化)。
  • 秦国自商鞅变法后,整个国家的效力显著当先于其余诸侯国。
  • 除开秦国占据更好的地缘地位和其余因素外,秦国对立现代中国最重要的起因是“国家效力”(国家能力)超过其竞争对手。

历史纪要:战国时期,秦国的秦孝公嬴渠梁即位当前,信心图强改革,便下令招贤,商鞅自魏国入秦,并提出了废井田、重农桑、奖军功、履行对立度量和建设县制等一整套变法求新的倒退策略。

2.4 软件研发项目管理办法的实践依据

项目管理办法 实践起源
瀑布流 瀑布模型是一个软件开发模式,于 1970 年被温斯顿·罗伊斯(Winston Royce)提出。其核心思想是按工序将问题化简,将性能的实现与设计离开,便于分工协作,即采纳结构化的剖析与设计办法将逻辑实现与物理实现离开。
增量迭代(双周迭代) Scrum(迭代式增量软件开发)源自日本的“丰田生产零碎”(Toyota Production System)和美国空军的 OODA 循环实践,提出于 1993 年。引自《麻利反动》(【美】杰夫·萨瑟兰,英文原版写于 2014 年)
项目管理办法 实践起源
项目管理体系和流派 国内上项目管理有很多不同的流派。PMBOK、PRINCE2 和 IPMP 这三大流派基本上代表了目前世界上比拟支流的三种项目管理文化,并且各自侧重点不同。其中,美国的 PMBOK 偏重“项目管理包含什么”,英国的 PRINCE2 偏重“项目管理如何做”,瑞士的 IPMP 偏重“项目经理的能力模型”。PMBOK 是 Project Management Body Of Knowledge 的缩写,指项目管理常识体系的意思,具体是美国项目管理协会(PMI)对项目管理所需的常识、技能和工具进行的概括性形容。提出于 1970 年代。(大家经常提起的 PMP 证书就是由该机构颁发)PRINCE 是 PRoject IN Controlled Environment(受控环境下的项目管理)的简称,国内项目管理师认证,是英国商务部(OGC)1996 年开始推广的项目管理体系。国内项目经理资质认证(International Project Manager Professional,简称 IPMP),是一个在瑞士注册的非赢利性组织。它的职能是成为项目管理国际化的次要促成者,创立于 1965 年。

2.5 SCRUM 的理论知识介绍

2.5.1 SCRUM 实践根底

Scrum 办法是目前寰球最风行与最无效的麻利项目管理理念与办法之一,是一种疾速增量交付软件产品的能力,在构建产品过程中创立产品的外部团队并与客户高度合作。

Scrum 的雏形是由日本的 Takeuchi 和 Nonaka 提出的。Jeff Sutherland 在 1993 年将这种办法在 Easel 中进行了实际。Jeff Sutherland(《麻利反动》作者)与 Ken Schwaber 在 1996 年 OOPSLA 会议上正式将其定义为 Scrum 并向业界颁布了 Scrum 开发过程。之后,Scrum 成为当先的麻利开发方法。

Scrum 是增量迭代的开发过程,整个开发周期由若干个小的迭代周期组成,每个小的迭代周期称为一个 Sprint,每个 Sprint 的长度个别为 1~4 周。Sprint 有固定的周期——完结于固定的明确的日期,无论工作实现与否,从不缩短。

精确地说,大部分守业公司应用的是 B 型 SCRUM(在迭代完结之前,布局好下一个迭代):

2.5.2 施行 SCRUM 时的难点

在影响 Scrum 失常施行的泛滥因素中,对于在 Sprint 过程中退出超出团队消化能力的额定需要,它是 Scrum 的第一杀手。

Scrum 团队必须对在一次 Sprint 中能够实现哪些工作、谁能够在失常的一周工作日内实现这些工作作出决定。有些应用 Scrum 的公司试图在 Sprint 中塞进更多的工作,这些工作超出了 Scrum 团队在额外工夫内所能实现的工作量, 这就会导致团队自治的降落、过多的加班、较高的次品率、人员的损耗和跳槽等。

Cohn 和 Ford 认为,一个组织从打算驱动的传统模式向变动驱动的麻利过程转变的过程中会产生很多问题。这次要是因为一个软件开发团队对麻利办法实际有冲突或是过于狂热造成的。这个转变过程会影响到整个组织的构造、文化以及治理等诸多方面。无论是文化还是人的想法都是很难扭转的,这也是为什么对于很多的组织来说,向麻利办法的转变很难实现的起因所在。

(引自:[Moe N B,Dingsoyr T.Understanding self-organizing teamsin agile software development[C]//19th Australian Confer-ence on Software Engineering,2008:76-85.]())

须要感性高空对“麻利”,它对于不同的团队、不同的我的项目有着不同的意义,正如 IBM 公司 Rational 部门的总架构师 Per Kroll 所言:“麻利在不同的我的项目中意味着不同的货色。对某一个我的项目作用微小的麻利,却不肯定能对另一个我的项目起到同样的作用”。

2.5.3 各类麻利研发模式和实践

2001 年 2 月,麻利办法的一些创始人在美国犹他州成立了 Agile 联盟,将轻载办法正式更名为 Agile 办法,Agile 有笨重、机警、生机的意思。

Agile 办法没有一个明确的定义,其特点是对软件生产率的高度重视,次要实用于需要含糊或疾速变动下的、小型项目组的研发。有人称,Agile 办法是在保障软件开发有胜利产出的前提下,尽量减少开发过程中的流动和制品的办法,抽象的讲,就是“刚刚好 ”(Just Enough),即开发中的流动及制品既不要太多也不要太少,在满足所需的软件品质要求的前提下,力求进步开发效率。

人们不可能在软件开发之前精确地把握过后的需要及其之后的走势,这一点已由 Peter Wegner 用数学的办法给出了严格的证实。构想有一个虚构的“现实软件”,它是对用户的最大满足,并能随工夫的推移和局势变动而与事实放弃即时同步,那么软件需要本质上是对”现实软件”的粗略的内部形容。实践上来说,软件开发应是一个跟踪过程,只能通过软件开发过程的自适应性来迫近“现实软件”,不可能齐全实现。

依据自动控制实践,自适应零碎是一个强反馈系统 。在软件开发中,需要的获取和剖析、软件设计、编码等本质上均为前馈环节,真正的反馈环节应该是用户对可运行软件的应用、应用中与“现实软件”的比拟判断及判断后与开发人员的信息交换。另外,管制实践还要求,反馈和前馈这一回路的响应速度应大于被跟踪(或被适应) 的零碎的变动速度,这就要求软件开发有疾速的产出能力。

基于适应性特点,Agile 办法通过疾速、短迭代式的开发,一直产出和演变可运行软件,增强我的项目无关人员的信息交换等伎俩来进步反馈的速度、力度和准确性 。在软件过程改良方面,Agile 办法通过对理论反馈信息的度量,依据用户满意度(工夫和品质的衡量) 进行微调,相当于缺点驱动的改良形式。

软件开发中,人的因素是第一位的。人是过程的主体,而人的工作承受力是无限的,任何超出人失常承受力的过程必然导致过程后果的偏离,这一点在重视过程改良的办法中往往被忽视或低估。Agile 办法认为,软件开发中的绝大部分是须要创造力的设计工作,软件人员是创造性的工作者,有主观上做好工作的志愿,不同于大工业时代生产流水线上被动性的工人,因而,在治理理念上应重视领导和合作,而非命令和管制,充分发挥软件人员的能动性和创造力

2.5.4 Agile 软件研发办法介绍

办法名 起源 特点 适用范围 备注
XP(Extreme Programming) Kent Beck,1997 由 Kent Beck 提出,名称中 Extreme 的含意是将好的开发实际 (Practices) 使用到极致。XP 最后实际于 1997 年 Crysler 公司 的 C3 我的项目(人员薪金治理),采纳 Smalltalk 语言开发。交换(Communication) 我的项目相干人员之间充沛、多渠道 (最好面对面) 的沟通。简化 (Simplicity) 在零碎可运行的前提下,做最简洁的工作; 在开发中一直优化设计,时刻放弃代码简洁、无冗余。反馈 (Feedback) 强调各种模式的反馈,如小交付、短迭代、先思考测试再编码等。胆识 (Courage) 面对压力做正确的判断并敢于付诸行动,如,敢于抛弃设计不良的代码,疲乏时立刻劳动等。缺点:XP 中的文档问题(简直没有文档)。 实用于 10 人以下项目组、开发地点集中的场合。(关闭开发)
SCRUM 办法 由 Ken Schwaber 和 Jeff Sutherland 提出,1993 SCRUM 将工业过程管制中的概念利用到软件开发中来,认为软件开发过程更多是经验性过程(Empirical Process),而不是确定性过程(Defined Process)。确定性过程是可明确形容的、可预测的过程,因此可反复(Repeatable)执行并能产生预期的后果,并能通过迷信实践对其最优化。项目组由全职开发人员及与该交付产品无关的市场人员、销售人员、用户等组成。设以下小组:・项目管理组。由产品经理领衔,包含总设计 师,各 SCRUM 小组组长,市场、销售的高级职员及典型用户等。・若干个 SCRUM 小组。各小组由组长(SCRUM Master)领衔。每个小组都是跨专业的(通常包含开发人员,品质管制人员或用户代表等),通常为 3~7 人,以使小组内有充沛的交换。SCRUM 在实践中大大提高了生产率(据软件生产率组织的 Capers Jones 称,可进步 6 倍)。
Crystal 办法系列 Alistir Cockburn,1980 利用于 IBM 我的项目中。他认为不同的我的项目需采纳不同的开发方法,并随着开发的进行应一直细调(On – the – Fly Turning),亦即连续不断的过程改良。据此他提出了一系列办法(Crystal Clear、Crystal Yellow、Crystal Orange、Crystal Red 等,名称借自于自然界中的晶体,有通明的、黄色的、橙色的等)作为根本参照和一些准则来领导办法的调整。Ciystal 办法系列的核心理念:软件开发可视为发明和交换相协调的过程,其中人的因素是第一位的,软件开发的第一指标是交付有用的、可运行的软件,其次是放弃开发工作的可延续性。 用在 6 人左右的我的项目 组(无上层小组),迭代周期应为 2~3 个月。有上层小组则可达到 40 人以下。 多种模式并存
DSDM 办法 1994 起源于英国,是一个工业联盟。由 16 家公司发动(1994 年)并组成,最后的目标是开发一种更好的面向畛域的疾速利用开发(RAD)办法,当初会员已超出英国(美国、印度、德国、法国等),利用范畴也不再限于 IT 行业。因为有良好的组织根底,它在技术支持、培训认证、利用推广、钻研改良等方面都远比其余 Agile 办法要欠缺的多。DSDM 实用于工夫要求紧的我的项目。DSDM 的根本观点是,任何事件都不可能一次性 的圆满完成,应该用 20% 的工夫实现 80% 的有用功 能,以适宜商业目标为准。MOSCOW(Must do,Should do,Could do,Won’t do)优先级排序办法。
FDD(Feature Driven Development) Jeff de Luca 和 Peter Coad, 是一个模型驱动、短迭代的开发方法,实用于变动周期短的业务利用开发。所谓的特色点(Feature)是一些用户眼中有用的小性能项,一个特色点能在两周或更短的工夫内被施行,且产生可见的、能运行的代码。
ASD 办法 Jim Highsmith 基于简单自适应零碎实践 (Complex Adaptive System),旨在通过进步组织的自适应力以应答 Internet 时代下极度变动、难以预测的疾速软件开发要求。
… …

2.5.5 Agile 办法(麻利)与 CMM(传统)的比拟

CMM 专家 Mark Paulk 认为,CMM 更重视治理问题(组织过程的有效性和过程的系统化改良),Agile 更重视技术和效率;CMM 提供了一个高度形象的框架,有宽泛的适用范围,Agile 实用于小组织和需要不定、有用户严密参加的状况,在高可靠性要求和大型项目组,或虚构项目组中不宜采纳。

XP 专家 Ron Jeffries 认为,XP 办法从某种意义上来说是 CMM2 到 5 级的一个垂直切片(满足了 CMM2 到 5 级中的局部 KPA 指标要求),若将之利用于整个组织则还须更多的度量工作,但他同时指出,XP 办法中更多的度量不是不能够做,而是要依据投入回报剖析决定是否有必要。

Scrum 的 Jeff Sutherland,反对麻利模式,认为 CMM 模式过于重并且效率低下。

综上所述,软件研发过程不同于工业生产的流水线,不具备工业生产的 确定性过程(Defined Process),谋求齐全的可控制性会比拟难。

3 项目管理在推广过程中遇到的一些常见难题

3.1 项目经理的有责无权问题

为什么是这样?

只有 CEO 或者治理职责上的总负责人领有所有的治理势力,然而,他们不可能每个我的项目都这样去治理。因而,项目管理角色被独自划分进去,代替他们去治理我的项目,导致了有权无责的现状。

因而,有责无权是项目管理的常态,正因如此,在一个制度、组织流程健全的体系下,项目经理会更容易做事。而在守业公司中施行项目管理工作,会显得更艰难。

3.2 守业公司所处阶段面临的常见项目管理倒退问题

  • 在独立我的项目执行的模式下,各个团队的项目管理办法、形式出现多样化。
  • 项目管理制度尽管被建设起来了,然而欠缺水平比拟低,存在比拟多的流程空白和含糊地带。
  • 该制度不足适合的执行主体等。

项目管理与组织的关系:

4. 项目管理所须要的上层组织与文化环境

在一个既有做事办法(可能是非标准化的做事形式)的组织中,推广标准化无异议一次“文化侵略”,容易引起原来群体的冲突,该问题须要公司高层的反对和了解,同时,也须要急躁期待标准的逐渐落地

泰勒在各个公司或者工厂中推广治理流程时,提到流程的落地难题。

企业的改革条件:

1 企业领导充沛了解并置信科学管理的根本准则。

2 亲密关注采取这种改革所波及的所有因素,特地不能急于求成。

企业的改革应该遵循循序渐进的开展,最后影响到员工的多数改革,只有当 1/4、1/3 的员工转入新的办法而且充沛置信使用后,再进行下一步的改革。

——《科学管理原理》(弗雷德里克·温斯洛·泰勒,1911 出版,迷信管理学之父)

要害概念在于“门槛”:一个人会看到多少人或多大比例的人采取一个决定时,才会采取雷同决定;这一点是此人净效益超过净老本的门槛。一个人决定采取一项行为的老本效益比拟局部取决于有多少人采取雷同的决定。

以加入抗议为例,一个人加入抗议的老本会因为抗议规模的扩充而逐渐升高,因为加入的人愈多,被拘捕的机会愈小。不同的人在决定退出抗议之前要求不同的安全感,因而在抗议中所能取得的利益也不一样。形容这个人人不同的要害概念就是每个人退出口头的不同“门槛”。

——《镶嵌:社会网与经济口头》(作者,马克 格兰诺维特,美国斯坦福大学传授,出名社会学家,次要钻研社交网络和经济社会学)

5 项目管理落地后可能负面影响

5.1 因流程繁琐而效率变低、僵化

“先僵化、后优化、再固化。”

——华为任正非

  1. 推广新流程和规范的初期,必然会遇到肯定的阻力。
  2. 在新老流程的过渡阶段,整体效率甚至会低于老流程。
  3. 新流程的落地是一个渐进的过程,甚至是一个重复的过程。

推广新的流程、规范相当于推广新的做事形式、文化,因为它扭转了既有的做事习惯和形式,须要同学们在观点上的扭转,因而,它的落地须要肯定的工夫,也会遇到一些阻力和问题,推广新规范的同学也容易成为众之所矢

6 局部参考资料

弗雷德里克·泰勒.《科学管理原理》[J]. 当代电力文化, 2014, 04(No.010):98-98.

布鲁克斯, F.P.). 人月神话: 英文[M]. 人民邮电出版社, 2010.

马克・格兰诺维特. 镶嵌: 社会网与经济口头[M]. 社会科学文献出版社, 2015.

Schwaber K,Sutherland J. The scrum guide[J]. Scrum Alliance,2011,21(19): 1.

张敬周,钱乐秋,朱三元.Agile 办法钻研综述[J]. 计算机利用与软件,2002(06):1-9+54.

张智海,周国祥.Scrum 办法的钻研与剖析[J]. 合肥工业大学学报(自然科学版),2010,33(02):197-200.

方德英. IT 项目风险治理实践与办法钻研[D]. 天津大学,2003.

Pooley R , Wilcox P . The Capability Maturity Model for Software[J]. Applying UML, 2004, 2(4):151-159.

Fukuyama F. Political order and political decay: From the industrial revolution to the globalization of democracy[M]. Macmillan, 2014.

作者:

徐汉彬,现就职于一家 C 轮的守业公司从事研发和管理工作,曾就任于腾讯和阿里巴巴多年,有守业经验,负责过日申请 10 亿 + 零碎从零到一的架构和研发工作。领有十年以上的技术研发、治理教训,在海量服务架构、举荐零碎、机器学习等方面有肯定的实际积攒和教训。

退出移动版