03-团队动力学

Charlie

1. 软件开发是知识工作

1.1. 知识工作管理

  • 管理知识工作规则:管理者无法管理知识工作者,知识工作者只能自管理
  • 如何实现自我管理:
    1. 有积极性
    2. 能做出准确的估算和计划
    3. 懂得协商承诺
    4. 有效跟踪他们的计划
    5. 持续地按计划交付高质量产物

1.2. 领导者

  • 主要激励方式

    1. 威逼
    2. 利诱
    3. 鼓励承诺
  • 领导方式

    1. 交易型领导方式
      1. 承诺奖励激励
      2. 人们通常可以找到新的方式来获得奖励,同时减少工作
      3. 威逼和利诱属于交易型领导方式
      4. 很少产生成功且有创造性的团队
    2. 转变型领导方式
      1. 用成就激励
      2. 鼓励承诺属于转变型领导方式
  • 维持激励水平:需要及时的绩效反馈

    1. 根据一个详细的计划衡量进度
    2. 当前计划不准确时重做计划
    3. 为漫长且富有挑战性的项目提供中间反馈,即里程碑

1.3. 马斯洛需求层次理论

  • 层次:
    1. 生理需求 (Physiological)
    2. 安全感 (Safety)
    3. 爱和归属感 (social)
    4. 获得尊敬 (Esteem)
    5. 自我实现 (Self-Actualization)
  • 启发
    1. 自我实现是最高的层次
    2. 激励来自为没有满足的需求而努力奋斗
    3. 低层次的需求必须在高层次需求满足之前得到满足
    4. 满足高层次的需求的途径比满足低层次的途径更为广泛

image.png

1.4. 期望理论

人们在下列情况下能受到激励且做出大量成果

  1. 详细他们的奴隶很可能会产生成功的结果
  2. 相信自己会因为成功得到相应的回报

2. 自主团队

2.1. 外部环境

  • 项目启动阶段获得管理层的支持
    1. 体现出已经尽最大可能满足管理层需求的工作态度
    2. 在计划中体现定期需要向管理层报告的内容
    3. 在计划中体现为了追求高质量而展开的工作
    4. 在工作计划中允许必要的项目变更
    5. 向管理层寻求必要的帮助
  • 项目进展过程中获得管理层支持
    1. 严格遵循定义好的开发过程看展项目的开发工作
    2. 维护和更新项目成员的个人计划和团队计划
    3. 应当对产品的质量进行管理
    4. 应当跟踪项目进展,并定期向管理层报告
    5. 持续地跟踪项目进度,并定期向管理层报告
    6. 持续地向管理层展现优异的项目表现

2.2. TSP

2.2.1. TSP对自主团队支持

软件开发方法

  1. PSP:个人技能培养
    1. 提出了个人如何培养能力,成为一个优秀的团队成员
    2. 团队成员
  2. TSP:团队组件过程
    1. 团队规范
  3. TSP:团队工作工程
    1. 团队管理

image.png

2.2.2. 启动会议/九次会议

  1. 第一次会议:建立产品目标和业务目标
    1. 产品目标:要做什么?
    2. 业务目标:要做得怎么样,更困难
  2. 第二次会议:角色分配和小组目标定义
    1. 角色对应职责-目标
    2. 小组目标:是否和组织目标冲突?
  3. 第三次会议:开发流程定义与策略选择
    1. 开发流程:迭代式,但是比较自由可以自定义
    2. 开发策略:分为几个迭代,每个迭代做什么,组件如何获取
  4. 第四次会议:整体计划
    1. 估算+计划。需要明确做哪些事情?产出物有哪些?产出物规模如何?需要多少资源?团队给出的资源够不够?
  5. 第五次会议:质量计划
    1. 有哪些质量实践?做到什么程度?需要投入多少资源
  6. 第六次会议:个人计划以及计划平衡
    1. 个人计划:个人要做哪些事情
    2. 计划平衡:如何寻求一个最早完成项目的时间
  7. 第七次会议:风险评估
    1. 风险:有可能发生也可能不会发生
    2. What if?
    3. 保护团队
  8. 第八次会议:准备向管理层计划
    1. 写给领导看的PPT,表现出方案时经过充分思考的,不是粗制滥造的
  9. 第九次会议:向管理层汇报计划内容
  10. Lauch阶段总结:总结得失

2.2.3. 典型的TSP角色和职责

  1. 项目组长/TL:
    1. 建立和维持高效率的团队
    2. 激励团队成员积极工作
    3. 合理处理团队成员的问题
    4. 向管理层提供项目进度相关的完整信息
    5. 充当会议的组织者和协调者
  2. 计划经理:
    1. 保证实际进展与计划一致
    2. 开发完整的、准确的团队计划和个人计划
    3. 每周准确报告项目小组状态
  3. 开发经理:技术带头人
    1. 开发优秀的软件产品
    2. 充分利用团队成员的技能
  4. 质量经理
    1. 团队严格按照质量计划开展工作,开发出高质量的软件产品
    2. 所有小组的评审工作正常开展,并形成评审报告
  5. 过程经理:确保项目按照定义好的过程工作
    1. 所有团队成员准确的记录、报告和跟踪数据
    2. 所有的团队会议都有记录
  6. 支持经理
    1. 项目小组开发过程中有合适的工具和环境
    2. 对于基线产品,不存在非授权的变更
    3. 项目小组的风险和问题得到跟踪
    4. 项目小组在开发过程中满足复用目标
  7. 开发人员

2.3. SCRUM团队

  • 角色和职责
    1. 产品负责人:将开发团队开发的产品价值最大化;管理产品待办列表
    2. 开发团队:每个 Sprint 结束时交付潜在可发布并且“完成”的产品增量。
    3. SCRUM Master :
      1. 支持和促进SCRUM,帮助每个人理解SCRUM理论、实践、规则和价值
      2. 服务于产品负责人
      3. 以各种方式服务于开发团队
      4. 以各种方式服务于组织
  • SCRUM团队跨职能的自组织团队
  • 标题: 03-团队动力学
  • 作者: Charlie
  • 创建于 : 2024-03-19 11:03:00
  • 更新于 : 2024-07-05 12:55:04
  • 链接: https://chillcharlie357.github.io/posts/9a91727d/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论