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

简介: 亲们(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)。
目录
相关文章
【负责指导、培训普通开发工程师工作经验之谈】
【负责指导、培训普通开发工程师工作经验之谈】
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索软件测试的边界:从基础到高级的实践之旅
【10月更文挑战第21天】 在当今数字化时代,软件已成为我们生活和工作中不可或缺的一部分。随着技术的快速发展,对软件质量的要求也日益提高。本文旨在通过深入浅出的方式,带领读者踏上一场从基础到高级的软件测试实践之旅。我们将探讨软件测试的基本概念、重要性以及如何有效地进行测试规划和执行。通过具体案例分析,揭示常见错误及其解决方案,同时展望未来软件测试领域的发展趋势。无论你是软件开发新手还是经验丰富的测试工程师,这篇文章都将为你提供宝贵的见解和启发。
38 8
|
4月前
|
架构师 开发者
【悬念揭秘】DDD:那片隐藏在软件深处的业务乐土——.NET项目如何借力领域驱动设计,让复杂业务逻辑迎刃而解?
【8月更文挑战第28天】领域驱动设计(DDD)在.NET项目中的应用聚焦于将业务领域知识与软件开发紧密结合,通过构建清晰的领域模型管理复杂业务逻辑。DDD的核心概念包括限界上下文、聚合、实体等,确保模型与实现的统一。在.NET中,通过CQRS和事件源等模式提高系统响应性和可扩展性,实现业务事件驱动的解耦与协作。DDD不仅是一种设计方法,更是要求开发者深入理解业务的文化,助力.NET项目应对复杂挑战,实现业务与技术的融合。
66 6
|
算法 Perl
技术下午茶:产品经理是如何工作的?如何才算一份好的需求文档?如何设计一个简单的列表,它应该具备哪些基本功能?
技术下午茶:产品经理是如何工作的?如何才算一份好的需求文档?如何设计一个简单的列表,它应该具备哪些基本功能?
114 1
|
程序员 开发工具
[老文拾遗]如果我当上技术经理如何展开工作(三)
[老文拾遗]如果我当上技术经理如何展开工作(三)
|
敏捷开发 消息中间件 前端开发
DDD实战之七: 战术设计、整体流程与首次冲刺
DDD实战之七: 战术设计、整体流程与首次冲刺
DDD实战之七: 战术设计、整体流程与首次冲刺
|
开发工具 git
【开发随记】【提效】工作习惯那些事系列之三——邮件管理
【开发随记】【提效】工作习惯那些事系列之三——邮件管理
|
机器学习/深度学习 人工智能 程序员
点线面的工作学习方式
  本文主要介绍我个人的一种工作学习方式:点线面的工作学习方式。希望对大家以后的工作和职业发展有所启发和帮助。   7月份的时候,我去京东外面的世界转了转,聊了聊。切身体会到:别人其实并不关心你之前做的具体工作,关心的是你从中得到了什么。当然,如果你是一直深耕一个业务领域的专家,除外,例如一直从事金融风控领域的技术开发。   面试中,我之前在啥啥公司做了啥啥项目,这个项目业务怎么怎么的复杂,功能怎么怎么的牛批,一顿业务功能的输出。   so ?然后呢 ?
156 0
|
项目管理
带你读《软件项目管理案例教程(第4版)》之二:项目确立
本书以案例形式讲述软件项目管理过程,借助路线图讲述项目管理的理论、方法及技巧,覆盖项目管理十大知识域的相关内容,重点介绍软件这个特殊领域的项目管理。本书综合了多个学科领域,包括范围计划、成本计划、进度计划、质量计划、配置管理计划、风险计划、团队计划、干系人计划、沟通计划、合同计划等的制定,以及项目实施过程中如何对项目计划进行跟踪控制。该书取材新颖,注重理论与实际的结合,通过案例分析帮助读者消化和理解所学内容,既适合作为高等院校计算机、软件及相关专业高年级本科生和研究生的教材,也适合作为广大软件技术人员和项目经理培训的教材,还可作为软件开发项目管理人员的参考书。