微软中国高级架构师 微创软件研发部经理 蔡锫
一.团队组织
1.常见问题
-
没有人愿意做测试
-
觉得养不起那么多测试人员
-
开发人员不遵循规范,随心所欲
-
项目经理事必躬亲,分身乏术
2.微软团队模型
各角色的职责
角色 |
职责 |
项目经理 |
编写功能规范,协调各角色关系 |
产品经理 |
客户联系的桥梁,进行需求分析 |
用户教育 |
让产品容易使用 |
发布经理 |
保证产品顺利发布 |
二.项目管理
1.常见问题
-
无法决定项目所需的资源(人力和预算)
-
无法决定项目的进度表
-
无法控制外包项目的进度和质量
2.微软项目管理-- 多里程碑式流程
-
每个里程碑完成部分功能
-
便于团队集中力量完成一个又一个功能
-
提供多个机会以适应需求的更改
如何完成一个里程碑
-
基本完成需求调研和分析 (产品经理负责)
-
确定大方向和长中短期目标
-
所有角色都参与讨论并真正认同结论
-
产生的文档:
-
常见用户情景:覆盖80%以上功能
-
Vision:言简意赅地说明大方向,并有激励团队的作用
-
步骤二: 完成项目计划
-
编写详细的功能规范(项目经理负责)
-
在编程前想清楚所有功能流程,并引导用户明确需求
-
所有角色都参与审阅功能规范
-
制订开发计划和进度表(开发团队)
-
制订测试计划和进度表(测试团队)
-
分配资源(人力和预算)
-
形成项目综合计划和综合进度表
-
产生的文档:
功能规范,开发计划,测试计划(用例),项目综合计划 开发进度表,测试进度表,综合进度表
-
开发人员分别完成自己的功能
-
使用版本控制工具
-
使程序员及时check out和check in,避免积累大量代码
-
及时进行模块间的整合,及时发现问题(daily build)
-
对每一项可测试的功能进行测试,无需等待
-
使用测试用例工具,对功能进行完整和重复的检验
-
使用BMS进行缺陷跟踪
-
记录所有程序问题
-
实现解决Bug的自动流程
-
按照综合进度表不断检查进度
-
使用的工具:
-
版本控制工具 VSS
-
缺陷跟踪工具 Raid/BMS
-
测试用例管理工具
-
测试组全面地测试功能,包括性能和稳定性
-
开发组全力配合解决Bug
-
使用BMS进行
-
专家会诊机制:
-
决定Bug的优先度
-
决定哪些Bug可以等到下个里程碑或版本中解决
-
决定由谁解决某个Bug
-
使用的工具:
-
版本控制工具 VSS
-
缺陷跟踪工具 BMS
- 测试用例管理工具
三. 微软的开发管理经验:100%以Bug为核心
1.Bug 及常见类型
-
功能未实现,和规格说明书不一致
-
不能工作:死机,没反应
-
不兼容
-
边界条件
-
界面、消息、提示不够准确,不友好
-
把尚未完成的工作也作为一个Bug
-
文档与帮助信息中的缺陷也是Bug
2.RAID/BMS的基本功能
-
完整的Bug数据库
-
整个产品组的中央记录和控制
-
强大的查询功能,有效地跟踪项目的状态
-
所有的记录无法删除,对于每个记录只能一直添加内容
-
丰富的报表功能,为产品发布提供判断标准
3.Bug 记录中的有效信息
-
状态
-
负责人
-
问题种类
-
严重级
-
优先级
-
修改时间
-
登记时间
|
-
缺陷来源
-
解决方案
-
运行环境
-
缺陷关联
-
附件
-
附图
-
缺陷细节
|
4.Bug 的严重程度
-
死机,数据丢失,主要功能组完全丧失,系统悬挂
-
主要功能丧失,导致严重的问题,或致命的错误声明
-
次要功能丧失, 不太严重,如提示信息不太准确
-
微小的问题,对功能几乎没有影响,产品及属性仍可使用. 如有个错别字
5.激活的Bug数量的趋势
-
代码完成前:很少
-
代码完成后:增长很快
-
接近Beta: 下降
-
接近RC: 奔向零
-
产品质量和里程碑的信号
-
每天新建的Bug 与 修正的 Bug 相比较
-
Active 状态 Bug 的总数
四.微软的一天
1. 让我们看看项目中每个角色的一天是如何度过的
注:里程碑的每个阶段每个角色的工作有不同侧重点,我们以“完成功能”阶段为例
微软的一天从几点开始?
答案:半夜
为什么?
因为Daily Build是所有工作的核心,而且是在半夜自动启动。
每日构造Daily Build
-
你知道自己所用Windows的版本号吗?
-
Daily Build的意义:
-
模块得以及时整合
-
要求程序员及时把最新代码放入代码库
-
用脚本语言和编译/链接工具实现
-
BVT Build Verification Test
-
Blocking Bug
2.程序员每天上班前最担心什么?
答案:因为自己昨天的代码check-in,造成Blocking Bug.
为什么?
因为每天的Build是所有人当天工作的基础: 程序员需要Build验证与其他模块的接口 测试需要Build发现新Bug,并验证新Build中已解决的Bug
有Blocking Bug怎么办?
解决问题,并对今天的Build打Patch。
开发人员的正事
经历对Build的提心吊胆和争分夺秒之后,第一件事做什么 答案:打开缺陷跟踪工具,查看指定给自己的Bug,解决高优先度的Bug。因为质量重于新功能。
接下来,开发人员会…
从版本控制工具中Check out代码 修改代码(解决Bug或实现新功能) 取得版本工具中最新变化,在本机Build和单元测试 请开发组同事作Code Review Check in代码
3.测试人员第一件事做什么?
答案:打开Raid/BMS,查看指定给自己的Bug,验证已解决的Bug。
接下来,测试人员会…
-
根据测试用例检验今天的Build
-
在Raid/BMS中记录新发现的Bug
4.专家会诊
-
参加者:项目经理和开发组长、测试组长
-
通过Raid/BMS评估每个未解决的Bug
-
决定Bug优先度
-
可否等到下个里程碑或版本解决?
-
谁来解决
-
预测项目实际进度和发布时间
缺陷走势图
5.回顾微软的一天
-
构造: daily build
-
开发: 解决blocking bugs, 实现功能, check-out, code review, check-in
-
测试: BVT, 使用测试用例进行测试
-
项目经理/组长: 专家会诊
6.微软的做法解决了那些常见问题?
质量问题
-
以前解决过的问题发布时又出现了,需要返工
-
无法预估发布时间 过早发布,带来质量和维护问题
-
测试发现的问题被忘却或不了了之
-
无法衡量测试员和开发员的工作
-
程序中的问题往往在发布后才发现
文档管理问题
-
文档与程序脱节,文档成为程序结果的描述
-
项目组把写文档看成负担
团队协调问题
-
开发人员各自为战,进行整合时发现模块衔接中的严重问题 需要作大的改动
-
没有保管好公司以往的版本和代码,无法满足用户对旧版本的更改要求
-
开发人员离职对项目带来很大冲击,没有人知道代码在哪,或无法读懂
五.提高软件管理的步骤
1. 使用Raid/BMS,将流程管理自动化 2. 使用测试用例管理工具 3. 使用文档管理工具 4. 使用版本控制工具,进行Daily Build 5. 建立代码标准 6. 建立Code Review机制 7. 建立专家会诊机制 8. 建立团队沟通机制 9. 根据需要调整团队结构
|
相关推荐
微软Bug管理是保证产品质量的关键环节,它涉及到团队组织、项目管理和具体的开发管理实践。在团队组织方面,微软提出了一系列角色及其职责,以确保产品的高效开发和测试。项目经理负责编写功能规范,协调团队;产品...
《华夏基石——选、育、用、留:人力资源管理体系的构建》这份文档,由孙波博士主讲,重点讲述了企业如何构建完善的人力资源管理体系,以适应不断变化的时代背景和市场环境,支持企业的可持续发展。 首先,企业人力...
现代项目管理的基石——WBS
CC++后端开发精进基石——数据结构与算法(红黑树、BB+树,Hash,BoomFilter,b_Server-Development-Basics
【XX寝具制造有限公司——质量手册——文件化的质量管理体系】是该公司为了提升质量管理,确保服务质量,增强市场竞争力而制定的一套全面的管理制度。手册的颁布旨在遵循ISO9001·2000质量管理体系标准,通过预防为...
通过实施全面质量管理(TQM)等方法,企业可以提升产品和服务的质量,从而赢得客户的忠诚度。 商业流程再造(BPR)被认为是超越竞争对手的一种方式,它涉及对现有工作流程的深度重构,以实现更高的效率和效益。然而,...
数据库技术是信息时代的核心组成部分,它扮演着构建和管理海量信息的关键角色。数据库技术的发展历程可以追溯到上世纪50年代,随着计算机技术的进步和信息化需求的增长,它逐渐演变为一门重要的软件科学。 数据模型...
《XX中心血站质量手册——过程和产品的测量和监控程序》是一份重要的管理制度文档,旨在确保血液制品的质量和安全,遵循国家相关法规和标准,为血液采集、检验、处理、储存及分发等环节提供规范化的操作流程。...
#资源达人分享计划#
2014 年,以太坊的联合创始人 Dr. Gavin Wood 发表《去中心化应用:Web3.0 是 什么样子》一文,首次系统阐述了 Web3.0 的概念。Gavin Wood 认为 Web3.0 将在包括 区块链技术等一系列技术推动下,使得互联网变得更加...
【构筑安全基石】数字经济时代的网络安全问题相比传统互联网时代更为复杂,不仅包括传统威胁,如黑客攻击,还包括数据隐私保护、供应链安全等新挑战。因此,需要不断强化网络安全基础设施,建立健全的法规政策,提高...
**MLDN——CRM客户管理管理系统** CRM(Customer Relationship Management)客户关系管理是一种策略性方法,旨在优化企业与客户之间的互动,提升客户满意度并促进业务增长。MLDN开发的CRM系统结合了Struts、...
【实务风险管理——公司风险管理】 在企业管理中,风险管理是一项至关重要的工作,它涉及到识别、评估、控制和监控可能对公司运营产生负面影响的风险。实务风险管理(Risk Management Practice, RM)旨在确保企业在...
2.2自信是成功的基石——学生学习课件
严格的采购管理体系——兑现美丽承诺的基石
《软件项目管理傻瓜书——项目管理经典》是一本针对软件开发领域项目管理的入门读物,旨在以简单易懂的方式介绍项目管理的核心概念和实践技巧。这本书对于初入IT行业的项目经理或者对项目管理感兴趣的软件工程师来说...
数据治理在投资风险管理中的作用与重要性 在当前的金融环境中,投资风险管理正经历着深刻的变革,这主要得益于云计算、大数据、人工智能等新兴技术的快速发展。数据治理作为这些变革的基础,对于实现风险管理的数字...
这份《XX基石——企业文化落地与传播》的PPT文档,作为参考资料,提供了丰富的理论知识和实践经验,对于企业管理者来说,是理解企业文化建设和落地实施的重要工具。对于希望深入了解企业文化的个人或团队,下载学习...
管理学是研究组织中人类活动如何有效...这些理论共同构建了管理学的基石,为现代企业的管理实践提供了理论支持和指导。学习管理学原理有助于管理者理解并应对复杂的组织问题,制定有效的管理策略,从而推动企业成功。