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