乐正

Actions speak louder than words.

一名菜鸟IT项目经理的成长笔记

是什么?

Q: 项目经理是什么?

项目经理是公司委派,负责实现项目目标的个人,是公司授权的项目负责人,是项目的直 接组织者和管理者。

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

  • 对项目全过程进行组织和管理,按预期交付项目的成果
  • 管理客户关系,以取得客户对交付的成果和过程最满意的评价
  • 管理项目团队,使之高效而愉快的工作,并获得最满意的工作体验

Q:IT项目经理的主要任务是什么?

  1. 支持售前过程。IT项目一般比较复杂,交付风险大,需要在合同中约定工作范围,进度 计划要估算成本和人力资源,制定切实可行的实施方案。
  2. 负责项目交付。围绕目标,按照规范执行项目计划。按期汇报进度,保证项目在计划内 交付。
  3. 完成项目收尾。完成交付成果之后,要讲成果转移给客户,确保客户可以稳定地使用系 统。
  4. 管理干系人的关系。沟通各方人员信息,保持密切联系,解决矛盾冲突。
  5. 管理项目团队。寻找合适的资源,优化资源配置,建立合理的组织结构,确定清晰的职 责分工,打造高效的项目团队。

需要什么素质?

  1. 领导力。领导力是指通过他人来完成工作的能力。领导力并不意味着『官』,而应 该是『领头的』。不仅要求别人做的自己能做到,而且要知道『下一步』,目标在哪里。
  2. 责任心。出于对承诺的负责,会倾尽全力达成目标。
  3. 积极主动。善于利用自身的优势改变局势。
  4. 压力承受。需要在压力中仍能保持镇定,冷静思考。

需要的知识和技能

专业知识

  • 项目管理专业知识
  • IT技术
  • 行业知识

实践技能

  • 商务技能。要代表公司管理项目,履行合同。
  • 项目启动。真正进入项目的第一个阶段往往是最慌乱的,必须清楚知道每天要做什么,这 样才能有条不紊。
  • 计划的制定需要工具和平台,执行需要推进,质量需要把控。明确质量管理内容,以及在 什么情况下有权利喊『停』。

软技能

  • 沟通和协调。沟通包括识别沟通对象,建立沟通渠道,明确沟通信息。
  • 团队和激励。必须让成员能够团结,为了共同的目标而努力。
  • 政治和文化。

项目启动的第一周

项目启动时,需要做的事情:

  • 建立组织和制度。建立组织结构,确定职责分工,确定基本规章制度和工作流程。
  • 明确工作思路。一边是要确认工作范围,制定工作计划;另一边要确定开发方法,特别是 马上要确定需求文档格式和工作流程。

启动的准备工作

  1. 确认项目范围。项目中范围包括两大类:一类是产品范围,也就是应该覆盖的业务 需求;一类是为了实现项目目标所需要完成的工作。
    将功能层级进行约定:
    • 子系统:指相对比较独立、功能完整一组业务功能。
    • 功能集:指在子系统内,按照业务特性归集的一组操作。
    • 执行单元:一次完成的一个独立业务操作。
  2. 粗略工作量估算
  3. 人力资源的配置
  4. 确定开发过程。按照项目的实际情况,制定一个《项目开发过程》的文件。明确项 目的开发阶段,明确各阶段的交付物,制定交付物的模板。

群策群力,制定项目计划的方法

  • 根据WBS方法指定活动清单。
  • 确定活动之间的依赖,绘制网络图。
  • 根据网络图的依赖关系和工期需求,分配资源,确定进度计划和资源计划。
  • 根据资源和进度计划,制定项目预算。

通过需求矩阵,进行具体项目管理

需求矩阵按照子系统、功能集和执行单元的结构列出所有的功能需求,每列对应每项工作的 工作步骤以及每个步骤的工作量。

"需求矩阵"

制定活动清单

计划过程的步骤如下:

"计划流程"

排序和网络图分析

有了活动清单和依赖关系,就可以进行排序了。我们可以使用节点表示任务,用箭头表示依 赖关系。

"网络图"

通过对网络图进行分析,可以得到项目与时间相关的一些重要信息:

  • 给定项目的预计和开始时间,能够计算每项活动必须开始和完成的最早时间。
  • 给定项目的要求完工时间,能够计算每项活动必须开始和完成的最晚时间。
  • 确定项目的关键路径,也就是最长活动路径。

资源和进度计划

