放心吧,敏捷开发搞不起来!

互联网公司的“敏捷开发”流程是怎么样的,每个职位的角色和分工是什么? 这里是修真院前端小课堂,本篇分析的主题是 【互联网公司的“敏捷开发”流程是怎么样的,每个职位的角色和分工是什么?】 前言================================================ 1.本回答从属于“IT修真院”收藏夹系列第二篇,第一篇是IT职业介绍。 第一篇对IT职业做了一个相对深入的介绍,给了想从事互联网职业的人一个了解各个职业的机会,已经有40... 阅读详情

1

敏捷转型

周一上班,张大胖收到经理的一封邮件,标题赫然写着:

大胆拥抱变化,努力促进敏捷转型。

旁边的何小痩吐槽说:我们的瀑布模型用得挺好啊,职责明确,按部就班,为啥要转型?折腾人!

喜欢接触新技术的张大胖说:放心吧,敏捷软件开发那一套,Scrum、 TDD、结对编程我早就试验过,我给你说,根本就用不起来。

张大胖的公司之前一直使用瀑布模型进行开发:

a3ffe6e7b4b9b5172de33a6678fa74af.png

软件开发就像接力赛,一棒接一棒,最后交给客户。

但是瀑布模型的缺点也非常明显:

需求在客户的脑子中,没法精确,完整地描述,需求文档看似做完了,进入到设计开发,但很可能是跑偏了!

跑偏的后果就是:错误到了用户验收测试阶段才发现,客户说:这不是我想要的东西。

只好返工,返工相当于再走一遍瀑布,代价太高了。

公司这两年的项目就没有按时完工的,问题主要就出在需求上。

2

迭代开发

很快,经理聘请的教练就进场了。

在动员会议上,张大胖惊奇地发现,教练根本不提敏捷的事儿。

也根本没提TDD,结对编程,Scrum,反而提了一个新词:迭代化开发

f55b810e49ddab1b02c26bb8507e926b.png

张大胖忍不住嘲笑:这迭代化开发,不就是把原来的大瀑布,切分成一个个小瀑布吗?换汤不换药!

教练并没有直接回应张大胖,只是是笑了笑:迭代化开发的关键是:价值驱动和风险驱动。

4b3ffffb881a41cfd56f2fe26160bc9c.png

张大胖:别拽这些没用的词,是骡子是马拉出来溜溜。

教练:我们用一个项目实战一下就明白了。

经理还真是信任这位教练,居然给让他带着大家做一个真实的项目。

张大胖心想:正好,我看看你怎么当众出丑。

3

需求分析

项目实战正式开始。

按照之前的经验,肯定要请业务人员来写需求文档,也就是用例。

但是这一次,教练直接宣布:花两天时间,召开需求分析会议。

张大胖忍不住对何小痩说:两天?两天能把所有的需求理清楚,把所有的需求文档都写完吗?我们之前需求分析阶段都用了两个月!

何小痩也无法理解:谁知道他葫芦里卖什么药,我们去听听。

需求分析会议不但有业务人员,还有架构师,开发人员,甚至测试都来了。

教练说:业务人员已经整理了一个非常粗略的文档,已经发给大家了,大概有20个需求,我们这次先挑选10%-15%进行深入分析,其他的先进行粗略分析。

张大胖立刻问道:10%-15%?怎么选?

教练在白板上写道:

d839e51d89338716053f65da07540af1.png

张大胖心中一震:卧槽,这位教练真的有两把刷子啊,这三个原则很厉害,一下子就抓住了关键点!

大家按照这3个原则,饶有兴趣地挑选了3个需求。

两天以后,大家对这3个需求做了详细的分析。剩下的十几个只做了粗略的分析。

教练说:好了,下周我们正式开始迭代开发,每个迭代三周如何?

张大胖心说:好,我看看你的小瀑布怎么搞。

4

第一个迭代

第一个为期三周的迭代正式开始。

周一,教练带着大家开了一个简短的迭代计划会议,把3个需求做了任务分解和工作量估算,从中选取一些任务的子集作为本次迭代的任务。

随后,在架构师的带领下,大家开始进行建模和设计。

让张大胖感到震惊的是,教练居然不让大家写详细的设计文档,而是把架构师和开发人员都赶到白板前去做设计。

每个人都必须参与,发表意见,在白板上画流程图,设计图,UML图,各种图......

