软件开发生产线 CodeArts-朴素的DevOps价值观:人、流程与工具

时间:2023-11-01 16:15:59

人、流程与工具

接下来,再让我们看看人(People)、流程(Process)和工具(Tool)这个维度:

  • People matters...Process doesn't.

    最近敏捷微信群里沸沸扬扬的CMMI之争,我们不去论述谁是谁非。早先很多公司也进行过CMMI级别的评估,CMMI应该是团队做到一定程度,拿来对自身进行现状评估,用以指导下一步改进的参照。CMMI模型的初衷是好的,设置也还合理,模型事实上也是在演进的,只是被不合理的使用了。

    所以模型也好,流程也好,使用它们的人,以及用法,才是最重要的。这就好比聚贤庄一战,乔峰用一套太祖长拳,打败天下英雄。太祖长拳,号称三岁孩童都会的拳法,为何可以在乔峰手里发挥如此巨大的威力?具体的武功招式,方法流程,并不重要,重要的是看谁来用,如何用。

    关于流程的另一个问题:如果流程是最重要的,那么到底是流程要求的多好,还是流程要求的少好?

    Henrik Kniberg在《Kanban vs/with Scrum》里,对RUP、SCRUM、KANBAN等方法的约束给出了最直观的感觉:RUP有120多个要求、XP有13个、SCRUM是9个、而KANBAN只有3个。RUP是最重视流程和方法的,而KANBAN是最不重视的,孰优孰劣?很难讲,我们并不能觉得RUP就一定不如KANBAN,RUP在实际采纳时需要裁剪,只是因为裁剪的过程对人的能力要求太高;Henrik说:“Scrum和RUP的主要区别在于,RUP给你的东西太多了,你得自己把不需要的东西去掉;而Scrum给你的东西太少了,你得自己把需要的东西加进来。看板的约束比Scrum少,这样一来,你就得要考虑更多因素”。一边是需要裁剪,另一边是需要增加,所以执行到最后,成熟的团队的研发流程,大抵都能找到很多相似之处。

  • Process matters...Tool doesn't.

    现在一提到DevOps,大家谈的比较多的,是如何用工具搭建流水线、如何用工具搭建容器化开发平台、持续集成应该用什么工具、自动化测试应该用什么工具,诸如此类。

    我们常见的持续交付工具有太多是5年前、10年前甚至更早就推出的工具。如果工具是实施DevOps的关键,那么十年前就有这些工具,理论上当时我们就应该成功实施了DevOps,实际上我们又做的如何呢?

    工具是重要的,没有工具是万万不能的。但工具不是万能的,比工具更重要的是使用工具的方法和流程,比流程更重要的,是执行流程和使用工具的人。

    简单如SVN,复杂如Clearcase,我都看到过在此基础上,实施持续集成非常成功的企业。

    Martin Fowler对CI的定义和建议,从2006年至今,居然未曾修改过。

    即使到现在,又有几个人敢拍着胸脯说,真正能把CI这些实践做到的?

    所以流程也好,工具也罢,最重要的是执行的人,而对人而言,关键的是思维模式Mindset,我们可以称之为原则Principle。

    由于工具本身对于DevOps的也扮演着不可或缺的角色,因此在结束这个维度的内容之前,让我们来看看针对DevOps在工具链上的要求:自动化、标准化,那么有什么样的工具能帮我们提供落地实践的基础。

  • 华为云CodeArts服务

    CodeArts提供软件开发全生命周期的云端DevOps工具链,帮助团队真正实现自动化,标准化,配置化。

    CodeArts提供基于Git的版本控制系统,不只将代码版本化,而是版本化管理一切与环境有关的配置。

    CodeArts可自定义的自动化部署流水线,提交代码自动触发,帮助团队实现持续交付,为团队带来自动化,标准化。

support.huaweicloud.com/reference-devcloud/devcloud_reference_040105.html