2021年26周:
达成一个里程碑
截止今天,我在供职的第二家公司里待满 5 年了,也收到了公司给准备的 5 年礼包,开心一下。
记得从第一家公司离职的时候,我给自己的目标就是在下一家待满 5 年,今天终于达成所愿了。
5 年来,对我来说成长的最快的就是刚来公司过试用期的那半年。我从一个后端开发生生给学成了全栈。虽然学的比较粗浅,但是也拓宽的视野。
在 5 年的交付训练中,我下意识的养成了干一件事情准备多个方案的习惯。
其实公司和学校是一样的,它能给你最大的财富不是公司,不是学到的技术,而是一群可爱又厉害的同事。很多东西我不会,但是我知道谁会去找谁,很多事情我不知道,但是我知道谁知道。
2021年25周:
提方案
给客户提方案,底下一堆开发,居然没有人 challenge, 所有人都说 All good。这是危险信号,一般有两种情况:
- 客户没有主意
- 不关心
2021年24周:
2FA 认证
现在多数账户开始 2FA 认证,使用类似 Okta Verify 的工具,配置一个六位的认证码,输入完账户名和密码后,再输入动态的认证码来保护账号的安全。这种模式让我想起了多年前银行发的电子密钥,一个小仪器,里面动态刷新6位密码,使用网上银行的时候,再输入。我记忆中,第一次用过,后来一直等到电池没电,也没有用过,也不知道放在了哪里。
同样,这种放在 Okta Verify 上的认证码也很容易丢失,一个不小心,我就删掉了自己 Github 上的配置。这个时候,我的账号就登陆不进去了。通常这个时候,当年第一次使用生成的恢复码一定是找不到的,难呀。
当然不同的账号方,都会提供一定的机制帮你重置,像 Github,花点时间。
2021年23周:
不要浪费
每半年一次,客户都要拿出来 3 天时间让我们自己做点东西,我所在的团队已经获得过了该活动的所有奖项。问题是,我们做的很绚丽,概念很新颖,但都止步于活动。活动后再也没有人使用过,或者再次开发过。
正好这次活动的主题是“不要浪费”,所以这次我们以实用为准,做了个日常工作中真正需要的工具。现在活动结束一周,我们组的人都用了起来,非常开心。当然,这次是没有得奖的。
3 天时间想把一个 feature 做到产品级别也是不可能的,还有很多 bug。所以不要低估了产品的工作量。
2021年22周:
Github Project Board 统计
践行过敏捷实践的团队都用过白板吧,使用最多的有 Trello,Jira,最近 Github 也出了个 Project,由于和 Github 的血亲关系,很多团队开始转向 Github Project。
Github Project 基本还原了 Trello 的主要功能,但是缺乏丰富的插件,目前还没有看到 Github 开放接口来支持插件。没有插件的 Board 没有统计功能,甚至一个迭代做了多少张卡都需要自己数一数。
苦于此,第一时间能想到的是 Github API,尝试了一番,能很容易拿到 MovedColumnsInProjectEvent
。当卡片移动时,移动的信息将记录在卡中。但是看不出来是从那个 column 移动到那个 column。最终在文档发现,projectColumnName
信息在 preview API 中才会出现。preview API 需要在 headers 里面添加
Accept: application/vnd.github.starfox-preview+json
注:Preview API 不稳定,可能随时被删除。
GraphQL Client 中的文档并不全,可见在使用 API 时,还是要以官方文档为主。GraphQL 查询脚本如下所示:
{
repository(owner: "zddhub", name: "gpkit") {
milestones(first: 20) {
nodes {
title
issues(last: 100, states: CLOSED) {
nodes {
title
url
timelineItems(itemTypes: [MOVED_COLUMNS_IN_PROJECT_EVENT, ADDED_TO_PROJECT_EVENT], first: 100) {
nodes {
__typename
... on MovedColumnsInProjectEvent {
createdAt
projectColumnName
}
... on AddedToProjectEvent {
createdAt
projectColumnName
}
}
}
}
}
}
}
}
}
注意这里使用 Milestone 来跟踪项目的进度,对没有使用 Milestone 的项目,也可以直接查 issues 获得类似结果。
搞清楚了 API,剩下的就简单了,顺便学习了一下 deno
, 一个小的统计功能就生成了,目前支持两个指标:
- Cycle Time:卡从开始做(Doing)到完成(Done)所用的时间。
- Lead Time: 代码提交到部署上生产所用的时间。
统计的准确性需要卡片正确的拖动来配合,源码在这里,欢迎参考使用。