使用Water-Scrum-Fall交付软件
Water-Scrum-fall通常被描述成一种混合的敏捷工作方法。
\\
根据 Andy Hiles所说,Water-Scrum-fall是一种封闭的、阶段性的软件交付方法,其中 Scrum是最主要的开发管理方法。
\\
然而,Hiles相信它可以作为通向敏捷、成为活生生的敏捷组织的跳板。
\\
Andy Hiles在 Agile Greece Summit首次峰会上发表了 water-Scrum-fall, Unicorns and Rainbows演讲。InfoQ将会推出本次会议的新闻、Q\u0026amp;A和文章。
\\
InfoQ采访了 Hiles,主要关于 Water-Scrum-Fall的起源和他对Water-Scrum-Fall的定义,“实施”(doing)敏捷和“正在”(being)敏捷的区别,用敏捷满足客户期望,Water-Scrum-Fall的优势和缺点,和 Scrum Master在实现中的角色。
\\
InfoQ:Water-Scrum-Fall这一术语起源哪里?
\\
\
Hiles:我不清楚谁最初创造了这个术语,但是它已经被敏捷社区使用好几个年头了。我第一次听到时,它被用来描述一种混合的敏捷工作方法。那时,我并没有真正理解混合模型与 Water-Scrum-Fall之间的界限。只有当我开始在 Water-Scrum-Fall环境下工作时,我才真正理解这一术语的含义。
\\
我有看过Water-Scrum-Fall被用来区分敏捷纯粹主义和实用主义之间不同的实现方法。对我而言,这种用法真的是一种挑衅,是为误解敏捷找的一种借口,尤其是 Scrum。
\
\\
InfoQ:您对 Water-Scrum-Fall的定义是什么?
\\
\
Hiles:对那些不熟悉这一术语的人而言,它将软件交付划分为三阶段。首先,是一段详细设计和计划时间。接下来,Scrum被用作主要的开发管理方法。最后,有一个对实时周期(live period)严格的管理服务交付/发布的保留。包含的三部分实践通常是封闭的,通过固定合同条款支配,并且其端到端非常非常的漫长。
\
\\
InfoQ:您能分享一下“实施”敏捷跟“正在”敏捷之间的区别吗?
\\
\
Hiles:实施定义为一个人从事或者执行的活动。我可以实施和执行所有烤蛋糕的活动,我可以添加原料,我可以搅拌生成黏糊糊的混合物,然后我可以把它放到烤炉内,但是这不意味着它味道会很好,事实上,最后我将得到一个蛋糕。这只是我看到 Mary Berry执行的活动,我尝试模仿她。类比,不太认真地实施敏捷的现状与烤蛋糕是相似的。我经常听到人们说,‘某某组织是敏捷的’,我会想,“他们做什么了?”“哦,他们做站立会议和结对编程”这就是答案。但是什么使得他们变敏捷?这些是敏捷蛋糕中的活动,这是否意味着通过这么实施他们正在敏捷?
\\
这里有一个明显的区别。
\\
当我们说正在的时候我们是说存在和活跃的(existence and living)。对我而言,它意味着进化和变革。对我而言,正在敏捷就是抓住每次机会衡量、收集和使用反馈,从而指导变革(steering change)。从学习本质来讲,最重要的部分是拥有“专注持续过程改进”。我对每个质疑他们敏捷性的人说,如果他们拥有反馈驱动的专注持续过程改进,在我看来他们就是“正在敏捷”。我不能成为 Mary Berry,但是我可以尽我所能,通过从学习一杯茶和一块蛋糕的反馈回路中改进我的蛋糕。
\
\\
InfoQ:敏捷旨在缩小客户预期与真实交付之间的差距。您能否解释一下这个差距,在您看来什么使得缩小这种差距变得如此困难?
\\
\
Hiles:天哪,从哪开始说起。让我们首先从指责合同说起吧。那很容易做到,因为它设置了假设:一份签订的合同意味着‘末日铁三角’(固定的时间、成本和范围)已经在起作用,并且对此我们什么也做不了。
\\
典型情况是销售人员带着客户签约这一目标走出去,为现有产品或者甚至为交付一个更好的、全新的、能歌善舞的产品合同从事签约活动。这种情况的危险性在于尽管销售人员知道他们在做什么,但是他们不是交付最终产品的人。这些销售的目标是将其转化成固定范围、时间和成本的项目。然后,这些项目获得继续推进的许可,并最终由业务开发经理、规划管理者、项目经理、产品设计师和架构师合作完成方案。等项目到达开发团队手中时,往往距离承诺的交付日期只剩下几个星期了。虽然在这种情况下,我们总是会觉得对不起开发团队(并且我们应该),但是我们居然忘记了品质保证员、发布和环境人员以及受铁三角承诺损失的终端客户。这是一个典型的瀑布式交付实践。
\\
Donald Rumsfeld有句名言:“众所周知,世上有我们知道我们知道的;世上有的事物我们知道我们知道。我们也知道世上有我们知道我们不知道的;这就是说我们知道这世上有我们不知道的事。但是也有不知道我们不知道的——那些我们不知道我们不知道的。”
\\
这对我而言明确了我见过的每一个积压待办事项或者需求列表。如果我们的项目处于知道知道的区域,那么我们应该实施瀑布式。但是正如我们都知道,事情不断变化,总有不确定的东西,所以我们会不经意间变混乱,因此我们应该指导我们自己走向敏捷,管理这种变化。但是我们没有。
\\
为了缩小期望和交付之间的差距,组织会希望变敏捷,通常他们会采用 Scrum作为解决方案,但是仅仅是在开发部分。这就是 water-scrum-fall。
\\
但是到那时,再利用从Scrum带来的计划和迭代中获取的反馈循环就为时已晚。Scrum创造的角色和职责为我们正确地构建正确的事情提供了保证,虽然这种优势没有被显现出来。但是因为我们已经知道,所有预先做的大量的设计将会从不确定性中拯救期望差距,并且新的迭代过程将会实现更快和更廉价地交付产品,因此结果就是项目可以坚定不移地向前推进,
\
\\
InfoQ:您知道如何部署敏捷,使其满足顾客期望?
\\
\
Hiles:我不认为敏捷可以作为一个‘东西’被部署。我最喜欢描述敏捷的一个方法是:它就像海盗代码(参考引用了‘加勒比海盗’电影),“与实际规则相比,它更多的是你所谓的‘指导方针’”。
\\
敏捷是一种思维定势,一套指导方针,Scrum是一种可以部署的框架,它需要遵守严格的规则和事件,这两者是不一样的。敏捷思维暴露出我们不能快速交付的能力,它唤起了什么是客户真正想要的,并通过提供多个持续反馈的机会改进质量,反过来又迫使开发者专注如何正确地构建正确的事情。
\\
有一些简单的事情你应该开始了解,并期待改变。
\\
首先是协作。这应该从让你的客户参与其中开始,他们需要了解你是如何工作的,尤其是如果你将要使用Scrum或者仅仅是希望改变你的工作方式时。你的客户需要明白他能够胜任什么和他需要扮演什么角色。内部和外部协作是至关重要的。现在,将你的客户和团队看成一个大型团队。你们一起交付。与协作同时发生的还有反馈。合理利用反馈对产品质量、价值和指导是至关重要的。反馈是变革的驱动力,应该将其作为一种学习的机会持续拥抱。最后,尝试缩短交付周期。衡量工作从概念到产品的交付周期。将你的交付周期建模,寻找输入并为变革和中断做好准备。记住,缩短你的交付过程可以改进反馈和协作机会,反过来又会改进质量,和提高向客户实现交付价值的可能性。
\
\\
InfoQ:您知道为什么有些组织为了敏捷决定使用 water-Scrum-fall方法吗?
\\
\
Hiles:我不认为是有人选择了 water-scrum-fall,它正好作为一种自然输出而发生,是走向敏捷动机的一部分。因为对于那些希望使用 Scrun解决问题的组织,它是最流行的敏捷框架。那些组织认为他们存在问题,比如减少投放市场的时间。Scrum不仅拥有可以遵循的,定义明确的框架,它还能通过基于角色的培训方法赢得市场,所以它成为事实上的敏捷。不幸的是,正如我们所知Scrum仅仅被组织看成一种开发实践,而不是‘在你的端到端产品中处理不确定性和变革的开发’实践。
\
\\
InfoQ:您能谈论一些 water-scrum-fall的优势吗?和它的一些缺点?
\\
\
Hiles:除了将 water-scrum-fall描述成通向敏捷的垫脚石,我正在努力寻找任何实际的优势。这个过程背后的结构并不真的是用来处理不确定性或者变革的,因为它意味着一个我们知道知道的情况,所以为什么为 Scrum自寻烦恼呢?你可以从敏捷声明和原则中寻找灵感,从利用业务和开发团队之间的关系获得利益,但是公平地说,如果你对原则感兴趣,你就不会满足 water-scrum-fall现状。
\
\\
InfoQ:组织有时很难实现 Scrum Master角色。您能否解释一下什么使得它如此困难?
\\
\
Hiles:Scrum Master有一个简短的描述。Scrum Master是服务式领导、老师和Scrum过程的保护者。Scrum Master就与团队进行有益的互动提出建议,和与产品负责人一起确保待办事项被管理且对业务有价值。听起来很简单吧?
\\
我之前提过,Scrum是革命性的,而 Scrum Master也是如此。对变革而言,Scrum Master需要独立于团队之外,确保过程被遵循和理解,同时又不对交付负责,这是很难做到的。Scrum中的每个人都需要弄明白在框架内他们适合干什么,他们如何工作。
\\
Scrum Master往往是高执行力、性格开朗、自我激励的个体,专注于完成事情,降低周围事物的复杂度。Scrum Master努力站在1000ft的高点观察,他们远离交付,寻找各种机会改变和改进周围的一起事物。
\\
从我的经验来看,从事Scrum的组织经常忽略 Scrum Master作为促进者和服务式领导的能力。他们希望项目经理、技术交付专家、测试人员、开发人员、发布工程师所有人合为一体成为很好的项目超级英雄。Scrum Master知道它不是这么工作的。
\
\\
InfoQ:您能给出一些案例,为了有效实施 Scrum Master这一角色,组织可以做什么?
\\
\
Hiles:做 Scrum。这么说感觉有点傻,但是‘Scrum but’规则适用于此处。Scrum将会揭露一些真正好的东西,也会指出你应该在哪些方面为你的产品开发提供支持。Scrum Master将会在那里,支持组织使用 Scrum,所以你应该信任这一角色和雇佣来完成这个工作的人员,你应该支持他们,支持他们代表的 Scrum框架。
\\
Scrum Master处在管理者的期望和由此产生的顾客交付期望这么一个艰难的夹缝中间。所以,将他们作为顾问,从而确保在组织内遵循最佳 Scrum实践。从他们的经验中获取知识,倾听他们的意见和变革想法,再一次支持这一角色和它的权威。
\\
正如敏捷周围的一切事物。对我而言将其浓缩成一段短句是很容易的。不幸的是,与敏捷周围一切事物一样,我意识到这种建议有其自身实现的复杂性,并且这种改变非常的困难。
\
\\
InfoQ:对于那些希望提高他们敏捷的组织,您有没有其它建议?
\\
\
Hiles:这样说吧,没必要害怕 water-scrum-fall,尤其是如果把它看作一个过渡,或者了解组织如何围绕 Scrum和敏捷运作的第一步时。
\\
Water-scrum-fall是一个良好的开端,它会暴露你工作效率低下的原因,暴露其政治,和你可能忽略的为了通往Scrum的所有事情。当你仍然静坐在 water-scrum-fall周围,但是却正逐渐做敏捷项目业务时,这时警铃就应该开始响起。目标是使你成为一个活生生的敏捷组织,而且通过做 Scrum,这是你旅程的开端,而不是结束。
\\
一名敏捷教练曾对我说过:“时间是缺乏弹性的”,我喜欢这种表述,作为参考铁三角的术语。我们总是朝着某些截止日期或者时间盒事件前行,在时间盒内的行为决定了我们能否成功。
\
\\
关于受访者
\\
Andy Hiles 是一名经验丰富的敏捷实践者、活动发言人和经过认证的BCS敏捷培训师,其工作在英国西南部。Andy拥有为产品和服务机构服务的软件开发完整的‘端到端’经验。他对组织复杂性挑战和如何使敏捷转型成功有着透彻的理解。他是经过 Scrum联盟认证的 Scrum实践者,通过与一些大型国际组织的合作(比如 Intel和 Nokia),他的职业生涯得到了提升。Andy目前是 IBM的敏捷负责人和 DevOps顾问。其是伟大的团队构建伟大的产品的坚定相信者。Andy努力追求成功,并且在每次项目中都是如此地展示他的经验和热情。
\\\\
查看英文原文:Delivering Software with Water-Scrum-Fall
使用Water-Scrum-Fall交付软件相关推荐
- 为什么Scrum模式适合软件开发?
2019独角兽企业重金招聘Python工程师标准>>> 摘自基于Visual Studio 2010 进行敏捷/Scrum模式开发 软件行业至今已经有超过40年的历史,很多在软件工程 ...
- 场景建造软件_有效地构建。 建造者关于有目的地交付软件的观点
场景建造软件 These are interesting times indeed. In a world where being the first to market makes a differ ...
- 7大常用Scrum管理工具软件
1,Leangoo领歌 Leangoo领歌,国产软件,专门的Scrum敏捷开发工具,看板的管理方式,高度可视化.它支持敏捷开发全流程.从产品路线图-需求-迭代-缺陷-测试-上线.燃尽图,工作量,迭代进 ...
- 让敏捷交付优秀的软件
在一篇为敏捷鸣冤的博客帖子中,Nic Ferrier详细地阐述了他所认为软件的生产会失败的一个原因:那是因为有经验的程序员过于关注编程本身,而忽视了整个大局.按照他的观点,那些反对敏捷文化.认为编程就 ...
- 在软件开发中如何将看板方法与 Scrum 集合使用?
什么是看板和 Scrum 的混合模式?适合在哪些场景使用?有哪些成功的案例可参考?本文将围绕以上问题展开. 敏捷实践是一个团队过程,选择适合团队的敏捷框架时并没有什么技巧,无论您是使用看板方法.Scr ...
- 软件交付方式有哪些_如何交付有意义的软件
软件交付方式有哪些 Maybe it started out well - but over time it grew stale. Or it was wrong from the very beg ...
- 读《Scrum敏捷软件开发》笔记
读<Scrum敏捷软件开发>笔记 目录 读<Scrum敏捷软件开发>笔记 第I部分 启动 第II部分 个体 第iii部分 团队 第四部分 组织 第四部门 下一站 第I部分 启动 ...
- 看板管理方法在软件项目中的意义,以及与Scrum方法的区别
一.什么是看板 看板是一种适用于实施敏捷和 DevOps 软件开发的系统框架,核心在于工作的全方位可视化以及基于工作的实时沟通.通过看板中各工作项的直观展示,可以让团队成员清晰了解各项工作的状态及进展 ...
- 2017敏捷沙滩大会:完美软件,测量持续交付,以及探索未来
在英国康沃尔郡举行的2017敏捷沙滩大会上,数百名演讲者和参与者共聚一堂,探讨敏捷和后敏捷领域软件开发方法有哪些最新进展.本次大会最后一个下午的要点包括:交付团队可以通过拥抱精益.迭代和持续的部署方法 ...
- 《企业软件交付:敏捷与高效管理精要》——1.5 对企业软件交付的需求是如何演变的呢...
1.5 对企业软件交付的需求是如何演变的呢 对企业软件系统的交付来说,一个非常重要的转变是由几个相辅相成的因素推动的. 最终用户的期望.最终用户要求获得更及时的同步信息,要随处.随时.无需停机.这种访 ...
最新文章
- 全球第五大社交网站,二号员工离职创业,自爆心酸历程!想做10亿美元规模?先活着!...
- linux内核地址映射,Linux内核设备驱动地址映射笔记整理
- 链表c的经典实现(一)
- strlen函数_7.2 C++字符串处理函数
- (拿来主义-8) Spring Boot属性配置文件详解(三)
- 内存管理1retain和release
- 段错误、内存泄漏、内存溢出、堆溢出、栈溢出
- python r语言 作图_生物医学绘图,Python 并不比R语言差
- redis系列:redis介绍与安装
- 惠普服务器开机无限重启,惠普笔记本无限重启的有效解决办法
- 移动应用的引导模式设计
- 第一章 Cheat Enginee(CE)使用指南
- 微信小程序蓝牙打印(中文乱码已解决)-分包发送(安卓和苹果手机均兼容)
- vue2开发过程中el-select懒加载问题
- 分析流量对防御DDOS攻击有何价值?
- python: 七段数码管
- 免费苹果CMS影视站采集器影视站SEO优化教程
- 迪尤肯大学计算机专业,迪尤肯大学
- 信息安全技术——Many Time Pad攻击实验
- iOS启动速度优化总结
热门文章
- Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系
- Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception process Vob7
- paip.为什么软件体积越来越大
- paip.百度空间 JAVA程序发文总结
- (转F001) Rust : 解引用,自动解引用
- Rust : 高富帅的match
- (转)投资很难赚到你不信的那份钱︱投资道
- Julia的学习资料从哪里找?
- 【故障分析】基于matlab三容水箱故障诊断【含Matlab源码 1485期】
- 【任务分配】基于matlab蚁群算法无人机任务分配【含Matlab源码 1265期】