65.9K
CodeProject 正在变化。 阅读更多。
Home

任务跟踪电子表格中的“何时、何事、如何”关联(WWHA)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.73/5 (7投票s)

2009年7月5日

CPOL

9分钟阅读

viewsIcon

49326

downloadIcon

704

使用电子表格记录任务是一种通用、极简、便携、灵活且高度可定制的方法,几乎无需学习曲线。

目录

引言

保持井井有条的方法和人一样多。这不是一项简单的任务。为了提高效率并可能降低复杂性,人们设计了许多学科、思想流派和解决方案。事实上,Code Project[^]上最受欢迎的文章是ToDoList 5.8.4 - 一种简单但有效的方法来掌握你的任务[^]... 然而,尽管规划、跟踪和报告我们的日常任务至关重要,但并没有一个标准的方法来做。人们每次更换工作环境时,都必须适应一个新的系统(并遵守其要求)。本文建议使用电子表格来记录任务,这是一种通用、极简、便携、灵活且高度可定制的方法,几乎无需学习曲线。

所附的工作簿可作为衡量日常任务的模板。它没有宏,可在 Microsoft Excel [^] 和 OpenOffice [^] 中使用。它已成功通过这些应用程序的旧版本和新版本测试。

优点 

  • 普适性
  • 可以将电子表格视为潜在更大信息架构中的信息节点。它可以作为输入或输出到其他环境组件。同时,它以人类可读的格式呈现,并且可以使用各种工具进行操作(“可与 XML 媲美”)。
  • 极简主义
  • 市场上许多解决方案试图同时解决多个问题。它们会汇编大量信息,从而难以导航。相比之下,电子表格可以是一个相当简单的有针对性的数据收集模型。它允许您专注于您特别感兴趣的原始数据。
  • 可移植性
  • 感谢 OpenOffice [^] 和 GoogleDocs [^],有 Microsoft Excel [^] 的替代解决方案。它们提供了在非 Windows 机器和“云端”处理电子表格的方法。
  • 灵活性
  • 电子表格允许您添加、编辑、删除、搜索、格式化、注释以及派生数据和数据关系。各种功能 [^] 和图表可用于数据操作和表示。
  • 可编程性
  • 用户可以自由地添加、删除、显示或隐藏行和列。他们可以根据自己的喜好和需求格式化、筛选、验证和重新组织电子表格。只需很少的电子表格知识和大量的互联网资源,用户就可以完全重新设计模板的数据日志、信息查询和报告布局。

    缺点

  • 性能
  • 性能因应用程序及其版本而异。一旦数据日志超过 500 条记录,您在输入任务时可能会观察到一两秒的延迟。此外,GoogleDocs [^] 目前仅支持大小小于 1MB 的电子表格以及部分功能和图表。

    (!) 提高性能的一种方法是使用宏代替模板中的一些公式(例如,[^])。请注意,如果您使用宏,您将牺牲可移植性以换取速度。

    用法

    所附工作簿包含三个主要电子表格。目前,它们是 Def (用于所有定义)、Log (用于所有日常任务)和 Qry (用于所有查询)。
    (+) 您可以将模板中的电子表格重命名为您喜欢的任何标题。

    Def / 定义

    包含以下定义

  • Activity
  • 分析、设计、开发、代码审查、测试、集成、文档、部署、构建、问题、备注、错误/变更请求、会议、操作、培训和研究
  • 状态
  • 不适用、开放、进行中、待定、已完成、已取消
  • 优先级
  • 高、中、低
  • 影响
  • 高、中、低
  • 风险
  • 高、中、低
  • Tag
  • 不适用、<组件>、其他、所有
  • 类别
  • 不适用、维护、投资、流程、培训
  • 同事
  • 不适用、<用户>、所有

    (+) 您可以扩展或缩短任何定义。

    电子表格跟踪这些定义的使用情况,并显示每个定义和总体的出现频率和总工作量统计数据。相同的信息通过图表可视化。
    (+) 随意选择您喜欢的图表用于此目的。

    Definitions Tab (Pg 1)

    Definitions Tab (Pg 2)

    日志 / 任务

    包含以下列

  • RefID
  • 表示任务的父级。虽然该系统很难称之为分层,但它表明条目可以共享一个共同的参考框架。
  • ID
  • 识别任务代码。
  • Lnk
  • 将任务链接到外部资源。
  • Activity
  • 将任务链接到活动。
  • 描述
  • 包含笔记、评论、反馈、兴趣点等。
  • 添加 *
  • 指任务的创建日期。
  • 预计 *
  • 指任务预计完成所需的工作量。
  • 日期
  • 指任务的输入日期。它默认为任务的添加日期。
  • 工作量
  • 指任务的工作量([工作量 != 持续时间] [成本估算])。
  • 左侧
  • 指任务完成所需的剩余工作量。如果任务有工作量估算,则该单元格会根据估算工作量和迄今为止的总工作量自动填充。
  • 截止日期 *
  • 指任务的目标完成日期。
  • 总计
  • 指任务迄今为止的总工作量。
  • %
  • 指任务迄今为止的完成百分比。它是根据总工作量和剩余工作量计算的。
  • 状态 *
  • 指任务的状态,作为完成百分比的补充。
  • 优先级 *
  • 指任务在执行团队和所有其他利益相关者方面的优先级所可能具有的重要性/投资回报。
  • 影响 *
  • 指任务在用户满意度方面可能带来的变化量/附加值。
  • 风险 *
  • 指任务在及时完成、完整性、准确性、性能等方面可能引起的不确定性。
  • 标签 *
  • 将任务与来自另一个环境数据收集的自定义标签关联起来。
  • 类别 *
  • 指任务所属的流程。
  • 同事 *
  • 指与任务共同承担责任的同事。

    * 如果之前已输入相同代码和活动的任务,则该单元格会自动填充。

    (+) 您可以添加、删除或重新排序任何列。

    Activities Tab

    Qry / 查询

    包含以下查询

  • 按日期
  • 报告当前日期(默认)和用户指定日期(如果有)完成的工作。
  • 按月份
  • 报告当前月份(默认)和用户指定月份(如果有)完成的工作。
  • 按年份
  • 报告当前年份(默认)和用户指定年份(如果有)完成的工作。
  • 按 RefID
  • 报告所有无父级任务(默认)和所有共享用户指定父级或共同参考框架(如果有)的任务共同完成的工作。
  • 按 ID
  • 报告按其代码标识的任务完成的工作。此外,报告按活动细分,不仅显示工作量,还显示所有任务信息,格式为任务/项目摘要。

    Query Tab

    注释

    使用此电子表格记录自由格式的笔记、评论、计算、工作相关代币等。

    关注点

    理念上

  • 测量
  • 理想情况下,项目目标是 S.M.A.R.T. - 具体、可衡量、可实现、相关和有时间限制的 [^]。正确识别目标并衡量成功至关重要。历史数据可以揭示有助于预测未来成果的模式。然后,您可以轻松改进流程并简化决策。诸如“进行了多少次代码审查”、“在维护与流程与投资与培训上花费的时间百分比是多少”、“今年第一个月完成了多少工作”、“所有已修复的错误是什么”、“组件‘X’的制作涉及哪些工作”等形式的问题应该能立即得到答案。
  • 简化
  • 秉承帕累托法则 [^] 的精神,80% 的任务管理可以通过 20% 的数据实现。通过消除间接信息,焦点集中于手头任务的具体事实。与其理解任务和资源在企业层面如何交织,不如只操作与单一因素相关的数据。虽然您可能不知道项目是否按时并在预算内,但您总是知道自己的工作量。诸如“我还有哪些未完成的任务?”、“我还有哪些未解决的障碍?”、“我应用了哪些解决方案?”等形式的问题应该能立即得到答案。
  • 复用
  • 我们不必重新发明轮子来衡量和简化任务管理。所有所需的功能都已在不止一个软件产品中进行过探索。我们可以轻松地依靠电子表格以半正式的“快速”方式积累数据,并具有历史和快照视图。它提供了一种廉价、方便且无风险的解决方案。

    技术上

  • 定义
  • (+)您可以通过在最后一个定义之前插入并从上方拖动公式来增加定义。
  • Columns
  • 列已格式化为日期时间或文本。有些列具有基于前面讨论的定义的数据验证。有些列具有通常基于首次匹配的查找值。日期时间列没有默认值(但当前日期可从下拉列表中获取),以确保填写所需的日期。
    (+)您可以根据需要更改任何列中的值(并覆盖公式)。
  • 公式
  • 第一个索引
    =MATCH($B6;$B$3:$B5;0)

    查找第一个精确匹配的索引。 [^]
    超链接
    =IF(E4="";"";HYPERLINK(CONCATENATE
    ("http://tracker.kleinsystems.ca/browse/";E4);"^"))

    使用任务 ID 链接到公司 JIRA 站点,以获取任务的外部详细信息。
    Added
    =IF(ISERROR($C4);"";INDEX(I$3:I3;$C4))

    在第一个匹配行中查找此列 (I) 的值(cf.First Index)。如果未找到匹配项,则默认为 ""。
    预计
    =IF(ISERROR($C4);J$3;INDEX(J$3:J3;$C4))

    在第一个匹配行中查找此列 (J) 的值(cf.First Index)。如果未找到匹配项,则默认为单元格 J$3 中的值。
    状态
    =IF($E4="";"";IF(ISERROR
    ($C4);S$3;INDEX(S$3:S3;$C4)))

    当且仅当 $E4 中有值时(即提供了任务 ID),才在第一个匹配行中查找此列 (S) 的值(cf.First Index)。如果未找到匹配项,则默认为单元格 J$3 中的值。
    总计
    =IF($E4="";"";SUMIF($B$3:$B4;"="
    &CELL("contents";$B4);$N$3:$N4))

    当且仅当 $E4 中有值时(即提供了任务 ID),才将此列 (N) 的值相加,用于所有匹配条目。
    频率
    =COUNTIF(OFFSET($Log.W$4;0;0;$F$2;1);"="
    &CELL("contents";$A51)) 

    计算此列 (W) 中所有匹配条目的值。提供了一个偏移量来指示要搜索多远。默认情况下,它查看前 500 条记录。
    小时数
    =SUMIF(OFFSET($Log.W$4;0;0;$F$2;1);"="
    &CELL("contents";$A51);
    OFFSET($Log.N$3;0;0;$F$2;1)) 

    将此列 (W) 中所有匹配条目的值相加。提供了一个偏移量来指示要搜索多远。默认情况下,它查看前 500 条记录。
    最后一个索引
    =SUMPRODUCT(MAX((((OFFSET($Log.$B$3;0;0;$J$2;1)=
    $A19)*ROW((OFFSET($Log.$B$3;0;0;$J$2;1)))))))-2

    查找最后一个匹配的索引。它用于查找 Qry 电子表格上任务摘要报告的总计等。 [^]

    修订历史

    • 2009-07-05:在 CodeProject 上发布
    • 2009-06-28:初稿
    © . All rights reserved.