DDD“上吊绳驱动开发”,开发要想不被“吊死”,该如何自救?


640?wx_fmt=jpeg

话题缘起

01

今天在DevOps案例深度研究讨论群里,群友们围绕一种开发模式展开了讨论:DDD(Deadline Driven Development),期限驱动开发,大家似乎更愿意将其翻译成上吊绳驱动开发

这种开发模式是说在接到新的需求后,给开发者脖子上加一根绳子,这根绳子会随着时间收紧,如果规定时间内没有完成开发任务,开发者会被“吊死”。

好吓人,开发咋还有绳命危险了呢....麻麻,我要回家smiley_5.png

640?wx_fmt=jpeg

下图是中英文对照。

640?wx_fmt=jpeg


“我们一直在实践中探寻更苦逼的软件开发方法,持续加班的同时也帮助他人加班...” what!“帮助他人加班”这是什么神仙操作,这位翻译同学你确定不是在逗我吗??2_05.png


另外,群友针对价值观有补充解释

  • 预算内,挑战预算内算优秀,带buffer预算内算完成;

  • 范围内,实现关键需求算完成,实现所有需求算优秀;

  • 预期内,计划时间内完成为优,不影响业务实际使用时间为完成。

“DDD 上吊绳驱动开发”的优势

02

虽然称其为“上吊绳驱动开发”有一些戏谑的成分,但其中体现的是一种“倒排期”的开发方法在项目管理中列出每一个开发任务必须要完成的时间节点,不影响下一个任务或其他协作人员的工作进度,“倒排期”开发在很多开发团队中都有应用,其优势就在于:

1、需要自上而下的目标拆解,将一个整体的指标拆解为具体可执行的工作任务,这很像OKR工作法中的工作拆解思路,这样的好处在于每个人都很清晰自己当下要做什么,完成之后对下一个环节有什么影响,以及我们最终要做什么,工作目标就是达成这个可预期的工作结果,这会让开发过程更加靠谱和高效。

2、明确的任务完成时间和任务内容,让每个人都有清晰的工作目标,在敏捷工作法里,我们通常会用看板的方式来跟进关键工作的进度,尽管在工作过程中有些需求会发生变动,但大家保持一个高频的沟通会进一步降低项目风险。

3、有了明确的死线,或者说上吊绳勒紧的时间以后,大家会更加专注,更少去响应一些无关的或非重要不紧急的需求,这会让每一个执行人员专注于手中的任务,而不会有过多的想法导致整个项目进度变得拖沓。

如何做到“DDD上吊绳驱动开发”

03

假如我们要在团队中去执行上吊绳驱动开发的方法,也就是给每一个任务确定一个完成的死线,需要做好什么前提呢?

我们认为会有3个关键点:

首先,根据目标和预算做清晰的任务拆解。这里包含3个步骤,

  • 一是对最终目标有一个清晰的认识,团队内通过头脑风暴的形式达成共识;

  • 二是做好需求管理和排序,砍掉不必要的需求保留关键需求,同时对每个阶段需要实现的需求做梳理;

  • 三是确定需求完成的先后顺序,根据整体项目交付时间倒推做各任务的时间排序。

一个项目通常会涉及到多个主线,梳理清楚每个线程间的协作关系和流程,同时使用敏捷小组的工作方式和目标拆解思路来保证任务的清晰、准确以及协作上的高效。

其次,及时沟通项目过程中的问题,始终保持最小化可交付的理念去推进。在任务执行和推进的过程中,常常会产生一些意外情况影响项目进度,基层人员有可能会把这个事情想得特别复杂,那么作为推进者就需要保持冷静思考,时刻以最小化可交付和最小化实验验证的理念来推进工作,避免产生甚至去满足无效需求。

第三,任务安排要分为低头看和抬头看2个阶段。低头看阶段是一个新项目的初始期,这是一个摸着石头过河的阶段,通向对岸的路有很多,但你不知道你选择的那个上岸的点一定会有石头让你踩,这个阶段要算清楚我们有什么,我们能做什么,尽快尝试去往前走一步。

到了下一个阶段就需要抬头看,知道了哪条路有石头可以踩以后,就要找到一个最佳的上岸地点,排兵布阵地走过去,达到目标。

