写点什么

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

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

评论

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

重磅!Flutter中网络图片加载和缓存源码分析,BAT大厂面试总结

欢喜学安卓

android 程序员 面试 移动开发

如何解决移动直播下的耳返延迟问题

融云 RongCloud

音视频 移动直播

当AI开始改造“文房四宝”:腾讯教育的脑洞与逻辑

脑极体

想看新指标?教你轻松写prober插件

滴滴云

运维 滴滴夜莺 Obsuite prober插件

Pano React Native SDK 来了!快速实现移动端音视频和白板

拍乐云Pano

flutter ios android RTC React Native

舒畅,阿里大牛终于把困扰我多年的「Spring全家桶」讲明白了!十年IT老兵亲述Spring实战经验

Java架构之路

Java 程序员 架构 面试 编程语言

报名 | 全球首个小资源音色克隆赛结果出炉,高分队伍线上报告会

爱奇艺技术产品团队

工作中,有哪些SQL是我们必须要掌握的?

xiezhr

oracle sql SQL语法 3月日更

英特尔:i7-10870H 游戏性能超 R7 5800H,更强的 11 代酷睿 H 在后面

E科讯

大赛报名|首次聚焦口罩场景!第三届 106 点关键点定位大赛开启

京东科技开发者

人工智能 深度学习 计算机视觉

华山版强势来袭!阿里巴巴Java性能优化2021年3月版(面试必备)

Java架构追梦

Java 阿里巴巴 架构 面试 性能优化

瓦力量化交易系统开发|瓦力炒币机器人软件APP开发

系统开发

一个简单实用的Linux性能分析工具

运维研习社

Linux 性能分析

【LeetCode】用栈实现队列Java题解

Albert

算法 LeetCode 28天写作

金三银四如何突击面试美团?面试题(含答案)+学习笔记+电子书籍+学习视频

比伯

Java 编程 架构 面试 程序人生

农田治理效率低下还赔本?智慧农业力保粮食品质,效率事半功倍

一只数据鲸鱼

物联网 数据可视化 智慧城市 智慧农业 农业管理

中国程序员最容易发错的单词

happlyfox

GitHub 学习 程序人生 3月日更

力扣(LeetCode)刷题,简单+中等题(第32期)

不脱发的程序猿

算法 LeetCode 编程能力 28天写作 3月日更

酷睿i7-10870H对比锐龙7 5800H游戏性能, 英特尔仍是游戏本CPU的更优选

E科讯

CodeHub#4 启动报名| 荷小鱼:K12 在线教育应用的开发实践

蚂蚁集团移动开发平台 mPaaS

在线教育 mPaaS codehub 离线包

微服务指南

码语者

DevOps

DataPipeline通过华为鲲鹏兼容性认证,以自主科技创新推动中国信息产业进步

DataPipeline数见科技

大数据 数据融合

百亿级流量的百度搜索中台,是怎么做可观测性建设的?

百度Geek说

中台 云原生 #百度#

CentOS安装Docker运行环境

wjchenge

Docker Centos 7

建信金科大咖访谈:金融科技驱动业务创新,智慧运营引领发展转型

金科优源汇

程序员之禅(三)

每天读本书

每天读本书

萌新不看会后悔的C++基本类型总结(一)

花狗Fdog

腾讯T2大牛手把手教你!2021新一波程序员跳槽季,算法太TM重要了

欢喜学安卓

android 程序员 面试 移动开发

【得物技术】会议室巡检系统(哮天犬)部署分享

得物技术

分享 部署 巡检 得物技术 会议室

Nginx 模块系统:前篇

soulteary

nginx 动态模块

基于 Wasm 和 ORAS 简化扩展服务网格功能

阿里巴巴云原生

Docker 容器 微服务 云原生 k8s

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