敏捷开发良性循环

Posted 世纪卓越PMP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了敏捷开发良性循环相关的知识,希望对你有一定的参考价值。

武汉PMP  汉阳PMP  光谷PMP  武汉PMP培训认证 武汉PMP考试中心 武汉项目管理培训 PMP考试中心 武汉ACP培训认证 武汉ACP考试中心 武汉PMP认证考试

内容提要:敏捷开发,通过用户会、每日站会、评审会、总结会,将软件开发过程设计成充满反馈互动的环环相扣的多波次小群突击,很像橄榄球比赛中的冲刺与争球,形成敏捷高效机动灵活的工作流程。它生动地体现了良性循环哲学所主张的积极的、能动的、创造的精神。



本世纪初诞生于软件编程领域,逐步得到推广并不断完善起来的敏捷方法论(Agile Methodology),对循环哲学特别是良性循环理论,有巨大启发意义。

一、“敏捷宣言”开启能动开发时代

敏捷方法论的出现,可以追溯到本世纪初的“敏捷宣言”。


世纪之交,软件行业生存环境出现大量新的情况,促使软件工程师们,认真反思已经成功指导软件开发30年的“瀑布模式”,寻找全新应对之策。


这些新情况主要表现在:一是软件平均寿命迅速变短,需要开发者高频推出新的系统,快速迭代已有程序;二是用户需求日趋变化性和不确定性,边开发边修改,边测试边迭代成为常态;三是以用户需求为中心的开发模式逐步占据主流,如何让用户深度参与开发过程,尽早获得用户体验,成为非常迫切的挑战;四是软件开发快速推进和频繁迭代,需要全过程加强反馈与沟通,以最大限度降低高速运行风险,随时响应用户需求变更和激烈竞争环境;五是如何更好地调动和发挥软件开发者的能动性和创造性,提高软件编程工作的质量和效益,成为一个全行业性的普遍问题。


对于软件项目的开发者和客户来说,初期项目分析和项目规划阶段,已经越来越难于一次性地输出所有需求项,更不可能准确敲定项目范围。执行和实施中,出现了越来越多的需求变更和内容调整。为此,一批业内专家研究出一套可以快速推进工作、迅速响应变化的价值理念和工作原则,并且称自己为“敏捷联盟”。他们希望进一步提升软件开发的敏捷性、响应性、能动性、前瞻性、创造性、简洁性,实现以快制快。


而温斯顿·罗伊斯(Winston Royce)在1970年提出的“瀑布模型”(Waterfall Model)软件开发架构,将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护六个环节,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,顺次展开,不可逆转。这种软件开发架构,被形象地称作“瀑布模型”。其特点是:严格按阶段推进,不响应客户需求的随时变化,项目流程完全以文档驱动,各阶段之间极少反馈互动,客户最后才能看到产品,一旦出错后果严重。这本质上是计划驱动的软件开发过程,非常类似于计划经济的做法。

敏捷开发良性循环

2001年2月,马丁·福勒(Martin Fowler)和吉姆·海史密斯(Jim Highsmith)等17位敏捷软件开发先驱,后来的“敏捷联盟”成员,齐聚犹他雪鸟度假村,共同发布了四条《敏捷宣言》:


其一,个体和互动高于流程和工具。强调团队成员要更主动地去做事情,更积极地增加互动交流与沟通协作;


其二,能工作的软件高于详尽的文档。强调项目中每次迭代要尽快交付能够独立运行的、完整的可工作软件,一次交付胜过一打承诺;


其三,客户合作高于合同谈判。强调随时引导客户加入项目进程,尽可能表达用户故事和需求变更,从而提高项目开发质量与软件价值;


其四,响应变化高于遵循计划。强调项目应该自始至终拥抱变更,因为无论是软件用户还是开发团队,都处在不停的学习和进步过程中。


敏捷宣言,开启了软件编程领域能动创造的时代,或者说使软件编程工作适应了能动创造的新时代。从那时起20年来,敏捷开发作为一种方法论,在各行业逐步推开。而在这一划时代管理革命中,肯·施瓦伯与杰夫·萨瑟兰共同开发的Scrum“迭代式增量软件开发模式”,脱颖而出,倍受推崇。

二、迭代式增量开发引领敏捷管理革命

在敏捷管理领域,最为流行的工作模式,莫过于20世纪90年代早期肯·施瓦伯与杰夫·萨瑟兰共同开发的Scrum流程,亦称“迭代式增量软件开发模式”。


