出力を入力へ

プログラミングに関する自分が考えた事を中心にまとめます

2023年のふりかえりと2024年の抱負

2023年のふりかえり

できたこと

実用性を意識した個人開発 & 腕力で実装する

もともとの目的である、課題を解決する実装をやりきる点については満足とは言えないが、ひたすら実装することは今まで以上に取り組めた。 特に、成果をOSSとして公開するところまでもっていけた(最低限利用できる状況にすることができた)のはよかった。

ec2id AWS EC2インスタンスのNameタグからインスタンスIDを取得するツール。

github.com

tfcvars Terraform Cloudのworkspaceに変数を登録する、または変数を取得するツール。

github.com

tflint-ruleset-formatter tflintのプラグイン、terraform fmtでは検知されないフォーマットの問題を検知する。

github.com

awsresq AWS上のリソース一覧を取得する

github.com

ghpr GitHubの特定条件に合致するプルリク一覧を取得する

github.com

一方で、すべてがcliツールと偏っていることには気になっている。 これは実用性を意識した結果、まず自分が困っているところに開発リソースを振り分けた結果なのでしょうがない。一方で、別の目標であるデータと仲良くなることが上手くいかなかった原因でもある(詳細後述)。

また、開発したソフトウェアはすべて自身がオーナーとなるソフトウェアであり、社外のOSSに対するコントリビュートという意味ではほとんどできなかった。2023年にGo言語の開発を重視したのもterraform-provider-awsで未実装なさまざまな機能を実装したいというのも理由の1つだったが、結局terraform-provider-awsにコードでコントリビュートはできなかった。この原因の1つに個人開発KPIの設定がある(後述)。

全体的に見れば個人開発にある程度のリソースを投入してそれなりの成果を得られたものの、上記の見直しも含めて、今後どのような開発に取り組むかはもう少しバランスを取りたい。

できなかったこと

細かなアウトプット

ブログ記事のアウトプットはもっと時間を掛けるつもりが、あまり上手くいかなかった。 このメインブログはこのふりかえり記事を含めて5件、会社ブログ1件、Qiitaは3件、Zennは12件だった。特に今年の後半は一切書けなくなったので、もっと気軽に書ける場所をとサブブログを立ち上げて、20件書くことができた。 2022年までに比べると件数は増えたのでよかったが、あまり計画的に書けていないし、開発の知見をまとめるという意味でもあまり上手くいっていない。目標として立てる前よりは書いている、というのを上手くいったと言うのはあやしいところ。それとも高望みだろうか。

昨年もそうだったが、これを書こうと思っていたネタを書けずに下書きで終わらせているのはよろしくない。アドベントカレンダーネタも結局検討だけして書かずに終わってしまった。 ソースコードだけでなくブログも書ききることを意識したい。

データと仲良くなる

構造・非構造に限らずデータの取り扱いにもっと取り組む想定が期待していたよりはできなかった。 書籍としては検索システム

や実践Redis入門

を読んだり、実務でもRedisやMySQLのアップデート、MLOps基盤の構築、といった隣接領域に取り組むことはできた(elasticsearchは来年になりそう)が、時間の制約などもあり、結局今まで通りインフラエンジニアとして基盤の取り扱いだけで終わってしまった。業務で扱う以上はしょうがない面もある。 そういう意味でもやはり個人開発でwebサービスを立ち上げて、そこでデータの扱いに取り組むべきだった。

その他気になっていること

個人開発KPI

個人開発を継続する上で、わかりやすい指標がGitHub のContributionグラフだったので、毎日草を生やすことを当面の目標に取り組んだ。 これ自体は比較的上手くいった。しかし業務でのコントリビューションを除外するためにPrivate Contributionsをオフに、Activity overviewをオンにした結果、自分のリポジトリであってもプライベートリポジトリに対するコミットは優先度が落ちることになった。この結果がOSSのcliツールばかり開発することを後押ししてしまった。

GitHub Contributionsの設定が上記2つしかなく、特定の企業向けコミットだけを除外することができなかったのでしょうがなかったが、これはKPIの設定が不適切だった。 このあたりは計測方法を変更して、より自分が開発したいことが開発できるように修正したい。

Generative AIの活用

