软件开发平台 DevCloud软件开发平台 DevCloud

计算
弹性云服务器 ECS
裸金属服务器 BMS
云手机 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器 HECS
VR云渲游平台 CVR
特惠算力专区
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属企业存储服务
云存储网关 CSG
专属分布式存储服务 DSS
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘小站 IES
智能边缘平台 IEF
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
园区智能体 CampusGo
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
视频分析服务 VAS
语音交互服务 SIS
知识图谱 KG
人证核身服务 IVS
IoT物联网
设备接入 IoTDA
设备管理 IoTDM(联通用户专用)
全球SIM联接 GSL
IoT开发者服务
IoT数据分析
车联网服务 IoV
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
开发与运维
软件开发平台 DevCloud
项目管理 ProjectMan
代码托管 CodeHub
流水线 CloudPipeline
代码检查 CodeCheck
编译构建 CloudBuild
部署 CloudDeploy
云测 CloudTest
发布 CloudRelease
移动应用测试 MobileAPPTest
CloudIDE
Classroom
开源镜像站 Mirrors
应用魔方 AppCube
云性能测试服务 CPTS
应用管理与运维平台 ServiceStage
云应用引擎 CAE
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
资源管理服务 RMS
应用身份管理服务 OneAccess
区块链
区块链服务 BCS
可信跨链服务 TCS
智能协作
IdeaHub
开发者工具
SDK开发指南
API签名指南
DevStar
HCloud CLI
Terraform
Ansible
API问题定位指导
云生态
云市场
合作伙伴中心
华为云培训中心
其他
管理控制台
消息中心
产品价格详情
系统权限
我的凭证
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
应用编排服务 AOS
多云容器平台 MCP
基因容器 GCS
容器洞察引擎 CIE
云原生服务中心 OSC
容器批量计算 BCE
容器交付流水线 ContainerOps
应用服务网格 ASM
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB (for openGauss)
云数据库 GaussDB(for MySQL)
云数据库 GaussDB NoSQL
数据管理服务 DAS
数据库和应用迁移 UGO
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据湖治理中心 DGC
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
API网关 APIG
分布式缓存服务 DCS
分布式消息服务RocketMQ版
企业应用
域名注册服务 Domains
云解析服务 DNS
云速建站 CloudSite
网站备案
华为云WeLink
会议
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMAExchange
API全生命周期管理 ROMA API
安全与合规
安全技术与应用
DDoS防护 ADS
Web应用防火墙 WAF
云防火墙 CFW
应用信任中心 ATC
企业主机安全 HSS
容器安全服务 CGS
云堡垒机 CBH
数据库安全服务 DBSS
数据加密服务 DEW
数据安全中心 DSC
云证书管理服务 CCM
SSL证书管理 SCM
漏洞扫描服务 VSS
态势感知 SA
威胁检测服务 MTD
管理检测与响应 MDR
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
专属云
专属计算集群 DCC
解决方案
高性能计算 HPC
SAP
游戏云
混合云灾备
华为工业云平台 IMC
价格
成本优化最佳实践
专属云商业逻辑
用户服务
帐号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
更新时间:2021-03-18 GMT+08:00
分享

Scrum实践之团队

随着近些年敏捷在行业及企业的推广,越来越多的企业意识到了敏捷所带来的好处,并愿意在敏捷上有所投入,从而越来越多的朋友加入了敏捷从业者行列,愿意学习敏捷知识。

本文内容推荐有基本敏捷常识及有一定Scrum理论基础的朋友们阅读,并按实际场景进行参考。

