我对于敏捷式开发的经验分享

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-05
1、敏捷开发的定义

敏捷式开发,其具体表现方式,是一种工作方法,其真正的精髓,是在互联网行业快速迭代发展的环境中,团队内部形成的一种行为意识上的共识。

2、工作方法

敏捷开发中,我们通常把一个敏捷开发的小组称为scrum团队,scrum单词源于争球游戏,本意是一支小规模的精干团队,不断争取胜利的含义。

一个完整的scrum,通常能够在不依赖外部资源的情况下,独立完成一个需求的上线,故在组建scrum团队时,需要充分考虑到团队所负责的领域内,需要哪些职能的资源来组成。

举例,某个负责app平台的scrum团队,通常需要由以下资源来组成:

此处的项目,是指jira平台中的项目,而非实际工作中的需求类项目,应理解为一个domain,一个负责的领域更为恰当。一个scrum团队,建立一个独立的jira项目,专注于某个领域内的产品迭代及优化,该项目专属于本scrum团队,其保持一定的独立性,减少与其他团队的互相干扰及耦合度。

产品经理(PO)需要随时记录来自各方的需求或待改进事项,通过统一纳入需求池的管理方式,实现需求的有效管理,防止遗漏,并可以根据实际资源情况进行对应的优先级评定和实施管理。

在一个sprint迭代过程中,通常包含需求计划会,每日站立会,推进需求进度并及时更新看板,定期回顾总结及优化等主要流程环节;

站立会

看板

在sprint迭代结束前,我们通常会通过开一个回顾会的方式,来总结本次sprint迭代过程中,做的好的,以及做的不足,保持好的,弥补不足,持续优化,同时针对本次迭代中的成果进行展示,鼓舞团队士气;

3、敏捷迭代的标准流程

4、角色的定义

在敏捷团队中,SM的角色至关重要,通常SM由我们的pmo(product managerment office,pmo是一个组织,或部门,而非个人,个人的定义为pm)来担任居多,但并不完全限定于pmo。

SM是敏捷开发团队中,为小组成员提供各类支持的角色,同时承担部分项目管理的工作职能。SM在scrum团队中更多扮演的是教练的角色,通过帮助成员获取、了解工作的事实情况,服务团队,帮助团队解决困难及问题,引导团队用正确的方法做出正确的决策,在不断在sprint迭代中,帮助团队在负责的领域内,不断成长、精干,并将团队所负责领域内的产品,做的更好。在敏捷开发中,SM更多是老师的角色,而并不是领导者角色,他并不承担决策义务,团队和PO是真正的负责人。

在敏捷团队中,PO通常由产品经理(PD/PM)担任。

PO负责管理scrum团队所负责的领域内,所有的需求的收集、整理、优先级评定、分析、设计、评审、跟进的工作。PO带领着scrum团队,对所负责的领域内的工作成果进行负责。

5、敏捷式开发的主要特点

敏捷开发不同于传统的瀑布式开发,在敏捷的工作方式中,我们以某个时间周期(通常是2周)来作为一个计划。而通常我们采用的瀑布式开发,其典型特点是以项目制,或者需求制方式进行开发,当需求产生时,进行严格的开发流程推进对应的工作(需求评审,开发架构评审,测试用例评审,开发,测试,……上线)

敏捷式开发并非抛弃传统瀑布式开发过程中的标准环节,我们仍然遵循需求评审,架构评审,测试用例评审这些必要的流程,但我们是以固定时间周期来进行这些对应的工作,而非针对项目或者需求;

敏捷开发的过程中,团队需要实现的需求,通常都缺乏标准特性,需求的规模大小,属性类型,均有非常大的不确定性,通常固定式的开发流程并不能时时套用。所以在实际工作中,敏捷开发团队会根据实际的需求特性,进行对应的流程分析,根据对应的流程,拆解出对应的子任务体系,通过子任务的分配,实现快速的响应效率;(而在实际工作中,我们可能突然会发现需要在中间插入一个工作事项,在敏捷的工作方法中,我们只需要临时建立一个子任务即可,而不用将整个需求进行工作流程的切换)

敏捷开发中,非常重要的一个工具就是看板。看板源自于日本丰田汽车的精益生产理念,在看板中建立4个工作状态(待处理、进行中、待验收、完成),每一件子任务都与之相对应。通过看板的使用,便于整个scrum团队对于各位成员间的工作状态做到了如指掌以及实时响应,这种方式,尤其在scrum团队这种高度默契的组织中非常适用。

对于需求管理的极致性。通过jira的backlog管理,我们可以将所有的需求,事无巨细地进行收集和管理;

结构化思考。每一项需求的实现,通过结构化思考的方式,去拆解对应的子任务,不断提升团队的配合默契以及战斗力

信息同步及透明。通过需求管理的全面记录,优先级的唯一性,工作状态看板,可以让所有相关协同部门的成员,都能快速掌握所需的信息,并能够及时发现过程中的问题,实现快速响应及解决

