鼓励软件工程师跟踪时间


24

我如何鼓励我的同事追踪他们花费在解决问题和实现功能上的时间?我们有执行此操作的软件,但他们只是不输入数字。

我希望团队将我们过去的估算与实际花费的时间进行比较,从而更好地提供项目估算。我怀疑我的同事没有看到个人利益,因为他们不经常参与项目计划。


6
可能的问题是,他们必须输入数字,而不是让软件跟踪时间,而只是要求他们定期设置活动的描述并按记录。我为自己编写了一个程序来解决这个问题,因为我会整天呆在该区域中,然后浮出水面,并且很难生成当天的“时间日志”。参见softwaremonkey.org/Program/TimeKeeper
Lawrence Dol

3
只要对他们做,对我工作过的一家公司所做的一切对我来说都是一样的。分配任务,立即让他连续3天与您一起参加会议,然后在会议要求后立即知道为什么任务没有完成。
user16764 2012年

2
当我在回家的路上解决问题时,我该把数字放在哪里?
Pieter B

1
@PieterB IMO如果您经常花足够的时间思考汽车上的工作问题,以提高生产率,那么我认为应该跟踪项目估算的时间,即使它没有补偿。是时候该花时间在办公桌前思考了。另一方面,如果这是一个一次性的启示,我认为这不值得跟踪,因为这不是您可以根据项目估算得出的。
M. Dudley

1
@PieterB绝对是灰色区域。一切都取决于在制定进度表和项目估算时是否有用。
M. Dudley

Answers:


41

我怀疑我的同事没有看到个人利益,因为他们不经常参与项目计划。

那是可以解决的。

让他们参与调度。


2
对此有一个报价,但是我的大部分书仍然被收拾了。工程师本身最擅长调度,因此应该从第1天起就参与项目的调度。我想说的是Steve McConnell的Rapid Development,但我不确定。
Thomas Owens

4
我最近在一个我的项目(6个月的项目)中看到,我们的PM分配了4个小时与另一个应用程序集成。只需说整合将花费大量时间,我本人和另一位开发人员就认为这很可笑。
克里斯(Chris

@ThomasOwens每当我被告知BA或PM需要花费多长时间时,它仍然使我感到困惑。这个谬论是如此彻底揭穿它的悲哀意识到它只是意味着没有BAS系统的项目经理或做他们工作的阅读有关行业半点。
吉米·霍法

21

乔尔·斯波斯基(Joel Spolsky)写了一篇有关“基于证据的计划”的文章,该文章可能会帮助您找到一些争论。

您必须说服您的同事,更好的估算技能可以帮助他们生产更好的软件。以下是有助于跟踪任务时间的几点:

  • 如果您对管理设定了最后期限,则可以通过合理的估算告诉您这段时间您可以实际完成什么工作。作为奖励,您可以使用一些漂亮的图表来说服经理您知道您在说什么。
  • 您必须更仔细地考虑整个项目。我链接到的文章指出:“您必须将日程安排分解成非常小的任务,可以在数小时内完成测量。” 由于您几乎考虑了项目的各个方面(希望编写规范!),因此您对未想到的事情感到惊讶的可能性大大降低。
  • 它使您成为更好的开发人员。随着时间的推移,您会看到自己倾向于低估哪些任务,因此您可以花一些时间在这些特定任务上做得更好,而不是盲目地进行优化。

1
+1,第二点。我发现,使用几天或几周的时间进行度量的任何估算在几天或几周内总是不准确的。如果您要休息几个小时,则始终可以更准确地重新计算其他估算值。编写规范或构建PoC工件可以进行更准确的估算,尽管为这些项目提供估算并非那么简单。
Vineet Reynolds,

10

您可以以标准方式完成此操作-胡萝卜和棍子。

在这种情况下,可以通过“了解我们的当前速度来改进将来的估计”(但您必须遵循)。

您的意见是他们不经常参与项目进度安排,这可能使这很难。

其中功能最强大的功能,尤其是如果您有PSP的任何追随者时,就是在帮助他们变得更好。

最常见的棍棒(用来打败他们,而不是将胡萝卜抱在他们面前)是“必须这样做”。虽然动机不多;至少位置是明确的。

最后,您使用的软件是否有助于保持沉默?笨拙吗?他们是否必须先在系统A中查找时间码,然后才将时间投入到系统B中?是否太细致,是否不允许“停工”时间,并且每天需要进行8个小时的记帐?使其尽可能无摩擦,也有助于采用。

祝好运


5
最后一段+1。与不进行时间跟踪相比,使时间跟踪变得更容易,并且突然之间神奇地完成了工作。
Scott

5
很好的最后一点-我讨厌必须在10分钟内写出基于Web的下拉菜单时必须查找8位数字(我使用保存在桌子上的估算骰子估算)。另外,我不会使用“了解我们当前的速度”之类的管理宾果游戏术语,而是“如果我们使时间表切实可行,您就不必花很多时间强制性的无偿加班,就可以在时间表的末尾收拾东西。从...开始。”
Wonko the Sane 2011年

@Wonko +1 “估计骰子” :-)
SDG

