我关于敏捷开发的经验分享。
敏捷开发,其具体表现形式是一种工作方法,其真正本质是在互联网行业快速迭代发展的环境下,团队内部形成的一种行为意识。
2.工作方法
在敏捷开发中,我们通常将敏捷开发团队称为scrum团队。scrum一词来源于争球游戏,意为小规模的精益团队,不断争取胜利。
一个完整的scrum通常可以不依赖外部资源在线独立完成一个需求,所以在组建scrum团队时,需要充分考虑团队所负责的领域需要哪些功能资源。
例如,负责app平台的scrum团队通常需要由以下资源组成:
这里的项目指的是jira平台中的项目,而不是实际工作中的需求项目,应该理解为一个域,比较合适。一个scrum团队建立一个独立的jira项目,专注于某个领域的产品迭代和优化。这个项目属于这个scrum团队,保持一定的独立性,减少与其他团队的相互干扰和耦合。
产品经理(PO)需要随时记录来自各方面的需求或需要改进的事情,通过将其纳入需求池的统一管理方式,实现对需求的有效管理和防止遗漏,并能根据实际资源情况做出相应的优先级评估和实施管理。
在一个sprint迭代过程中,通常包括需求计划会议、每日常务会议、推动需求进度并及时更新看板、定期回顾、总结和优化等主要过程环节;
常务会议
布告牌
在sprint迭代结束之前,我们通常会召开一个回顾会,总结我们在这次sprint迭代中做得好的地方和做得不好的地方,保留我们做得好的地方,弥补不足,继续优化,同时展示在这次迭代中取得的成绩,以鼓舞团队士气;
3.敏捷迭代的标准过程
4.角色的定义
在敏捷团队中,SM的作用非常重要。通常SM是由我们pmo(产品管理办公室,pmo是组织或部门,不是个人,个人定义为pm)来扮演的,但并不完全局限于pmo。
SM是敏捷开发团队中为团队成员提供各种支持的角色,同时承担一些项目管理职能。SM在scrum团队中更多扮演的是教练的角色。通过帮助成员获取和了解工作事实,服务团队,帮助团队解决困难和问题,引导团队以正确的方式做出正确的决策,在sprint迭代中不断帮助团队在自己负责的领域成长和精益,把自己负责的领域的产品做得更好。在敏捷开发中,SM更多的是老师的角色,而不是领导的角色。他不承担决策义务,团队和PO才是真正的领导者。
在敏捷团队中,产品经理(PD/PM)通常是PO。
PO负责管理scrum团队所负责领域的所有需求的收集、整理、优先级评估、分析、设计、评审和跟进。PO领导scrum团队,对自己负责领域的工作成果负责。
5.敏捷开发的主要特征
敏捷开发不同于传统的瀑布开发。在敏捷工作模式下,我们以某个时间段(通常是2周)为一个计划。通常我们采用的瀑布式开发的特点是基于项目的开发或者基于需求的开发。当需求出现时,执行严格的开发流程来推动相应的工作(需求评审、开发架构评审、测试用例评审、开发、测试、...在线)。
敏捷开发并没有抛弃传统瀑布开发过程中的标准环节。我们仍然遵循需求评审、架构评审、测试用例评审等必要的流程,但我们是在固定的时间段内做这些相应的工作,而不是针对项目或需求。
在敏捷开发过程中,团队需要实现的需求通常缺乏标准的特征,需求的规模和属性类型具有很大的不确定性。通常情况下,固定的开发过程不能经常应用。因此,在实际工作中,敏捷开发团队会根据实际需求特征分析相应的流程,根据相应的流程拆解相应的子任务系统,通过子任务的分配实现快速响应效率;(实际工作中,我们可能会突然发现中间需要插入一个工作项。在敏捷工作方法中,我们只需要临时建立一个子任务,而不需要切换整个需求。)
看板是敏捷开发中非常重要的工具。看板源于日本丰田汽车公司的精益生产理念。看板中建立了四种工作状态(待定、进行中、待定验收和完成),每个子任务都与之对应。通过看板的使用,便于整个scrum团队很好的了解每个成员的工作状态,并实时响应。这种方式非常适合,尤其是在scrum团队这种高度默契的组织中。
需求管理的极致。通过jira的backlog管理,我们可以详细地收集和管理所有的需求;
结构思维。要实现每一个需求,就要通过结构化的思维,将相应的子任务进行分解,从而不断提高团队的默契配合和战斗力。
信息同步和透明。通过需求管理的全面记录、优先级的唯一性和工作状态的看板,相关协作部门的所有成员都能快速掌握自己需要的信息,及时发现流程中的问题,实现快速响应和解决。
需求变化正常化。互联网公司的需求是时变的。在敏捷开发过程中,快速反应机制可以快速匹配市场的需求。但在不断的迭代过程中,由于工作不到位而导致的真实需求变化,会通过总结和改进,优化团队结构而不断优化。