zoukankan      html  css  js  c++  java
  • [名人观点蔡锫] 微软项目管理

    蔡锫

    微软中国高级架构师 

    微创软件研发部经理

    --------------------------------------------------

    [名人观点]:

    一.团队组织 

    1.常见问题 
      •  没有人愿意做测试 
      •  觉得养不起那么多测试人员 
      •  开发人员不遵循规范,随心所欲 
      •  项目经理事必躬亲,分身乏术 

    2.微软团队模型

    各角色的职责 
    项目经理  :  编写功能规范,协调各角色关系
    产品经理 :  客户联系的桥梁,进行需求分析
    用户教育 :  让产品容易使用
    发布经理 :   保证产品顺利发布

      

    二.项目管理

    1.常见问题 
     
     •  无法决定项目所需的资源(人力和预算)

      •  无法决定项目的进度表 
      •  无法控制外包项目的进度和质量 

    2.微软项目管理--  多里程碑式流程 
     
     •  每个里程碑完成部分功能 
      •  便于团队集中力量完成一个又一个功能 
      •  提供多个机会以适应需求的更改 

    如何完成一个里程碑??  
    步骤一:  达成共识 
     
     • 基本完成需求调研和分析 (产品经理负责) 
      • 确定大方向和长中短期目标 
      • 所有角色都参与讨论并真正认同结论 
      • 产生的文档: 
        o  常见用户情景:覆盖80%以上功能 
        o  Vision:言简意赅地说明大方向,并有激励团队的作用 
    步骤二:  完成项目计划 
         
    o  编写详细的功能规范(项目经理负责) 
        o  在编程前想清楚所有功能流程,并引导用户明确需求 
        o  所有角色都参与审阅功能规范 
        o  制订开发计划和进度表(开发团队) 
        o  制订测试计划和进度表(测试团队) 
        o  分配资源(人力和预算) 
        o  形成项目综合计划和综合进度表 
        o  产生的文档:
    功能规范,开发计划,测试计划(用例),项目综合计划
    开发进度表,测试进度表,综合进度表

    步骤三:  完成功能 
      • 开发人员分别完成自己的功能 
      • 使用版本控制工具 
      • 使程序员及时 check out和 check
      • 及时进行模块间的整合,及时发
      • 对每一项可测试的功能进行测试
      • 使用测试用例工具,对功能进行
      • 使用 BMS进行缺陷跟踪 
      • 记录所有程序问题 
      • 实现解决 Bug 的自动流程 
      • 按照综合进度表不断检查进度

      • 使用的工具: 
        o  版本控制工具 VSS 
        o  缺陷跟踪工具 Raid/BM
        o  测试用例管理工具 

    •  步骤四:  稳定与发布 
      • 测试组全面地测试功能,包括性能和稳定性 
      • 开发组全力配合解决 Bug 
      • 使用 BMS进行 
        o  监测质量情况 
        o  预测发布日期 
      • 专家会诊机制: 
        o  决定 Bug 的优先度 
        o  决定哪些 Bug 可以等到下个里程碑或版本中解决 
        o  决定由谁解决某个 Bug 
      • 使用的工具: 
        o  版本控制工具 VSS 
        o  缺陷跟踪工具 BMS 
        o  测试用例管理工具

     

    三.  微软的开发管理经验:100%以 Bug 为核心

     

    四.微软的一天

    1.  让我们看看项目中每个角色的一天是如何度过的 
    •  开发 
    •  测试 
    •  项目经理 
    注:里程碑的每个阶段每个角色的工作有不同侧重点,我们以“完成功能”阶段为例 

    微软的一天从几点开始? 
    答案:半夜 
    为什么? 
    因为Daily Build 是所有工作的核心,而且是在半夜自动启动。
     
    每日构造 Daily Build 
    •  你知道自己所用Windows的版本号吗? 
    •  Daily Build 的意义: 
      o  模块得以及时整合 

      o  要求程序员及时把最新代码放入代码库 

    •  用脚本语言和编译/链接工具实现 
    •  BVT Build Verification Test 
      o  对 Build 进行验证 
    •  Blocking Bug 
      o  让 Build 无法完成的问题 
      o  BVT 中发现的问题 


    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 
      o  决定 Bug 优先度 
      o  可否等到下个里程碑或版本解决? 
      o  谁来解决 
    •  预测项目实际进度和发布时间

    缺陷走势图 

    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.  根据需要调整团队结构

    不断的总结,才能不断的提高;不断的思考,才能不断的进步!
  • 相关阅读:
    面试(串讲三)
    未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“Microsoft.VisualStudio.Data.Providers.SqlServer.SqlViewSupport.xml”正确嵌入或链接到程序集“Microsoft.VisualStudio.Data.Providers.SqlServer”,或者确保所有需要的附属程序集都可加载并已进行了完全签名。
    爬虫-js逆向记录1
    Spring Boot前后端分离直接访问静态页+ajax实现动态网页
    MODBUS-TCP通讯协议V1.03
    vs2019调试时,取消线程abort终止导致异常中断方法
    TCP/IP报文分析
    专业免费的图片、照片去灰底、修复软件,专业人员都在用它
    c指针的传递
    golang实现三重DES加密解密
  • 原文地址:https://www.cnblogs.com/nzyjlr/p/1991372.html
Copyright © 2011-2022 走看看