巨人の足元でたじlog

そうして言葉を軽んじるから――― 君は私の言葉を聞き逃す

自分の考えていることを逐一ひとりslack言語化してみるライフハック、良い。

最近エッセンシャル思考と言う本を読んで、自分のやるべき事が何なのかということを考えるようになった。
やるべきことと言うよりは、本当にやらなければいけないことのニュアンスに近いかもしれない。
コードを書いていると特に、今何やってるんだっけ、何のためにこれ解決しようとしてるんだっけということがよくある。
何も考えないで目の前のことをやっていると、課題Aを解決するための手段Bがあるとして、その手段Bを実現するための課題Cがあったりする。
ほんとに解決したい課題はAなのに、いつの間にかCの課題を解決することを目的としていたりすることがある。
いわゆるyak shavingというもの。
これを解決してみる方法として、ひとりslackチャンネルを作ってそこに書き込むと言うことをやっている。


「まずはデータが揃っているかの検証をやる」
「検証するためのクエリを作る」
「はい実行」
「そろっていなかったので、データを揃えるところから」
「本番DBからコピーしてくる」
「コピーする方法は、単純にAの方法でやってみるか、とりあえず」
「実行!」
「思ったよりも時間かかるかもな」
「どのくらい時間かかるか概算で出してみるか」
「うわ、これ4時間くらいかかるのでは?」
「そしたらちょっと面倒くさいけどBの方法でコピるか」
「はい、実行スクリプト完成、流してみる」
「はい、完了。こっちの方法で良かった」
「再度検証クエリ投げる。」
「はい成功。で、データが用意できたので、機能開発に入るか」
「まずは一番シンプルに全件取得」
「うごかす」
「良さそうなので、次、条件Aを適用する」
「OKそう。」
「次は条件Bを適用する」
「こちら問題なさそう」
「ここらへんの処理まとめられそうだけど、数も多くないし、一旦全部ベタでやってから最後にまとめてみるか、途中ハマる条件もありそうな気もしなくもないので」

「…」

 

みたいな感じで、誰に報告するのでもなくやっている。
これの良い所としては、あらかじめ自分がやろうとしていることを言語化するので、明確にそれをやろうと言う意思で作業することができること。
結局やろうとしてる事は変わらないのだけれども、そこから派生したタスクとかが出てきそうな時は一旦もともとやろうとしていたことを省みるということもできるので良さそう。
実行したときの条件とかも書いてまとめておく癖をつけておくと、特に問題ないと思って何も 特に何も残さなかった場合に比べて、問題が発生したときに解決できるスピードが上がるかなと思う。
さっきどんな条件で実行したんだっけとか、これは1階試したっけとかがログとして残っているので良い。 もちろん何かを検証するときはそもそもそういったログを残すべきなんだろうが、そうじゃないこと、 ここではつまずかないでしょと言うところではいちいちログを残さないと思うので、ハマったときにあとからこれやっておいて良かったなと思うケースが多い。
後は、slackではタイムスタンプが勝手に押されるので、この作業にどのぐらいの時間がかかっているかというのも特にタスク管理ツールとか時間管理ツールみたいなものを使わなくてもわかる。結構細かくわかる。

今日1日やったことを振り返ってみる時に、出来上がったものを見てみると、全然はかどってないじゃん、全然仕事してないじゃんと思う事はよくあるのが、 こうしてログをとっておくと、 成果物を作るためにいろいろ調べたり、検証したりデータの用意をしたりとかそういった土台とか前段階の部分が意外と多いことに気づく

こうしたログを見た上で、この作業を結局必要なかったなとか、ここに時間かかりすぎてるなとか、これこんなに時間かけるんだったら別の方法でさくっとやればよかったんじゃないかとかそういった反省もすることができる。

ということで、このやり方はしばらく続けてみようと思います。