示范敏捷宣言的价值和原则是如何在Scrum中体现的
一、敏捷价值观(敏捷宣言)
1、个体与互动高于流程与工具
对于个体与互动高于流程与工具的理解,主要还是对于沟通上的一个高度,积极的互动与交流,可以更加便捷的和快速了解到需求,也可以在需求沟通过程中碰撞出新的问题,这样能跟深入的理解需求。流程与工具能够更好的将需求稳稳地落地,记录到每个需求的细节,可以当作需求文档来使用。流程的固化会形成一些模块化的工作,让流程更加稳定,但是在遇到变化的时候对固化的流程会有一些不友好,使其不能很快的应变。所以两者还是需要搭配使用方得始终,个体与互动能够更高效率的得到产出的内容,流程与工具可以把产出的内容通过一些工具固化下来,作为归档供之后查阅,灵活的运用会提高自组织团队的工作效率。
2、可⽤的软件(增量)高于详尽的⽂档
在敏捷开发之前或者之处,很多项目团队都是通过需求文档、概要设计、详细设计等文档来辅助团队开发系统,而且已经形成的文档会经过专家们的评审,最终形成封板的需求文档之后,直接就开始做详细设计文档,包括设计流程图、功能接口、表、以及sql语句等细节,这样开发人员只要拿到这份详细设计文档就可以按部就班的开发了。而将这种方式套用在现在的迭代模式上是完全行不通的,主要原因在于需求一定是可变的,在设计与迭代交付的产出中碰撞出新的及更加晚上的设计是很正常的,所以需求和设计文档是会不断更新的,不更新就没有可视化的验收标准。详尽的文档并不是不需要,而是价值没有左侧的可工作的软件高。像传统瀑布开发那样的概要设计、详细设计文档不是必须的,但是像接口文档、设计文档还是必须的,这些文档不仅需要,而且要保证正确。
3、客户合作高于合同谈判
说到合同谈判就感觉回到了以前软件公司与客户需求达成一致的工作方式,客户带着庞大而复杂的需求来到软件公司进行细节沟通,这个沟通可能会持续一周甚至一个月的周期,当公司决定能够在规定时间内完成客户的需求后,双方会签订合同从而保证价值与工期的对等。当验收的那天到来,往往会出现功能是都做完了,但是感觉上与客户的切合度不是很高,会导致用户期望值大打折扣。所以现在再和客户合作的时候,我们会和客户沟通并通过敏捷迭代的方式定义出每个周期迭代交付的增量,客户也可以提前使用到系统,慢慢增加新的功能,以至于达到最终交付目标。
4、响应变化高于遵循计划
Scrum不做大而全的计划,这样会导致项目周期被拉长,不可控因素会放大,最终项目交付时会与起初设计的方案有出入,这样没办法做多快速调整,响应变化。然而短期的迭代,制定可实现的短期清晰的目标,以满足最大程度的反馈,Product Backlog和Sprint Backlog的灵活性,随时保证了能快速响应客户变更,使客户满意度得到提升,产品更有市场竞争力,所以敏捷是要拥抱变化。
二、敏捷宣言遵循的原则
1、我们最重要的目标,是通过持续不断的及早交付有价值的软件使客户满意。
Scrum的迭代是以Product Backlog优先级顺序排列的,保证了最高价值提前交付,每次迭代增量交付,按照固定的节奏保持持续不断的交付有价值的功能,使客户满意。
2、欣然面对变化,即使在开发后期也一样,为了客户的竞争优势,敏捷过程掌握变化。
Scrum持续交付增量,新的增量必须是“完成”的,是满足Scrum团队对完成的定义的,是可以交付客户使用的,Product Backlog和Sprint Backlog的动态调整,使能随时响应客户的变更,保证产品满足市场需求。
3、经常交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
Scrum限制了迭代周期小于或等于一个月,尽早的、固定周期的交付可工作的满足需求的软件,为了加快速度,甚至可以缩短到一周。
4、业务人员和开发人员必须互相合作,项目中的每一天都不例外。
Scrum站会,要求开发人员每天必须在15分钟内高效完成:昨天做了什么,今天要做什么,有什么问题?及时相互沟通,合作解决问题,避免信息断层,减少延时,随时调整
5、激发个体的斗志,以他们为核心搭建项目,提供所需的环境和支援,辅以信任,从而达成目标。
Scrum强调自组织,Scrum Master作为仆人式领导,提供团队所需的环境和支援,引导并激励团队,并相信团队能胜任自己的工作。
6、不论团队内外,传递信息效果最好效率最高的方式是面对面的交谈。
Scrum中的计划会、站会、评审会、回顾会,都强调面对面沟通;人与人沟通30%来自语音,70%来自肢体表情;面对面沟通是最高效的办法
7、可工作的软件是进度的首要度量标准。
Scrum增量交付的软件,是满足团队对“完成”的定义,增量是可以检视的,产品负责人是否决定真正发布它,增量必须是可用的
8、敏捷过程倡导可持续开发,负责人、开发人员和用户要能够共同维持其步调稳定延续。
Scrum没有大而全的计划,每次迭代都增量滚动式的拉取产品待办列表,它为开发团队提供指引,能够促使开发团队向着同一目标前进,而不是孤立工作,迭代的周期固定,满足时间盒的限制。
9、坚持不懈的追求技术卓越和良好设计,敏捷能力由此增强。
Scrum回顾会检视自身技术等多个方面,为下一个Sprint创建改进的机会,团队的各个成员要求具有成长性思维,追求卓越,Scrum固定的时间盒内拉取任务,让团队有时间处理技术负债,减少后期的麻烦。
10、以简洁为本,它是极力减少不必要工作量的艺术。
Scrum架构简洁,面对面沟通,DOD以及DOR的明确定义,都是为减少沟通、交接过程中的浪费,去掉不必要的流程和工作。
11、最好的架构、需求和设计出自自组织团队。
Scrum追求持续改进,不断完善的框架;每次Sprint来自于Product Backlog,需求目标透明清晰,团队每个成员目标一致,整个团队共同承担责任,而不是单一职权负责制
12、团队定期的反思如何能提高成效,并因此调整自身的举止表现。
Scrum回顾会检视自身并创建下个Sprint的改进计划;对人、关系、过程和工具进行检视,并在下个Sprint列出改进措施,使大家能在下个Sprint中更高效更愉悦。