2022年の5つの文章
本に限らない。
ソフトウェアアーキテクトが知るべき97のこと
優れたアーキテクトは、自分の専門分野に関しては少なくとも1つのツールのエキスパートでなければなりません。アーキテクトは、手を動かさなければならないのです。
というものがある。
2022年は、TLとして所属するチームが拡大していき、油断すると調整に時間を取られ、作業時間が取れない状態に近づいた。
しかし、価値ある行動が取れたとあとで振り返れるのは、いつも自身が手を動かしていた領域に関わるときだった。どこか一部分でも頭を悩ませていれば、なぜか他の部分もクリアに見えてくるものだと実感した。説得力も大きく違う。
組織拡大に伴ってあるべき姿を模索してチームトポロジー、Googleのソフトウェアエンジニアリング:5章 チームリーダー入門、リーダーの作法、エンジニアリングマネージャーのしごと、その他去年のエンジニアリング組織論への招待とそれに関連する書籍も多く読んでいる。(learning.oreilly.com に加入したので乱読しやすい状態にある)
Googleのソフトウェアエンジニアリング:5章 チームリーダー入門 にあるサーバントリーダーシップという概念は一つのガイドラインになると思うが、いずれにしても、もっともっと手を汚し続けたい。
サーバントリーダーシップとは、リーダーとしてできる最も重要なことは、執事や家令が一家の健康と充足に気を配るのと非常に似た形でチームに仕えることである、という点をうまく表現した言葉だ
サーバントリーダーは亀裂を埋めてチームのための道をならし、必要時にはチームにアドバイスを与えるが、相変わらず自ら手を動かすことをいとわない。サーバントリーダーが行う管理は、チームの技術的健全性ならびに社会的健全性の両方の管理のみである。チームの技術的健全性のみに純粋に専念するというのは魅力的かもしれないが、チームの社会的健全性も同じくらい重要だ(しかし技術的健全性と比べ、管理が限りなく難しい場合が多い)
lnbook
lightning networkに関して。mastering lightning networkとして日本語版も出版され、これから日本でも理解が加速すると思われる。
小さい変更ながらLNDのコントリビュータになり、core lightningのpluginを開発した。 日本のLightning Networkのコニュニティにも参加させて頂いた。 Onion Routing に関して、日本でlightning network事業を行うにあたり課題になりうるであろう特性も少し見えた気がする。 少しだけ具体的な動きができるようになったと思う。
2023年は、LNDにあるissue を拾い、意味のある貢献を実施することでより理解を深めていきたい。
NestJS - A progressive Node.js framework
今年は副業を複数始めたが、そのうちの一つではNestJSが共通のフレームワークで使われている。
1つ目の副業ではプログラミングTypeScript、初めてのSQL(splに苦手意識がある)、認証と認可 Keycloak入門、Vue.js入門、helm、初めての人の貿易、EDI、rest api、あたりの技術を学びなおした。2つ目の副業では、AWS Fargate 、firebase とその周辺機能を活用した。 さらにsubscription支払いの実装、という共通のテーマもあり、stripe に関連する実装も多く行った。
本業と比較しても、一般的な技術にふれる機会が多かったといえる。 手軽な感じはあるものの、production levelで運用できるものなのか、まだ自信がない。 リリースを経験して、さらに実感を伴った実装をできればと思う。 これらの技術を使いこなすことができることは、スモールスタートの意味をより深く理解する機会になる。
もう一つ。本業ではエンジニアは中心的な存在として重視される組織構造になっているものの、必ずしも他の組織ではそうではなかった。 それはビジネスモデル等の様々な変数によって定まるものであって、必ずしも否定されるものではない。が、良いものが作りづらい状態になっていることもある。
技術の進歩によって個人の持つ力が大きくなるにつれて、このあたりの摩擦は全体で今後も増えていくだろうと思う。
そして、良い落とし所はそろそろアップデートされてもいいと思う。
SIは言わずもがな、マイクロサービスアーキテクチャや逆コンウェイの法則とそれに伴う組織もtoo muchなところも多そうだ。
Nouns Center
これは副業、というよりは同僚とのサイドプロジェクトとして、nouns daoにinspiredされたプロダクトの開発を行っている。
Hardhat | Ethereum development environment、React、Solidity、polygon そしてプログラミングTypeScript あたりが中心的な技術スタックとなった。自在に使えれば、たくさんのプロダクトが生み出せて面白いだろうなとは思いながら、ググりながら四苦八苦して取り組んだ。
概念的には、zkSyncも学んだ。
技術的チャレンジとしては、svgのNFT化だろうか。 SVG(Scalable Vector Graphics)自体、正直あまりよくわかっていなくて、その根本にあるXMLも曖昧、そしてethereumもわからない、ということで手が止まっている。
SVGエッセンシャルズ、マスタリング・イーサリアム 、SolidityとEthereumによる実践スマートコントラクト開発あたりのinputを増やすことが近道になりそうだ。
下記は頑張って生み出したnouns的svgのNFT。
手を動かして作ってわかることは、フロントエンドエンジニアが強い領域であるということ。web3事業をやりたいなら優秀なフロントエンドエンジニアを5人捕まえればまあできるだろう。 それが何かを変えるとは思えないけど。
すばらしい新世界
2018年に長く滞在し、色々な意味で思い出の多いイギリスの作家の本。
1984に続き、当時のイギリスはどういう空気があったのだろう。
「要するにきみは」とムスタファ・モンドは言った。 「不幸になる権利を要求しているわけだ」 「ああ、それでけっこう」ジョンは挑むように言った。 「僕は不幸になる権利を要求しているんです」
ミスターサヴェッジ(野蛮人)の求める真理と美
or 幸福
という選択は、年齢を重ねるにつれて足掻きから落ち着きに流れに違和感を感じる今にかぶる。
ほか
不安定からの発想、21 lessons、ポーカーとゲーム理論、なんかも影響を受けた書籍としては上がる。
だけどなによりもずっと読んでいたのは、仕事のgoogle docsとプログラムコードとslackだった。 本当は、この時間比率のうち、slackとgoogle docsは減らしていい。プログラムコードと書籍を読む時間を伸ばしたほうが良い。9:1くらいでいい。
今年はwipを積み上げた一年だった。来年は、すべてをさっさとdoneにしたいし、そのあともこういうレベルのことを続けるのでいいのかは、考えないと行けない。