この記事は、「ten986 Advent Calendar 2022」の 6 日目の記事です。
https://qiita.com/advent-calendar/2022/ten986
あらゆることは忘れる
2日目の記事 で書いた通り、ぼくは大体のものは忘れるんですね。
そこで、
多くのメモを取ることで忘れてもいいようにしている わけです。
これって、
「属人化の排除」とやってること一緒なのでは? と思ったので今日はそのポエムです。
属人化の排除とは
属人化の排除は、ここでは 「人に対して、その領域の人が普通到達可能なスキルのみを期待し、特有のスキルや経験を必要とせずとも実行可能な状態にすること」 としましょう
(一般の感覚とずれているとしても、ぼくはこれを目指しています)。
ここでいう「その領域の人が普通到達可能なスキル」とは、例えば「働く人間であれば、日本語の読解能力は持っているだろう」「エンジニアであれば、論理的思考力を持っていたり、コーディングに対する知見を持っているだろう」「この会社の人間であれば、この制度については知っているだろう」と言ったことを指します。
このような属人化の排除は仕事をする上では重要です。
「属人化の排除がなされたタスク」をアサインする人は、他の一定以上のスキルを持つ人に置き換えられるためです。
自分という属人化の排除
さて、ぼくはあらゆることに対してメモを取ることで、何もかもを忘れていい状態にしています。
これは 「自分という属人化の排除」 なのでは?と考えています。
すなわち、「自分に対しては、 エンジニアリングに対する知識、情報処理能力、他一般的なスキルのみを期待する。昨日得た経験などは必要としない 」ことを達成しようとしています。
明日の自分を自分として認めず、別人として考え、しかしその別人は一定のスキルを持った人間ということは期待しています。
「自分という属人化の排除」は、一般的な「属人化の排除」より簡単です。
「属人化の排除」には、「自分のスキルレベルから、その領域の人が普通到達可能なスキルレベルに落とす作業」が発生しますが、この作業をしなくていいためです。
逆に、他の人へタスクを渡す際は、「その人のスキルレベル」に変換することを意識するといいでしょう。
タスクに関わってきた場合、タスクに対する知見が人よりも上がってしまっているので、この変換は少し難しいです。
「自分という属人化の排除」をするためのメモ
実際に、今ぼくが仕事で使っているメモはこんな感じです。
基本的には何もかもを忘れていいような仕組みを構築しています。
自分のスキルとしては、「仕事を始めたら、初めにやることリストを見るというトリガーが脳内にセットされている」といったことを期待しています。
自分であれば、トリガーが期待できるので便利。
- 仕事初めにやることリスト
- 書かれていることの例
- メールを見る
- Todoリストを見る
- レビュー依頼を見る
- ラジオ体操をする
- 仕事終わりにやることリスト
- times
- 「この作業を何時間した」というざっくりした記録を毎日書かされる
- そのため、Slackのログで大体2時間おきくらいにメモをしている
- 「めんどくさいと思う作業は分割せよ、さもなくばさらにめんどくさくなる」という言葉も出来た
- 振り返り
- 自分のやった作業は忘れるので、やった作業を毎日軽くメモをする
- 得た知見もあればメモっておく
- これは非常に面倒なので、今は「開いたタブを貼る」という作業をしていて、タブ整理にもつながって便利
- 週次と月次の振り返りをして、ざっくりどんなことがあったかや、以降の活動の方針決めをする
- この際も、各日でやった作業は忘れているが、振り返りがあればOK
- 仕事そのものについて
- 自分のやっているタスクについてのメモ
- 書く内容
- 必要な条件(ドメイン知識や、満たすべき仕様)の整理
- 考えたことの言語化
- 参考になるコードへのリンク
- 今はローカルの markdown に書くことにしている
- 書く内容をメモっておくことで、明日以降もすぐ仕事に取りかかれるし、思考整理にもつながるd
そういえば書く場所見失ったのでここで書いておくと、メモをすることで脳内からそのメモリを吐き出せる上に、「あれを覚えておかなきゃ」という思考も消すことができるので、パフォーマンスの向上にもつながって便利です。
今日の個人ブログ開発
昨日 に引き続き、markdown → ReactElement の改善のための app ディレクトリの調査。
今日も出せる進捗はなし。
調べていると、
https://vercel.com/templates/next.js/taxonomy という良さげなプロジェクトを見つけた。プロジェクト内の mdx を Server Component で配信しているので、かなり参考になりそう。
仕組みは以下のよう。
- Contentlayer を使って、build time で mdx -> json の変換を行う
- build time だけでなく、dev server を立ち上げているときにはリアルタイムで変更が反映されるらしい?
- generateStaticParams により、dynamic route segments の静的生成
- Server Component 内で指定の json を取得しつつ、それを元にレンダリングして返す
どうも Next.js 13 には
getStaticPaths
にあたる
generateStaticParams
はあるし、fetch を使う
getStaticProps
にあたるものもあるっぽい。
ただ、今回は
getStaticProps
でローカルファイルを参照したいため、それにあたるものは用意されていないさそう。
すなわち、build time で markdown -> json の変換ができるものさえあればいいのだが、Contentlayer はそれ以上のことをしてくれそうな気はする。
もう少し調べると 、remark や rehype のプラグインにも対応していそう。これがないと今回は使えないし、行けるか・・・??