浅淡开发工程师的工作边界

简介: 亲们(Dev),天天和PD,QA,PE打交道,有没有仔细想过你和他们的关系是怎样?你们各自own的部分有边界吗?你们应该怎样协同工作?   PD是产品需求的owner,PE是线上环境的owner,QA是产品质量的owner,Dev呢? Dev是everything的owner(That's why Dev engineer is so Niubility)。 所以准确的说应该是De
亲们(Dev),天天和PD,QA,PE打交道,有没有仔细想过你和他们的关系是怎样?你们各自own的部分有边界吗?你们应该怎样协同工作?
 
PD是产品需求的owner,PE是线上环境的owner,QA是产品质量的owner,Dev呢? Dev是everything的owner(That's why Dev engineer is so Niubility)。
所以准确的说应该是Dev和PD是产品需求的co-owner,Dev和QA是产品质量的co-owner,Dev和PE是线上环境的co-owner。



个么问题来了,既然是co-own那就不是你一个人说了算的,不像代码,你是full-own,你想怎么画就怎么画(当然乱画也是要小心的,不要低估老板code review的能力),所以对co-own的部分,我们不能图方便,图省事,想“敏捷”,有事情的时候,还是要有商有量,知会到相关方,这既是对他人工作的尊重,也是对自己的保护(说白了就是,你不知会co-owner,不协同相关方一起解决问题,出问题就是你一个人兜)。
 
对于这些co-own部分,除了QA,PE有部分是走约束流程(例如:通过自动化测试,才能走freedom发布上线),其他都是约定流程,而这些约定流程是Dev平时最容易忽略的,其实只要是约定且没有固化的东西都容易被忽略,试想下大家都宣称自己是敏捷的,但对于敏捷开发的那些约定,有多少团队能严格招办呢。因此,我把Dev和其他部门的工作关系总结成以下几个授权:
 
“动产品,要PD授权;发布上线,要QA授权;动线上机器,要PE授权;法律风险,要法务授权”
 
希望大家可以经常以此审查自己是不是在用正确的方式做事。
 
1、PD授权
真实案例:     
开发做了一个来自于运营的业务小需求,PD不知晓,在新项目中,PD遗漏该变动点,导致在预发布测试时,才发现有问题,造成不必要的口舌和麻烦。
 
正确做法:
理论上我们的业务需求接口人是PD,如果有来自非PD的业务需求,也要知悉到PD。
 
2、PE授权
真实案例: 
1)手动重新启动线上服务,因为误使用了老的启动脚本,导致服务不可用,P4故障 。
2)记得我入职不久的时候,也发生过一起因为开发在线上使用jmap导致HSF服务不可用,从而导致交易异常下跌的p3故障。 当时还有过一次激烈的关于Dev是不是应该touch线上机的讨论,最后的结论是大家都比较认可在工具完备的情况下,所有人(Dev和PE)都应该远离线上机,因为只要是人的操作都难免出错,而线上一出错就是故障。 所以标准的运维方式都是朝着自动化、工具化方向发展的,即所有的操作(发布,回滚,重启,监控,日志收集查看,内存快照 等等)都应该工具化,DevOps只需要操作GUI就好了。
 
正确做法:
让PE协助做线上操作,如果非要自己去操作,至少也要知会到PE。可喜的是PE已经意识到此问题,从PE那边获得的最新反馈,PE工具组已经在着手相应的流程定制和运维工具开发。
 
3、QA授权
杜撰案例:
自测小需求上线,在有部分自动化测试用例fail的情况下,霸王硬上弓,结果导致线上bug。
 
正确做法:
当然是在取得QA同意的情况下,再发布了
 
4、法务授权
真实案例:
一个小二因为误操作查询了客户支付宝,未经授权获取、使用保密信息,违反反保密义务行为,记过处分价值观C。
 
正确做法:
严纪守法做阿里好公民。
 
上文主要是对最近几个真实案例有感而发,希望大家引以为戒,提高风险意识,不仅要做正确的事,而且要正确的做事(Do the right thing, Do the thing right)。
目录
相关文章
|
设计模式 供应链
一文教会你如何写复杂业务代码
了解我的人都知道,我一直在致力于应用架构和代码复杂度的治理。 这两天在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。针对该命题,我进行了比较细致的思考和研究。
37855 3
|
设计模式 机器学习/深度学习 SQL
软考高级系统架构设计师通关经验分享
为什么考系统架构设计师是国家设立的计算机技术与软件专业技术资格考试(简称软考)中的一个高级科目,属于工程师高级职称系列,具有一定含金量。浙江省每年通过软考高级的人数约为1000+人,其中系统架构设计师科目的通过人数约为200+人。从学习角度来说,通过准备系统架构设计师的考试的过程,可以查漏补缺,并且了解一些系统架构设计相关的基础知识,实现一定程度上的自我提升;从目的性的角度来说,通过考试,可以在一
14603 4
软考高级系统架构设计师通关经验分享
|
安全 算法 测试技术
什么是灰盒测试?
什么是灰盒测试?
784 1
|
存储 Linux Shell
【Shell 命令集合 系统设置 】Linux 显示Linux内核模块的详细信息 modinfo命令 使用指南
【Shell 命令集合 系统设置 】Linux 显示Linux内核模块的详细信息 modinfo命令 使用指南
249 0
【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题,真题分析与代码讲解
【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题,真题分析与代码讲解
894 0
【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题,真题分析与代码讲解
|
Ubuntu Linux
百度搜索:蓝易云【Ubuntu、CentOS修改时区、设置24小时时间格式教程。】
时区和时间格式是操作系统中的两个重要设置,本文将介绍如何在Ubuntu和CentOS操作系统中修改时区和设置24小时时间格式。
877 0
|
架构师 NoSQL 前端开发
|
机器学习/深度学习 算法 数据可视化
多维时序 | MATLAB实现SCNGO-CNN-Attention多变量时间序列预测
多维时序 | MATLAB实现SCNGO-CNN-Attention多变量时间序列预测
|
XML 前端开发 IDE
5 分钟快速理解 Spring Boot
前言 Spring 是 Java 开发人员接触最多的框架,包括我在内的很多小伙伴只是对 Spring 进行简单使用,为了深入了解 Spring,我在 2020 年 6 月底的时候开始了 Spring 探索之路,并开设了《重学 Spring》专栏,到目前为止已经更新了 51 篇,内容涵盖了 Spring IOC、Spring AOP、Spring MVC 等内容,详细的介绍了 Spring 的核心特性与底层原理,也希望在读的小伙伴能更上一层楼。
178 0
5 分钟快速理解 Spring Boot
|
关系型数据库 测试技术 领域建模
复杂性应对之道——矩阵思维(多维度思考)
> You should not be a if-else coder, should be a complexity conquer. -Frank # 前言 这篇文章,是对之前我在[《一文教会你如何写复杂业务代码》](https://www.atatech.org/articles/146064)说的“自上而下的结构化分解 + 自下而上的抽象建模”方法论的升级。因为在之前的方法论中,我
5433 2
复杂性应对之道——矩阵思维(多维度思考)