肯·施瓦伯与杰夫·萨瑟兰,是2001年“敏捷宣言”的签署者,之后创建了“敏捷联盟”。这家非营利性机构,致力于敏捷软件开发,现任董事会主席便是肯·施瓦伯。在这两位敏捷管理先驱看来,敏捷软件开发通过迭代不断地交付可工作的软件,利用每日站会、评审会、回顾会等,项目开发团队不断地实现自我提高,不仅能够快捷地交付产品,而且可以有效促进团队的学习与成长。敏捷管理过程,不是由计划或文档驱动的,而是由用户故事与价值驱动的。价值是交付的优先级,是整个项目开发的终极项,而价值的本质是能够满足用户故事的一组软件功能。


杰夫·萨瑟兰曾经当过美国空军战斗机飞行员,并于1967年获得“壮志凌云”称号(Top Gun),后攻读斯坦福大学统计学硕士学位,就职于美国空军战争学院,教授数学统计学和概率学。11年的军旅生涯结束后,他就职于科罗拉多医学院,获得博士学位。后来进入软件开发领域,先后担任11家软件公司的CEO、CTO等职,积累了丰富的软件开发经验。


20世纪90年代,杰夫·萨瑟兰与肯·施瓦伯读到了两位日本管理教授竹内弘高和野中郁次郎介绍制造业出现的产品开发新方法Rugby(橄榄球)的文章。这种方法强调,整个业务流程要由一个高性能、跨功能的团队执行到底,就像一支高度团结、角色分明、极具战斗力和突击性的橄榄球队那样,不停地发起一次又一次冲刺。受此方法启发,结合自己多年的软件开发管理经验,他们正式研究提出了取名为Scrum的软件开发方法论。1995年OOPSLA大会(一年一度的计算机语言编程技术高峰会议)上,他们第一次正式介绍了自己的Scrum理论。今天,Scrum已经远远超出软件开发领域,成为零售、军事、风险投资、学校教育各领域完成挑战性创新任务的首选方法,正在改变世界。甚至,著名思想家史蒂夫·丹宁(Steve Denning)表示,如果有诺贝尔管理学奖的话,应该授予Scrum的创始人。


“迭代式增量软件开发模式”Scrum,区分了三个重要角色。第一个是产品负责人(Product Owner),主要负责与用户沟通,掌握“用户故事”(UserStories),以确定产品的功能要求和需要达到的标准,指定软件发布日期和交付内容,同时有权力接受或拒绝开发团队的工作成果。第二个是流程管理员(Scrum Master),主要负责督导和帮助整个项目开发流程的顺利实施,以及清除客户和开发者之间的沟通障碍,解决软件开发团队遇到的实际困难和问题。第三个是开发团队(Scrum Team),主要负责软件产品开发,人数控制在5~10人,每个成员可能负责不同的技术方面,并且高度认同敏捷开发的5个核心价值观:专注、公开、尊重、承诺、勇气。


Scrum迭代式增量软件开发,包含以下工作流程:


第一步,产品经理与用户召开项目需求分析会,在充分沟通基础上,摸清用户故事(UserStories),确定一个按优先顺序排列的、满足用户故事所要求的产品需求列表(Product Backlog),也就是项目开发任务书。


第二步,开发团队根据产品需求列表,做工作量的预估和安排;


第三步,通过冲刺计划会议(Sprint Planning Meeting),从产品需求列表中挑选出一个用户故事,作为团队本次迭代或冲刺所要完成的冲刺列表(Sprint Backlog)即当前任务,每次冲刺持续2至4周。


第四步,开发团队实施自己的冲刺目标列表,每个开发者据此细化成更小的任务(细到每个任务在2天内能完成)。


第五步,流程管理员,每天定期组织开发团队召开15分钟的每日站会(Daily Scrum Meeting)。每个人都必须汇报自己昨天完成了什么,承诺今天要完成什么,同时提出需要协调解决的问题,最后走到“看板”前更新自己的冲刺燃尽图(Sprint burn down)。


第六步,开发团队每日集成一个可以成功编译和演示的软件版本,并完成编码测试和性能测试,发现问题及时解决。


第七步,每完成一个用户故事,也就是一个冲刺任务列表,都举行冲刺演示会,也称为冲刺评审会(Sprint Review Meeting),产品负责人、流程管理员、开发团队、客户、公司老板都参加。每个团队成员都要演示自己完成的可以交付客户的软件产品。


