如何有效衡量开发人员的工作时间?

时间:2009-10-15 15:03:27

标签: measurement

我有一些软件开发人员为我的项目工作,我想为他们提供一种方法来记录他们在实际开发上花费的时间。

有良好的意愿来注册开发时间,没有力量,但我们尽量避免像excel表注册这样的技术,因为这是非常不舒服。

我可以跟踪svn提交,但这是不可靠的。开发人员还有助于在白天支持不同的项目,因此假设他们整天在一个项目上工作是不正确的。

我见过实用程序每小时弹出一条消息来确认你正在进行的项目,但这很烦人。

某种类型的active-window-title-anaylzer可能会有所帮助(在Visual Studio的情况下你可以从那里获得解决方案名称),但我没有这方面的经验。

如果您有任何与程序员/设计师工作时间注册的经验,请与我分享。 感谢

11 个答案:

答案 0 :(得分:9)

这是一个很好的问题,你可以用来衡量开发项目花费的时间的最佳方法就是不测量花费的时间。

你说有良好的意愿来注册时间,但我有疑虑。实际上,从开发人员的角度来看,过多的时间管理会让大多数人(也许是地球上的所有开发人员)分心。

我能理解为什么在ODesk上如此过度地测量时间。这是有充分理由的,因为项目时间由客户预先支付给ODesk,开发人员需要向ODesk证明工作时间。付款也是有保证的,它不太可能是oDesk提供商和开发商在现实生活中遇到的,所以没有信任。

由于您不太可能预先向开发人员付费,而且您更有可能建立更好的信任,因此您可能需要将注意力从管理策略转移到一些更有用的方面。

是女士们,先生们,我说的是Scrum。抛开你的开发人员每小时每小时标签的概念(他们会爱你)。而是将Scrum Management引入场景中。

为您的产品开发创建一些sprint(里程碑),并且在其中有一个迭代列表(批量可交付的s),尝试将您的迭代保持为每周一次。 创建产品待办事项,并确保您知道究竟是谁在做什么。找到团队中的某个人代表您充当Scrum master,或者自己承担这个责任。确保您每天都有反馈会议,让他们保持简短和专注,以确定可能会影响可交付成果的任何风险。让开发人员或多或少地推动计时流程,并获得对任务的实际估计。

阅读一本关于scrum的书或2,让其他人和团队成员参与学习曲线。调整基本Scrum方法以最适合您的特定管理方式,我向您保证,您将拥有一支非常快乐的团队。

衡量你在人工日的时间,并尽量避免在开发人员的背后逐步进行...

答案 1 :(得分:3)

您可能已经在谷歌搜索中看到了各种时间跟踪软件工具。但老实说,你要求时间跟踪的圣杯。例如,您是否认为开发人员盯着她的代码并将其视为开发时间?她可能会盯着屏幕看1个小时,只打10分钟。在这种情况下,当它们真正工作1小时10分钟时,看起来它们不起作用。我并不是说你要求的东西不是一个有效的东西,它似乎只是那些没有完美解决方案的问题之一。

祝你好运。

答案 2 :(得分:1)

我认为你问的是错误的问题并且正在走向滑坡。开发中有太多与实际编码无关的内容。

如果您对跟踪某些内容感到厌倦,我认为更好的解决方案是跟踪与开发无关的活动所花费的时间。当然那里也有一些灰色区域。例如,即使不进行编码,也应该将讨论用户需求的会议计入开发阶段。

答案 3 :(得分:1)

你需要这样的dashboard来衡量任务的时间。了解真正的软件开发人员时间的唯一方法是跟踪它。这样,当他们切换任务时,他们可以停止计时。我认为最困难的事情是让开发人员使用它来衡量他们在某个项目甚至代码模块上工作的时间等等。如果你可以使用这些指标来减少分心和其他时间,你可能会在至少能够得到关于他们花费编码与电子邮件花费多少时间而不是与其他开发人员交谈的好消息。

答案 4 :(得分:1)