ChatGPTやGitHub Copilotなど、AI活用が盛り上がった1年だったが、自分は上手く使えていない。 もちろん上記ツールは利用しており、苦手なフロントエンド/TypeScriptまわりを書くときや、英語文書を見直すとき、似たようなコードを何度も書くときにはそれぞれ活用している。しかし世の中の盛り上りほどは使えていない。 これは世の中が過度な期待の中にいるとも言えるが、自分の場合はまだ活用の余地があるし、世の中の上手い使い方を取り込めていないという感触が強い。

このあたり自分の老害感が強くなっていると危惧している。 生成AIが今後ますます重要になることは間違いないので、最低限でもキャッチアップは続けたいし、新しい技術は積極的に利用していきたい。

職場での振舞い

2023年は会社でリーダーシップやマネジメントの面で頑張るよりは、個人の成果を重視することを意識してきた。 そしてそれは一定効果はあったと思う。個人開発で成果は出せたし、業務においても多くのアウトプットを出すことができた。

しかし、会社における組織的な取り組み・改善は上手くいかなかった。これは自分が積極的にアクションを取らなかったので当然といえば当然。 しょうがない面はあるが、結果的に見れば優先度を下げた弊害はあったように思える。ここは見直す必要がある。 また、リーダーシップとマネジメントの両方の優先度を落とすのはよろしくなかった。マネジメントに費す時間を減らすことは会社との合意事項ではあったが、リーダーシップを発揮すべき場面であまり率先して行動を取れなかったのはよろしくなかった。 このあたりは改善したい。

インプット

勉強会に参加したり、技術書を読んだり、他者ブログを読んだりする量は意識的に減らした。特に勉強会への参加はあまり行わなかった。 これは勉強会に参加する時間を個人開発の時間に当てたかったこと、技術書を読んでよりよい方法や考え方を学ぶよりも今持っている手段で対処して前に進む方法を優先したかったことが理由としてある。

悪くはなかったが、勉強会に参加しなかった時間がそのまま個人開発に取り組めたわけではないし、技術書もなんだかんだ参照していた。 なので意識的にインプットを絞る必要はなさそう。今後もインプットは継続して質の良いアウトプットが出せるようにしたい。

健康

健康が最重要なのは言うまでもない事だし、ありがたい事に大きな怪我や病気になることはなかった。しかし理想的な状態でもなかった。 運動は継続できたが、5-6月に運動量を減らしたらあっという間に体力が落ちたことにびっくりした。やはり何よりも継続することを意識したい。

そして運動以上に睡眠が上手く取れなかった。もともと睡眠障害持ちで上手くいっていなかったが、この1年は(も?)良くなかった。唯一の改善点はアクティビティトラッカーとしてvivosmart5を装着するようになったことで、これで自分の休憩の取り方が下手だと再認識できた。 それを踏まえての改善はまだまだ上手くいっていないが、もっと上手に休めるようになりたい。

2024年の抱負

2024年は意識することを絞って取り組みたい。

行動と思考をアウトプットする

アウトプットを継続することは今年も課題だが、特に「行動」と「思考」をアウトプットすることを意識する。 1年をふりかえってみて記録が全然足りていないと感じたので、後からふりかえって自分のアクティビティを簡単にでもトレースできるようにしたい。

行動のアプトプットは単に何をしたか。 ツールやサービスをリリースしたでもよいし、調べたことでも試したことでも何でもよい。 大抵の場合は1日何もしていませんでした、なんて日は存在しないので書き易いはず(その記事に価値があるかは別として)。

思考のアウトプットは何を考えたか。 書籍やブログ、勉強会等に参加したら何かしら感想を持つと思うのでそれを書けばよいし、ツールやサービスをリリースしたら何を解決したくてリリースしたのか、または機能を実装したらどうしてそのような設計にしたのかなど、無限に思考・判断が含まれているはず。これを言語化する。

アウトカムベースで個人開発に取り組む

2023年は今までに比べてよい個人開発ができたと思う。一方で「実用性を意識した」という点が上手くいっていないケースが多くあることを感じた。 それを強く感じたのがGitHub ContributionsをKPIとして利用しており、開発したいことに着手できない、あまり必要のないものに時間を割いているとき。これは個人開発KPIにも記載したが計測方法がよろしくなかった。 この方法はあくまでアウトプットを計測しており、自分の課題を解決できているかを計測できていなかった。

これはまさにビルドトラップにはまっていると感じた。 もちろん個人開発なので手段が目的になってもいいし、継続することが最重要なのでアウトプットをKPIに設定することも間違いではないと思う。しかし、自分のやりたい事を考えれば、課題を解決できているかやアウトカムを達成できているかをもっと重視したい。