量化自我与IDE相遇:一年的数据

一年多以前,我开始准确跟踪我使用WakaTime处理的代码。 当我从专门的开发人员转为更一般的开发人员时,我希望一些真实的数据可以知道我要关注的重点。 我可以用来驱动决策的数据。 我是否能获得全部照片? 我们的团队是否也专注于本次冲刺的运营? 我在学习我想学习的东西吗?

数据

既然我拥有当年的可靠数据,就可以进行一些分析。 我今天要探讨的问题是“那时候如何花时间按语言分类编码?” 我们主要进行结对编程 ,因此我捕获的实际数字并不准确,但我相信这些百分比是正确的。 WakaTime与Sublime,Visual Studio和JetBrains工具挂钩,因此它几乎捕获了我的所有源代码编辑。 它可能确实代表了运营工作,因为它没有与终端的连接。 我只将它放在我的工作机器上(这是我对测量所感兴趣的东西),因此没有其他项目。 最后要注意的一点是,数据中有8%的时间都花在了“其他”上,这是各种技术,配置文件和其他随机内容中暂存缓冲区的抓包。 无论如何,这是按语言细分的一年数据:

20160410a

对我来说,有几件事情突然发生:

18%的基础设施
尽管总体上未对操作工作进行表示,但是作为代码的基础架构却没有。 所有的Bash和YAML(Ansible和Bosh )都属于此类别。 因此,我已经花费了大约18%的时间来对基础架构进行编码。 前端12% TypeScript和JavaScript之间的区分非常有用,因为出于历史原因,UI是TypeScript,而JavaScript则代表服务器端Node.js代码。 因此,将HTML折腾到前端工作中约占12%。 60%后端 将JavaScript,Go和C#加起来,可以完成约60%的后端工作。 5%文件 Markdown是文档,注释或知识库文章。 这比我猜想的要高。 4%的数据 约4%的JSON非常有趣,因为这是花在查看数据上的时间。 那里有一些配置文件,但是当我查看数据时,基本上是花时间研究API请求和响应。 2%的阅读OSS Ruby是一个离群值,因为我实际上并不编写Ruby代码。 我大部分时间都在研究底层开放源代码软件,以确切地了解其行为方式或原因。 这甚至不是为了改变事物而做的事情,这仅仅是我们构建平台的理由。

我对“全栈”或“开发人员”一词不屑一顾,所以我只是将我们的团队称为通才集合。 但是,至少对于n = 1的样本量,该图具体看起来像是与其他通才团队一起工作的通才。

思想

我现在在专家和通才角色上都花了很多时间。 我对当前模型非常满意的一件事是,每个团队成员都使用所有技术,并且人们有理解力和授权去解决任何地方的问题。 当我非常专业时,有时无法解决我所在地区以外的问题时,我会感到沮丧。 实际上五年前,我更加专心地写了一点

……获得一些经验。 我是一名Web开发人员,但是在我们的商店里,我们非常专业。 开发人员对服务器维护的处理不多。 这种专业化使小组可以提高工作效率,但同时也使解决应用程序和服务器之间的边界问题(例如,类加载问题)更加困难。 缺乏处理此类问题的经验令人沮丧。

我们的团队,直到个人,都有能力并有望解决问题并改善我们产品的各个方面。 那是一个强大的概念。

我还认为,激励措施可以很好地协调这种方式。 “ 您构建,运行它 ”意味着我们处于待命状态,因此我们*花*时间进行监视和自动化。 上面我花了1/5的编码时间用于自动化基础架构,就可以看到它。 我的软件使我半夜无法入睡,它的确改变了人们的视野。 提供可靠的东西变得更加重要。 当可靠性与功能交付脱节时,存在着非常现实的道德风险。

这也适用于其他领域。 我们也在构建和使用我们的API,因此我们在实用主义和核心HATEOAS之间取得了平衡。 当我们的客户感到困惑并生成支持通知单时,我们有动力编写示例并改善用户体验。 没有交接,没有过渡,也没有差距。

概括也有缺点。 10,000小时规则实际上不是一回事(实际上,离群值的原始来源实际上是写了一个有趣的标题:“ 将教育委派给记者的危险 ”),但它很方便,可以节省大量时间在某事上。 我花了很多时间在JVM上。

相比之下,通过查看上图,我将我最近的时间花在了多种语言和更多框架上。 尽管在过去的一年半中并没有真正接触过Java或Groovy,但与Go或TypeScript相比,它仍然感觉更熟悉。 从来没有花足够长的时间来获得真正的专业知识,我有时会发现自己在搜索语言语法的最基本部分。 上图中看不到的是上下文切换。 我们可能会进行多次冲刺而无需接触任何Node.js或Go代码。 使用这些开关,我会忘记如何在Go通道或Typescript的多行字符串定界字符中接收。

另一个缺点是在缺乏深厚专业知识的情况下就技术和框架做出决策。 最近的具体示例是在upstart / monit / runit / systemd / daemonize之间进行选择。 具有多年Linux系统管理经验的人会非常明智地选择这种方法。

可悲的是,我对这篇文章没有令人满意的结论。 有时候,我想念几个月来使用相同的语言和框架而产生的深厚专业知识和语言能力:完全了解一件事。 另一方面,我非常喜欢可以自信地构建,维护,监视,更新和部署完整的解决方案。

翻译自: https://www.javacodegeeks.com/2016/04/quantified-self-meets-ide-year-data.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值