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,一经查实,立即删除!

相关文章

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

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

P4824 [USACO15FEB]Censoring S kmp + 栈

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

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

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

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

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

架构杂谈《四》

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

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(命令行界面),以便使用自动机器学…

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…

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

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

架构杂谈《五》

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

在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)

背景平时开发大部人都是在提供了高效GUI的window下工作&#xff0c;但是真正部署环境普遍都是在Linux中&#xff0c;所以为了让开发环境和部署环境统一&#xff0c;我们需要在windows模拟LInux环境&#xff0c;以前我们可能通过虚拟机的方式实现&#xff0c;不过自从微软拥抱开…

.net持续集成cake篇之cake介绍及简单示例

cake介绍Cake 是.net平台下的一款自动化构建工具,可以完成对.net项目的编译,打包,运行单元测试,集成测试甚至发布项目等等.如果有些特征Cake没有实现,我们还可以很容易地通过扩展Cake来实现我们想要的功能.Cake有以下特点1) 使用c#语言编写,可以在Cake脚本里使用C#语言来实现我…

Educational Codeforces Round 73 (Rated for Div. 2) Make The Fence Great Again dp + 结论

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 首先证明一个结论&#xff1a;一个数最多被加两次。 首先假设a[i]a[i−1]a[i]a[i-1]a[i]a[i−1]或a[i]a[i1]a[i]a[i1]a[i]a[i1]&#xff0c;那么此时可以将a[i]a[i]1a[i]a[i]1a[i]a[i]1&am…

.NET Core 3.0 发布小尺寸 self-contained 单体可执行程序

.NET Core 提供的发布应用程序选项 self-contained 是共享应用程序的好方法&#xff0c;因为应用程序的发布目录包含所有组件、运行时和框架。您只需要告诉使用者应用程序的入口 exe 文件&#xff0c;就可以使程序运行起来&#xff0c;而不必担心目标计算机上是否存在.NET Core…

Educational Codeforces Round 73 (Rated for Div. 2) E. Game With String 思维博弈 好题(2500)

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 我们将每一段...拿出来看成若干段&#xff0c;将其分成以下四种情况&#xff1a; (1)len<b(1)len<b(1)len<b (2)b≤len<a(2)b\le len<a(2)b≤len<a (3)a≤len<2∗b(3…

「Sqlserver」数据分析师有理由爱Sqlserver之三-最值得使有低投入高产出的Sqlserver功能...

数据分析师群体&#xff0c;有别于一般的传统开发群体和数据库运维群体&#xff0c;对Sqlserver的功能需求上也各不相同&#xff0c;本篇以笔者的亲身经历&#xff0c;用一种有别于一般性教程的角度来讲解Sqlserver值得我们学习&#xff0c;投入产出比高的一些功能模块。当然&a…

.NET开发框架(八)-服务器集群之网络负载平衡(视频)

【视频教程在文章底部】&#xff0c;本文讲解Windows服务器集群的网络负载平衡NLB的作用&#xff0c;以及在.NET开发框架的架构设计中&#xff0c;如何应用NLB与ARR&#xff0c;使用它们各有什么优点。视频教程目录&#xff1a;1、讲解NLB概念与演示其作用 2、安装配置负载均衡…

人生如戏,别太入戏

这里是Z哥的个人公众号每周五早8点 按时送达当然了&#xff0c;也会时不时加个餐&#xff5e;我的第「81」篇原创敬上大家好&#xff0c;我是Z哥。对&#xff0c;就是脑袋很大的那个。大到什么程度呢&#xff1f;我给新来的小伙伴们说说。我昨天还打算配副新眼镜来着&#xff0…