第二方法:反馈原则
立即解锁
发布时间: 2025-08-31 00:34:05 阅读量: 22 订阅数: 20 AIGC 


DevOps实践与三步工作法
### 第二方法:反馈原则
在复杂系统的工作中,快速且持续的反馈至关重要,它能帮助我们创建更安全、更具弹性的工作系统。接下来,我们将深入探讨如何在复杂系统中实现安全工作以及反馈原则的具体应用。
#### 1. 复杂系统中的安全工作
复杂系统具有一些显著特征,这使得在其中安全工作面临挑战。
- **难以整体理解**:复杂系统难以被单个人全面理解,其组件紧密相连,系统行为不能仅通过组件行为来解释。例如,Dr. Charles Perrow研究三哩岛部分核熔毁事件时发现,没人能完全理解反应堆在所有情况下的行为或可能的故障模式。当一个组件出现问题时,很难将其与其他组件隔离开,故障会以不可预测的方式迅速蔓延。
- **结果不可预测**:Dr. Sidney Dekker指出,在复杂系统中,重复做同一件事不一定会得到相同的结果。这意味着静态的检查表和最佳实践虽有价值,但不足以有效预防和管理灾难。
由于复杂系统中失败不可避免,我们需要设计安全的工作系统。Dr. Steven Spear提出,满足以下四个条件可以让在复杂系统中的工作更安全:
1. 管理复杂工作,揭示设计和运营中的问题。
2. 集中解决问题,快速构建新知识。
3. 在整个组织内推广新的局部知识。
4. 领导者培养其他领导者,不断提升这些能力。
#### 2. 及时发现问题
在安全的工作系统中,我们要不断测试设计和操作假设,增加信息流动,以更快、更清晰地发现和解决问题。
- **反馈和前馈循环的重要性**:通过在工作系统中创建反馈和前馈循环,我们可以实现这一目标。反馈循环是学习型组织和系统思维的关键部分,它能使系统内的效果相互增强或抵消。
- **制造业的案例**:在制造业中,缺乏有效反馈会导致严重的质量和安全问题。例如,通用汽车弗里蒙特工厂在组装过程中缺乏问题检测和处理程序,导致发动机安装错误、零部件缺失等问题。而高性能的制造运营则具有快速、频繁且高质量的信息流动,能及时发现和处理缺陷。
- **技术领域的应用**:在技术价值流中,缺乏快速反馈也会导致不良结果。例如,瀑布式软件开发项目可能在开发一年后才进行质量反馈,这显然无法及时预防问题。我们的目标是在技术价值流的各个阶段创建快速反馈和前馈循环,包括产品管理、开发、质量保证、信息安全和运营等环节。具体操作包括创建自动化的构建、集成和测试流程,以及使用遥测技术实时监控系统组件的运行情况。
反馈类型和周期时间各不相同,Elisabeth Hendrickson在2015年的DevOps企业峰会上提出,软件开发中有六种反馈类型:
| 反馈类型 | 描述 |
| ---- | ---- |
| 开发测试 | 程序员是否编写了预期的代码 |
| 持续集成和测试 | 编写的代码是否违反现有代码预期 |
| 探索性测试 | 是否引入了意外后果 |
| 验收测试 | 是否获得了所需的功能 |
| 利益相关者反馈 | 团队是否朝着正确方向前进 |
| 用户反馈 | 是否生产出用户喜爱的产品 |
这些反馈类型的周期时间呈同心圆状,开发者端的反馈循环最快,而客户或用户反馈周期最长。
以下是反馈循环的简单流程图:
```mermaid
graph LR
A[开发测试] --> B[持续集成和测试]
B --> C[探索性测试]
C --> D[验收测试]
D --> E[利益相关者反馈]
E --> F[用户反馈]
```
#### 3. 集中解决问题以构建新知识
仅仅检测到意外情况是不够的,当问题出现时,我们必须集中资源解决问题。
- **丰田安灯系统的启示**:丰田的安灯绳是这一原则的典范。在丰田制造工厂,每个工作中心上方都有一根安灯绳,当出现问题时,工人和经理会拉动它。团队领导会立即响应解决问题,如果在规定时间内无法解决,生产线将停止,整个组织会共同参与解决问题,直到找到成功的对策。
- **安灯系统的必要性**:集中解决问题能防止问题向下游蔓延,避免工作中心引入新错误,以及防止同一问题反复出现。虽然这种做法与常见管理实践相悖,但它能促进学习,防止关键信息丢失,尤其在复杂系统中至关重要。
- **技术领域的应用**:在技术价值流中,我们需要创建类似安灯绳的机制和相应的响应文化。例如,Excella公司使用Slack机器人作为隐喻的安灯绳,当有人输入“andon”时,机器人会通知团队。他们还通过“if/this/then/that”集成在办公室触发红灯、彩灯和跳舞“管”人等,以增强效果。
在Excella公司的案例中,他们通过安灯绳实验取得了显著效果:
- 最初,周期时间约为三天,随着安灯绳的使用,周期时间有所下降。但停止使用后,周期时间上升至近十一天。
- 调整安灯绳的触发条件后,安灯绳拉动次数大幅增加,周期时间相应减少。最终,他们将安灯绳实验推广到整个产品,并使用“安灯:红色代码”报告重大问题。
此外,安灯绳还促进了心理安全,团队成员更愿意发言并提供创造性解决方案。这表明集中解决问题能有效防止局部问题演变为全局问题,降低周期时间并提高协作效率。
以下是安灯系统解决问题的流程图:
```mermaid
graph LR
A[问题出现] --> B[拉动安灯绳]
B --> C[团队停止工作]
C --> D[确定解决路径]
D --> E[解决问题]
E --> F[恢复工作]
```
通过以上方法,我们可以在复杂系统中更好地实现安全工作,利用反馈原则及时发现和解决问题,提升工作质量和效率。后续我们还将探讨如何将质量控制更靠近源头以及优化下游工作中心等内容。
### 第二方法:反馈原则
#### 4. 推动质量控制靠近源头
在应对事故和事件时,我们的处理方式可能会无意中导致不安全的工作系统持续存在。在复杂系统中,增加更多的检查步骤和审批流程实际上会增加未来失败的可能性。因为将决策制定推离工作执行地,不仅会降低决策质量,还会增加周期时间,削弱因果之间的反馈强度,降低从成功和失败中学习的能力。这种情况在较小和不太复杂的系统中也能看到,当自上而下、官僚化的命令控制式系统失效时,通常是因为“应该做事的人”和“实际做事的人”之间的差异过大,缺乏足够的清晰度和及时性。
以下是一些无效质量控制的例子:
- **手动任务自动化不足**:要求其他团队完成繁琐、易出错的手动任务,而这些任务本可以由需要执行工作的团队轻松自动化并按需运行。
- **远程审批不合理**:要求远离工作的忙碌人员进行审批,使他们在缺乏对工作或潜在影响的充分了解的情况下做出决策,或者只是进行橡皮图章式的批准。
- **文档管理低效**:创建大量细节存疑的文档,这些文档在编写后不久就会过时。
- **批量审批延误**:将大量工作推给团队和特别委员会进行审批和处理,然后等待回复。
为了解决这些问题,我们需要让价值流中的每个人在日常工作中发现并解决自己控制范围内的问题。具体操作如下:
1. **强化质量责任**:将质量和安全责任以及决策制定推向工作执行地,而不是依赖远方高管的批准。
2. **利用同行评审**:对提议的变更进行同行评审,以确保变更能按设计运行。
3. **自动化质量检查**:尽可能自动化通常由质量保证或信息安全部门执行的质量检查。让开发人员能够按需进行测试,而无需请求或安排测试运行,使开发人员能够快速测试自己的代码并将变更部署到生产环境中。
通过这些措施,我们真正使质量成为每个人的责任,而不是某个单独部门的责任。信息安全不仅仅是信息安全部门的工作,可用性也不仅仅是运营部门的工作。让开发人员分担他们所构建系统的质量责任,不仅能改善结果,还能加速学习,这对通常离客户最远的开发人员来说尤为重要。
#### 5. 优化下游工作中心
在20世纪80年代,可制造性设计原则旨在设计零件和流程,以便以最低成本、最高质量和最快流程创建成品。例如,设计形状不对称的零件以防止装反,设计螺丝紧固件以防止过度拧紧。这与以往只关注外部客户而忽视内部利益相关者(如制造人员)的设计方式有所不同。
精益定义了两种我们必须为之设计的客户:
| 客户类型 | 描述 |
| ---- | ---- |
| 外部客户 | 最有可能为我们提供的服务付费的人 |
| 内部客户 | 紧随我们之后接收和处理工作的人 |
根据精益理念,我们最重要的客户是下游的下一个环节。为他们优化工作需要我们体谅他们的问题,以便更好地识别阻碍快速顺畅流程的设计问题。
在技术价值流中,我们通过为运营而设计来优化下游工作中心,将运营的非功能需求(如架构、性能、稳定性、可测试性、可配置性和安全性)与用户功能置于同等重要的地位。通过这样做,我们在源头创建质量,形成一套可编码的非功能需求,并将其主动集成到我们构建的每个服务中。
以下是优化下游工作中心的流程图:
```mermaid
graph LR
A[明确外部和内部客户需求] --> B[设计考虑运营非功能需求]
B --> C[将非功能需求集成到服务]
C --> D[创建源头质量]
```
#### 6. 总结
创建快速反馈对于在技术价值流中实现质量、可靠性和安全性至关重要。我们可以通过以下几个方面来实现:
1. **及时发现问题**:不断测试设计和操作假设,在技术价值流各阶段创建快速反馈和前馈循环,利用自动化流程和遥测技术。
2. **集中解决问题**:当问题出现时,立即集中资源解决,防止问题恶化和蔓延,促进学习和协作。
3. **推动质量靠近源头**:让价值流中的每个人承担质量责任,自动化质量检查,减少无效审批流程。
4. **优化下游工作中心**:为运营设计,将非功能需求与用户功能同等对待,在源头创建质量。
通过遵循这些反馈原则,我们能够更好地应对复杂系统中的挑战,提高工作效率和质量,创建更安全、更具弹性的工作系统。在实际工作中,我们可以根据这些原则,结合具体情况,灵活运用各种方法和工具,不断优化我们的工作流程和系统。
0
0
复制全文
相关推荐