定义和特性说明

  • 定义

    敏捷开发方式有很多种,这里我们选择Scrum。Scrum给出了一个具体的工作框架,并且是应用最为广泛、成熟的一种敏捷开发方式,业界已经积累了大量的实践经验。

    结合Scrum框架和具体实施项目特点,打造适合的敏捷Scrum团队尤为重要。

    Scrum团队是一个完整的团队。Scrum团队是基于功能开发而组成的跨职能、自我管理团队,在组织方式、管理模式和开发过程等方面与传统的开发团队有着重大改革。

    Scrum团队与传统团队的简单对比下图:

    • Scrum团队中没有传统意义上的项目经理、产品经理、开发经理,而是引入了产品负责人(Product Owner)、Scrum Master和开发团队(The Team),开发团队中包含了多个职责的成员,例如需求设计人员、开发人员、测试人员等。
    • 传统开发团队通常由项目经理做任务分析(WBS)并下达和分配工作内容,而Scrum团队提倡自我管理、自组织,按兴趣和能力挑选自己喜欢的任务。
    • 传统开发团队通常是接到任务后独立完成,个人英雄主义突出,而Scrum团队需要在工作中相互配合,协作完成任务。
    • 传统开发过程中,通常是经历一个非常大时间段的开发过程才能完成一次产品的发布,中间过程客户不能试用产品成果,不能快速反馈,而Scrum开发过程中,产品是迭代增量发布的,通常是在每个冲刺(Sprint)结束时交付可发布的软件,客户可以试用每个冲刺产品成果和快速反馈。

  • 特性说明

    开发团队的大部分时间都花在冲刺执行上。

    在冲刺执行期间,开发团队完成设计、构建、测试PBI(Product Backlog Item),生成潜在可发布的产品增量。

    开发团队的冲刺执行活动包括:每日检视和调整(站例会)、梳理产品列表(PBI)、冲刺规划(迭代计划会)、检视和调整产品与过程。

    下面一起总结团队都有哪些特性。

    • 由5至9人组成

      如果开发团队需要一个大型的Scrum团队,比如有43个人,不大可能会组成一个43个人的Scrum团队,而是分成5个或5个以上的Scrum团队,每个团队建议不超过9个人,常用的方法为Scrum of Scrums。

    • 一个整体,跨职能

      开发团队必须具备所需的全部技能以构建高质量、可工作的产品增量。

      技能单一的专职团队最多只能完成工作的一部分,所以一个专职团队做完自己的工作后,工作产品就被移交给其它团队,例如,开发团队把代码移交给测试团队。移交代表着极有可能产生误解和高成本的错误,拥有跨职能的团队可以减少移交次数,节约成本,开发团队由搭配合理的资深员工和资历浅的员工来实现团队多样化。

    • 开发团队是自组织的

      没有人告诉开发团队如何把产品代办事项列表变成潜在可发布的产品增量,开发团队自己确认采用哪种方式来实现产品负责人设定的目标。

      自组织是系统自下而上、自发的属性,没有传统的自上而下、命令与控制的管理方式,即便是Scrum Master也不应该冒昧干预,这样的自组织拥有非凡的稳定性和产生惊人的新颖性。

    • 由T型技能的员工组成

      T型技能的意思是即要有深度又要有广度。

      团队成员拥有适合的技能,覆盖各个专业领域,并且总体上技能有一些重叠,团队有额外的灵活性。有深度的专家型的员工,可以分配到数量合理的产品团队中,但不能让他们成为瓶颈(接力棒掉地)。然而,一开始就能找到想要的团队技能组合,是不太可能的,理想的技能组合需要在开发过程中日益成熟。

    • 具备“人人为我,我为人人”的态度

      在开发团队中不会有人说:“我那部分做完了,你那部分没有做完,因此我们失败了。”开发团队的成员必须充分意识到他们必须合作才能冲刺目标承诺,失败是团队中每个人的问题。

    • 广泛沟通

      开发团队成员相互之间以及他们和Scrum Master、产品负责人之间需要进行广泛的沟通,快速、高效交换有价值的信息。

      广泛的沟通提高了信息分享的频率和质量。信息的经济价值是有时效性的,所以加快信息分享的速度可以快速进行检视和调整,做出更好的决定,同时可以快速识别浪费,避免开发团队在错误的方向上花更多的资源。Scrum团队广泛的沟通,就是用最小的成本快速有效地沟通。

    • 沟通透明

      沟通透明使开发团队成员都清楚目标状态,不会意外,另外还可以帮助建立互信。简而言之,开发团队成员需要坦诚、靠谱,才有利于自组织和达到冲刺目标。

    • 目标专注

      开发团队成员需要对团队目标保持专注、有责任感。

      大量数据表示一个普遍的共识:做多个项目或者跨多个团队会降低生产力,因此建议团队成员尽可能专注于一两个产品。当然专注于一个产品开发工作时,更容易做到专注、有责任感。

    • 持续的工作节奏

      开发团队必须以可持续的节奏工作,不在进行死亡行军,这样做可以维持一个健康、有趣的环境。

      采用顺序开发时,我们把像测试这样的重要活动放到了最后,此时临近项目交付,通常有大量的问题需要快速解决。结果,在开发后期,工作强度陡然上升,高工作强度会把团队成员压垮。作为组织,我们要问:“为什么必须在晚上和周末工作,哪些地方可以改进?”采用Scrum,每个冲刺我们一直在开发、测试和集成可交付的特性,为了确保团队可以频繁、定期交付价值特性,不至于忙到吐血,每个开发团队成员都应该使用良好的技术实践,比如持续集成和自动化测试等。

    • 人员稳定

      开发团队需要人员稳定。开发团队成员的稳定更有利于提高生产力、效率与质量。团队是组织的资产,团队才是敏捷的“价值源泉”。这里并不是说相当长时间内始终应该保持团队稳定。例如,如果有一个团队不像我们想象的那样有凝聚力,或者团队出现功能失调,那么解散团队危害更小而且经济上更合理。再例如,为了在组织内进一步推广Scrum,可以有意识的打散一个高效率Scrum团队,把优秀的团队成员作为“种子”策略的一部分。新的Scrum团队都有一个Scrum经验丰富的种子比保留原来的团队更有价值。

案例说明

  • 常见问题
    1. 敏捷开发提倡先做市场收益率最高(最高价值)的工作,它容易导致敏捷开发团队过于看重眼前的短期利益,而忽视了产品发展的长远目标。
    2. 敏捷项目管理中,对敏捷开发团队成员的素质要求非常高,要求每位团队成员都非常专业并且拥有积极主动的自我管理。而现实中,团队成员的现况往往是水平参差不齐,积极主动的态度因人而异,往往达不到敏捷开发团队成员要求的标准。
  • 解决方法
    1. 敏捷团队需要放眼中、远期目标,不能仅仅局限于关注眼前收益率大的目标;
    2. 敏捷的价值观提倡谦逊和勇气,团队成员之间互信互助,而不是互相指责批评和推卸。团队成员能够认识到自己的不足,并且主动改进,遇到困难的时候主动寻求团队帮助。团队成员努力做到自我管理和自我驱动,承担多项职能的工作。
  • 主要收益
    1. 团队成员的自我管理能力、责任感和主观能动性增强。
    2. 团队成员不再各自为战,工作透明,协作和联系更加紧密。
    3. 团队成员满意度提高,工作氛围更加和谐。
    4. 每个Sprint都将成果(潜在可交付产品增量)与客户做确认,避免了后期较严重的需求变更风险。
    5. 团队成员不断地自我反醒、自我激励、能力提升。

文章来源:

分享:

    相关文档

    相关产品

关闭导读