4cd18902b3eb7ee950923714c67a82ba.png

张大胖问道:怎么回事?我们不写文档了?这草图能用来开发吗?

教练:你想想看,之前写的文档有多少是真正精确的?有多少随着开发的推进迅速过时了?

张大胖一想确实如此,那些写得漂亮的设计文档几乎没人看,因为和代码严重不一致,就是为了应付验收而已。

教练又说道:我们不需要面面俱到的文档,只需要足够好的文档,你看大家都参与了设计的讨论,达成了共识,回头用手机把这些UML草图拍下来保存就行了。

张大胖还是将信将疑,但是他发现,不写容易过时的文档,确实省了自己不少事。

通过白板讨论,大家对设计都达成了一致。

架构师把一些最关键的决策给记录了下来,这才是最宝贵的文档。

5

迭代出了问题

接下来,每天都是编程、测试,和别人的代码集成。

教练和架构师的要求比较高,单元测试,集成测试,性能测试都得做

两周时间很快过去,第二周的周五,发生了一件让张大胖幸灾乐祸的大事情:计划的需求肯定完成不了了!

张大胖面带愁容,心里却乐开了花:教练,照目前的进度,这个迭代完成不了所有的需求啊!

教练:这很正常,说明我们对自己的工作量估算还不准确,以后会越来越好的。

张大胖:那怎么办?第一个迭代宣告失败?

教练笑了:不不,我们拿掉一些次要的任务,保证这次迭代有可以展示的东西。

很快,时间到了第三周的周四,教练通知大家要冻结代码,该提交的赶紧提交,周四要给客户做演示。

第一个迭代刚刚完成,系统还非常简陋,但是在演示中客户依然提出了几个非常重要的问题:

“你们搞错了,这个地方是角色A才能访问的,角色B访问不了!”

“忘了说了,这个地方的数据来源是Excel,必须得支持Excel的导入”

张大胖非常感慨:幸亏是现在就发现了,要是到最后就惨了。

客户的反馈也被加入到了需求中。

6

继续迭代

在第一个迭代要结束时,教练带着大家召开了第二次需求分析会,又按照之前的3个标准,选取了10%~20%的需求,进行详细分析。

然后就是第二个为期三周的迭代。

经过四五次这样的迭代,80%~90%的需求已经分析完成。

这些需求经过了用户的反馈,质量要远高于瀑布模型中的需求分析文档。

教练总结道:虽然开发还没有完成,但是我们已经完成需求的细化阶段,我们可以比较精确地估算什么时间可以完成项目了。

在后续的迭代中,需求分析活动越来越少,需求也没有显著变化,开发活动则越来越多。

稳定的需求,精确的估算,让大家开发起来信心越来越足。

这一次,项目按时,高质量地交付了!

7

总结

在总结会议上,教练给大家展示了一幅图:

7d665b8d1026dd88fc38fab4b66118d8.png

看着图,张大胖非常感慨:迭代化开发,关键是:不要在开发之前,就“冻结”需求和设计,软件开发是有不可避免的变更的特点,必须通过不断地反馈和调整,才能达到目标。

拥抱变化,这才是敏捷的真谛。

但他还是向教练提了一个问题:TDD、结对编程、Code Review这些东西什么时候用?

教练说:咱们的迭代化开发相当于一个筐,这些敏捷实践都可以往里边装啊,只要你的团队能够熟练实施这些实践,就可以在迭代化开发中使用起来啊!

后记:

本文来自网友@lxb的投稿,我做了故事化的“大改造”,本文讲述的是敏捷最基本的一个实践:迭代化开发,熟悉RUP的同学会看出来,文中的介绍其实是RUP的一个裁剪。

欢迎各位小伙伴投稿,讲述你的职场故事,技术人生,稿费700元(需要能标记原创),我的微信: onlyliuxin97

非技术方面:学习经历、职场经历和职场感悟、吐槽都可以。

技术方面:希望能通俗易懂地讲一个相对通用的技术,不要太狭窄,能用故事讲最好(稿费1000元),或者某个技术的演变历史。 

泛技术类的:科技公司、科技人物、科技事件、能给大家带来感悟,感到有收获的都行。

(完)

点击下方图片,查看更多精彩

005e6a2b0b38cf2206bb0bce47904e84.png

60da5644a3d89c68508dcf85920ad17a.png

f543b34e9c69569e52706119cb603211.png

