1. 过程裁剪的理念

所谓过程裁剪(Process Tailoring)就是通过增加、删除、替换方法、修改顺序、组合等方式对软件开发模型进行优化,使之符合团队和项目的具体特点。

由于各种生命周期模型在软件工程领域已经有深入的研究,业界对于瀑布模型、迭代模型、增量模型、螺旋模型等经典软件开发模型的使用场合等也基本达成了共识。因此,项目只需要将项目的实际特点与生命周期模型的应用场合相匹配,选择合适的生命周期类型即可。同时,敏捷开发方法论也深入人心,对于Scrum、极限编程、精益思想和看法方法的理念和具体工程实践也获得越来越多的应用,这就为我们建设符合自身特定的过程体系提供了输入。

进行过程裁剪的第一步是明确可裁剪的对象。可裁剪对象确定了裁剪的范围,可裁剪对象不仅限于过程元素和活动,还包括标准、方法和工具、输出的工作产品及模板等。其次,需要明确裁剪所考虑的要素。对于某个裁剪对象,其范围、频度、正式度等都是裁剪要素。如,对于已有类似开发经验的项目,可以适当减少过程培训、业务培训等活动;对于开发周期较短的项目,可以适当合并一些评审活动,如概要设计和详细设计评审合并进行。当我们对活动、文档、度量指标等进行裁剪并形成新的过程体系之后,一般也需要评审该过程体系并把它上升到基线标准。

采用简单易用的图、表等形式展示裁剪的指南有助于裁剪工作的推进,对上述提到的裁剪对象、裁剪的方法应都有描述,可以针对不同类型的项目或不同类型的活动提供裁剪后的几套模板,并确保裁剪指南的描述没有二义性,确保减少沟通的误差。

2. 过程裁剪的几种表现形式

通过过程裁剪我们形成了一定的过程体系,这些裁剪活动也具有层次化特征,即不同级别所应用的裁剪方法和结果可以是不一样的。我们分别从应用级别、团队级别和行业级别描述过程裁剪的几种表现形式。

(1)应用级别

顾名思义,应用级别的过程裁剪指的是每个应用对裁剪的标准和原则是不一样的,经裁剪所获得的过程体系自然也不一样。结合各个应用的自身特点灵活应用软件开发过程很大程度上满足敏捷的价值观。下图展示的就是将不同的敏捷工程实践在不同的应用之间进行过程裁剪的示意图。

有些应用的开发可能偏向纯敏捷型,而有些则可能带有传统瀑布模式下的工作方式。对前者而言,短周期迭代是必须要采用的一种工程实践,但对于后者而言,可能很难具备固定的迭代周期,则可以从每日例会、回顾会议、持续集成等与生命周期关系并不是很紧密的工程实践入手。

(2)团队级别

下图展示的另一种过程裁剪的维度,即团队级别。开发团队根据其是否专职于某一项职能、是否分布式在不同的地理位置、是否有专职的敏捷管理人员等可以分成不同的类型,也就可能会采取不同的开发流程和工程实践。

举例来说,如果一个开发团队内部包含技术、测试、产品、项目等多个角色,那么推行Scrum这样的全生命周期的过程管理框架相对会比较容易一些;反之,由于不同职能团队之间需要较多的跨团队协作,优先使用持续集成、回顾会议和可视化管理可能是不错的选择。

(3)行业级别

行业特性有时候也能影响到过程裁剪。我们以医疗这个特定行业下的过程裁剪方法为例展开讨论。医疗行业的最大特定就是作为用户的患者数据和作为客户的医护数据都位于医院内部,外部系统无论是传统的HIS、LIS、PACS系统还是现在流行的各种互联网化APP,都需要与医院的信息系统进行集成,这样类似配置管理、持续集成等工程实践就需要发挥其作用。同时,由于很多应用是面向医院,所以为了把控产品需求的正确性和实效性,也建议与客户坐在一起、使用统一语言等敏捷工程实践。另一方面,由于与医院的合作通常会基于项目实施的方式开展工作,因此传统的项目管理的过程和工具同样在医疗行业中得到普遍应用。

如果对文章感兴趣,可以关注我的微信公众号:程序员向架构师转型。

我出版了《系统架构设计:程序员向架构师转型之路》、《向技术管理者转型:软件开发人员跨越行业、技术、管理的转型思维与实践》、《微服务设计原理与架构》、《微服务架构实战》等书籍,并翻译有《深入RabbitMQ》和《Spring5响应式编程实战》,欢迎交流。

