与前几天相比,我如何跟踪自己正在开发软件的效率更高或更低?
与前几天相比,我如何跟踪自己正在开发软件的效率更高或更低?
Answers:
可以根据您的需要大致采用以下两种建议,但是在两种情况下,您都需要事先进行估算,然后进行临时分析(坦白地说,我不确定是否存在另一种有效的方法来衡量此指标,我同意与TheLQ一样,每个时间段的代码行根本无法使用)。
敏捷开发方法论
尽管我不确定将其应用于单个开发人员场景的效率如何,但是敏捷中使用的一些原则在您要实现的目标中可能会很有用。敏捷工作是在周期中进行的,其中开发人员旨在实现故事(任务),这些故事(任务)根据开发复杂性在开发周期开始时进行评分(以分计),然后在每个周期结束时进行分析。这允许确定速度,即开发人员或团队可以在单个开发周期内完成的点数。
如果您的工作方式允许您采用某些原理并按周期组织工作,则可以使用“ 每个开发周期的速度”度量标准来跟踪效率。请注意,周期通常会持续2-3周,但是,仅将其自己使用时,应该可以缩短周期。一切都取决于您是否可以在环境中采用这种方法。
基于证据的计划
即使它主要是为了改进估计值,您也应该能够有效地使用它来跟踪生产率下降的趋势。
这是一种有意义且准确的生产率衡量标准,涉及拍摄多个基于证据的计划快照:
收集了几天的统计数据后,请运行Monte Carlo模拟并观察该图,该图应如下所示:
然后再进行一天的工作,然后再次运行模拟。如果您当天的工作效率很高,则图表应会发生如下变化:
最重要的是,如果您当天是产品,那么自您上次在工作日之前运行模拟以来,任何给定日期的发货日期概率都应该增加。如果减少,那么你少在那一天生产。
当然,EBS的准确性会随着时间和经验的增加而增加,因此这可能是船期概率值发生变化的另一个原因。因此,您至少要在几天的采样工作之后才开始执行此操作。即使没有这种情况,如果您在某一天或另一天的工作效率显着提高,则概率应该会显着提高。
计算行数是不完善的度量,因为它无法深入了解代码的质量,但可用于确定总体生产率。根据您使用的语言,有不同的工具可以为您计算代码行,但是我已要求Git存储库BitBucket添加与生产率相关的统计信息。
https://bitbucket.org/site/master/issue/4307/feature-request-contributor-statistics
暂时假设生产力可以管理您的时间,这样您就可以利用所有工作时间来完成任务,而造成浪费时间的任何事情-即:未完成任务所花费的时间-富有成效的。
您唯一能做的就是记录一天中参加各种活动的时间。时间拳击是一种用于多种用途的技术,但适合这种工作方式来记录您一天的活动。花15分钟在计时器上只是要做一些事情。如果任务是您应该执行的任务,那么您的时间就是有成果的。如果您发现自己正在编辑博客,阅读新闻报纸或幻想着那个会计方面的好姑娘,那么您的时间可能会毫无用处。在一天结束时加点时间,您会感觉自己的生产力如何...
但是有一个陷阱!您接下来的几分钟会做什么?您知道,休息5分钟,去吃午饭,让您的老板打扰您,告诉您他上次钓鱼时没有钓到的那条大鱼吗?记录所有这些。只要您不会每10-15分钟休息5分钟,休息时间就不会浪费,只要它有助于您的心理健康和福祉...!至于其余的中断,处理其他与工作有关的问题..所有这些都可以跟踪。
当然,您会发现自己沉迷于此类工作,如果老板是看到您有时间限制并以此为理由进行更多工作或批评您的工作的人之一,那么上帝会帮助您。您会发现,对工作时间的痴迷是因为您可以工作一整天,但最终仍然没有完成任何与实际相关的工作。有时候,您可能会编写代码,就像黄油在您的大脑中融化一样,然后渗入您称为屏幕的三明治……而其他日子,您可能会遇到严重的心理障碍,因为您尝试357种不同的方法来做同样的事情事情,只能看着它失败。许多人会说,连续的“故障”可能是徒劳的,而且无论您花费多少时间和时间来记录自己的时间,本身都将无济于事。
另一种看待它的方法是简单地设定一些目标,在一天和一周内完成,然后努力完成这些目标。如果您确实实现了目标,则可以辩称自己一直富有成效;如果您没有实现目标,则可能需要了解为什么没有实现目标,并确定自己是否有生产力根据错过目标的实际原因。最终,如果您在需要时提供了有效的代码,并且可以通过测试并完成了任务,那么您的工作效率就很高。只有在有合理的理由以后再进行统计分析时,这些度量才有价值。