对于企业来说,前途未卜的改变往往很难发生,就像航海一样,重复的往往是久经验证的安全航线,这点在DevOps文化的构建上同样如此。近日,CA Technologies的高级策略师Peter Waterhouse撰写了企业构建DevOps文化的5点建议,由OneAPM工程师翻译。

以下为译文

基于我们的认知,在食物链中人类和其他动物并无二致,都遵循以生存为基础的行为模式。如果我们今天吃的食物没有问题,明天就会继续吃。如果我们能在一条没有危险的路线上航行,就会一次又一次重复地按原路往返。

上面的比喻很恰当地解释了“改变之路异常艰难”的说法。进化史教会我们尽量避免那些可能导致伤害或死亡的东西,无论是在生活还是在商业中。

但是,商业丛林的瞬息万变远远超过以往任何时候,快节奏和无处不在的技术革新已经残忍地摧毁曾经一成不变的商业模式。现在我们正面临选择,是从安乐窝中走出来还是被活活吃掉。

当下,企业需要常规和持续的创新,但还有许多企业仍然更习惯在安全模式下操作,这个问题亟待解决。对于这些企业,对改变的恐惧占据着统治地位——即使公司失去市场份额,人才也在迅速流失。

如果领导层幡然醒悟要致力于建设创新文化,情况仍然有所转机。在IT业这点尤其重要,因为IT行业正是创新的发源之地。为了抓住这次机会,众多企
业纷纷向敏捷方法和DevOps抛出橄榄枝——选择快速且高质量交付的软件实践。在构建文化的过程中,每一步都不容易。以下五个建议会有助于构建成功的
DevOps:

1. 避免将DevOps与其他团队隔离——任何新举措的实施自然倾向于组建一个独立的团队。大多时候,这意味着会引入一些外部专家,在开发和运营部门选出最有利最优秀的内部人才组合,然后进行明显不同于其余IT部门的操作。

但我们必须记住,DevOps不是功能,而是开发和运维共同合作的一种模式。因此,构建一个独立团队无非是创建另一个silo,因为“精英”团队往往会制造更多的摩擦,阻碍构建的进程。

DevOps团队在程序的早期生产阶段有重要价值,但只作为一种过渡性的实践。在这种情况下,团队成员被特许来传播知识;构建跨企业的桥梁,深入实践后即解散并深根于企业。

2. 即使是精英,也不能是“破坏性”的自恋狂——强大的DevOps文化基于合作和同理心;成员之间可以分享成功,也能从失败中汲取教训。但是,如果新的举措由那些追名夺利的人来主导——尤其看重个人荣誉和福利的人,必然会影响DevOps文化的构建。

但现实常常事与愿违,这类人总是精力充沛,非常适合率领新兴的重要文化变革举措。但能量和智慧不一定相符,所以在组建团队时,更需要的是善于思考的人,而非夸夸其谈者。那些可能是性格内向的人,有着丰富知识和情感智慧的网虫们,往往更能促进建立一个生机勃勃的文化。



3. 奖励奇思妙想和疯狂创意。
有没有想过那些类似AirBnB的卓越商业创意是从哪里来的?大概就是那些喜欢不断制造问题来挑战现状的人,提出这样的想法——为什么不把空置房间转化为盈利的小酒店呢?

在DevOps环境下,我们可以使用类似的方法。在过程执行时寻找方法,再根据直觉提出可替代方法。例如,如果变革管理过程是完全错误的,我们是否可以找到提高敏捷开发自动化的方法?为什么我们要等待生产监控,如果在编程和测试中创建监控,能否进一步提高弹性?

强大的DevOps文化总会大方地鼓励优秀的创意,并予以嘉奖。否则,伟大的想法则会迷失方向或遭到忽视,甚至更糟地被那些精英和自恋狂所抹杀。

4. 尊重失败——如果你想打退堂鼓,通过以往的失败经历寻找一个放弃的理由并不难。正如有人这样说“我们在5年前就尝试过敏捷策略,但它就是一架空壳——DevOps也不会好到哪里去!”悲观主义正如毒药会侵入人心,在关上风险大门的同时,也阻碍了探索数字化未来的道路。

没有人喜欢谈论失败,但推进DevOps的关键是在出现问题时,可以勇于承担错误。失败是把双刃剑,重点在于是否能从每次失败中获得学习经验。避口不谈并不能解决问题,还不如把它们当作建立美好未来的垫脚石。

所以,从失败中走出来,需要团队间的相互支持。管理应该双管齐下,既建立奖励合理冒险的激励机制,同时消除任何可能扼杀创新思维的制度。

