轻量级过程改进(Light-weight process improvement,LPI)是一种针对中小型团队软件研发过程中普遍存在的重技术轻管理、研发管理缺乏规范、过程改进理念淡薄等现状和问题而整理的一种“软件过程改进方法和规范”。有众多轻量级过程改进域组成,主要对中小型团队持续地改进其软件过程能力提供一些參考,内容组织上尽量保持其通用性,但个人水平和经验有限,非常多改进域可能仅仅局限于特定团队和场景,须要大家依据各自团队的现状做裁剪和扩充。
一.轻量级过程改进
轻量级过程改进參考了眼下业界主流研发管理理念和模型,包含PACE、IPD、CMMI、SCRUM、XP、LEAN以及PMBOK中的内容。个人觉得这些理念和模型都有其独到之处,但也各有其局限性,如PACE和IPD主要面向大型团队且须要与团队绩效等组织层面工作模式紧密结合,中小型团队通常不适合;CMMI模型仅仅是回答了“达到XX级别的软件过程应该长什么样”这个问题,并没有说明“怎么做才干达到XX级别”。并且本身也是过于复杂,中小型团队实施过程须要精简和剪裁。SCRUM模型看似简单。但对团队要求太高。要想达到理想效果难度偏大;XP偏重于project实践,在管理理论体系上不够完好;LEAN眼下还处于理论体系研究和完好阶段。缺乏详细可操作的模式和工具;PMBOK则偏重于通用性的项目管理,而不是软件研发过程的管理。
初创型团队或亟需过程改进的团队通常不建议也无法照搬上述模型中的不论什么一个,而须要结合团队实际情况博採众长和集思广益,这也是LPI的思路。这里的轻量级的含义就是我们的做法是尽量简单以确保可以得到团队的认可并进行广泛推广,我们的目标也不是可以做到100分。而是一个从不及格到60分的过程。假设我们哪一天可以站在60分的角度去看问题了,那可能我们就会採用其它的模型来帮助我们做更高层次的过程改进。
二.改进域
轻量级过程改进不是一个完整模型。也不是一套解决方式,关注点在于“改进”,即从研发团队中存在的问题出发提出解决这个问题的方法论和实践模式,而问题来自于研发团队的方方面面,个人梳理这些问题并把它们整理成五个大类,各自是:
- 产品管理:涉及产品设计的战略、平台和规划管理,以及产品调研、需求分析等方面
- 项目管理:涉及从项目启动到项目验收的全过程,主要把握范围、计划和客户惬意度等方面
- 研发管理:涉及从获取需求到服务交付的全过程,主要把握系统设计、开发、測试等方面
- 运营管理:涉及怎样进行服务公布、市场推广、客户请求管理等方面
- 团队管理:涉及团队的组建、培训、协作以及过程资产建设等方面
上述五大类涵盖了一个研发团队中须要进行过程改进的主要工作领域,每一个大类中我们再依据工作的性质和内容细分详细的改进域。本文中共计梳理20个改进域。详细包含:
产品管理 |
改进域描写叙述 |
高效决策 |
对怎样进行有效决策以促进团队对产品开发达成一致进行分析和改进 |
产品平台 |
对怎样创建产品化平台以促进产品的稳定构建进行分析和改进 |
标准化管理 |
对怎样通过产品标准化管理促进高速开发和项目实施进行分析和改进 |
需求开发 |
对怎样针对详细产品需求进行需求分析和开发进行分析和改进 |
项目管理 |
改进域描写叙述 |
项目启动 |
对怎样从销售线过度到项目线从而有效启动项目进行分析和改进 |
项目计划 |
对怎样创建、管理项目范围和时间进行分析和改进 |
需求管理 |
对怎样进行需求调研、需求管理进行分析和改进 |
项目监控 |
对怎样进行需求变更、问题跟踪和风险管理进行分析和改进 |
客户验收 |
对怎样进行产品试执行和验收进行分析和改进 |
研发管理 |
改进域描写叙述 |
系统集成 |
对怎样在多人、多系统开发环境下进行高效集成进行分析和改进 |
技术评审 |
对怎样使用技术评审进行研发过程和代码质量把控进行分析和改进 |
配置管理 |
对怎样进行版本号控制、基线管理等进行分析和改进 |
质量保证 |
对怎样进行产品和过程质量保证进行分析和改进 |
量化管理 |
对怎样进行研发过程的信息透明、开发度量进行分析和改进 |
运营管理 |
改进域描写叙述 |
服务运营* |
对怎样高效的收集、分析服务用户数据并促进产品优化进行分析和改进 |
客服管理* |
对怎样高效的响应、统计和分析客户请求进行分析和改进 |
团队管理 |
改进域描写叙述 |
跨职能团队 |
对怎样创建、建设和管理研发团队进行分析和改进 |
团队培训 |
对怎样开展团队培训提高团队总体战斗力进行分析和改进 |
过程资产建设 |
对怎样建设团队的过程资产、管理团队知识进行分析和改进 |
绩效管理 |
对怎样进行团队绩效管理进行分析和改进 |
*相对企业级应用。运营管理和客服管理更加偏重于面向互联网的产品管理
每个改进域通过下面简单结构进行组织:
- 改进域主要概念和规程介绍
- 现状表述与问题分析
- 改进的切入点和思路
- 改进的模式和实践
伴随改进域的分析、展开和总结,可能会有文档及过程资产等须要梳理。在每一个改进域中也会有对应的描写叙述并提供简要的模板说明。
三.角色与职责
轻量级过程改进主要环绕研发团队展开工作,同一时候包含研发团队外围的部门和团队,本文中提到的每一个改进域都是站在研发团队的角度上看问题,研发团队角色是其基本的參与角色,但可能也包含一些配合型的、非研发团队角色。
研发团队主要角色和职责总结例如以下:
- 过程改进小组:依据团队的现状分析、计划和裁剪过程改进模型,并负责在团队中推广、实施详细的过程改进措施。过程改进小组类似CMMI中的SPEG。本文就是站在过程改进小组这一角色的立场上阐述怎样进行轻量级过程改进
- 项目经理:是项目管理过程改进域的主要负责人,团队中的项目经理、项目实施人员等构成了项目管理团队,这里抽象成项目经理这一统一角色
- 产品经理:是产品管理过程改进域的主要负责人,团队中的产品经理、需求分析人员等构成了产品管理团队,这里抽象成产品经理这一统一角色
- 运营经理:运营经理通常和产品经理紧密协作。可能隶属于产品管理团队,但也能够形成独立的运营管理团队,是运营管理管理改进域的主要负责人。
有些组织可能把运营团队和研发团队区分成两个独立的团队。但工作模式大致类似
- 开发者:泛指团队中全部的技术人员,包含设计人员、编码人员等
- 測试人员:泛指团队中进行測试工作的人员,这里把測试人员(QC)与质量保证人员(QA)做区分。现实中可能是一人同一时候担当两种角色
- 质量保证人员:定期/不定期的开展“过程与产品质量检查”、跟踪质量问题,给出质量改进措施
- 配置管理人员:通常能够由其它角色兼任,主要负责维护中央配置库,并进行配置项、基线等配置管理
外围团队主要角色和职责总结例如以下:
- 客服团队:客服团队会与产品团队、质量保证团队有较多交互,面向终端用户。负责收集产品上来自用户的各种请求、问题和反馈
- 市场团队:市场团队主要会与研发团队中的运营管理团队进行交互共同进行产品的推广活动
- 销售团队:销售团队在项目初期与项目管理团队会有较多交互,并在涉及项目需求变更和终于验收过程中发挥作用
- 人力资源团队:人力资源团队主要在团队组建和培训方面会有一定的參与
四.小结
过程改进的目标是改进研发团队的总体绩效。过程改进是一项重要和长远的工作。一定要依据机构的实际情况(如发展战略、研发实力等)来梳理过程域和改进方案,并要充分考虑过程改进的成本和效益。轻量级过程改进的宗旨是针对没有专设过程改进部门的中小型研发团队,通过比較低的代价有效地改进过程能力。目标是能达到适合团队发展的过程能力。过程改进的推行者应当具备一定的软件project和项目管理知识。再通读主流的软件开发管理模型和过程改进模型,并进行裁剪和扩充。本系列兴许文章将对详细的改进域逐一展开讨论,非常多内容见仁见智,不当之处欢迎一起交流。