IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    《项目管理修炼之道》笔记

    alswl发表于 2014-08-31 20:12:06
    love 0

    项目管理修炼之道

    随着团队规模的变大,成员之间合作的模式逐渐由单打独斗变成协作开发。 这时候会遇到很多意想不到的问题,项目管理的重要性也就显现出来了。 项目管理修炼之道 是一本讲技术类项目管理方法和实践的书。 从业者可以从这本书获得了有益的指导。 我在 Kindle 上面翻了好几遍,感觉受益匪浅,就把读书笔记拿出来供大家参考。

    1、内容

    核心内容是项目管理的生命周期和每个阶段的交付物:

    • 项目章程
    • 日程规划
    • 开发(控制节奏)
    • 结束项目,项目回顾

    其他内容:

    • 如何和投资者沟通
    • 管理会议
    • 控制项目节奏

    2、关键字

    • 项目定义:一个独特的任务或是系统化的流程,其目的是创建新的产品或服务, 产品和服务交付完成标志着项目的结束。项目都有风险,并且受制于有限的资源。
    • 关键(章程)
      • 驱动因素:功能集合、发布时间、缺陷等级,只能有一个
      • 约束:环境、流程、人力资源、预算等,决定了规模
      • 浮动因素
    • 规划:带有项目发布条件的项目计划
      • 日程安排:对工作项目的有序描述
      • 发布条件:S.M.A.R.T.,需要一起协商
    • 仪表盘
      • 定性或者定量的方式,将结果公布出来
    • 保持项目节奏的方法
      • 快速开发
        • 持续集成
        • 自动冒烟测试
      • 功能拆分和日程排期
        • 按功能实现,而非架构
        • 优先实现高价值功能
        • 通过用户故事、角色和场景来定义需求
        • 分离需求和 GUI
      • 质量控制
        • 复查:Code Review,结对编程
        • 重构
    • 项目成员的角色构成
      • 项目经理
      • 架构师
      • 开发人员
      • 测试人员
      • 业务分析师
      • 运维

    3、我的问题和部分解答

    Q:项目经理的职责是什么?

    监控项目进度,牢记里程碑验收条件。保障项目按需求交付。

    Q:如何成为优秀的项目经理?

    项目经理需要下面这些技能:

    • 倾听
    • 谈判技巧
    • 协作和表达技能
    • 目标导向
    • 真诚,尊重
    • 信息不足下进行决策能力
    • 解决问题的技巧
    • 发现问题能力

    • 理解产品的生命周期

    • 认识自己技术的不足
    • 能够安排日程
    • 能够估算任务,并指导其他人完成任务估算
    • 指导如何管理风险,评估项目状态

    Q:用何种生命周期组织项目?

    互联网项目看中发布时间和功能集合,适合用迭代式的生命周期。

    Q:如何安排项目日程?

    细化日程,让成员自省讨论,基于可交付物 的日程规划。 注意,这里的日程和具体的时间安排没有关系,而是处理任务之间的依赖关系。

    Q:如何估算日程中每个任务

    书中给了一个方法:使用日期范围,但问题是,在小团队工作时候, 可能整个项目周期也就 1 个月,如果按日期范围估计,就比较难评估了。

    还有一个方法是使用「1、2、3、5、8、13、21、34、55、89」这样的方式来拆解估算任务。

    每个任务可以拆解成小石子(不超过 2 天的任务)。

    还有一个 tip 是使用波浪式规划,即不在一开始时候规划全部。在进行的过程中调整日程。 以 2 周或者 4 周的长度规划,太长了就更容易出错,对预测能力要求太高。

    项目经理目标是按驱动因素完成既定需求,而不是给一个漂亮的甘特图。

    关于估算日程的三条忠告:

    • 绝对不要提供确定的项目结束日期
    • 任务越小,估算起来越容易
    • 寻求估算的准确性,而不是精确性

    Q:前期延迟了,后期能追赶么?

    不能,强行安排的话,是一个日程安排游戏。但是从 Deadline 意识来说,需要对成员达成 Deadline 意识。

    Q:如何创建优秀团队?

    招对的人,激励个人,形成团队凝聚力。 团队发展分成 5 个时期:组建、激荡、规范、表现、终止。

    Q:如何估算日程安排里面的时间?

    参见上面所说「1、2、3、5、8、13」和小石子。

    Q:如何对项目的模块进行拆分?

    书中没有过多提及,我从自己经验得出的答案是:

    • 原则:拆解成耦合度低,可以并发进行的子任务,互不依赖
    • 每个拆分出来的子任务,是可以被描述,并且其产出是可量化的
    • 如果子任务之间,有相互依赖点,需要在早期就约定好接口和交付时间点
    • 如果一个模块 A 很大(比如超过 4 周开发时间), 那应该团队作战以这个模块为开发目标,将模块 A 拆成多个子任务,然后并发进行。 而不是模块 A、模块 B 并发进行。

    Q:如何保持项目节奏,避免发生延期?

    参见上面的「关键词」中「项目节奏」部分。

    Q:如何管理工程(多个项目),并且在里面进行协调?

    多个项目,但是使用一个发布计划(类比前端、后台、移动端)。 并一起制定好各个项目的计划。如果基于敏捷开发,问题可以被简化, 因为每条线都是随时可以发布的状态。如果不行,那就组织里程碑的发布计划。

    需要管理各个子项目的项目经理,并且创建统一的日程表。

    Q:团队里面有执行迟缓,不听从决策的人员,怎么办?

    这个问题其实是管理问题,而不是项目管理问题。 书中并没有合适答案,我自身感想是这几方面:

    • 弄清楚为什么不听从决策,需要明确项目的发布目标
    • 从精神、物质上面进行激励
    • 直白的进行沟通,向对方请求帮助
    • 从自身寻找问题,提高自身沟通能力和专业技能能力

    原文链接: https://blog.alswl.com/2014/08/manage-it/
    欢迎关注我的微信号:窥豹

    3a1ff193cee606bd1e2ea554a16353ee


沪ICP备19023445号-2号
友情链接