外部に出てくる「綺麗な」技術選定と、現場の乖離
前頁の事例では、技術(ラーメン屋の事例における手打ち麺)以外の部分が選定を困難にした。同様に開発現場でも、技術選定の背景にはさまざまな要因が存在するはずだ。
では、なぜカンファレンスではすべての情報が公開されないのか。渡邉氏は、裏側にあるすべての事情をエンジニアの立場で語れば顧客に迷惑がかかり、顧客の立場で語ればパートナーに迷惑がかかるためだと指摘する。
しかし、そうやって隠されている要素があるとするならば、私たちはカンファレンスで聞く技術選定をどう捉えればよいのか。綺麗な話は出てくるけれど、それ以外の部分を隠した話は、本当に役に立つのか。技術選定とは、本当に技術を選定するだけなのだろうか。
そう問いかけたところで、スライドには一部が伏せられたタイトルが現れた。「〇〇〇技術選定について」。
「積極的な技術選定」と「消極的な技術選定」
伏せられた3文字を埋めるために引かれたのは、2023年に公開された鈴木僚太氏(uhyo)のエッセイ。議論は、技術選定を大きく「積極的な技術選定」と「消極的な技術選定」の2種類に分けるところから始まる。型安全性や性能、リアルタイム性といった技術そのものに由来する「積極的選定」と、習熟度や学習コスト、組織方針といった組織・人・制約に由来する「消極的選定」。グラデーションはあるものの、渡邉氏はこの分類に賛同する。
分かりやすいのは「Rustは難しいので採用しない」という例だ。所有権システム(Rustプログラムがメモリをどのように管理するかを支配する規則の集合)が解決しようとする問題を扱わないので複雑さを持ち込まない、という説明なら積極的選定。一方で、チームメンバーが所有権システムを理解するのは難しいから、という説明なら典型的な消極的選定になる。同じ結論でも、由来が違えば分類は変わる。
この積極性・消極性は、長期的利益に対するものと定義されている。技術を最大限に活用して開発効率を高めるのが積極的、投資よりも迅速にカネを生み出す必要性を取るのは消極的だ。渡邉氏は補足として一休の技術戦略を扱った記事を引用しながら、積極的な選定とは一言で言えば「最強の技術」を採ることだと整理する。「選定してすぐにダメになる」事態は、人ベースの理由で選ぶより、技術ベースで選んだほうが避けやすい。
ここで登場するのが「木こりのジレンマ」だ。斧の手入れより目の前の木を切ることを優先してしまう寓話である。消極的な選定の要因を放置することは、これにあたる。学習コストは初回限定であり、2回目以降は踏み倒せる。「知識は荷物にならない」のだ。
