跳转到内容

软件工程/工具/项目管理简介

来自维基教科书,开放世界中的开放书籍

项目管理软件是一个涵盖多种软件类型的术语,包括估计和规划、排程、成本控制和预算管理、资源分配、协作软件、通信、质量管理和文档或管理系统,这些软件用于处理大型项目的复杂性。

项目管理软件的任务或活动

[编辑 | 编辑源代码]

最常见的用途之一是安排一系列事件或任务,排程的复杂性可能因工具的使用方式而异。一些常见的挑战包括

  • 以不同方式相互依赖的事件或依赖关系
  • 安排人员在不同任务上工作,以及这些任务所需的资源,通常称为资源排程
  • 处理每个任务持续时间估计中的不确定性

提供信息

[编辑 | 编辑源代码]

项目规划软件可以预期会向不同的人员或利益相关者提供信息,并可以用来衡量和证明完成项目所需的工作量。典型的需求可能包括

  • 人员的任务清单和资源分配计划
  • 关于任务完成所需时间的概览信息
  • 对项目任何风险的预警
  • 关于工作量的信息,用于规划假期
  • 证据
  • 关于项目进展的历史信息,特别是实际和计划绩效之间的关系
  • 最佳利用可用资源

项目管理软件的方法

[编辑 | 编辑源代码]

项目管理软件可以实现为在每个用户的桌面上运行的程序。这通常提供最具响应性和图形密集型类型的界面。

桌面应用程序通常将数据存储在文件中,尽管有些应用程序能够与其他用户协作(见下文),或将数据存储在中央数据库中。即使是基于文件的项目计划也可以在用户之间共享,如果它位于网络驱动器上,并且一次只有一个用户访问它。

桌面应用程序可以编写为在多个操作系统的异构环境中运行,尽管这并不常见。

基于网络

[编辑 | 编辑源代码]

项目管理软件可以实现为 Web 应用程序,通过内联网或外联网使用 Web 浏览器访问。

这具有 Web 应用程序通常的所有优点和缺点

  • 可以从任何类型的计算机访问,无需在用户的计算机上安装软件
  • 易于访问控制
  • 天生就是多用户
  • 只有一个软件版本和安装需要维护
  • 集中式数据存储库
  • 通常比桌面应用程序响应速度慢
  • 当用户(或服务器)脱机时,项目信息不可用(尽管某些解决方案允许用户脱机保存数据副本)。

个人项目管理应用程序是在家里使用的一种应用程序,通常用于管理生活方式或家庭项目。与单用户系统有相当大的重叠,尽管个人项目管理软件通常涉及更简单的界面。另请参见下面的非专用工具

单用户

[编辑 | 编辑源代码]

单用户系统是在假设一次只有一个用户需要编辑项目计划的情况下编写的。这可能用于小型公司,或那些只有少数人参与自上而下项目规划的公司。桌面应用程序通常属于此类。

协作系统旨在支持多个用户同时修改计划的不同部分;例如,更新他们个人负责的区域,以便这些估计被集成到整体计划中。基于网络的工具,包括外联网,通常属于此类,但它们有一个限制,即它们只能在用户拥有实时互联网访问权限的情况下使用。为了解决这个限制,一些使用客户端-服务器架构的软件工具提供了丰富的客户端,这些客户端运行在用户的桌面计算机上,并在用户定期连接到网络时通过中央服务器将项目和任务信息复制给其他项目团队成员。一些工具允许团队成员签出自己的时间表(以及其他成员的时间表作为只读),以便在不连接到网络的情况下对其进行操作。重新连接到数据库时,所有更改都会与其他时间表同步。

集成系统将项目管理或项目规划与公司生活的许多其他方面结合起来。例如,项目可以将错误跟踪问题分配给每个项目,项目客户列表成为客户关系管理模块,项目计划中的每个人都有自己的任务列表、日历和与其项目相关的消息功能。

同样,SourceForge 等专用工具将项目管理软件与源代码控制 (CVS) 软件和错误跟踪软件集成在一起,以便将每条信息都集成到同一个系统中。

非专用工具

[编辑 | 编辑源代码]

虽然专用软件可能很常见,并且每个供应商都大力推广,但还有大量其他软件(和非软件)工具用于规划和安排项目。

  • 日历软件通常可以像专用软件一样轻松地处理调度。
  • 电子表格非常通用,可用于计算设计人员未预料到的事情。

项目管理软件的批评

[编辑 | 编辑源代码]

以下内容可能普遍适用,也可能适用于特定产品或产品中的某些特定功能。

  • 可能不是从合理的项目管理方法中得来的。例如,默认情况下显示甘特图视图会鼓励用户过早地关注定时任务调度,而不是确定目标、交付成果和事件的强制逻辑进度(先挖沟才能铺设排水管)。
  • 可能与项目管理方法的类型不一致。例如,传统(例如瀑布模型)与敏捷(例如Scrum)。
  • 主要关注规划阶段,没有提供足够的项目跟踪、控制和计划调整功能。可能过度依赖项目计划的首次纸质打印,这仅仅是某一时刻的快照。计划是动态的;随着项目的进展,计划必须进行调整以适应提前完成、延迟、重新排序等任务。良好的管理软件不仅要促进这一点,还要协助评估影响并传达计划变更。
  • 没有明确区分规划阶段和规划后阶段,导致用户在软件未按预期运行时感到困惑和沮丧。例如,在项目仍在规划阶段时,为一项任务分配额外的人力资源来缩短其持续时间。
  • 提供复杂的功能以满足项目管理或项目调度专业人士的需求,必须理解这些功能才能有效地使用该产品。额外的功能可能过于复杂,以至于对任何人都没有用。例如,复杂的任务优先级排序和资源调配算法可能会产生结果,这些结果从直觉上讲毫无意义,并且过度的分配通常更容易手动解决。
  • 有些人可能使用更简单的方法(例如笔和纸)取得更好的结果,但由于公司政策的压力而被迫使用项目管理软件(讨论)。
  • 与 PowerPoint 类似,项目管理软件可能会屏蔽管理者与重要的面对面交流。
  • 新型软件正在挑战传统的项目管理定义。通常,项目管理软件的用户实际上并没有管理一个独立的项目。例如,管理已发布产品的持续营销,在传统意义上并不算一个“项目”;它不涉及管理独立资源来完成具有明确开始和结束日期的事情。协同软件现在添加了“项目管理”功能,直接支持这种面向工作流的项目管理。传统训练有素的项目经理可能会争论这是否属于“合理的项目管理”。但是,此类工具的最终用户会将其视为项目管理,而项目管理的实际定义可能会发生变化。
  • 当有多个大型项目时,项目管理软件非常有用。但是,如果只涉及一个小型项目,可能就不应该使用管理软件,因为管理软件会产生比实际价值更大的时间开销。
  • Eric Uyttewaal: Dynamic Scheduling With Microsoft(r) Project 2000: The Book By and For Professionals, ISBN 0-9708276-0-1
  • George Suhanic: Computer-Aided Project Management, ISBN 0-19-511591-0
  • Richard E. Westney: Computerized Management of Multiple Small Projects, ISBN 0-8247-8645-9
华夏公益教科书