第三点在拆解任务和做任务排序时,两个阶段都要快,但不能乱,否则可能导致项目过程中出现很多无法实现或者无效的工作,浪费死线内的时间。

总结

04

驱动开发工作效率提升的方法有很多,除了今天讨论的DDD(上吊绳驱动开发),还有PDD(屁股驱动开发),TDD(踢人驱动开发),TPDD(踢人屁股驱动开发)MDD(骂人驱动开发)BDD(哔哔驱动开发)...你认为哪一种驱动开发的方式更高效呢?去留言区写下你的看法吧~



.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【启智树NOIP模拟】奇偶【卢卡斯定理】【背包】【bitset】

题意:给定 nnn 个数 aia_iai​ ,求选出(可以重复,考虑顺序)MMM 个数和为 SSS 的方案数模 222。 n≤200,ai≤105,M,S≤1018n\leq 200,a_i\leq 10^5,M,S\leq 10^{18}n≤200,ai​≤105,M,S≤1018 首先给每个数分配一个出…

「Sqlserver」数据分析师有理由爱Sqlserver-好用的插件工具推荐

在此系列中,笔者为大家带来一些以数据分析师视角去使用Sqlserver的系列文章,希望笔者走过的路能够给后来者带来一些便利。背景介绍在数据分析师的角色下,使用数据库更多的是为了从数据库中获取数据,和数据库交互的语言是SQL&#…

P4824 [USACO15FEB]Censoring S kmp + 栈

传送门 文章目录题意:思路:题意: 思路: 如果删除之后两个串不拼起来就是个裸kmpkmpkmp了,但是这个题能拼起来,拼起来之后还有可能生成一个新的串,而且起点在当前位置之前。 考虑是否能找到删掉…

使用kubectl管理k8s集群(三十)

前言Foreword在搭建k8s集群之前,我们需要先了解下kubectl的使用,以便在集群部署出现问题时进行检查和处理。命令和语法记不住没有关系,但是请记住主要的语法和命令以及帮助命令的使用。在下一篇,我们将讲述使用Kubeadm来创建k8s集…

【启智树NOIP模拟】生存【父子分治】

题意:有 nnn 个城市连成一棵树,每个城市有 aia_iai​ 个人。接下来 mmm 天每天会发生 kik_iki​ 次灾难,每个灾难会让一个给定城市的人全部死掉。每个人一天可以走一条边,也可以不动。求最多多少人能活过这 mmm 天。 n≤106,∑ki≤…

P3435 [POI2006]OKR-Periods of Words kmp + fail指针

传送门 文章目录题意:思路:题意: 思路: 转换一下题意,就是求一个最小公共前后缀,显然可以暴跳nenene数组,复杂度O(n2)O(n^2)O(n2),注意到我们每次都跳的话会跳到很多重复的位置&…

架构杂谈《四》

分布式一致性协议一、引言在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica),这些个副本会放在不同的物理机上,为了对用户提供正确的数据,我们需要保证这些放在不同物理机上的副本是一致的。为了…

【十二省联考2019】希望【点边容斥】【换根dp】【长链剖分】【线性数据结构】【回退数据结构】【离线逆元】

题意:给一棵树,两个参数 k,Lk,Lk,L,需要选择 kkk 个连通块,使得这 kkk 个连通块存在一个公共点,且该公共点到 kkk 个连通块内的任意一点的距离不超过 LLL,求方案数 模 998244353998244353998244353。两种方案不同当且仅…

Codeforces Round #246 (Div. 2) D. Prefixes and Suffixes kmp + dp

传送门 文章目录题意:思路:题意: 思路: 通过完美子串的定义,我们不难发现满足条件的子串就是kmpkmpkmp中ne[n]ne[n]ne[n]不断向前跳得到的串,现在问题就是如何求这些前缀串在串中出现的次数了。 考虑一个前…

译 | 宣布ML.NET 1.2 及模型生成器更新(用于 .NET 的机器学习)

原文:Cesar De la Torre翻译:Edi Wang我们很高兴地宣布ML.NET 1.2 和模型生成器和 CLI 的更新。ML.NET是 .NET 开发人员的开源和跨平台机器学习框架。ML.NET还包括模型生成器(Visual Studio 的简单 UI 工具)和ML.NET CLI(命令行界面),以便使用自动机器学…

