写点什么

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

  • 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:352035

评论

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

一文看懂:工程项目管理软件有哪些?怎么选?

优秀

项目管理软件

操作指南|最详尽文档翻译志愿指南

Apache Pulsar

开源 翻译 云原生 Apache Pulsar 社区

博文推荐|基于 Apache Pulsar 的分布式锁

Apache Pulsar

开源 分布式 云原生 中间件 Apache Pulsar

【实时渲染】3DCAT实时渲染云在BIM领域的应用

3DCAT实时渲染

云计算 渲染 BIM 建筑

Flume日志采集框架构成组件

编程江湖

flume

老牌安全厂商海泰方圆加入龙蜥社区

OpenAnolis小助手

Linux 开源 社群运营

详解 HDFS 底层交互原理

五分钟学大数据

hdfs 1月月更

跟着源码学IM(十):基于Netty,搭建高性能IM集群(含技术思路+源码)

JackJiang

Netty 即时通讯 IM im架构设计

手把手教你学Dapr - 4. 服务调用

MASA技术团队

C# .net 微软 微服务 dapr

技术干货 | NeCodeGen:基于 clang 的源到源转译工具

网易云信

前端 Clang

爆测一周!22年必看最细致代码托管工具测评

阿里云云效

阿里云 云原生 代码管理 代码托管 Codeup

APP违法使用个人信息?不用怕,华为云VSS为你保驾护航

华为云开发者联盟

移动应用 安全 漏洞 隐私合规 华为云VSS漏洞扫描服务

从 ClickHouse 到 ByteHouse:实时数据分析场景下的优化实践

字节跳动数据平台

数据库 字节跳动 Clickhouse 实时数据分析 bytehouse

Committer 郭吉伟专访:做开源不是搞慈善,用开源也不是薅羊毛

Apache Pulsar

开源 架构 云原生 中间件 Apache Pulsar

基于 PTS 压测轻松玩转问题诊断

阿里巴巴云原生

阿里云 云原生 压测 问题 PTS

【云成本】降低云成本三大技巧你知道吗?

行云管家

云计算 企业上云 云成本

SPARK 应用如何快速应对 LOG4J 的系列安全漏洞

明哥的IT随笔

spark CDH

大数据开发之Flink SQL建设实时数仓实践

@零度

大数据 flink sql

深入浅出Apache Pulsar(2):Pulsar消息机制

云智慧AIOps社区

视频智能生产及内容分析应用工具开源了!​

百度大脑

人工智能

PK体系“配齐”!亚信科技数据库与麒麟软件OS、飞腾CPU完成产品适配

亚信AntDB数据库

AntDB 亚信科技

中国AIOps们,你们究竟是在骗谁?

观测观测

AIOPS

在线XML转HTML工具

入门小站

工具

研效优化实践:WeTest提效测试

WeTest

线程的生命周期,真的没那么简单

华为云开发者联盟

Java 线程 生命周期 编程语言线程

gpushare.com_基于去噪Transformer的无监督句子编码【EMNLP 2021】

恒源云

深度学习 语音识别 transform

手把手教你学Dapr - 5. 状态管理

MASA技术团队

C# .net 微软 微服务 dapr

易用好用的云管平台看这里!行云管家杠杠的!

行云管家

云计算 企业上云 混合云 云管平台

netty系列之:channel和channelGroup

程序那些事

Java Netty 程序那些事 1月日更

网络安全kali渗透学习 web渗透入门 Kali系统的被动信息收集

学神来啦

【行业云说】云数底座赋能基层治理现代化

云计算运维

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