为了提高团队交付能力,提升开发效率,公司采用敏捷开发的方式对外交付成果,我简单聊聊什么是敏捷开发?
敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。
在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。
敏捷开发的价值观:
程序员的主观能动性,以及程序员之间的互动,优于既定流程和工具。
软件能够运行,优于详尽的文档。
跟客户的密切协作,优于合同和谈判。
能够响应变化,优于遵循计划。
敏捷开发模式:
SCRUM 则是一种开发流程框架,SCRUM 框架中包含三个角色,三个工件,四个会议,听起来很复杂,其目的是为了有效地完成每一次迭代周期的工作。在这里我们重点讨论的是 SCRUM。
SCRUM 的工作流程
学习 Scrum 之前,我们先要了解几个基本术语:
Sprint:冲刺周期,通俗的讲就是实现一个“小目标”的周期。一般需要 2-6 周时间。
User Story:用户的外在业务需求。拿银行系统来举例的话,一个 Story 可以是用户的存款行为,或者是查询余额等等。也就是所谓的小目标本身。
Task:由 User Story 拆分成的具体开发任务。
Backlog:需求池,可以看成是小目标的清单。分为 Sprint Backlog 和 Product Backlog。
Daily meeting:每天的站会,用于日常沟通、检视项目、团队协作。有些公司直接称其为 Scrum。
Sprint Review meeting: 冲刺评审会议,让团队成员们演示成果。
print burn down:冲刺燃尽图,说白了就是记录当前周期的需求完成情况。
Release:开发周期完成,项目发布新的可用版本。
如上图所示,在项目启动之前,会由团队的产品负责人(Product owner)按照需求优先级来明确出一份 能够开发的任务,为项目做出整体排期。
随后在每一个小的迭代周期里,团队会根据计划(Sprint Plan Meeting)确定本周期的 Sprint Backlog,再细化成一个个 Task,分配给团队成员,进行具体开发工作。每一天,团队成员都会进行 Daily meeting,根据情况更新自己的 Task 状态,整个团队更新 Sprint burn down chart。
当这一周期的 Sprint backlog 全部完成,团队会进行 Spring review meeting,也就是评审会议。一切顺利的话,会发布出这一版本的 Release,并且进行 Sprint 回顾会议(Sprint Retrospective Meeting)。
那么,现实中的敏捷开发是什么样的情景呢?
每期站立会情景:
敏捷开发看板设计:
说明:
史诗卡片:系统、版本、编号、确立日、PO
特性:要有版本、编号、PO、确立日、提测日
故事样例:特性、版本、编号、PO、确立日、提测日、开发、测试,一般研发时长<=5人天
项目成员角色:PO(产品负责人)、TCL(技术经理)、SM(敏捷经理/子项目经理)、QCL(质量经理)、跨职能技术团队
参会的项目成员,每天会站在板前、围成圆圈;发言人对着大家说三件事:
汇报自己昨日完成了什么?
今日要完成什么?
遇到哪些问题,需要协助解决?项目中遇到哪些风险点等?
汇报日报的形式:
自己当天做了什么,重点是结果,而不是过程
沟通小技巧:
针对不同部门之间的沟通,要有会议纪要、邮件抄送,做到双方信息理解一致;会议结束会议纪要;
今日在汇报过程中,暴露出的问题有哪些呢?
比如数据**标准标准有哪些
项目的依赖项考虑的是否全面
项目实施过程中存在未敲定的事项问题
针对某一问题意见不一致时,找相关负责人拉会议解决
针对需求变动找产品负责人,内部不能决定
项目中未考虑到的问题,比如目前做的接口涉及数据支持,有相关人员支持嘛
项目管理:
每个任务卡片要有负责人、完成日期、提测日期。
敏捷开发针对事不对人,对于相互依赖的负责人,只跟每个人的任务完成情况。
针对每日延期的成员进行通报。
纪律检查委员会根据项目看板展示的项目客观事实,记录每日项目成员的工作进展情况,进行打分及扣分,便于后期团队绩效考核。
针对项目过程中发现的问题,及时解决,比如团队任务饱和度。
团队之间要团建,了解每个同事最近的状态,定期约谈等。
团队成员稳定性,是否能在团队中比较交心等。
向下管理:宣导团队月目标、年中目标、年度目标,制定每个项目成员的KPI考核。
向上管理:
主动和领导同步+沟通项目和风险,建立合作信任感。
对于问题,带着方案,分析原因,利弊,让领导做选择。
根据领导的特点,看领导是否是那种集权型,可以试着定期向领导汇报。
站在领导的角度,比如技术选型,领导倾向于哪种。
需要项目管理资料合集的同学可留言