【十二省联考2019】皮配【分部dp】

题意:有 nnn 个学校隶属于 ccc 个城市,每个学校有 sis_isi​ 个人。把它们放入一个 222\times 222 的格子中,要求同一学校的必须放在同一个格子,同一城市的必须放在同一行,并给出两行两列分别最多能放的人数C0,C1,D0,D…

Codeforces Round #590 (Div. 3) F. Yet Another Substring Reverse 子集dp

传送门 文章目录题意:思路:题意: 思路: 之前做过类似的题,翻转一个字串相当于将任意两个不相交的串连在一起。再一看字符集≤20\le20≤20,那就是铁子集dpdpdp了。 定义f[i]f[i]f[i]表示状态为iii的串的长度…

一个超轻量级工作流引擎:Workflow-Core

近期工作上有一个工作流的开发需求,自己基于面向对象和职责链模式捣鼓了一套小框架,后来在github上发现一个轻量级的工作流引擎轮子:Workflow-Core,看完其wiki之后决定放弃之前自己造的轮子,使用这个开源项目来改造&am…

Codeforces Round #590 (Div. 3) E. Special Permutations 差分 + 思维

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 直接考虑比较难想&#xff0c;这种公式题基本都是将部分答案看成一个整体&#xff0c;考虑xi,xi1x_i,x_{i1}xi​,xi1​的贡献的。 假设当前的xix,xi1y,x<yx_ix,x_{i1}y,x<yxi​x,xi1…

【THUSC 2017】如果奇迹有颜色【polya引理】【矩阵】【计数dp】【BM打表+线性递推】

题意&#xff1a;长度为 nnn 的环染 mmm 种颜色&#xff0c;要求任意相邻 mmm 个元素不能包含全部的颜色。求方案数 模 109710^971097&#xff0c;循环同构。 n≤109,m≤7n\leq 10^9,m\leq7n≤109,m≤7 为啥我现在天天都在打表啊 先上 polya&#xff0c;对于移动 iii 位的置换…

ASP.NET Core 3.0中支持AI的生物识别安全

本文共两个部分&#xff0c;这是第一部分&#xff0c;其中介绍了 ASP.NET Core 3 中旨在将授权逻辑与基本的用户角色相分离的基于策略的授权模型。此部分提供了此授权进程的基于生物识别信息&#xff08;如人脸识别或语音识别&#xff09;的具体示例。在此示例中&#xff0c;检…

Codeforces Round #588 (Div. 2) D. Marcin and Training Camp 思维

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 有nnn个人&#xff0c;每个人都有一个能力值bib_ibi​以及他会的技能aia_iai​&#xff0c;当他会第xxx个技能的时候&#xff0c;aia_iai​的第xxx位是111。定义当xxx不会某个技能但是yyy会的时候&#xff0…

架构杂谈《五》

保证最终一致性的模式在大规模、高并发服务化系统中&#xff0c;一个功能被拆分成多个具有功能单一的子功能&#xff0c;一个流程会有多个系统的多个单一功能的服务组合实现&#xff0c;如果使用两阶段提交协议和三阶段提交协议&#xff0c;确实能解决系统间的一致性问题。其实…

【ROI 2019 Day2】课桌【贪心】【决策单调性】【分治】

题意&#xff1a;有 mmm 个班&#xff0c;每个班有 2n2n2n 个人&#xff0c;他们的身高给定。有 kkk 种双人桌&#xff0c;每张桌子有两个属性值 Li,RiL_i,R_iLi​,Ri​,一个身高为 hhh 的人坐第 iii 种桌子的不舒适度为 hhh 到区间 [Li,Ri][L_i,R_i][Li​,Ri​] 的最小距离。你…

Codeforces Round #588 (Div. 2) E. Kamil and Making a Stream 数学 + 暴力

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一颗树&#xff0c;其中根是111&#xff0c;每个点有一个点权&#xff0c;求每个点到根的所有路径的gcdgcdgcd之和。 n≤1e5n\le1e5n≤1e5 思路&#xff1a; 一看到以为是个点分治&#xff0c;让后发现…