【DEVOPS】需求跟踪管理全面落地
0. 目录
- 1. 现状/背景
- 2. 需求管理存在的问题
- 3. 改进思路/措施
- 4. 所谓"禅道尚未普及/铺开"
- 5. 最后
- 6. 相关
1. 现状/背景
近期又被领导问到"如何对项目过程中的需求进行量化和跟踪管理"。这真是一个狗皮膏药似的问题,反反复复地,隔一段时间就得被再次提及。
究其原因,除了过往在传统软件行业中技术团队的发展(现状篇),【DEVOPS】基于禅道 - 重构研发协作流程分别进行过总结的背景之外:
- 我们的DEVOPS改良推进路线风格属于彻底的自下而上。除非拿出切实的,已经试点成功的,能够被直观感受到好处的改良结果,领导才会进行明确的站台支持。
- 上一条属于客观背景,那么这一条就属于自身不足了 —— 一直以来向上管理意识有但是不多。没有做好成果汇报和信息同步,同时缺少宣讲和对外输出。于是出现"我们觉得时机早已成熟,但是领导层对此知之甚少,进而对于改良的推进犹犹豫豫,畏首畏尾"。
本文接下来的部分就是解决上面提出的这两个问题,解释:为什么我们认为现在时机已经成熟,为什么存在一种在没有太大阻力,不放弃底线的情况下,能够将现代化项目管理流程推行下去的可能性。
注:以下内容有个前提,就是如【DEVOPS】基于禅道 - 重构研发协作流程,组织内部已经有了成功的样例。
2. 需求管理存在的问题
以需求为抓手,是项目管理过程中跟踪项目进度,判断风险,量化各个岗位贡献值的基本方法和思路。
但是现在的问题正是,记录需求的变更过程,以提供客观数据去反映各方的工作量,这部分工作没有人做,一是没经验,二是没意愿,而领导出于各类原因始终无法下定决心将这份职责指定给哪个角色。 于是无尽的扯皮在不同的项目组内接连上演:
- 产品说研发效率太低;
- 研发说产品的需求总是变来变去。
- 扯皮的时候"双手赞同要搞标准化项目管理,我要证明自己的清白",但一旦摆出真的要进行改进的架势时候,各种困难就出来了——哎呀本来就很忙了,哪来的时候记录这个。也就是"这个东西是很重要,但是凭什么要我来做?"
于是又绕回了过往的惯性老路 —— 试图通过降低标准/无限倒退的方式来让规范/改良能够执行下去。
但是有些时候,对于有些已经是基本要求,没有后退之路的底线,这个思路并不适用。
还是以需求的管理为例,对需求进行持续跟踪的前提是有人去记录各个版本的内容,并且建立它们之间的联系,工具只是可以帮助我们减轻这部分工作量,但"对需求进行持续跟踪"这项工作本身最终的质量以及相关方的满意度,还是需要人来把握的。如果相关方连这个都不愿意做,或者糊弄着做,那么我们最终的目的很难达成。
3. 改进思路/措施
所谓"工作量不会消失,只会转移",正如DEVOPS并不是消除了工作量,而只是将其由人工转交给了机器,项目管理中的"对需求进行持续跟踪"这件事情现在既然不能依靠于产品和相关售前/需求分析人员,那么我们就下移一步,交给有经验的研发团队来主导或占据关键节点,该项目团队的原有其它人员进行辅助填充,让有经验的研发团队推着其他人来适应这个操作流程。
我们来看看为什么这个移交存在可行性:
-
我们推进DEVOPS就是使用机器操作逐步代替人工操作,在此过程中借助机器操作特点借此来构建标准的工作流程,最终保住产品质量的底线,同时也显著减轻人员工作压力和心智负担。
-
并且我们在过去几年一直也在推进技术栈沉淀,实现解决方案的标准化,减少人员在所谓"技术难点"上的精力投入。
-
在禅道推进上,过去几年我们分别在行业部门和基础平台部门结合各自当下现状,对于禅道标准化研发流程进行了自适应改造/本地化改造,做到了真正的落地。
3.1 这个"真正的落地"的第一层含义: 本地化改造后的流程已经实现了在无需过多外力/监督介入情况下的自运转。
3.2 这个"真正的落地"的第二层含义: 两个部门内部对于禅道的理解和使用完全不一样,而且和禅道官方推荐的标准化项目管理流程也是差别甚大。
原有团队没有人愿意,也没有一个额外的精力去监督和检查"对需求进行持续跟踪",那就让被解放出精力,具备了基本需求管理流程经验的研发人员,以及具备禅道本地化改造流程经验负责人来作为主导/关键节点,引导该项目内的需求跟踪管理流程,原项目组的其它人作为辅助参与进来,在这个试点过程中:
- 实现对当前项目"对需求进行持续跟踪"的基本要求;
- 同时培养/熏陶出一批具备基本素养的产品/需求分析人员;
- 并且迭代出一个针对性的流程,既兼顾该业务线/该团队内相关人员的既有操作习惯,又满足基本的标准项目管理流程要求,为之后的流程优化打下基础。
4. 所谓"禅道尚未普及/铺开"
所谓"禅道尚未普及/铺开"正是以上改良措施出现的背景;而且如果禅道已经铺开,本文背景都已经不存在了,也就是不会出现需求变更导致的扯皮问题。
我们提出的对策正是为了应对"禅道尚未普及/铺开"情况。
可以说现在这批人是幸运的,至少公司给了他们这个过渡的阶段。一旦这个流程成型,这样的人就没有机会了。因为到时候你要不是白纸一张,要不就是已经知晓这些流程。一张涂满涂鸦的纸,我们已经没有这个耐心去矫正了。
5. 最后
- 不要再讨论"要不要用",而是"怎么用"? 始终在这起点徘徊,一辈子都到不了。
- 我们已经完全接受"慢慢来"这个现实,是因为我们承认最终还是人决定了产品的质量,所以我们愿意将这个过程慢下来,克服人性中急躁,急功近利的弱点,拾阶而上,一步步地向目标进发,在这个过程中把人培养出来,把事情做成。
- 我们并非要求当下马上执行以上试点,我们只是提供一种可能性,一种如何在一个四面楚歌的情况下,让好的变化发生。(相较于过往的改良推进,当下其实已经好多了,毕竟现在已经再是0到1了)
6. 相关
- 【DEVOPS】基于禅道 - 重构研发协作流程
- 【DEVOPS】DevOps推进过程中的一些最佳实践
- 阿里如何定义团队的研发效能?
- 《UNIX编程艺术》
- 【DEVOPS】DevOps推进过程中的一些最佳实践3
- 禅道官方推荐的标准化项目管理流程
相关文章:
【DEVOPS】需求跟踪管理全面落地
0. 目录 1. 现状/背景2. 需求管理存在的问题3. 改进思路/措施4. 所谓"禅道尚未普及/铺开"5. 最后6. 相关 1. 现状/背景 近期又被领导问到"如何对项目过程中的需求进行量化和跟踪管理"。这真是一个狗皮膏药似的问题,反反复复地,隔一…...
算法修炼Day57|647. 回文子串 ● 516.最长回文子序列
LeetCode:647. 回文子串 647. 回文子串 - 力扣(LeetCode) 1.思路 暴力思路见对应代码… 动规解法:画图推导动规公式,当前状态由左侧和左下角推出,所以首层应该采用倒序的方式,内部采用正序的方式。 2.…...
呈现数据的精妙之道:选择合适的可视化方法
在当今数据时代,数据可视化已成为理解和传达信息的重要手段。然而,选择适合的数据可视化方法对于有效地呈现数据至关重要。不同的数据和目标需要不同的可视化方法,下面我们将探讨如何选择最佳的数据可视化方法来呈现数据。 1. 理解数据类型&a…...
数据结构(Java实现)-java对象的比较
元素的比较 基本类型的比较 在Java中,基本类型的对象可以直接比较大小。 对象比较的问题 Java中引用类型的变量不能直接按照 > 或者 < 方式进行比较 默认情况下调用的就是equal方法,但是该方法的比较规则是:没有比较引用变量引用对象的…...
Wolfram Mathematica 13 for Mac 数学计算工具
Wolfram Mathematica for Mac是一款功能强大、划时代的科学计算软件。它结合了数字和符号计算引擎、图形系统、编程语言、文本系统以及与其他应用程序的高级连接,在许多功能方面处于世界领先地位,截至2009年,它是使用最广泛的数学软件之一。人…...
系统架构设计高级技能 · Web架构
现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 系统架构设计高级技能 Web架构 一、Web架构介绍1.1 Web架构涉及技术1.2 单台服务…...
再写CentOS7升级OpenSSL-1.0.1U
本文在CentOS7.4以及TencentOS 2.4上测试通过。 原系统自带OpenSSL 1.0.2k-fips。 编译安装方法跟之前的没啥区别。 从官网下载1.0.1u版https://www.openssl.org/source/ 使用tar解包 tar xfz openssl-1.0.1u.tar.gz 依次执行如下: cd openssl-1.0.1u ./con…...
HBase--技术文档--基本概念--《快速扫盲》
官网 Apache HBase – Apache HBase™ Home 阿里云hbase 云数据库HBase_大数据存储_订单风控_数据库-阿里云 云数据库 HBase-阿里云帮助中心 基本概念 HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。它基于Hadoop,采用列式存储方式,可…...
如何利用SFTP协议远程实现更安全的文件传输 ——【内网穿透】
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《高效编程技巧》《cpolar》 ⛺️生活的理想,就是为了理想的生活! 文章目录 1. 安装openSSH1.1 安装SSH1.2 启动ssh 2. 安装cpolar2.1 配置termux服务 3. 远程SFTP连接配置3.1 查看生成的随机公…...
深度学习8:详解生成对抗网络原理
目录 大纲 生成随机变量 可以伪随机生成均匀随机变量 随机变量表示为操作或过程的结果 逆变换方法 生成模型 我们试图生成非常复杂的随机变量…… …所以让我们使用神经网络的变换方法作为函数! 生成匹配网络 培养生成模型 比较基于样本的两个概率分布 …...
sql入门-多表查询
案例涉及表 ----------------------------------建表语句之前翻看之前博客文章 多表查询 -- 学生表 create table studen ( id int primary key auto_increment comment id, name varchar(50) comment 姓名, no varchar(10) comment 学号 ) comment 学生表; insert…...
软考A计划-网络工程师-必考知识点-上
点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…...
kafka复习:(17)seekToBeginning的用法
从分区的开始进行消费,因为kafka会定期清理历史数据,所以分区开始的位移不一定为0。seekToBeginning只是从目前保留的数据中最小的offset进行消费 package com.cisdi.dsp.modules.metaAnalysis.rest.kafka2023;import org.apache.kafka.clients.consume…...
C# textBox1.Text=““与textBox1.Clear()的区别
一、区别 textbox.Text "" 和 textbox.Clear() 都可以用于清空文本框的内容,但它们之间有一些细微的区别。 textbox.Text "": 这种方式会将文本框的 Text 属性直接设置为空字符串。这样会立即清除文本框的内容,并将文本框显示为空…...
CnetSDK .NET OCR SDK Crack
CnetSDK .NET OCR SDK Crack CnetSDK.NET OCR库SDK是一款高度准确的.NET OCR扫描仪软件,用于使用手写、文本和其他符号等图像进行字符识别。它是一款.NET OCR库软件,使用Tesseract OCR引擎技术,可将字符识别准确率提高99%。通过将此.NET OCR扫…...
Python最新面试题汇总及答案
一、基础部分 1、什么是Python?为什么它会如此流行?Python是一种解释的、高级的、通用的编程语言。Python的设计理念是通过使用必要的空格与空行,增强代码的可读性。它之所以受欢迎,就是因为它具有简单易用的语法 2、为什么Pytho…...
设计模式(单例模式,工厂模式),线程池
目录 什么是设计模式? 单例模式 饿汉模式 懒汉模式 工厂模式 线程池 线程池种类 ThreadPoolExcutor的构造方法: 手动实现一个线程池 什么是设计模式? 计算机行业程序员水平层次不齐,为了让所有人都能够写出规范的代码,于是就有了设计模式,针对一些典型的场景,给出一…...
在mybatis中的mapper.xml中如何使用parameterType实现方法单个传参,对象传参,多参数传参.
在MyBatis的mapper.xml文件中,可以使用parameterType属性来指定方法的参数类型。parameterType属性用于指定传递给映射方法的参数类型,这将影响到MyBatis在映射方法执行时如何处理参数。 以下是三种不同情况下如何在mapper.xml中使用parameterType实现方…...
No120.精选前端面试题,享受每天的挑战和学习
文章目录 浏览器强制缓存和协商缓存cookie,localStorage、sessionStoragejs闭包,原型,原型链箭头函数和普通函数的区别promise的状态扭转 浏览器强制缓存和协商缓存 浏览器缓存是浏览器用于提高网页加载速度的一种机制。浏览器缓存分为强制缓…...
c# 访问sqlServer数据库时的连接字符串
//sql server 身份验证的场合, 连接字符串 private string ConnstrSqlServer "server服务器名称;uid登录名称;pwd登录密码;database数据库名称"; //windows 身份验证连接字符串 private string ConnstrWindows "server服务器名称;database数据库…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案
一、延迟敏感行业面临的DDoS攻击新挑战 2025年,金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征: AI驱动的自适应攻击:攻击流量模拟真实用户行为,差异率低至0.5%,传统规则引…...