第八步,召开冲刺任务回顾会,也称冲刺总结会(Sprint Retrospective Meeting),逐个发言,总结和讨论需要改进的地方,有价值的经验写入下一轮需求列表。

敏捷开发良性循环

在这八个步骤中,每日站会、冲刺评审会、冲刺总结会三个会议,都发挥了宝贵的反馈与催化作用,使“迭代式增量软件开发模式”,带有了鲜明的自我驱动、灵敏反应、加速迭代、互动生成特征,而不再是计划的机械展开与过程的简单重演。

三、敏捷软件开发充满良性循环

从循环哲学的视角看,Scrum“迭代式增量软件开发模式”的精髓,是尽快地发布可运行软件、尽快地响应用户需求、尽快地实现产品迭代、尽快地完成运营闭环。


可以说,这个敏捷开发模式,处处充满着良性循环,处处充满着互动生成,处处充满着能动创造,处处充满着学习提升。越是敏捷度高、响应性好、机动灵活的Scrum流程,越是淋漓尽致地体现良性循环思想方法。

敏捷开发良性循环

从微观到宏观,Scrum“迭代式增量软件开发模式”,内置了四个强劲有力的良性循环链条。而且,各个良性循环层层嵌套,大中套小,长中套短,慢中套快,构成一个良性循环的复杂运动体系。


第一个Scrum良性循环,是以每日站会为周期和节点的每一位软件开发者日常开发工作的良性循环。在每日站会上,流程管理员召集开发团队全体成员,当面确认每个人的四件事:第一件:前一天完成了哪件工作,第二件:今天承诺完成哪件工作,第三件:完成工作存在哪些困难需要流程管理员协助解决,第四件:在看板上用卡片标定自己的冲刺燃尽图(Sprint burn down),即以直观和公开的方式,显示每个人:做完了哪些?正在做哪些?待办事项还有哪些?这样一来,每日站会就在驱动每一位程序开发员每日开发工作的良性循环:由做完的工作过度到在做的工作,再过度到待做的工作,如此循环往复,环环相扣,确保人人高效运转,事事有序推进。


第二个Scrum良性循环,是以冲刺评审会(Sprint Review Meeting)为周期和节点,每一个相对独立的用户故事冲刺任务编程作业的良性循环。每当一个用户故事被实现,也就是一个相对独立的冲刺项目编程业务完工之后,都要很隆重地举行冲刺演示会,也称评审会。产品负责人、流程管理员、开发团队、客户、公司老板齐集一堂。每个团队成员都要演示自己完成的可以交付客户的软件产品,或者是一次迭代形成的最新版本。通过这个评审会,一项冲刺任务被很好地打上一个结。这不仅证明落实了一个用户故事,实现了相应的用户功能,达到了用户满意,可以交付用户体验或使用,而且开启下一个用户故事及其相应用户功能需求的开发工作。这就在每一次迭代开发中,形成了用户故事——用户需求——用户体验——用户满意的良性循环。


第三个Scrum良性循环,是以冲刺任务回顾会也称冲刺总结会(Sprint Retrospective Meeting)为周期和时间节点的项目开发工作的良性循环。这个任务回顾会或总结会,实质上是一个内部经验总结和问题检讨会。其根本价值,是在上一个得到客户见证和认可的产品评审会基础上,进入对项目开发工作本身而不是所开发软件产品的总结反思过程。主要是流程管理员带领开发团队全体成员,总结成功经验,深入查找问题及原因,提出改进软件开发工作的意见建议,特别是将那些有效的工作方法、流程、标准、规范、工具等等,归纳出来,作为下一轮软件开发工作的输入项和新起点。这样一来,就形成了开发高质量软件产品与高质量软件开发工作之间的良性循环,或者说是做正确的事与正确地做事之间的良性循环。确保打一仗进一步,或者吃一堑长一智。


第四个Scrum良性循环,是以产品负责人与用户召开的项目需求分析会为周期和时间节点,贯穿软件开发全过程的用户故事——用户需求——用户参与——用户意见——用户体验——用户满意——团队进步——企业发展的良性循环。在这个良性循环过程中,贯穿着用户故事和用户参与,时时处处关注用户满意和用户体验,将用户放在最高的优先级,从而实现用户成长、团队成长、企业成长、行业成长的良性互动。


每一个长的、大的良性循环运动,都嵌套着许多短的、小的良性循环过程,构成良性循环的复杂运动体系。它们在逻辑上相对独立,但实践中却历史地铰链在一起。

四、敏捷精神复活毛泽东军事哲学主张