8

以我的经验,以下是大多数时间跟踪软件的问题:

  • 开发人员没有能力或没有权限将任务分解为更容易估算的子任务。
  • 有没有好的方法来解释你不知道,直到你开始做某件事情的子任务,其出现的情况所有的时间在软件开发和调试。
  • 时间是在事实发生之后输入的,这时您很难记住确切的任务投入了多少精力,会议,同事的问题,同行评议以及其他开销有多少投入。
  • 没有解决非跟踪任务的好方法。在一天结束时,即使其中有6个是花在处理会议等事务上的,您是否也花了8个小时?
  • 没有很好的方法可以解释和传达估计中的不确定性。

我已经开始为自己使用番茄技术解决了许多此类问题。如果我在一个任务上不间断工作25分钟,那么它将立即被记录下来,而我的估计是根据这些不间断间隔进行的。我仍在努力整合基于证据的计划表来传达不确定性,并将我自己的细粒度跟踪结果转换为PM所喜欢的粗略计划表估计,但是到目前为止,这肯定是一种改进。


6

好办法

使用实际上使它变得简单且几乎透明的软件,例如Mylyn。与诸如小时燃尽图之类的工具结合使用。

不好的方法

强迫他们填写繁琐的时间表,您必须在其中手动指定项目,任务,确切的日期和时间等。


3
我希望您填写了tt-proc-1b表格以记录回答该问题所花费的时间,然后让管理人员签字同意所花费的时间。并且您填写了tt-est-1a表格以记录在开始回答该问题之前您将花费在回答该问题上的估计时间?
gbjbaanb

mylyn / tasktop ...并不完美,但是可以肯定的是,对于良好的时间跟踪,还有很多其他工具的副作用,它直接为程序员带来了实际的收益...不够完美,但是幸福极了!
Newtopian 2011年

2

如果您不是团队负责人/ PM,那么您将为此而苦恼。人们不喜欢听同事的话,如果这需要他们做比绝对必要的更多的工作(无论如何,根据我的经验)。尝试与您的团队负责人或项目经理进行接洽,如果他们同意您的情况,他们可能只需强制记录时间即可(这就是我目前工作的地方)。

如果您是团队负责人/项目经理,则您需要发挥更大的作用:这些人在那里(有效地)告诉您他们所做的事情;如果您需要更多的信息来完成工作,则应该让他们提供帮助。信息。如果他们不愿意帮助您获取信息,可能是因为他们不了解信息为什么有用,请尝试与他们进行交谈,以解释您的项目经常会超出计划/被高估/什么,以及为什么会造成这种情况您遇到的问题,看看是否可以解决!


2

跟踪您的时间或不得到报酬。数以百万计的人(顾问,律师等)这样做,为什么不能呢?

有些人可能认为这相当严厉,但事实并非如此。如果您在星巴克工作,则必须打扫浴室。如果您在银行工作,则每天都要穿西装打领带,如果您是团队中的软件工程师,需要您跟踪时间,那就去做吧

有时,我们不得不在自己不喜欢的工作中做一些事情。我们都是大男孩和女孩,我认为我们应该能够应付。


1
正是我要说的。特别是如果您有客户支付账单,您又如何知道向他们收取什么费用呢?我保证一张迟付的薪水是因为有人没有花时间可以永远解决这个问题。
HLGEM 2011年

2
这是起诉未支付加班费的绝佳方法,因为这些员工没有向您声称拥有FLSA豁免资格但又没有资格获得豁免的员工支付工资,因为您是根据绩效来对付工资。
Wooble 2011年

1
@Wooble:显然,我不提倡采取行动使您容易受到起诉,或以任何方式虐待员工。但是想法是一样的。应该对不做自己的工作感到遗憾。在许多情况下,跟踪时间是您工作的一部分。因此,也许您不停付薪水,但是您警告并放宽了试用期,不管这是什么道理,但事实是,您必须做好工作。不这样做很自私,因为它也会影响您所有的团队成员。
理查德

@HLGEM:您的观点是正确的。如果您与客户的合同是基于T&M的,则您最好跟踪自己的时间,否则就会不诚实。
理查德

不幸的是,我无权强制任何时间跟踪,因此我需要寻找其他方法。
M. Dudley

1