进度计划是将工作计划安排到日历上,它不仅规定了整个项目各个阶段的起止日期,还规定 了所有项目的开始和结束日期。可以使用甘特图进行项目中的进度管理。

进度计划排定时,重点考虑两点:

  • 资源的使用情况是否合理,是否存在资源冲突的情况。
  • 对于那些有较大浮动时间的活动,可以初步确定是越早开始越好,还是越晚开始越好。

执行和检查

对于辛苦制定地计划,如何让每个人按照计划工作?如果知道每个人的工作进展?

阻碍计划落地执行的原因

主要计划落地的主要原因有两点:

  • 没有将计划细分,个人和计划之间缺少一个桥梁。但是将计划拆分到每天做什么也不现实, 所以,这里是一个工作的难点。
  • 执行项目的人员之间水平有差异。

任务的分解和委派

为了解决上述问题,初步有了以下方案:

"任务分解"

  1. 每组安周一周作为单位指定落实到个人头上的计划,制定一份一周工作计划表。
  2. 一周工作计划表每天检查,如果出现了异常,随时修改。
  3. 周五大家根据一周的工作内容,整理工作周报。

这个方法是不错。但是如果将工作分解到每天的粒度呢?

基本思路是将工作按照工作的流程,分解为『关键步骤』,每项任务的一项关键步骤,作为 一个人的工作任务,也是最小的管理单元。个人工作任务只有『完成』和『未完成』两种状 态。

检查和调整

为了有效控制和掌握进度,检查和调整是很重要的一个环节。

每日记录

每天下班前,可由相关人员自己在标记当日工作计划的完成情况,有完成、延迟完成和延迟 中三种状态,并进行汇总统计。并且可以提出自己的问题,由相关人员讨论解决问题或者安 排时间专门讨论。

周例会

周例会检查和调整项目计划,需要一定的讨论,讨论的重点是:任务完成了吗?没完成的原 因是什么?怎么调整?

质量管理

管什么?

经过多年的发展,质量管理已经有了一套基本的理论和方法。质量管理包括质量保证和质量 控制两大类。质量保证是指在项目过程中实施的有计划、有系统的活动,确保满足相关的标 准,典型的例子是评审和审计。质量控制是指采取适当的方法监控项目结果,确保结果符合 质量标准,典型的例子就是测试以及之后的缺陷跟踪。

在IT行业软件开发领域中,常见的公认的质量活动包括:配置管理、评审、测试以及缺陷跟 踪。

  • 评审:检查项目中间产品,早期发现缺陷以减少后期项目返工和修改的工作量。
  • 测试:直接检测软件产品中的缺陷,确保符合质量要求。一般通过单元测试、集成测试、 系统测试和性能测试实现。
  • 缺陷跟踪:记录和追踪缺陷从发现到解决的整个过程,确保所有的结论都有结论。
  • 审计:对项目工作过程进行检查,确保所有活动按照规程进行。
  • 变更控制:版本本更控制,也是重要的一环。
  • 配置管理:记录中间和最终产品(配置项)的变更历史。

质量经理在项目中的职责如下:

  • 贯彻公司的质量管理规范,负责质量管理过程中的检查和指导。
  • 负责制定项目开发/测试环境的标准和规范。
  • 负责项目的配置管理,通过权限控制和备份机制确保交付物的完备和安全。
  • 负责组织同行评审,确保中间交付物的质量。
  • 制定测试策略和测试计划,组织测试,确保最终交付成果的质量。

项目配置管理

项目配置管理是一项看不见的财富,可以在无形中减少因为版本意外等开发中出现的问题导 致的返工、重做等资源浪费。

Q: 什么是项目配置管理?

配置管理是在某一特定时点,确定软件配置的一个过程,通过对已标识的软件配置的一个过 程,通过对已表示的软件的配置的变更进行系统控制,从而在整个软件生命周期中保持软件 的整体性和可追溯性。

Q: 配置管理的具体要做什么?

通常来说,软件配置管理主要通过计划、标识和控制变更和发布配置状态报告来协调软件开 发,目的是使错误率达到最小并最有效地提高生产效率。

质量评审

评审的目的是尽早发现问题,一团和气的评审会完全达不到发现问题的目的。

Q: 评审中的角色有哪些?

首先要把评审中设计到的各个人员确认下来。评审过程中涉及的角色主要有四种:责任人、 主审人、评审专家和记录员。

主审人要先选定评审组的成员,然后再做评审的前期准备。在 评审过程中保证规范和高效, 评审结束后要将结果及时发布被评审相关人员。最后,还要对 评审中发现的问题追踪,直 到问题关闭。