需求变更的常态化。互联网企业的需求,变更的情况时有发生,敏捷式开发的过程中,快速响应机制可以快速匹配市场的需求,而真正因为工作不到位导致的需求变更,在持续的迭代过程中,会通过总结改进、以及团队结构优化等方法,实现持续优化;

  • CMMI+敏捷整合开发:更快改进性能的案例与实用技术内容简介
    答:该书深入探讨了6个具体的案例研究,详细展示了CMMI与敏捷开发相结合的实际应用,每个案例都附有实用的经验教训,帮助读者理解和掌握这两种方法的协同工作。作者Paul McMahon,凭借其丰富的过程改进经验,分享了如何有效地将敏捷方法与CMMI框架结合,以实现企业目标,这一策略既快速又高效。书中不仅包含了理论...
  • Scrum敏捷开发模型是什么?
    答:确保会议效率,并维护Scrum规则的执行。开发团队:包括开发人员、测试人员及其他技术成员,共同实现Sprint目标。核心价值观承诺 - 团队成员一致致力于团队目标的实现。勇气 - 勇于面对挑战,坚持正确决策。专注 - 专注于Sprint任务,共同推进团队目标。开放 - 公开分享工作进展和经验,面对挑战。
  • 光环学友会活动分享|《敏捷落地之五步拳法》
    答:敏捷落地之五步拳法 光环学友会 • 敏捷实战分享 在这个快速变化的时代,用户和市场时刻呼唤企业和产品快速响应变化、持续迭代、持续交付。面对多变的外部环境和需求,越来越多的企业开始实践敏捷。但敏捷转型知易行难,很多企业和敏捷实践者都会面对诸如软件产品研发迭代无法交付、团队成员加班麻木、原...
  • 敏捷软件开发:原则、模式与实践(英)作者简介
    答:他曾担任过C++Report杂志的主编,这一角色使他有机会与全球的开发者分享知识,他的编辑理念和深度见解对编程社区产生了深远影响。他的贡献不仅局限于理论,更是实践的先驱,推动了敏捷开发这一运动的兴起和发展。作为设计模式的积极推动者,Bob大叔的创新思维和实践经验为软件开发提供了强大的基石。他的原则...
  • 敏捷项目测试应该怎么做
    答:我们这样定义敏捷测试人员:专业的测试人员,适应变化,与技术人员和业务人员展开良好协作,并理解利用测试记录需求和驱动开发的思想。敏捷测试人员往往具有优秀的技术能力,知道如何与他人合作以实现自动化测试,同时也擅长探索性测试。他们希望了解客户在做什么,以此更好地理解客户的软件需求。谁是敏捷测试人员...
  • 敏捷教练笔记:管理也是一种技术活
    答:做过大量的研究之后,我发现的确有一些关于“障碍”的不错的定义:Scrum中的障碍指的是阻碍开发团队在Sprint中生产有价值的软件增量或者制约开发团队实现其固有进展目标的因素。31 自组织的开发团队内部解决不了的难题。阻止开发团队成员在Sprint内按照预期的生产能力进行工作的事件。关于“障碍”不错的引用...
  • 精益和敏捷开发大型应用实战内容简介
    答:本书不同于《指南》,它更侧重于实践层面的深入剖析,旨在帮助读者建立一个精益且高效的企业环境,并更有效地利用敏捷开发的优势。书中分享的不仅是理论知识,更是实战经验和工具,旨在为精益和敏捷企业播下成功开发的种子,使其在实践中茁壮成长。通过阅读,读者将了解到如何在大型项目中实施精益和敏捷...
  • 浅谈敏捷离岸团队沟通(附协作工具及使用技巧)
    答:当有机会去到客户现场,该如何充分利用短短数周或是数日?从个人经验来看,你或许可以:当客户即将来访,该如何抓住深化合作的机会?对于“坐在一起”的敏捷团队,沟通会在工作和相处中自然而然地发生。而当我们所处的是一个离岸团队,很多沟通问题则会因为物理位置、语言文化障碍、时差而被放大;最危险...
  • 如何构建敏捷团队
    答:  具体到操作层面,结合个人经验,我会从下面几个方面构建敏捷团队。1. 自组织的团队。能够自我管理,自发驱动运行高效的团队。很多敏捷的书籍或者实践把自组织的团队作为实施敏捷的前提条件,比如在开发团队里面都是全栈工程师,或者水平比较相当的工程师,在项目实施团队里面有跨组织有多领域知识的...
  • 为什么科学驱动型公司需要用敏捷
    答:PTC Therapeutics不仅期望从这种敏捷的组织模式中获得更高的效率(即使用更少的资源更平稳地扩展),而且还期望加速其临床开发从而缩短研发周期。敏捷在科学领域上的应用才刚刚开始。根深蒂固的科学界自然也会抵制改变他们的工作习惯。但是,回头等这些敏捷先锋组织用他们积极的结果和经验报告出来,公诸于世的时候,对敏捷...