ACP-Scrum连载系列——初始Scrum
Posted 老程的自习室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACP-Scrum连载系列——初始Scrum相关的知识,希望对你有一定的参考价值。
何为Scrum?
词条翻译-(橄榄球的) 并列争球; (橄榄球) 并列争球的全体前锋; 相互拥挤的人群;
Scrum运动
Scrum源于橄榄球运动,橄榄球最重要的意义就是它的坚强不屈的精神和绝对的团结精神,橄榄球充满力量,也充满冲撞,每一次被撞倒,你需要再一次的站起来。无论什么你所做的一切都是为了为团队争得胜利争得荣誉。橄榄球是力量和智慧的完美结合,它不是暴力运动,它有复杂的规则和变化无穷的战术。所以它是一个伟大的运动,他是一个坚强的运动,他也是一个充满激情和智慧的运动!
软件研发中的Scrum及其发展史
软件研发属于高风险的职业,所面对高度变化的场景,需要研发人员快速作出反应并解决。也许大众眼中的程序员是低风险的,从职业角度来看,是的;但从其工作性质来看,确是高风险的,无处不在的BUG、随时变化的需求,使得部分程序员慢慢出现“地中海”,这是一种高度复杂烧脑的职业;
提到Scrum不得不提传统的研发项目管理模式--瀑布项目管理方法;
瀑布式
传统项目采用“瀑布式”项目管理模式即:需求分析--->系统设计--->研发编码--->系统测试--->部署运维五个步骤,期间不会向客户交付任何软件。那么,这就造成一个问题,研发人员在研发期间,客户不参与。遵循之前的计划,期间不接受任何变动,事实上也无法接受变动,任何变动对计划是灾难性的打击。最终软件交付给客户,出现两种结果:1.返工,根据需求修改现有的功能;2.烂尾;
瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。有论文统计他是造成70%软件开发失败的原因。
敏捷式
团队和利益相关者之间需要经常并且细致的交互。建立互信,人们之间维持开放并且忠诚的关系非常重要。这样的氛围使得沟通更为有效,帮助大家构建对于正确需求的一致理解。
对于我来说,价值比费用更重要。如果你知道哪一个需求最为重要,那么开发它所需的成本反而不那么要紧。对价值的理解也会激励大家,帮助大家关注于持续选择并开发正确的需求。
使用敏捷项目框架,比如scrum、XP、SAFe或者LeSS并不会自动保证项目的成功。需要以适合项目需求的方式使用这些框架。选择合适的方式,在工作方法上达成一致。不用太担心项目一开始时达不到完美,反思之类的活动会帮助大家持续学习并在过程中不断改进。
Scrum架构图
Scrum框架包括3个角色、3个工件、5个事件、5个价值:
3个角色
产品负责人(Product Owner)
敏捷教练(Scrum Master)
开发团队(Team)
3个工件
产品代办列表(Product Backlog)
冲刺列表(SprintBacklog)
产品增量(Increment)
5个事件
Sprint(Sprint本身是一个事件,包括了如下4个事件)
Sprint计划会议(Sprint Planning Meeting)
每日站会(Daily Scrum Meeting)
Sprint评审会议(Sprint Review Meeting)
Sprint回顾会议(Sprint Retrospective Meeting)
5个价值
承诺 – 愿意对目标做出承诺
专注– 把你的心思和能力都用到你承诺的工作上去
开放– Scrum 把项目中的一切开放给每个人看
尊重– 每个人都有他独特的背景和经验
勇气– 有勇气做出承诺,履行承诺,接受别人的尊重
Jeff Sutherland 和Ken Schwaber
创始人
Jeff Sutherland
Jeff Sutherland的第一份工作居然是美国空军战斗机飞行员;
还曾于1967年获得了“壮志凌云”称号;
完成过100次飞越北部越南的作战任务;
结束军旅生涯后,这哥们成为了科罗拉多医学院的教师并获得了博士学位;
是人才哪里都需要,随后他进入了一家遍及北美、经营着150家银行的公司,
职务为先进系统副总裁及ATM业务部总经理;
此后,Sutherland先后担任了11家软件公司的CEO、CTO或者工程副总裁,积累了丰富的软件开发经验。
Ken Schwaber
Ken Schwaber最初的职业也很特别——商船经理;
在随后40多年开发生涯的前10年中,他曾经编写过操作系统,搞过嵌入式,为IBM大型机开发系统软件。
合作及Scrum问世过程
两人是老相识,在一次合作中,Sutherland问Schwaber:“你们开发MATE工具都用了当前流行的哪一种方法?”“当然什么都没用,”Schwaber回答,“要不然公司早就完蛋了。”他们意识到问题的严重性,开始与开发者交谈,研究新方法。
1993年,Sutherland读到了两位日本管理教授竹内弘高和野中郁次郎介绍制造业里出现的新的产品开发方法Rugby(橄榄球)的文章。这种方法的特点是整个流程都由一个高性能、跨功能的团队执行到底。他受到启发,结合自己多年的经验,与Easel公司的John Scumniotales和Jeff McKenna一起开发了一套方法,取名为Scrum(来源于橄榄球术语,不是缩写)。
而Schwaber则从杜邦公司一位化工过程控制专家那里取经,意识到项目分为两种:确定性项目,一切都已经确定,可以自动化生产流程;实验性项目,充满不确定性,哪怕一点微小的变化也会牵一发而动全身,因此只能用各种仪表不断监控,随时做出调整——这就是每日站会的由来。
两人在一个IBM项目合作,并做了更详尽的研究,Scrum诞生了。1995年OOPSLA大会上他们第一次向世人介绍了Scrum。
总结
目的:用于开发、交付、持续支持复杂产品的一个框架;
定义:一个框架、轻量的、易于理解的、难于精通的;
组成:三个角色、三个工件、五个事件、五个价值;
约束:角色、时间、弓箭、规则不可更改,必须以整体的形式存在;
应用范围:
1.研究市场、技术、产品能力;
2.开发产品、增强功能;
3.基于Scrum持续增量交付;
4.自适应环境(云、其他环境)为产品提供支持;
5.支持和更新产品
事件:
1.Sprint计划会议
2.每日Scrum站会
3.Sprint评审会
4.Sprint回顾会议
精髓
小团队以小步快跑的形式,在高度灵活和适应性的精髓下,用最小的代价,获取最大的产品回报。
以上是关于ACP-Scrum连载系列——初始Scrum的主要内容,如果未能解决你的问题,请参考以下文章
C#刷遍Leetcode面试题系列连载: No.38 - 报数