网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
文档首页/ 需求管理 CodeArts Req/ 最佳实践/ Scrum项目最佳实践/ 迭代开发/ 如何在软件开发团队中管理突发性任务

如何在软件开发团队中管理突发性任务

更新时间:2024-10-28 GMT+08:00
分享

背景

开发团队如何管理突发性工作?企业的一些软件开发团队经常出现类似培训支撑等突发性工作,开发团队不清楚如何管理好这样的工作。解决突发性工作的问题被很多开发团队所重视,它直接影响开发团队工作的进度和效率,间接影响迭代目标是否能完成,甚至整个项目的成败。所以降低或解决突发性工作对开发团队非常重要。

问题分析

先将场景大致分成以下两种:

场景特点

分析

支撑工作与开发工作混合,出现突发性工作是常态。

支撑的工作和正常的开发工作混合在一起,开发人员会经常临时切换工作内容,难免会对管理增加难度,频繁切换工作内容也会造成时间的浪费,因为开发人员需要梳理新工作,新工作完成后还要继续回想之前的工作做到了哪里。因此,问题的根源在于开发团队模式上,在此模式下需要考虑时刻应对问题、风险。

开发工作为主,伴随着出现突发性应急工作,也就是正常的需求变更。

有了新的应急工作,开发团队成员不知道怎么应对,什么时候去接受这个工作,谁来决定是否要做,谁去做,没有一个公开、透明的规则。没有一个可以承载这些新工作的地方。问题的根源在于如何管理好Backlog。再进一步理解,当有新的工作项加进来时,如何更新Backlog,也就是常说的有了需求变更(临时增加任务也算需求变更)怎么办?

  • 在第一种场景,支撑工作与开发工作混合,没有明显的优先级,需要随时接受和完成新的支撑任务。从管理上来说,这些突发的琐碎任务和开发任务同时管理增加了很大的难度。
  • 在第二种场景中,开发团队正常进行开发工作的时候,客户经常会提出一些干扰开发团队冲突任务。而且突发性的工作是由客户重点提出并需要优先处理的,所以开发团队经常会额外付出工作量去处理,造成迭代目标不能达成的风险。

开发团队主要想解决如何处理琐碎、突发性的支撑工作,如何提高工作效率的问题。

解决措施

敏捷方式是趋势,越来越多的开发团队开始接触和使用,CodeArts产品也是基于敏捷思维设计的,以下内容均以敏捷方式叙述,包括但不限于Scrum框架。

  • 对于场景一,可以从人员分工角度思考,建议开发团队人员要有工作侧重点的划分。一部分人员精力侧重于开发,另一部分人员侧重于应对突发工作。应对突发工作的人员时刻准备着问题风险的对应(比如开发工作尽量领取简单、松耦合的)。应对开发工作的人员专心完成开发内容。不管工作分工是哪种类型的开发团队,再有新的工作进来时,都需要遵循开发团队制定的规则,也就是管理好工作项的规则。
  • 上表中的场景二是很多开发团队中经常遇见过的,也是本文着重描述术的情况。从根本解决工作项优先级的问题,系统地学习怎么样应对需求变更才是根本。

对于场景二的解决方案思路如下

由于管理好工作项是解决问题的核心,因此在形成工作项之前,需要解决谁对工作项负责或者说工作项来源的问题,然后要针对工作项做好工作计划,这样开发团队才能很好的执行。

  1. 明确产品经理,做到需求来源唯一。
  2. 梳理产品待办列表,高优先级的工作项先做。
  3. 重新定计划,确保开发团队容量适合,合理更新迭代目标。
  4. 回顾总结,选出改善点,下个迭代做得更好。
  5. 几个迭代下来,度量分析,不断改善。另外,同步需要进行的是人才的培养,向跨职能型团队努力。

解决方案思路示意图如下:

图1 解决方案思路示意图
  1. 明确需求责任人

    明确需求责任人,做到需求来源唯一。在CodeArts中一般是产品经理充当这个角色。需求责任人至少同时要面对两个方向。

    • 方向一:需求责任人必须很好地理解项目中的利益干系人、客户和用户的需要(包括前面提到的突发工作项)及其优先级。从这个角度理解,一般是产品经理充当需求责任人。
    • 方向二:需求责任人必须与开发团队交流要构建的特性及其构建顺序。需求责任人还必须保证特性的接收标准已有明确说明,让开发团队可以确定在什么情况下需求责任人可以认为特性完成了。在这个角度理解,一般是业务分析人员和测试人员的角色。

    同时,需求责任人还要在版本、迭代和Backlog层面都能够持续做出良好的经济决策,管理经济效益。为了统一叫法、便于理解,后面需求责任人都由产品经理充当(类似Scrum框架中的产品负责人)。

    产品经理的主要职责总结如下图所示:

    图2 产品经理主要职责

    图2中标亮部分的产品经理职责就与迭代中对应这些突发性工作相关了。产品经理需要与利益干系人充分沟通,确定这些突发的工作优先级别,同时从业务价值和管理经济效益等维度考虑,明确是否一定要在本迭代中完成。一旦确定这些突发工作属于高优先级,必须在本迭代中完成,那就需要重新梳理工作项了。

  2. 梳理Backlog

    梳理Backlog,高优先级的Backlog放到迭代待办列表即迭代中(更多关于迭代待办列表的内容请参考了解更多:迭代待办列表)先做。

    • 首先,了解什么是Backlog。Backlog是一个按优先顺序排列的、预期产品功能的列表。
    • 其次,再来理解什么是工作项。工作项是Backlog中的待办事项。对用户和客户来说,大多数的工作项都是有实际价值的特性和功能,也包括一些需要缺陷修复、技术改进、知识获取等工作以及产品负责人认为有价值的任何工作(有价值的突发性工作也属于工作项)。
    • 然后,什么是梳理?梳理是指三大重要活动。第一,确立并细化工作项;第二,对工作项进行估算;第三,为工作项排列优先顺序。

      通过梳理活动改变Backlog的结构:

      图3 Backlog结构

      梳理后,对应CodeArts中的体现,在CodeArts中梳理活动结果如图4所示。

      图4 需求梳理

    经过产品经理梳理后,如图4红色框线部分,突发培训任务的工作项得到了合理的优先级,而且是经过工作量估算,同时将原来的查询产品名称任务进行了拆分细化。产品经理是梳理活动的最终决策者,也就是说突发性的工作由产品经理主导梳理。优秀的产品经理能够充分协调利益干系人安排足够的时间,根据开发团队的特点和项目类型来开展梳理活动。同时开发团队还要估算新加入突发工作的工作量,帮助产品经理根据技术依赖关系和资源约束来排列工作项的优先顺序,如果新加入突发性培训任务的工作项优先级高,那么就会纳入本迭代代办列表中。

  3. 重新定计划

    重新定计划,确保开发团队容量适合,合理更新迭代目标。在重新定计划之前,一起来了解下什么是敏捷下的计划,敏捷提倡的计划和传统瀑布开发模式下的计划有什么区别。

    敏捷宣言中提倡“响应变化高于遵循计划。”,它与传统瀑布开发模式或者说计划驱动的顺序开发模式的计划不同点就是一个是偏向响应变化,一个是偏向遵循计划

    顺序开发过程中,是计划驱动,计划是工作如何开展、何时进行的权威信息源。因此,计划是需要遵循的。相比之下,在敏捷中,根据实时信息关注适应重新制定计划胜于遵循计划。认为盲目的相信计划往往会忽视“计划可能有错”这个事实。

    敏捷开发过程中,团队的目标不是满足某个计划或者某个事先认为事情如何进展的预言。相反,团队的目标是快速地重新制定计划并根据开发过程中不断出现的、具有重要经济价值的信息进行调整。因此,通过梳理以后的工作项,可以对应的调整计划。原计划准备做的工作项可能被移入到下一个迭代中实现,这里体现的是“等价交换原则”,意思是用优先级高的突发性工作项,替掉同等工作量的其它工作项,这也是为了确保开发团队按照一个稳定的节奏交付。因为固定的开发团队一个迭代中容量是不变的,新加入突发工作项而不移除其它工作项势必会给开发团队交付带来压力,破坏开发团队的交付节奏。

    图5 等价交换示意图

    具体在CodeArts中的体现,如图6图7所示。

    图6 等价交换图一
    图7 等价交换图二

    最后,从迭代中选取差不多工作量的低优先级工作项移回到Backlog中,即在CodeArts中完成了工作项的等价交换。

  4. 迭代回顾,识别改善点

    迭代回顾是一个会议,目标是持续改进流程,根据开发团队的需要改进和制定流程,以提高士气,提高效率,提高工作产出速率。几个迭代下来,需要对这类突发工作进行度量分析,识别改善点,持续改善。虽然提倡响应变化高于遵循计划,但同时执行迭代的时候也需要开发团队在不受干扰的情况下全力以赴的迭代。因此,就应该思考为什么每个迭代中都有外界的干扰(突发工作)存在,开发团队共同学会分析和找到解决办法才是真正的解决问题之道。

    这里给出一个CodeArts产品很好的小实践,可以提供客观数据帮助回顾。新纳入迭代待办列表的突发性工作项可以在CodeArts的“模块”下进行管理。也就是说,在新建User Story之前建立一个“突发任务”模块,然后将User Story中的“模块”属性选中它。这是为了在后续几个迭代中对这类突发性工作进行度量分析(可以按模块排序,方便度量分析)以便持续改善做准备。如图8图9所示。

    图8 新建突发模块图
    图9 新建User Story

    选择“统计 > 新建报表 > 自定义报表 > 按迭代维度和实际工时汇总项 > 增加筛选条件(模块) > 保存”,对统计出来的数据进行分析。以图和表两种方式展示:

    图10 按图展示
    图11 按表展示
  5. 同步进行人才培养

    同步需要进行的是人才的培养,向跨职能型开发团队努力。不仅仅是应对处理突发性工作,而是让开发团队更高效。

    每个任务应该由谁来做,或者说突发性工作应该由谁来做?答案很明显,应该是能够最快且正确完成这个工作的人来做。如果这个人正在做其他工作,抽不出时间,但这个任务需要马上完成。开发团队成员都有责任考虑各种不确定因素,做出好的选择。如果开发团队成员都是T型技能的时候,每个任务都有好几个人可以做,那么开发团队就能够在迭代执行期间几个人全力完成制约工作项流程的任务,更灵活地平衡资源,使开发团队更高效。

了解更多:迭代待办列表

迭代待办列表在CodeArts中称“迭代”,它是一组为当前迭代选出的产品待办列表项,同时加上交付产品增量和实现迭代目标的计划。

当新工作出现时,开发团队需要将其加入到迭代待办列表中去。随着工作的执行或完成,剩余的工作量被估算并更新。当计划中的某个部分失去开发意义,就可以将其移除。在迭代期间,只有开发团队可以改变迭代待办列表。迭代待办列表是高度可见的,是对开发团队计划在当前迭代内工作完成情况的实时反映,该列表由开发团队全权负责。

迭代待办列表在迭代计划会议中形成,其中开发团队不会被动分配任务而是由开发团队成员主动认领自己擅长和喜爱的任务。任务被分解为以小时为单位,建议任务不要超过16个小时。如果一个任务超过16个小时,那么它就应该被进一步分解。每项任务信息包括其负责人、工作量、承诺的完成时间及其在迭代中任意一天的剩余工作量,且仅开发团队有权改变其内容。

提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容