7ecdc1dd396a32650f14f82b6eb6f387.png

3495b605c49e1fd028cbc5ce7ba4b8e3.png

5e1e09e0e36e4afd22cfbe3f40f6cc45.png

CSR-DCF视频目标跟踪源码运行笔记 论文基本信息 论文标题:Discriminative Correlation Filter with Channel and Spatial Reliability 论文作者:Alan Lukezic等 论文出处:CVPR 2017 文章链接:https://arxiv.org/abs/1611.08461 补充材料:https://www.semanticscholar.org/paper/D... 阅读详情

相关推荐

高通camera open代码流程(hal到kernel)

内容:简单介绍Camera open代码调用流程,从HAl到kernel。(api1+hal1) 前言 Android camera api和hal对应关系。安卓在版本更新过程中,camera相关代码也经历了几个版本的更新,表现为camera HAL版本更新(HAL1->HAL2->HAL3),camera API版本更新(camera API1->camera API2),接下...

oxoo123的专栏 4277

介绍两种常见软件开发模式:“敏捷”和“瀑布”

每一个阶段到下一个阶段,都有明确的输入输出产物,不同的阶段根据自己所需的输入,进行工作活动之后,产生自己阶段的产出,投入到下一个阶段的工作中。所以先根据主路径,完成主要功能后,我们再通过不断地迭代,去完善我们的工作,这样当我们产生变化的时候,我们推翻的工作量也是少量的,可以很快的去完成新的需求变更。敏捷模式,两周一个迭代,每个迭代都能进行一定功能模块的交付,让用户更早的看到交付物,虽然只有部分,也可以让用户来提出自己的看法,产生变更的时候,开发人员也可以在下个迭代中进行修改,让用户进行再次的确认。

Alex的博客 3496

【迁移学习】域对抗迁移网络 DANN

Domain-Adversarial Training of Neural Networks

这个博客太懒了什么都没说 8418

什么是小瀑布陷阱? 敏捷与小瀑布的区别是什么?

敏捷模式在互联网企业大获成功后,开始在各行各业风靡起来,包括传统的地产、金融以及医疗等行业。敏捷、迭代开发 、MVP 等词汇在各种行业的人们口中说出,不说点这样的词汇好像就已经跟不上现代的社会了一样。与此同时,‘瀑布式模式’ 或者 ‘预测型生命周期’ 成了一个大家唯恐避之不及的东西,就好像 ‘瀑布式开发’ 成了落后的代名词一样。实际上瀑布式开发模式也曾经是世界的主流,现在仍然是在各行各业中其中巨大作用。 实际上开发模式没有高下之分,只有是否合适的区别。合适的才是最好的,如果环境确定,目标清晰,那么瀑布式

西门大官人 4966

NVIDIA驱动版本太低?手把手教你解决CUDA与PyTorch版本冲突问题

本文针对深度学习开发中常见的NVIDIA驱动版本过低导致的CUDA与PyTorch版本冲突问题,提供了从根源理解到实战解决的完整指南。文章详细解析了驱动、CUDA与PyTorch的依赖关系,并给出了升级驱动、降级PyTorch、使用Conda环境管理及Docker容器化四种核心解决方案,帮助开发者快速诊断并构建稳定的GPU开发工作流。

grpc6streamer的博客 971

【UML】-- 期末试题题库含答案(各章题目、选择题、填空题、简答题、画图题)

每章都有对应的题目和答案,选择题,填空简答,大题,答案已标红,方便大家观看

个人博客 1万+

再谈“敏捷”与“瀑布”在产品开发过程中的反思

在产品开发过程中,敏捷开发和瀑布模型都是常用的流程和开发方法,这两种方法是什么?细节是什么?这篇文章,为我们进行了解答。

ZCYS2023的博客 1199

注意力机制与经典 CV 网络:PyTorch 实现与实战

注意力机制(SE/空间/CBAM/Non-Local)通过权重重标定让模型聚焦关键特征,经典 CNN(ResNet/DenseNet/FPN)提供了深层网络、特征复用和多尺度融合的基础骨架。建议先在 ResNet 上插入 SE 模块(通道注意力)做基线实验,再根据任务类型引入空间注意力(分割任务)或非局部注意力(视频任务)。CIFAR-10 数据集适合快速验证注意力模块的有效性,迁移到更大数据集时保持相同的结构设计思路即可。

