我为什么觉得DevOps好
写在前面
最近疫情严重,正好利用这个时间,把自己之前的Blog和印象笔记的东西搬搬家,整理整理,希望在疫情过去后,自己也能坚持把自己平时工作的关于技术和管理的实践多写写,一起交流。
产品研发得码多少人
首先打算写一个自己平时在工作中,对于日常的工作流程和工具进行一个整理,也就是DevOps。本人一直在创业公司,有很多人觉得创业公司不需要技术管理和流程,就不到10个人,为什么需要这么多乱七八糟的。在讲这个问题之前,我们想想,现在当下互联网或者物联网相关的产品,需要的角色有多少呢?
角色 | 职责 | 备注 |
---|---|---|
RD | 研发 | 各种客户端、云端、大数据等 |
QA | 测试 | 点点点测试、自动化测试等 |
PM | 产品经理 | 和程序猿相爱相杀的家伙 |
OP | 运营 | 数据运营、内容运营、PR推广等 |
OPS | 运维 | 最苦逼的技术人员 |
UI | 设计 | GUI、视觉设计等 |
BD | 商务 | 负责吹牛逼的 |
硬件设计 | PCB、原理图设计 | 如果涉及硬件产品 |
嵌入式 | 嵌入式驱动开发 | 如果涉及硬件产品 |
系统驱动 | 系统驱动开发 | 如果涉及硬件产品 |
结构设计 | 结构设计开发 | 如果涉及硬件产品 |
ID设计 | 外观设计 | 如果涉及硬件产品 |
我整理了下,我们需要的上面这么多角色,当然,在很多创业公司,都是一人兼多职(工资就一份)。但是和我们需要的产品发布和迭代节奏完全相反的是,老板肯定需要快速稳定的发布产品,1周恨不得更新一次feature list。
产品研发流程有多复杂
软件研发项目管理流程.jpg上面的流程,基本是软件研发的基本流程,为了保证各种质量,涉及到各种角色和阶段,需要整体项目负责人有很强的管理和协调能力,才能保证项目的预期发布和质量管控。纯靠人去跟踪,基本管不好。
迭代速度 快!快 ! 快!
下面的桥段,大家肯定遇到过:
老板说:我们先做一个DEMO,BD需要这周末去个客户演示拿单子。演示完了,然后。。。。
老板再说:客户那边演示的不错,要求1-2周内上线(程序猿懵逼,下面就是产品和程序猿的互撕了)
我们有多少产品和项目是从DEMO改起来的,软件质量、架构体系、产品价值和前景,是否符合公司核心价值,这些都不是考虑范畴了,基本属于,后续全是坑。
任何公司的核心价值都是产品质量的优秀,优秀的产品,我们这里不谈什么是好产品,我们这里聚焦的点是,产品技术怎么保证稳定快速发布新产品。答案就是DevOps。
DevOps的核心价值
DevOps由开发(developments)和运维(operations)组成,字面意义就是鼓励跨部门协作。DevOps的出现其实是敏捷软件开发的产物,下面是敏捷宣言的经典摘录:
个体和互动 高于 流程和工具,
工作的软件 高于 详尽的文档,
客户合作 高于 合同谈判,
响应变化 高于 遵循计划,
也就是说,尽快右项有其价值,我们更重视左项的价值。
DevOps想要强调的是:个体和互动是非常重要的,用自动化代替重复人工工作,把更多的时间留给大家的沟通和交流,产生真实的价值。
举个简单例子,PM想尽快了解开发的进度(眼见为实,其实UI更需要眼见为实),那就要求RD和QA,需要在测试环境进行快速的增量交付,并且交付的内容可以让PM和UI等利益相关方,尽快看到,并且可以第一个吃狗粮。如果是跨部门的传统合作,试想下,难度是不言而喻的。但是DevOps可以通过一系列自动化和持续交付的工具,以及统一产品目标的理念,让部门壁垒消失,工具提醒人员,去做这个阶段需要做的事情,大家都在管道内,进行有条理的工作,管道的终点就是产品稳定快速发布。
DevOps的流程和工具
- 流程:DevOps是为了产品交付服务的,交付肯定是有流程的,所以我们先需要明确流程
- 工具:根据语言、技术人员素质、产品特点,选择合适的工具拓扑,其实最主要的工具包含以下几类:需求管理工具、代码库、构建工具、工件库、测试工具、部署工具、监控工具、问题跟踪
后面几篇文章,会陆续分享下,我在创业公司,是怎么搭建的这套DevOps体系和如何使用的。
谢谢阅读。