如果您正在尝试衡量开发人员作为活动窗口的内容,您必须承担善意,因为任何体面的开发人员都可以绕过它,如果您试图打开它们的话。例如,我在Firefox中花费了大约三分之一的“开发时间”来查看引用。

也许要求开发人员保留日志,以便知道他们的时间在哪里?虽然这不是理想的,但你永远不会做得更好。

答案 5 :(得分:1)

如果您正在尝试测量分散注意力和干扰以及其他任务所花费的时间,那么您是否愿意自愿向您提供这些信息? 你在某处说过你正在实施scrum。

如果你真的不得不在日常的scrum上接受它,把它作为仪式的一部分,或者在一天结束时添加一个非常短的日常会议。让开发人员猜测在干扰,干扰和其他任务上花了多少时间。对于我来说,考虑到所遇到的困难,感觉它会像任何其他测量方法一样接近“正确”。

因此,不要让开发人员记下时间,而是让scrummaster完成工作,并尽可能让开发人员尽可能轻松。确保开发人员从这样做中获得一些有形的东西,否则它将很快地在障碍列表中结束。

正如Dean J暗示的那样,无论如何你必须相信开发者。

答案 6 :(得分:1)

这取决于您的IDE - 如果您使用的是Eclipse,那么我建议您使用Mylyn插件。您可以测量每项任务所花费的时间。可以从每个着名的任务存储库中获取任务,即Tuleap。详情here

用户只需要将任务置于活动模式 - 并在任务完成时停用以便能够停止计时器。我认为Mylyn将支持这样的过程 - 如果任务的状态发生变化,那么这将触发活动模式(如果关闭然后停用任务)

有时开发涉及使用浏览器或终端。 Eclipse既可以用作浏览器,也可以用作terminal - 因此开发人员不需要离开Eclipse - 因此几乎每个活动都可以与任务相关联。

答案 7 :(得分:0)

答案 8 :(得分:0)

活动窗口分析器不会给您可靠的结果,因为您的开发人员将在程序之间切换(Outlook,文件资源管理器,版本控制,Internet浏览器等)。您建议的分析器不会记录该时间,尽管它很可能是开发人员投入项目的开发时间的一部分(软件开发不仅仅是在VS中进行编码)。

答案 9 :(得分:0)

尝试衡量开发人员的工作时间是错误的观念。一个正确的问题是程序员的有效性。这不能通过编码时间,坐在电脑前的时间等来衡量。

正如Joel Spolsky在blog on software craftsmanship中所做的那样,软件开发“......不是制造过程。”

这篇关于invasive programmer productivity measurement tool的SO文章中出现了一个相关但有些不同的讨论。

答案 10 :(得分:0)

我绝对不建议您使用任何时间测量开发人员被迫的软件。这对开发人员的注意力来说是一个巨大的分心。

相反,可以使用以下简单技术:

电子表格:适用于较小的项目或开发团队

可能没有什么比在线创建和共享电子表格,向其添加项目任务,将任务分配给开发人员,让开发人员估计他们的任务的时间,让他们更新他们的任务状态(非常粗略的价值)更容易在他们想要的0到100%之间,让他们指定完成任务真正花费的时间(小时)。

因此,在电子表格中,您可能会有以下列: 任务名称,分配给,估计小时数,实际小时数,完成时间(%)

Google云端硬盘电子表格可能就是答案。 这是一种非常简单快速的方法,可以最大限度地分散开发人员的注意力。

Scrum:适用于大中型项目或开发团队

任务和Scrum信息被记录并保存在办公室的板上和/或可以使用特殊的Scrum应用程序。一个好的网络Scrum应用程序是 Pivotal Tracker ,我推荐用于任何规模的项目或团队。

有关Scrum的更多信息: http://en.wikipedia.org/wiki/Scrum_(development


在这两种情况下,产品所有者(客户或与客户打交道的人),项目经理和所有开发人员都可以更好,更快:

  • 通信
  • 估计
  • 了解团队及所有相关人员的进展情况