写点什么

如何高效地进行敏捷开发管理

  • 2020-04-27
  • 本文字数:2536 字

    阅读完需:约 8 分钟

如何高效地进行敏捷开发管理

敏捷开发其实是企业的一种管理文化。


目前软件行业敏捷开发管理最大的问题在于太看重具体的形式,而忽略了敏捷的初衷。


很多公司请几个敏捷教练建立流程,把会议室的椅子都搬走宣布从今以后大家站着开会了,使用敏捷管理工具建立迭代、建需求、分任务,可是这真的就意味着敏捷了吗?


因为敏捷,老板要求这个功能明天上线,怎么实现我不管,毕竟响应变化高于遵循计划。


因为敏捷,我们希望每天至少发布一个版本,没办法,敏捷要求我们快速地交付可工作的软件。


因为敏捷,虽然需求我们还没想好,但是这个版本要保证本周内上线,敏捷宣言说得好,要欣然面对需求变化。


因为敏捷,我们项目一篇文档也没有,毕竟工作的软件高于详尽的文档。


我们不禁要问,这真的是敏捷吗?敏捷的初衷是团队成员能够更加紧密地配合完成工作,敏捷开发强调拥抱变化,但并不意味着可以随心所欲地变更需求。敏捷开发的实质是通过迭代式增量软件开发的方式,防止出现长期闭门造车严重偏离客户需求,达到快速响应市场变化的目的。


下面我想分享下我们公司在近百人的开发团队,同时进行十几个项目开发的过程中,是如何使用 CORNERSTONE 管理平台进行敏捷项目管理的。


角色划分

杰夫·萨瑟兰将 Scrum 团队中的角色分为三种:


  • 开发团队成员,负责开展具体的开发工作;

  • Scrum Master,协助开发团队把事情做得更好;

  • 产品负责人,决定应该做什么工作,拟定待办事项清单的内容。


我们根据我们开发中的实际情况将系统中的角色分为以下四种:


  • 项目经理:相当于 Scrum Master,负责协调团队内部合作,召集站立会议,把控项目整体进度。需要明确的是,项目经理并不是一个传统意义上的团队领导。用更流行的话说,项目经理更像是一个仆人式领导。项目经理不应该对团队成员大吼小叫,也不会告诉研发人员该做什么以及如何开发一款产品,而是应该集中精力帮助研发人员清除前进道路上的障碍。

  • 产品经理:相当于产品负责人,负责决定应该做什么工作,拟定待办事项清单的内容,确定各个事项的优先顺序。事实上,和很多人理解的不同是,确定各个事项的优先级几乎是敏捷中最重要的工作。为什么?在软件开发领域有一条根据数十年研究工作总结出来的原则,即在任何一款软件中,80%的价值来自 20%的功能。人们总喜欢说每个需求都是重要的,但产品经理需要问一下自己,究竟哪些需求能够给整个项目带来最大的价值?而这些能够带来最大价值的需求就必须优先完成。

  • 开发人员:开发人员是项目开发任务具体的实施者。他们负责完成开发任务,及时反馈开发进度。

  • 测试人员:测试人员是项目测试任务具体的实施者。他们负责制定测试计划,编写测试用例,创建以及回归缺陷。


在 CORNERSTONE 中,我们可根据项目成员的具体职能设定不同的角色和权限。


收集需求(用户故事)

在项目开始前,产品经理应该基于用户或市场的需求,来编写用户故事,即 CORNERSTONE 中的需求。一个好的需求(用户故事)一般应该满足 INVEST 标准:



(一) 独立性(Independent)——尽可能地使一个需求独立于其他的需求。需求之间的依赖使得制订计划、确定优先级和工作量评估都变得很困难,通常我们可以通过组合需求和分解需求来减少依赖性。


(二)可协商性(Negotiable)——需求的内容要是可以协商的,需求不是合同。


(三)有价值(Valuable)——每个需求必须对客户具有价值。


(四)可评估(Estimable)——开发团队需要衡量需求,以便确定优先级和工作量,并便于安排工作计划。


(五)规模小(Small)——一个好的需求要尽量维持小规模,至少要确保在一个迭代周期中能够完成。需求越大,在安排计划、工作量评估等方面的风险就会越大。


(六)可测试(Testable)——一个需求要可以测试,以便确定它是可以完成的。如果一个需求不能够测试,那么你就无法知道它什么时候可以完成。


基于以上原则,CORNERSTONE 支持在创建需求时,关联其他需求(这样我们便可以做到组合需求来控制单个需求的粒度!),关联测试用例(确认需求是可以被测试的!),关联迭代(确保需求可以在一个迭代中完成!),设定优先级以及开始截止时间。


冲刺规划会议(Sprint Planning Meeting)

在每个迭代开发正式开始前,我们都会举行一次规划会议,由产品负责人讲解需求,由所有团队成员一起负责将需求拆解细化成具体的开发任务。开发任务的颗粒度最好足够细,以确保一名开发人员在一个迭代周期内可以开发完成。


一次冲刺规划会议中的产物一般为:


(一)具体分配到每个开发人员的任务列表;



(二)会议纪要,CORNERSTONE 提供了 WIKI 功能,可以在系统中保存每次会议的会议纪要;


每日站会

在迭代开始后,我们团队一般每天上午固定 15 分钟左右进行内部沟通。我们一般会打开 CORNERSTONE 任务的看板视图:



每个团队成员只需要用三到五句话说明以下三个问题:


  • 我昨天做了什么来完成我的任务;

  • 我今天打算做什么来完成我的任务;

  • 有没有什么可能的阻碍因素会导致我不能按时完成任务。