FJN110的博客 64

敏捷项目管理-入门篇(一)

一、敏捷的定义 数据化时代的不确定性越来越高,其特点为易变性、不确定性、复杂性以及VUCA。人们实践中逐渐发现了四个能力对冲VUCA的影响效果明显,其中敏捷力就是我们平常所说的敏捷。 敏捷的比较正式的定义是:创造并响应变化,从而在动荡的商业环境中创造利润的能力。其得到组织的重视在于其可以在商业活动中创造利益。 敏捷一般在项目中的实践主要方法之一是scrum,而scrum本质上也是由无数个pdca循环组合的。 二、生态圈 自然界的生态圈是指在生物自然环境下生存和发展的状态。而...

weixin_39885962的博客 1209

ARM功耗管理软件之DVFS&AVS

思考:功耗管理软件栈及示例?WFI&WFE?时钟&电源树?DVFS&AVS?

AI-安全-功耗 1233

ADS电路仿真方法综述:原理与应用

在射频与微波电路设计中,精确的仿真技术是验证性能的关键。ADS(Advanced Design System)作为行业标准工具,集成了多种仿真方法,适用于不同场景。本文将系统解析瞬态分析、谐波平衡(HB)、交流分析(AC)、直流分析(DC)、S参数、大信号SP(LSSP)及包络分析的原理、实现机制与应用场景。

u014344410的博客 483

瀑布到敏捷转变的几点小感受

今年下半年,公司项目管理转变, 采取“敏捷开发”(暂且不说是真敏捷还是假敏捷); 第一次从“瀑布”开发 转战 “敏捷”开发的项目后,有一个感受: 1.敏捷,类似小瀑布--虽然这个表述不是那么准确,但是在一个迭代中,是这样的;在多个迭代中,跟瀑布才有比较大的差异 ---- 多个迭代是不断循环的,一个迭代在进行中,就开始准备下一个迭代,但是瀑布是一个版本完全结束后,才开始下一个版本 ...

weixin_30797199的博客 170

上位机1000条/秒数据不丢不卡:SQLite持久化队列最优方案实战

在上位机每秒1000条、1MB数据的场景下,SQLite做持久化队列是最优解可靠性拉满,ACID事务+WAL模式保证绝对不丢数据;性能完全够用,优化后每秒几千条没问题;轻量无依赖,只有一个.db文件;C#/.NET原生支持,代码简单易维护。只要按照上面的优化点和代码实现,完全能满足工业现场的需求,不用再担心数据丢失、存储卡采集的问题。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 485

敏捷开发和瀑布开发的区别

敏捷开发和瀑布开发的区别引言”敏捷”的理由“瀑布”对“敏捷”的驳斥焦点碰撞敏捷开发的优势敏捷开发的劣势:瀑布开发的优势瀑布开发的劣势结论 引言 最近和朋友谈起敏捷开发和瀑布开发模式,很多人认为敏捷开发是未来的项目实施的趋势,瀑布实施太老土已经过时了。另外确实一些跨国企业如索尼,联想也在使用敏捷的方式实施一些项目。但实际上我们看到绝大多数公司还是依然在采用瀑布的方式实施项目。我之前参与过敏捷开发的项目,但当时比较“年轻”,认识不是很深刻,于是最近又补习了下和大家一起分享下我对敏捷和瀑布的感悟。 ”敏捷”的理

非著名JAVA程序员的博客 1807

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ERP能解决什么?放心吧!低代码全都能搞定!

数字化转型必然遇到的一个问题就是长期性的问题。谁能看懂未来趋势、谁能判断未来走向、谁能提前布局卡位,谁就能成功。

shshshhhhh的博客 369

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

放心吧!一切交给低代码!低代码全都能搞定!

数字化转型必然遇到的一个问题就是长期性的问题。谁能看懂未来趋势、谁能判断未来走向、谁能提前布局卡位,谁就能成功。

m0_73576999的博客 234

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

敏捷开发和瀑布开发模式有何区别?

最近和朋友谈起敏捷开发(Agile Model)和瀑布开发(Waterfall Model)模式,很多人认为敏捷开发是未来的项目实施的趋势,瀑布实施太老土已经过时了。另外确实一些跨国企业如索尼,联想也在使用敏捷的方式实施一些项目。但实际上我们看到绝大多数公司还是依然在采用瀑布的方式...

3931