敏捷思想方法,让人联想到毛泽东的军事哲学主张。比如,充分发挥主观能动性的战争指导思想、积极防御的战略方针、机动灵活的战略战术、集小胜为大胜的制胜策略、集中兵力打歼灭点的作战指导原则、关照全局和照应各个环节的战略思维等等。可以说,Scrum“迭代式增量软件开发模式”,将毛泽东的这些军事哲学主张,运用到了炉火纯青的地步。


首先,Scrum“迭代式增量软件开发模式”,主张最大限度地发挥人的主观能动性和创造性,无论是项目用户、项目负责人、流程管理员、项目开发团队,还是团队中的每一个人,都被要求充分发挥主观能动性和创造性,不能被动应付,机械做事。正是遵循了以人为核心的组织原则,准确地说是以人的能动性和创造性为核心的项目开发原则,才有了整个软件开发管理思维方式的划时代变革和根本性调整。这正是充分发挥人的主观能动性的战争指导思想的充分体现。


其次,Scrum“迭代式增量软件开发模式”主张,开发软件产品,始终要想着用户的使用和体验,适应用户需求的变动和调整;完成每一次开发迭代和发挥各环节的创意,始终要想着便于测试和便于交付的目标要求,甚至要求不要编写那些不可能测试的程序;每一个环节都要替下一个环节着想,为下一个环节提供方便,创造条件。这种“将爱传递下去”的良性循环思维,未雨绸缪、为将来打算、将风险和错误控制在萌芽状态的思维方式,正是积极防御战略方针、关照全局和照应各个环节的战略思维的绝佳实践。


再次,Scrum“迭代式增量软件开发模式”,主张建立小而精的项目开发团队,设置短而快的迭代开发周期,进行更加频繁、小步快跑的产品发布和用户交付,主张每个开发人员每次冲刺工作任务量一般不超过两天,主张以每日站会的形式精确地掌控四件事,这些战术层次的做法,无不生动地体现了机动灵魂的战略战术、集小胜为大胜的制胜策略、集中兵力打歼灭点的作战指导、永远掌握战争主动权的根本原则。

敏捷开发良性循环

毛泽东哲学思想,天然具有能动的、创造的、战略的品格。显然,不仅循环哲学要很好地汲取这些思想营养,Scrum“迭代式增量软件开发模式”毫无疑问也大量地借鉴了毛泽东哲学的思想精华。


何以如此?何以见得?有两个端倪可以进一步讨论。其一,Scrum“迭代式增量软件开发模式”,受到了两位日本学者运用橄榄球运动术语说明敏捷管理模式的启发。而橄榄球比赛,具有高度的军事化色彩,是一项准军事运动,所有先进的作战原则皆可为其所用。其二,Scrum“迭代式增量软件开发模式”的开发者之一,杰夫•萨瑟兰,恰恰是一位美国空军的特级飞行员、美国空军战争学院的理论教员。他能够对毛泽东军事思想有较深刻领会,并做到运用自如,也就不足为奇了。


当然,这里的分析,并不是要刻意要将Scrum“迭代式增量软件开发模式”与毛泽东军事思想联系起来。也许,杰夫·萨瑟兰先生并没有读过毛泽东的军事哲学著作。这里的分析是要证明,当代最伟大的管理哲学与当代最伟大的军事哲学,是息息相通和高度契合的。


良性循环哲学,就是要将当代最伟大的管理哲学与当代最伟大的军事哲学融会贯通,熔于一炉,冶炼和铸造出真正适用于我们这个时代的先进思想方法。这也从一个侧面证明,真正伟大的创造从来都是跨学科、跨专业、跨领域的,是在广泛而深刻的良性互动中诗意般地生成的。


循环哲学,正是要揭示有序性和新价值在互动中不断生成的规律,让我们在开创良性循环、避免恶性循环方面,有更多的选项、更多的机会、更大的空间。


来源:师道新说

声明:世纪卓越所发稿件、图片均用于学习交流使用,并在显要位置注明文章出处和来。

若涉及版权,请通过平台与我们取得联系,我们将在第一时间处理。

敏捷开发良性循环

↑↑↑长按二维码一键咨询



以上是关于敏捷开发良性循环的主要内容,如果未能解决你的问题,请参考以下文章

笔记:敏捷开发1

你如何理解敏捷开发?

设计思维,精益创业和敏捷开发

低代码开发平台的敏捷之力

一个测试者眼中的敏捷和Scrum方法

什么叫敏捷开发?