一般来说,项目负责人需要聚焦于帮助团队成员解决阻碍因素,以帮助所有任务按时完成。

随时关注团队进度

在迭代的开发过程中,项目经理需要随时关注项目的开发进度。我们的项目经理一般通过 CORNERSTONE 提供的项目仪表板来查看项目的整体完成情况;通过燃尽图了解任务的完成情况;通过缺陷分布、缺陷累计来了解迭代完成的质量。



系统自带的甘特图能随时查看迭代的具体进程以及每个项目成员的任务分工情况,做到分配合理。



除了以上统计外,还有一个“报表”功能属于管理员专用,报表功能包含迭代燃尽图、代码提交统计、状态分布统计、每日新增曲线,每日完成曲线、累计数量曲线以及成员工时列表等统计信息。

评估总结

在每一次迭代束之前,我们的研发团队成员还要聚在一起开个评估会,向产品负责人演示在这个阶段之内取得的成果,接受评估意见。研发团队成员会评估一下列表上的工作任务已经完成了多少,自己是在这个阶段的冲刺中认领了太多任务以至于没有做完,还是工作任务认领得太少了。CORNERSTONE 同样提供了汇总视图,用以在这类会议上展示说明。



最后总结一下,敏捷其实是一种管理方式,敏捷不会告诉我们具体每个项目应该怎么做,杰夫·萨瑟兰有句话说得好,不要猜测,要规划、执行、检查、行动。我认为这句话道出了敏捷的本质。


本文转载自技术琐话公众号。


原文链接:https://mp.weixin.qq.com/s/QZ77sMLjvYe8yD1Bxva8Xw


2020-04-27 17:351646

评论

发布
暂无评论
发现更多内容

Github百万收藏!一份《从零开始写分布式服务框架》称霸榜首!

程序知音

Java 分布式 编程语言 java架构 后端技术

别再说被八股文害惨了!GitHub阿里Java面试题库标星145K不无道理

Java你猿哥

Java 面试 面经 八股文 Java八股文

从智慧园区、智慧金融到智能制造,我们在华为云上实现了降本增效

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 3 月 PK 榜

分享:FactorJoin,一种新的连接查询基数估计框架

Java你猿哥

数据库 ssm

成长计划知识赋能 | 第九期:渐进式深入理解OpenHarmony系统

OpenHarmony开发者

OpenHarmony

从入门到精通:C++ 学习路线指南,附详细学习计划

小万哥

c++ 程序员 后端 开发 学习路线

阿里高工珍藏版“亿级高并发系统设计手册(2023版)”面面俱到,太全了!

采菊东篱下

Java 并发

H2存储内核分析一

陈飞

分布式数据库 大数据 开源 数据库内核

实用fcpx视频剪辑:Final Cut Pro 中文版

真大的脸盆

Mac Mac 软件 FCPX软件 fcpx

Android系统服务DropBoxManagerService详解与实践应用

vivo互联网技术

文件管理 Dropbox 文件上报

meta魔豹联盟系统开发源码(Demo)技术成熟

I8O28578624

强大的macOS效率工具,Alfred 5更新变动详解

Rose

Alfred Mac软件 Alfred 5 苹果效率工具

博睿数据数智领航营首场开营:保险科技数智化转型中的智能运维实践

博睿数据

智能运维 博睿数据 数智化转型 保险行业

迟来的Offer,至今已有672名学长靠这套Java八股文成功入职大厂

Java你猿哥

Java 面试 面经 春招 八股文

用OceanBase试了一下ChatGPT开源文档问答助手

OceanBase 数据库

数据库 oceanbase

ODC,是另一个 Navicat 吗?

OceanBase 数据库

数据库 oceanbase

智能选路系统与架构

阿里云视频云

云计算 智能选路

常见七大SMD器件布局基本要求,你掌握了几点?

华秋PCB

元器件 PCB PCB布局 布局 PCB设计

瓴羊Quick BI、Qlik服务企业,助力企业数据智能化管理

对不起该用户已成仙‖

管理研发团队后,我发现用「速率」做度量错得离谱……

LigaAI

研发管理 研发效能 技术管理 效能度量 企业号 3 月 PK 榜

graphpad prism教程:如何使用 prism医学绘图分析软件?

Rose

prism破解版 prism教程 医学绘图分析

机器学习系列入门系列[七]:基于英雄联盟数据集的LightGBM的分类预测

汀丶人工智能

数据挖掘 机器学习 LightGBM

2023年阿里发布Redis最新版进阶笔记,真的香

开心学Java

Java redis 并发

PD虚拟机如何安装ARM版CentOS Linux系统镜像(苹果M1专用)

Rose

pd虚拟机 pd18虚拟机 CentOS Linux系统 Centos Stream 9

焱融科技助力海尔集团上云 加速“智能制造”进程

焱融科技

文件存储 分布式存储 容器存储 分布式文件存储 #高性能

定档3月31日,博睿数据受邀参加DAMS数据智能管理峰会

博睿数据

智能运维 博睿数据 One 一体化智能可观测

万字详解AI开发中的数据预处理(清洗)

Baihai IDP

人工智能 机器学习 数据清洗 数据预处理 企业号 3 月 PK 榜

RabbitMQ、RocketMQ、Kafka性能为何差距如此之大?

Java你猿哥

kafka RocketMQ RabbitMQ

实战开发arthas-spring-boot-starter,监控你的微服务是否健康!

Java你猿哥

spring Spring Boot

从0到1:学员课时预约与扣课小程序开发笔记

CC同学

量化合约技术系统开发(源码搭建)合约量化技术开发(Demo)

I8O28578624

如何高效地进行敏捷开发管理_研发效能_技术琐话_InfoQ精选文章