5. 提升人和进程的规范——即使伟大的DevOps工具,DevOps也不提供任何不良进程或企业间摩擦所的优化途径。在大多数情况下,缺陷和延迟仍然归咎于那些实施严格政策,或依靠人工及容易出错的传递流程。

从制造业借鉴的一种好方法是在企业中采取“value walk”。这需要花时间与工作中的人进行交互(开发、测试、发布等)——不是为了发现错误,而是理解那些可能会增加浪费和技术债务压力的情景,然后可以从自动化上得到补救。

DevOps最近确实非常热门,但是不要被带偏,改变仍然举步维艰。在开始“DevOps”之前,必须确保你有合适的领导、同事和变革的思想,让每个人都积极参与其中,才能开启完美的蜕变之旅。

原文链接:5 Tips for Building a Winning DevOps Culture(责编/仲浩)

5 Tips for Building a Winning DevOps Culture的更多相关文章

  1. Tips on Building WebRTC on Windows

    Problem: Git ask me to input git user and password Solution: Set environment variable SET DEPOT_TOOL ...

  2. 给 DevOps 初学者的入门指南

    当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...

  3. Must Know Tips/Tricks in Deep Neural Networks

    Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei)   Deep Neural Networks, especially C ...

  4. Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei)

    http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html Deep Neural Networks, especially Conv ...

  5. DevOps 初学者的入门指南

    原文地址:http://blog.csdn.net/FIRim/article/details/52681704 当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及 ...

  6. 什么是 DevOps?看这一篇就够了!

    本文作者:Daniel Hu 个人主页:https://www.danielhu.cn/ 目录 一.前因 二.记忆 三.他们说-- 3.1.Atlassian 回答"什么是 DevOps?& ...

  7. 《Migrating to Cloud-Native Application Architectures》学习笔记之Chapter 2. Changes Needed 原

    Cultural Change 文化变革 A great deal of the changes necessary for enterprise IT shops to adopt cloud-na ...

  8. Cheatsheet: 2016 08.01 ~ 08.31

    .NET Getting Started with ASP.NET Core and VS Code Coding Standard Best Practices In C# Wire – Writi ...

  9. Caching Tutorial

    for Web Authors and Webmasters This is an informational document. Although technical in nature, it a ...

随机推荐

  1. 管理工具 django-admin.py的相关命令列表

    C:\Users\lenovo> django-admin.py Type 'django-admin.py help <subcommand>' for help on a spe ...

  2. 第1章 Ansible 简介

    1. Ansible 优点 (1) 易读的语法:Ansible使用playbook作为配置管理脚本,playbook是基于YAML开发的,是一种易于读写的数据格式(2) 远程主机无须安装任何依赖:被A ...

  3. js 中的break continue return

    break:跳出整个循环 1.当i=6时,就跳出了整个循环,此for循环就不继续了: continue:跳出当前循环,继续下一次循环: return :指定函数返回值 1.在js当中,常使用retur ...

  4. vue的首页渲染了两次的原因以及解决方法

    现在在用vue做一些单页面应用的东西,遇到了些许问题啊,比如我再渲染首页的时候,会渲染两次,查看了一下原因,原来是在写路由的时候写的格式错了: 这样的时候,初始的时候就是加载的exam_list页面, ...

  5. JS 验证URL

    var strVal = $("#urlText").val(); var Expression = "^((https|http|ftp|rtsp|mms)?://)& ...

  6. 安装与使用 Trac 来管理项目

    1 概要 以 Windows 平台为例,讲述一下有关 Trac 的基本配置与使用,同时分享一下有关 Trac 的项目管理经验. 2 安装 Trac 前的准备工作   2.1 准备工作 安装 Pytho ...

  7. python基础知识-GUI编程-TK-StringVar

    1.如何引出StringVar 之前一直认为StringVar就是类似于Java的String类型的对象变量,今天在想要设置StringVar变量的值的时候,通过搜索发现StringVar并不是pyt ...

  8. C# 调用存储过程出错:String[3]: Size 属性具有无效大小值 0

    存储过程如下 Create PROCEDURE [dbo].[Test] @FundId int, @vchStrategyToken nvarchar(), @ErrorMessage nvarch ...

  9. Nginx写IO占用高故障处理

    文章来源:<https://www.centos.bz/2015/04/handle-nginx-write-io-problem/> 故障现象 突然收到一台服务器负载过高告警,紧接着网站 ...

  10. Web Service Client使用Microsoft WSE 2.0

    我安装了WSE 2.0 SP3,Setup Type选择Runtime.如果想要让Visual Studio 2005以上版本集成WSE需稍费周折,默认集成Visual Studio 2005. 1. ...