一篇文章讲透为什么我们IT行业一定要用Scrum

2024-12-13 5:04:06 体育资讯 facai369

一篇文章讲透为什么我们IT行业一定要用Scrum

这个世界的规则可以分为四个象限,简单,有序 到 复杂,无序。当我们的IT从业者进入的是复杂无序的领域(混沌),你会发现传统的研发模式已经不能适用于你的业务需要。 源头来自于工业革命之后兴起的工业生产流水线。每个产线要根据生产计划早早的排定生产任务,按时按量按部就班或者加班加点完成既定任务,部门领导和车间主任将生产过程拆解为简单有序的步骤 形成瀑布形式的计划表和甘特图,这种传统的瀑布式模型是计划驱动的,它的成功有一个前提,就是计划对应的需求,是不变的。 当面临需求的变化时,这种模式就会不适应,规模越大的计划,其变更的成本和所造成的浪费都是巨大的。项目超期、预算超支,最终的产品还不是用户想要的。 放在IT团队,需求的变化使瀑布模型经常遭遇很多问题,譬如: 同一个需求变更频繁,还临时加需求,计划又乱了 一句话需求,不知道怎么执行 已经做了90%,你说需求不用做了 不管你们怎么搞,必须在xx日上线,计划反复 需求就是这样写的,就这么做,错的也是需求的错 都开始开发了,还改需求 需求没澄清,开发晚了,又挤占测试的时间 等等还有很多,包括一些貌似是研发或者测试的反馈,其根源也是瀑布模型计划的局限性导致的。 有人说:我们的项目也有这些问题,但是我们还是按期上线了啊,项目很成功啊。 是,有可能是。我们知道,项目管理的铁三角:范围/质量,资源/成本,时间。 如果你的项目保障了范围保障了如期上线,那必定在成本上增加了。 比如996,比如只给象征性的加班费的无偿加班,比如名义上不鼓励加班实际自愿加班 又比如其实并没有保障质量,硬着头皮带病上线,事后找补 又比如根本没有保障范围,只优先做了看得见的功能。 又比如为了上线而上线,并没有使用更合适的方案,只用最快的方案。 20世纪中期的日本汽车产业当时就遇到了这个问题。 大家知道,日本的资源很匮乏,技术也比欧美差,如果用瀑布式大批量生产,是不能及时响应市场变化的,同时造成的浪费对日本来说是毁灭性的。 丰田汽车的大野耐一等人就结合日本的国情,找到了一条丰田生产方式:这是一种多品种,小批量,高质量和低消耗的精益生产方式。精就是追求质量价值,益就是极大的避免浪费,持续改进。 有很多人把这个精益思想,从工业领域,应用到各行各业。比如精益创业,精益软件开发等等。 精益软件开发吸取的就是精益思想中的减少浪费、单件流持续改进的思想,基于这个思想,软件开发行业也形成了很多流派,他们开了一个会,形成了敏捷宣言: http://agilemanifesto.org/ 个体和互动胜于流程和工具 可工作的软件胜于面面俱到的文档 客户合作胜于合同谈判 响应变化胜于遵循计划 这个敏捷宣言的敏捷,是Agile。只要是遵循这个宣言的方式方法,都是敏捷的,所以这些流派统一组成了敏捷联盟 小批量短周期的持续交付可工作的软件,它主要并不是说能提高开发的效率,而是响应变化,减少浪费。 在这个联盟中最大的一支,就是Scrum,它是一个价值驱动的轻量级的框架。 看一下原文定义: Scrum is a framework to address complex adaptive problems,it allows human who work in groups to focus on delivering the highest business value in the shortest time,with an iterative and incremental approach. 我的翻译:Scrum 是一个解决复杂多变问题的框架,以迭代和增量的方式,让一群合作者专注于在最短时间内交付最大商业价值 这个是理论,是道,那么术呢,具体怎么做呢。 可能很多人都知道, 一个Scrum团队有三个角色:Product Owner(产品负责人),Scrum Master(敏捷教练),Developers(开发团队) 产品负责人的责任,就是抉择最有价值的需求 敏捷教练的责任,就是保护团队,工作聚焦,排除障碍,践行Scrum原则 开发团队的责任,就是保持聚焦,完成增量 每次开始一个Sprint,原始需求方会授权产品负责人要从Product Backlog(产品待办列表)里面挑出来本次Sprint要做的事项和优先级,建立统一的Product Goal(产品目标), 然后在Sprint Planning(计划会)上,由Developers对任务进行拆解,形成Sprint Backlog(迭代任务),进行任务评估(故事点)和分工 然后进入研发执行,每天举行Scrum Daily(站会)同步进展、障碍并随时调整工作事项 在Sprint末尾,Developers交付符合完成定义的增量,比如具体的明确的可验收的事先达成一致的功能和交互页面。 然后举行Sprint Review(评审会),确认是否符合完成定义的增量,做检视和调整 最后举行Sprint Retrospective(回顾会),对整个Sprint过程, 最后两个会分别在事和人的维度进行反馈,以便前置风险,打破管理的幻觉。 改进项要遵循smart原则,以期下一个Sprint进行具体改进。 有人可能就说了,你这Scrum还有精益,说了半天,不就是互联网行业常说的“小步快跑”的模式吗? 是,也不是。我在互联网行业干管理一直干了7,8年,小步快跑是真的,但是这只是表象,根没变,还是瀑布。 瀑布基于计划驱动,它在管理上有一个核心本质,就是不需要人进行思考,只需要像机器一样执行,打螺丝,吹灯泡,不要思考,我排计划的时候都思考过了,应该是怎样,新手大概多少时间,老手大概多少时间,你们就照做。这就是为什么你即使在互联网大厂,你也没有发挥出你自己的主动性,而是拧螺丝了。 Scrum的本质是什么,《孙子兵法·谋攻》有云,叫“上下同欲者胜”。敏捷的本质,是要整个研发团队提前对齐目标,拧成一股绳,产品负责人负责做关键的艰难的价值抉择,具体怎么实现怎么做,整个研发团队自己决定,没有人告诉你应该用什么方案;研发工作是脑力劳动,你把他当成体力劳动来使唤,那么必然导致的结果就是,我能摸鱼就摸鱼,最好下班就走,能混着就混着。 本质的区别: 计划驱动 变为 价值驱动 拒绝变化 变为 避免浪费,不做或者少做无价值的事情,拥抱变化。 理论上不需要加班 接下来,我们来实际应用一下Scrum,做一个体验。 2009年金州勇士(Golden State Warriors:GSW)队是NBA倒数第二名的球队,6年之后,它是总冠军,创造了常规赛的记录,82场比赛赢了73场。 当时它作为倒数第二的球队,连好的球员都没有,KPCB的一个合伙人联合youtube的创始人一起买下了这个球队,然后对它进行技术改造。 它的技术团队用了2个最常见的技术,一个叫SportUV(数据跟踪),跟踪所有的记录。一个叫MOCAP(数据决策),它跟踪每个人的训练结果和比赛结果,就可以识别出每一个人的优势和劣势,然后分析制定一套方案,什么人打什么位置最合适。像格林就是被系统挖掘出来的,后来格林甚至进入过NBA全明星队。 高尔夫球也是如此。像高尔夫球的职业球员,都是背着可穿戴设备训练的,可以模拟全世界的高尔夫球场地,相当于还没比赛就在赛场训练过,考过驾照的都懂,能提前在考场模拟,对考试会有多大帮助。像tiger woods这样大的年纪,去年还拿高尔夫大师赛的冠军,在过去是不可想象的。 足球也是一样,英超的一些球队,在比赛之后就进行全身肌肉检查,而不是等你受伤了才去看是不是有什么问题,这个肌肉状态是该增加训练还是减少训练。 我们来用Scrum的模式做一个事,大家结合我上面讲的,体会一下异同点: 我们先选定Scrum团队里的角色: ScrumMaster:文和 Product Owner:P总 Developers:D团队 首先,P总针对需求构建Product Backlog和Product Backlog Item: 预测2022卡塔尔世界杯的各球队排名,以便于指导老板做战略投资(狗头) 2022卡塔尔世界杯的小组赛预测 (Product Goal) 2022卡塔尔世界杯的淘汰赛预测 2022卡塔尔世界杯的决赛预测 由于本次Sprint时间有限,资源不足,P总只选了待办清单的第一条,并选取它作为了本次的产品目标。 Sprint Planning:计划会开始,所有人开始对齐和精化任务,确认对完成的定义-本次世界杯小组赛的预测结果图像展示 Sprint backlog: 2022卡塔尔世界杯的小组赛预测 数据集的准备-从1870年开始到2022年截止,所有参赛球队的历史交手成绩- 1个故事点 - D架团队-小A 模块导入-数据分析和可视化pandas、matplotlib、eaborn,机器学习预测sklearn- 1个故事点 - D团队-小A 探索性数据特征-比分特征,比赛当中的比分来判断比赛是谁胜谁负或者是平局-- 1个故事点 - D团队-小B 数据集的导入-AI训练- 1个故事点 - D团队-小B 2018年俄罗斯世界杯的参赛队伍做数据验证-AI验证- 1个故事点 - D团队-小A 逻辑回归算法预测结果-AI预测结果- 1个故事点 - D团队-小B Scrum Daily每日站会: 每日三问:昨天做了什么,今天准备做什么,有没有什么阻碍。 小A反馈有阻碍,kaggle上的数据集有问题,而且不需要1870年这么久 。 此时,敏捷教练站出来干预,具体技术问题在会后专门讨论,站会不要展开具体技术问题。 小B反馈已经完成3,因为下一步4有依赖,准备协助小A完成1,目前没有阻碍。 把完成的事项从卡片墙上的todo,移到done。 如此几轮之后,D团队得到已定义的完成增量: 清单的图形化展示作为增量交付物,满足完成的定义: Sprint Review: 大老板,P总,文和,D团队一起展示了工作成果。P总验收了大家的工作,满足团队定义的质量。因此,在这次会议期间,团队庆祝了他们的成就,大老板即时反馈了意见和建议。 Sprint Retrospective: P总,文和,D团队一起选出本次Sprint做的好的3个点,有待改进的3个点,以及具体的可度量的3个改进措施。 这就完成了一次Sprint。 这是比较顺利的情况,真实的情况比这个复杂的多,只是给大家一个基本例子 大家如果在实际工作和管理中有什么问题,欢迎留言或者加微信,微信在左侧
搜索
最近发表
标签列表