责任人就是要被评审的对象。他们在评审之前准备好资料,在评审过程中解答提出的问题。 对于发现的问题要积极修正后提交给主审人。

记录员就是在评审过程中,把专家提出的问题都记录下来,还要记录责任人的回答信息,最 终要行程会议纪要,并且记录评审结果。

评审专家要彻底了解被评审的资料,其任务是寻找这些资料中的缺陷,侧重于发现问题而不 是解决问题。要保持客观。

Q: 评审的过程是什么?

评审的过程分为计划、预备会议、准备、评审会议和追踪几个阶段。

  • 计划阶段与项目计划同步,也就是说项目中有哪些要评审在项目计划中就已经提前定义好 了。
  • 预备会议,针对要评审的资料对评审组进行培训,并讨论评审资料。
  • 准备工作,是评审专家要彻底熟悉评审资料,以保证评审的质量和高效。
  • 评审会议,是主审人和评审专家对项目资料中的错误和缺陷进行确认。
  • 跟踪,主审人要确保责任人采取必要的措施修正发现的错误。

一个评审反馈表如下:

"评审反馈表"

让测试深入人心

保证质量最有效的措施就是测试。

Q: 为什么要有多种测试呢?

不同的测试是针对不同的开发活动来设置的。下面是软件测试的一个『V模型』:

"测试V模型"

  • 单元测试,主要是开发人员对编写的代码进行自测或相互进行交叉测试,用以检查代码是 否符合编码规范,是否存在逻辑错误。
  • 集成测试,将经过单元测试的模块组装成完整的程序。工作任务包括制定集成测试策略, 确定集成测试步骤,设计集成测试用例,然后逐一添加模块进行测试。
  • 系统测试,是为了验证需求分析确定的功能是否被正确的实现,同时还要对安装、部署、 适应性、安全性、界面等非功能性需求进行测试。
  • 性能测试,用来测试系统是否满足规定的性能需求。性能测试通常选择一些典型的功能, 检验这些功能在大量用户同时使用时是否稳定。
  • 用户验收测试,目的是验证需求与系统的匹配性,以及界面的友好性,响应时间等等。

缺陷跟踪

Q: 为什么要进行缺陷跟踪?

缺陷跟踪可以记录测试结果,确定代码质量,是确保问题得到解决的一个关键流程。其目的 是规范评审、测试、试运行等过程中发现缺陷的更改活动;跟踪缺陷处理的各个环节、避免 缺陷修改失控和遗漏;如实的反映缺陷处理过程。

Q: 怎么进行缺陷跟踪?

缺陷跟踪的起点是各种发现缺陷的活动,发现缺陷之后就进入了缺陷的跟踪流程,包括提交、 判断、分发、修改、复核和关闭几个关键步骤。

缺陷跟踪除了记录和跟踪缺陷的修复过程,很重要的还有对缺陷进行分类、统计和分析。

缺陷的类型一般分为一下几种:

缺陷类型 描述 可能的缺陷来源
用户界面 用户界面显示或者操作存在问题 详细设计
架构 系统存在架构方面问题 架构设计、概要设计
接口 系统内、外部接口错误,不能正常连接和工作 架构设计、概要设计
业务功能 业务功能不完善、未实现或者出现错误 需求分析、需求规格
系统功能 与业务无关,但是系统必须实现的功能不完整、未实现或者出现错误 架构设计、概要设计
性能 系统的响应时间、吞吐量、并发量等不满足需求 架构设计、概要设计、编码
可重用性 不满足被其他系统或者模块复用的要求 概要设计、编码
可移植性 不满足可跨平台移植或者部署的要求 概要设计、详细设计

缺陷的严重性说明了缺陷给最终交付的系统或者产品可能造成的影响程度。其中A级影响程 度最大,E级最小。

严重性等级 描述
A级(系统级) 系统整体崩溃,或者不能稳定地连续工作
B级(应用级) 部分应用或者子系统不能运行,或者不能稳定地连续工作
C级(业务级) 导致业务流程终止,或者因结果错误、数据不一致失败;因安全、容错性和性能问题等非功能性问题影响使用
D级(操作级) 不易于学习使用,界面操作困难;难以理解而不容易使用
E级(文档级) 安装手册、操作手册、在线帮助等文档不能提供帮助或者存在错误

技术

« 从零搭建和配置OSX开发环境 进程描述和控制 »

Comments