本课程目标是让你全面理解敏捷和Scrum,在此基础上帮助你考过敏捷专业认证PMS1。
课程内容将会覆盖敏捷和Scrum基础知识,包括瀑布和敏捷软件方法,主要敏捷框架,12大敏捷原则,时间盒目标,冲刺,每日Scrum,高效的Scrum等等。
课程目标读者是谁?
任何对敏捷感兴趣或者想通过敏捷认证考试拿PSM1证书的人。
为考证准备
PSM是Scrum联合创始人之一Ken Schwaber创建的www.scrum.org举行的专业Scrum Master证书认证考试。共分1、2、3三级,1级是入门级考试,跟业界其它敏捷认证相比难度和含金量较高。本课程内容主要为PSM1考证服务。
PSM1考试总共有80道题,包括单选和多选题,限时60分钟要完成所有答题。平均每45秒要完成一道题,通过率要求在85%以上,也就是至少要答对68道题。本课程帮助你实现初次考试就通过并取得90%以上的正确率为目标。
敏捷基础
敏捷开发已经成为业界开发高质量软件的流行方法。作为专业的工程师和开发人员,理解敏捷的基础原则和知识在应用敏捷开发方法中是非常重要的。
敏捷历史
理解敏捷发展的历史对理解该方法很有帮助。敏捷开发流程被William Royce在1970年初次介绍,当年发表的论文引起了业界的极大关注。到2001年,17位业界大牛签署发布了敏捷宣言。目的为了帮助开发人员能高效开发产品。
敏捷宣言描述敏捷是一种思维而不是方法论,作为开发人员在各种项目中成为敏捷思想者和行动者的指南。
敏捷开发给开发团队提供了快速交付产品的方法。这种方法是基于高效短迭代,交互会议、冲刺之上的。
12大敏捷原则
敏捷宣言包括了开发者必须遵循的12大原则。这些原则拥抱变化和以客户为中心来开发软件。
敏捷开发12原则
我们最重要的目标,是通过持续及早交付有价值的软件使客户满意
拥抱变化,即使在开发后期也一样。为客户的竞争优势,敏捷过程掌控变化。
经常交付可工作的软件,相隔几周或一两个月,倾向于更短的周期。
业务和开发人员必须互相合作,项目中每一天都不例外。
激发个体斗志,以他们为核心搭建项目。提供所需的环境和支持,辅以信任,从而达成目标。
团队内外,传递信息效果最好效率最高的方式是面对面交流。
可工作的软件是进度的首要度量标准。
敏捷过程倡导可持续开发。责任人、开发人员和用户要能够维持其步调稳定延续。
坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
以简洁为本,它是极力减少不必要工作地艺术。
最好地框架、需求和设计出自自组织团队。
团队定期反思如何提高成效,并依此调整自生地举止表现。
四大价值观
个体与互动优于流程与工具
可工作软件优于详细文档
客户协作优于合同谈判
响应变化优于遵循计划
深入理解这些价值观可以提升敏捷宣言思维。掌握敏捷价值观和原则的开发者能在开发产品过程中创建渐进和高效的敏捷团队。
主要敏捷框架
在过去二十多年,敏捷开发已经发展成为最成功的软件开发方法。大浪淘沙之后,目前流行的主要敏捷框架有:Scrum,XP,Kanban,混合型,其它已经很少使用。
Crystal是一种混合型的框架,由Alistair Cockburn创建,强调在软件开发过程成中以团队成员互动为中心。框架以人、社区、才华、沟通和互动为基础。
精益开发,由丰田精益制造在软件业发展而成。主要原则是消除不能为客户带来价值的各种浪费,质量内建,快速交付,尊重人,优化整体流程等。
XP,由Kent Beck创建,聚焦于沟通、反馈、尊重、勇气、简洁。该框架很重视团队合作的价值,强调团队一起解决软件开发中的各种问题。
Kanban,聚焦于团队成员在产品开发的各个阶段中透明交流。该方法最初由Taiichi Ohno创建于1940年代的汽车制造,后来被引入软件开发中。
Scrum,是目前应用最多的敏捷框架。创始人借用橄榄球队争球的动作来命名该框架,并于1995年首次公开发布该方法。
瀑布vs敏捷
瀑布方法是开发者在敏捷开发之前使用的传统开发方法。Winston W. Royce 在1970年发表论文详细定义了瀑布方法,并在业界迅速流行起来。
瀑布是基于线性方法,做规划是构建软件的关键。传统瀑布引入收集需求、设计、编码和单元测试、系统测试、验收测试、修复缺陷、交付最终产品等步骤。瀑布强调以计划和文档为中心,完成上一个步骤后再进入下一步。基本上瀑布是一个长周期方法。
瀑布方法的一些不足(长周期、高风险、响应变化慢、最终产品不满意)直接催生了敏捷方法。
敏捷聚焦于迭代流程,最大的好处是客户可以从规划开发开始持续参与整个交付过程,并让客户对产品有主人翁的责任感,因为他需要不断地提供输入。负面的一点是客户深入参与,反馈太多尤其是批评太多,处理不好有可能导致产品或项目失败的风险。
要点
敏捷开发是基于有高度纪律的团队合作工作来创建高质量软件
敏捷是通过迭代流程来改善软件和寻求客户反馈直至达成目标
敏捷开发流程是基于12个原则和4个价值观之上的
有很多不同基于敏捷开发方法论的框架
敏捷宣言描述敏捷是一种思维而不是方法论
瀑布方法适合做项目规划
瀑布方法是软件开发流程的传统方法
PSM1考试样题
Define Agile Scrum:
a. A system development methodology that is intended to enhance software performance.
b. A lightweight framework that helps people, teams, and organizations generate value through adaptive solutions forcomplex problems.
c. A logical process that is used in the development of software, which slows down the process.
Scrum Team must have the required talent to:
a. Convert the Product Backlog items into an increment based on their usefulness and value for the product functionality.
b. Conduct the development work, except for specialized testing which has additional requirements.
c. Finish the project as estimated, especially when the time and expenses are based on the commitment of the Product Owner.
The Daily Scrum timeboxes are based on the size of the Scrum Team.
a. True
b. False
Concerning Definitions of Done, what should be considered? (Choose all that apply.)
a. The Definition of Done based on the Teams working on other software.
b. Guidelines, conventions, and standards implemented by the organization.
c. Definition of Done concerning other Scrum Teams that are working on the same project.
d. The knowledge of the Product Owner.
Scrum Teams need to have the same Sprint length if they are working on the same product.
a. True
b. False