显然,最佳答案完全取决于团队的心理素质。他们有竞争力吗?设计一个定期竞赛,奖励获奖者在系统中投入的时间。调整并调整比赛,使玩家认为比赛公平有趣。使其成为游戏。

也许他们担心,如果透明地知道他们实际花费多少时间执行任务,将会带来负面影响。我一直想知道如何设计一个匿名的“工作量跟踪工具”,并且每个存储桶的级别足够高,以至于会有多个人在每个存储桶中投入大量的工作量,因此每个参与者都无法被挑选出来。甚至只是为高层项目桶获取更准确的工作成本对于项目计划和总体团队速度而言可能都是有用的数据,但这将避免使用“ OMG,我不敢相信Joe将他的估算值提高了3倍来做这么简单的事情.. ”,否则人们会害怕在传统的时间跟踪系统中进行举报。

我想这只是两个例子,但实际上,掌握团队的心理组成将为您提供有关如何激励或鼓励他们贡献工作成本信息的正确答案。


透明度为+1。我必须做一次时间跟踪系统,故意使管理人员很难确定确切的开始和结束时间,相反,他们只能看到总花费的时间。这样一来,工作人员何时进行工作就无关紧要,只需完成工作和花费多长时间即可。一点细节,但仍然。
James

1

想一想为什么他们对这个要求的回应不佳。不要仅仅假设他们懒惰或避免努力。

避免提供证据的开发人员通常是

  • 担心如何使用和/或
  • 关注数据的有效性

这就是近年来基于积分的估算和衬衫尺码增长的原因。它考虑了估计过程的非常不确定的性质,并允许“魔术”(又称不确定性的平均值)来控制调度。

而且,尽管它看起来似乎不合逻辑,但它确实可以正常工作-至少与基于小时或基于天的系统一样有效。如果以任意方式完成任务,一个团队或个人很难将他们一个月内所取得的成就付诸实践。

Scrum还允许开发人员控制速度,这意味着他们承诺要实现从A,B和C或A,Y和Z中选择的任何内容。当他们做出承诺时,开发人员不喜欢失败。但是如果您为他们做出承诺,他们将不会在意。错是你的错。

我了解您是在说您不会以这种方式使用重新估算,但是您的团队中的个人对此有多确定?


1

任何需要程序员投入更多时间来远离编程的工具都不一定是件好事。程序员已经有很多开销,他们没有5分钟的会议,而是编写一场风暴。

如果您有权力,可以强迫他们这样做。但是到目前为止,最好的解决方案是构建一个无缝的工具,使其变得轻松。我无法告诉您如何进行设计,但是为了进行编码,您想要记录在开发环境中所做的更改。这曾经是一个不可能的高标准,但是如果您使用的是类似Eclipse的工具,那还不错,也许它已经存在。这样,您可以测量每个文件(可能在Java中)每个方法要花费多少时间。与要求他们进行结算相比,该信息要细得多,而且可能非常准确。

同样,如果您有输入设计的工具,则可以在那里截取。


0

取决于您希望他们如何以及为什么要跟踪时间,我们还只是在计算办公室的时间还是在通勤上花时间思考问题的时间?

项目计划很困难,并且您获得的指标很有可能不会像您认为的那样有用。没有两个问题是相同的,因此一项任务可能需要八个小时,而另一项任务可能需要32个小时才能完成。

您可能要研究基于证据的调度,因为它可以让开发人员估计任务将花费多长时间,然后根据其估计的好坏随时间进行调整。但是,对于大型项目而言,它并不那么理想,因为您可能不知道所有预先的任务。对于大型项目,您最好查看过去类似规模的项目,并以它们作为衡量标准,而不是尝试合计单个估计。


0

尝试将其介绍给个人组织系统,例如Pomodoro技术(还有很多其他系统,但这就是我现在正在尝试的系统)

该技术使用计时器将工作周期分解为25分钟的间隔,称为“ Pomodori”(意为“西红柿”,意为“短暂休息”)。该方法与软件设计中使用的时间框以及迭代和增量开发等概念紧密相关,已在结对编程环境中采用。该方法基于这样的思想,即经常休息可以提高心理敏捷性。


0

与其说服他们输入号码,不如使用一款轻松工作的软件。我正在使用ScreenAware:https ://www.screenaware.com/cn/ 它会自动跟踪您的时间并将其分配给各个项目。因此,它始终是准确的,而且无需再猜测


此特定解决方案可能不适用于OP的一般问题。虽然提供链接很好,但是下次除非OP特别提到针对他的问题请求软件解决方案,否则请尝试提供更通用的解决方案。
尼尔

-1

您是否考虑过使用现有的票务系统?我们的票务系统监视从创建票证到关闭票证的时间。如果您为任务创建工单并将工单号作为提交代码的要求,那么您将获得更多回报。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.