敏捷开发学习

敏捷开发核心的角色是“人”,是“笨人”开发软件的方法学。    敏捷开发的核心方法是,测试,重构,迭代。唯一的目的就是编写出高质量的源代码。测试,重构,迭代,都是围绕这一个目的展开。只是在不同的阶段,不同的情景下,侧重点不一样。     1、测试、重构、迭代 敏捷提倡测试优先,在编写任何一个功能前,首先写出测试代码。这叫测试驱动开发(TDD)。 TDD主要有两个好处,一是为重构保驾护

张清的专栏 1070

敏捷开发之团队组成

上篇文章分享了敏捷开发中的Scrum的流程,简单介绍了Scrum的流程和相关概念,其中Scrum的角色有三种分别是 产品负责人,团队负责人,项目执行人员。本文主要对团队中的角色以及其负责的内容,进行详细讲解。

大张伟 1487

《高效程序员的45个习惯——敏捷开发修炼之道》读书笔记

《高效程序员的45个习惯——敏捷开发修炼之道》的读书笔记 《高效程序员的45个习惯——敏捷开发修炼之道》[美]Venkat Subramaniam / Andy Hunt 著 钱安川 郑柯 译 (1)整体来说,这本书到底在谈些什么? 作者是在企业从事软件开发的,可以想到作者必定是做了大量的实践而不是理论的研究,从作者简介、推荐序就可以了解到,这本书并不是在论述“敏捷开发”这样的一个方法论,而是较全面论述如何在实践“敏捷开发”,从题目的“45个习惯”就可知道这是告诉了我们敏捷开发的具体行动是什么,如何运用这

Galaxy_Robot的博客 1346

敏捷开发和项目管理

以下文章转载自知乎,暗灭-京华九月秋近寒,浮沉半生影长单.暗灭京华九月秋近寒,浮沉半生影长单366 人赞同了该回答前言================================================1.本回答从属于“IT修真院”收藏夹系列第二篇,第一篇是IT职业介绍。第一篇对IT职业做了一个相对深入的介绍,给了想从事互联网职业的人一个了解各个职业的机会,已经有4000+赞了,我想是...

qq_41849945的博客 2463

敏捷开发宣言

敏捷开发宣言 【敏捷开发宣言】 1、个体和交互胜过过程和工具 2、可工作的软件胜过面面俱到的文档 3、客户协助胜过合同谈判 4、响应变化胜过遵循计划 核心:团队合作、可工作的软件、快速响应变化 【敏捷修炼之道】   敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善 【态度决定一切】   敏捷依赖

木桌的技术博客 619

研发效能度量 - 阿里巴巴敏捷开发实践PPT

研发效能度量 - 阿里巴巴敏捷开发实践PPT 【下载地址】研发效能度量-阿里巴巴敏捷开发实践PPT 这份PPT资源源自阿里巴巴的敏捷开发实践,深入探讨了“研发效能度量”的核心内容。通过丰富的案例和实用的方法,详细介绍了如何通过度量研发效能来优化开发流程,提升团队效率。内容包括敏捷开发的实际应用、度量体系的有效建立、以及如...

gitblog_06767的博客 473

敏捷开发的实现和问题

今天学习了一波腾讯云里面的一篇文章:https://cloud.tencent.com/developer/article/1004881,你大概走了假敏捷:认真说说敏捷的实现和问题。 有次去西安百度创业园谈项目,甲方直接丢了一句,我们需要敏捷开发。我们:放心,肯定高质量、短周期的交期。敏捷需要面对面沟通,随时沟通,计划紧凑,总之就是快准狠。 1、敏捷 敏捷软件开发宣言:个体和互动高于流程和...

洋葱专栏-有灵魂的程序员 1447

敏捷开发修炼之道

1. 敏捷——高效软件开发之道 敏捷开发宣言个体和交互胜过于过程和工具 可工作的软件胜过面面俱到的文档 客户协作胜过合同谈判 响应变化胜过遵循计划 敏捷的精神开发要持续不断,切勿时断时续 持续注入能量 敏捷的修炼之道敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。 在功能不变的情况下,重新设计部分代码,改善代码质量,这就是所谓的重构。 敏捷工具箱Wiki 版本控制 单元测试 自

Ran's Hacking Zone 867
上一篇: 教女朋友学编程的一次经历
下一篇: 漫画 | 一位坑人的编程大师
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值