`

敏捷开发和瀑布开发的混搭

阅读更多
现在这家公司的开发流程很奇怪,和以前的公司很不一样

一、首先拿到一个客户需求,这个客户需求(OR)可能就只有一句话:“做XXXX运维成本太高了,管理也很混乱,能不能给做个管理系统给控制一下”

由于这个客户很重要,所以虽然需求很不明确,连系统该做成啥样都不知道,但是领导还是决定要做。于是项目组就启动了。这个时候所有已知的东西,就只有这个一句话的OR

二、第一阶段,叫Chart开发,这个阶段找了很多业务专家,以及有现场运维实际经验的人来。一边猜想,一边问。这个阶段主要解决以下问题:
1、这个系统做出来要解决什么问题
2、这个系统大概是啥样的
3、这个系统做出来以后,用户要怎么用

然后这个阶段项目组分成3个小组:“业务分析组”、“竞争分析组”、“技术预研组”,来并行工作。业务分析组就是和业务专家在一起,“猜测”系统应该是怎么样的,回答前面的3个问题。竞争分析组把同类的产品拿来看,自己边用边分析,其实就是模仿。技术预研组则是把有风险的技术先研究研究,免得到时候做不出来

这个阶段结束以后,输出了一堆文档。最重要的就是一个叫“包需求”的东西。把前面的一句话OR扩大了很多,变成一个很长的需求列表。这个输出是后面所有工作的起点。

我感觉这里就有点问题了:
1、为啥叫包需求,我看了这么多书,就没见过有这么一个名词,再说也很难听
2、这个包需求,根据多个项目的经验,相当不准确。遗漏或者瞎猜的情况很严重

三、不管怎样,然后就进入第二阶段了。这个阶段叫“需求分析”,但是分析的不是原始需求了,而是上个阶段输出的“包需求”。这个阶段把包需求分解了,也加了很多人进来。每天大家就对着包需求“想象”场景,输出“场景分析”,这个场景分析之后,又把包需求分解成了一大堆“设计需求”(DR),这个DR也是一个长长的列表,作为下一阶段工作的起点

我感觉这里又有问题了:
1、本来包需求就是有偏差的,经过进一步想象,或者说瞎猜,这一阶段输出的设计需求,已经和原始需求有了更大的偏差
2、很多人没有经历过上一阶段,在这个阶段空降加入,效率很低,沟通成本很高
3、实际的开发人员到这个阶段还是没有全部参与,这个阶段的输出传递会有问题

四、不管怎样,接下来该进入第三阶段了。这个阶段的起点就是上个阶段的“设计需求清单”,这个阶段叫“设计阶段”,把设计需求,再进行一个“概要设计”,最后输出一个“用户故事清单”(Story List)。好吧,敏捷开发的名词终于出现了,在经过了这么久的瀑布之后。。

五、然后进入了迭代开发阶段,这个阶段才开始实际编码。工作的起点是上个阶段输出的“Story List”,每个开发小组对Story进行迭代的简单设计、开发、测试、集成测试。这个阶段有点像敏捷开发了,包括站立会议、持续集成、交叉检视等等手段都会引进来

六、总结,个人感觉,这个开发流程,前面是瀑布,后面是敏捷,我猜到了开头,却猜不到结局。。。
1、前面花了很大的力气(至少3个月),进行需求分析和设计,但是这个需求分析和设计的结果,往往在开发阶段发现有很多问题,部署后用户表示和最初的想法有差距
2、前期的工作成果,传递得很不好,没有参加前3个阶段的开发人员,在开发阶段基本不会去看前期的输出,但实际编码的又是这些人,这样前期的工作意义又被削弱了

总之,我觉得还是我以前那个公司,开发流程更像真正的敏捷。虽然没有站立会议、结对开发这种手段上的东西。但是出可运行交付的周期更短,用户可以更快的反馈结果,浪费在需求分析和设计阶段的时间更少

不过。。。体验一下现在这种流程也不坏,有比较才有想法嘛~~
分享到:
评论

相关推荐

    敏捷开发模式.xls

    通俗易懂的解释了什么是敏捷开发模式!敏捷开发带来的好处和优点!传统的瀑布开发模式有哪些弊端,敏捷开发模式和瀑布开发模式的比较和不同!

    从瀑布模型、极限编程到敏捷开发

    从瀑布模型、极限编程到敏捷开发 从瀑布模型、极限编程到敏捷开发

    敏捷开发知识总结

    敏捷软件开发是一个开发软件的管理新模式,用来替代以文件驱动开发的瀑布开发模式。   敏捷开发集成了新型开发模式的共同特点,它重点强调: 1.敏捷就是“快”。快才可以适应目前社会的快节奏,要快就要发挥个人的...

    敏捷开发|项目管理|#1-敏捷开发为什么会出现

    敏捷开发为什么会出现呢,那最简介的解释就是,传统的开发模式已经越来越不能适应,某些领域的飞速发展。瀑布模型可是说是典型的预见性为驱动的方法,将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、...

    论文研究 - 敏捷开发:探索从业者想知道的东西

    c)一些公司和从业者仍然对敏捷开发相对于基于计划的开发的好处持怀疑态度; d)正在开发中以支持敏捷开发的工具。 基于这些因素,我们了解到,从业人员希望找到以下问题的答案:a)优秀的敏捷从业人员和团队应该...

    告别瀑布拥抱敏捷

    告别瀑布拥抱敏捷,敏捷开发,开发模式,新的开发方式

    敏捷与瀑布

    敏捷与瀑布,不同类型的开发模式,摘抄自网络

    敏捷开发的艺术.pdf.rar

    敏捷开发的艺术.pdf.rar敏捷开发是超越瀑布开发模型的。与极限编程相关的

    Python的敏捷开发.docx

    软件开发过程中,传统的瀑布模型在部分场景下已无法满足实际需求,因此,敏捷开发作为另一种软件开发方法逐渐被人们所接受。Python作为一门开源语言,在敏捷开发中发挥了极为重要的作用。 本文将深入讨论Python在...

    【软件测试003】软件开发(瀑布、快速原型、螺旋、敏捷开发)与测试(V、W、H)模型.pdf

    随后,您将了解到快速原型模型、螺旋模型以及近年来备受推崇的敏捷开发模型,包括Scrum框架的详细解读。这些模型各具特色,适应不同的项目需求,让您在软件开发过程中有更多选择。 进入软件测试模型的章节,您将...

    基于JIRA的Scrum敏捷开发的项目管理

    Scrum敏捷开发的关键字就是增量、迭代,他更重视项目团队之间的现场沟通,不向传统瀑布式开发那样需要万事具备,才开始开发,Scrum在大方向和小故事点确认好了后,团队就可以开动了。Scrum的团队一般都不大,一Scrum...

    对比十几种软件开发模型 传统模型(瀑布模型,演化模型,螺旋模型,喷泉模型),敏捷开发,极限编程XP.zip

    对比十几种软件开发模型 瀑布模型 演化模型 螺旋模型 喷泉模型 快速原型模型 智能模型 混合模型 敏捷开发 极限编程XP

    在瀑布式项目中实现敏捷开发

    其他敏捷元素应对挑战使用的工具实现的获益结束语参考资料尽管一个大型项目整体很好地遵循着一个瀑布模型,但该项目的应用程序开发团队希望改用敏捷开发。开发人员曾讨论过要让项目全面地改用敏捷模型,但最终决定只...

    瀑布模式与敏捷开发.pptx

    从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈;...可在迭代模型中应用瀑布模型,并且它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

    软件工程面向对象开发之瀑布开发模型

    软件工程面向对象开发之瀑布开发模型的表格型开发文档

    敏捷软件开发

    1.1.2.1. 敏捷软件开发和瀑布式开发 说到敏捷软件开发,就不得不提瀑布式开发。 瀑布式开发倾向于制定详实的计划,然后尽可能遵循计划实施。在瀑布式开发中,一般认为计划得越准确越好。 原因之一是为了减少返工,...

    Scrum敏捷式开发团队培训

    瀑布模型的主要缺陷: 程序的维护成本会越来越高(需要很多人) 团队氛围压抑(感受不到激情) 不方便做需求变更(引起客户不满) Scrum是英语中橄榄球运动的一个专业术语,表示“争球”,在这里特指一种敏捷开发的...

    敏捷测试和瀑布测试的关联

    在敏捷开发在软件和互联网产品开发领域日渐普及的情况下,我们从敏捷开发认识敏捷,继而接触到周金根老师的敏捷人生,《managemeng 3.0》又将敏捷的概念带到管理层面,但到目前为止我们谈敏捷都基于一个特定背景,如...

    30天软件开发 : 告别瀑布拥抱敏捷(En)

    英文---- 本书讲解了Scrum 敏捷软件开发方法,让你在30 天内开发出全新的软件。读完本书,你会发现用敏捷开发方法能够让软件开发事半功倍,节省人力物力,大大提高工作效率。

Global site tag (gtag.js) - Google Analytics