过程裁剪的理念和表现形式相关推荐

  1. 计算机内部信号表现形式,信号是数据在传输过程中的什么的表现形式

    信号是数据在传输过程中的电信号的表现形式.如电信号可以通过幅度.频率.相位的变化来表示不同的消息.这种电信号有模拟信号和数字信号两类.信号是运载消息的工具,是消息的载体. 从广义上讲,它包含光信号.声 ...

  2. 从“执行新过程新增5%的工作量”看新过程引入

    "执行新过程新增5%的工作量"这个标题写下后发现它是有歧义的. 第一个意思是 执行了新过程后,整体工作新增了5%的工作量:第二个意思是 新过程执行后,过程执行本身增加了5%的工作量 ...

  3. 过程改进的疑惑 - 习惯能改么?

    各位同志, 大家是否可以帮助这位同志分析分析一下这个问题的关键在哪里?如何解决? 我在后面也有一点评注.请留意. 老杨 ------- 培训心得一: 过程改进的疑惑 转眼来公司已经一年,很惭愧,作为专 ...

  4. 数据的封装与解封装过程

    数据的封装与解封装过程 1. 协议数据单元 对等网络之间传递的数据单位,称之为协议数据数据单元,简称PDU 应用层协议数据单元:数据报文 传输层协议数据单元:数据段(TCP或UDP头部信息) 网络层协 ...

  5. rup 裁剪_裁剪的英语翻译,裁剪用英文怎么写、英语怎么说,中译英-xyz翻译网

    为了在裁剪工作期间挑选一个合适的 RUP 变量作为基线,过程构架师必须了解组织的企业构架的现有的和未来状态. To pick an appropriate RUP variant as a basel ...

  6. CMMI五大成熟度定义及过程管理类详解

    一.成熟度级别 CMMI组织的成熟度级别提供了描述其绩效特征的方式.经验表明,当组织每次过程改进工作所专注的过程域在数量上易管理时,组织能够做到最好:那些领域随着组织的改进,也需要不断成熟.成熟度级别 ...

  7. 基于CMMI模型实现自己的总体研发框架(2)——CMMI模型-过程管理过程域介绍

    一.过程管理类过程域简介 1.1 OPD-组织级过程定义 1.1.1 目的 组织级过程定义Organizational Process Definition,OPD的目的在于建立并维护一套可用的组织级 ...

  8. 过程改进的关注点之项目管理过程

    从项目估算到项目策划.再到计划跟踪控制,包括风险的识别与管理,常见的改进点有哪些呢?基于我的咨询经验梳理如下: 小类 关注点 估算方法 无论是采用经验法还是模型法,都要根据历史的估算偏差率评价估算方法 ...

  9. 零信任安全架构2-零信任理念、实现及部署方案

    文章目录 第一类零信任方案 要素和目标 抽象技术框架 技术实现方式 反向代理网关方式(有终端Agent) 反向代理网关方式(无终端Agent) 应用层代理网关方式 流量代理网关方式 混合网关方式 部署 ...

最新文章

  1. 建立自己的voc数据集_一次将自己的数据集制作成PASCAL VOC格式的惨痛经历
  2. R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析、每个预测因子对响应变量的贡献
  3. python 投票脚本_使用Python脚本拉取2014 CSDN博客之星投票情况
  4. Spring boot集成mongodb
  5. js中的自定义异常处理函数
  6. 关于MyEclipse项目的名字的修改对项目导入导出的影响
  7. .NET Conf China 2020志愿者招募火热开启!还有神秘惊喜等你来领…
  8. JavaWeb总结(四)
  9. 前端学习(2515):父向子传值
  10. Linux中英文命令对应
  11. (01)VTK读取OBJ格式模型
  12. 使用IDM继续下载会话过期的文件
  13. 什么是生命,这取决于肝脏。——《调音师》影评
  14. pat 1006. 换个格式输出整数 (15)
  15. C程序设计--指针(用 “ 函数 ” 对 “ 多维数组 ” 进行操作)
  16. webuploader java版本
  17. CCFCSP历年认证考试真题解答汇总(已解决20道,持续更新ing)
  18. python智力问答测试_智力问答:经典的智力测试题
  19. 在x86下交叉编译mips程序
  20. tomcat 报错 Too many open files

热门文章

  1. 林肯公园跑步歌单:摇滚助力跑出一道光
  2. python去除视频马赛克_python 给视频添加马赛克
  3. db2 hadr 起停顺序_电机顺序启停问题
  4. 针对手机连WIFI微信公众号等图片加载缓慢问题——解决方案
  5. 木板切割问题——贪心
  6. [windows优化]win10折腾过程
  7. 19.Eager模式
  8. 专题训练二 搜索进阶 HDU - 3085 Nightmare Ⅱ (双向BFS + 曼哈顿距离)
  9. 168.Vue.js智能扫码点餐系统(二)【搭建Vue开发环境】2019.03.18
  10. python pandas str列内置方法