技術的負債の支援とOSS技術選定
TIME rest time current/total
TopicsPlaceHolder

技術的負債の支援とOSS技術選定

Mosh勉強会 #1

Jun 13th, 2024

Profile

songmu

Profile

songmu

Agenda

技術的負債返却をどう考えるか

いくつかの観点

色々小難しい話はあるが、足元の開発フローの課題を解決するのが効果が高い。基本的なことをしっかりやる。

技術的負債と言えば聞こえが良いが、掃除や整理整頓をちゃんとやりましょうくらいで済む話が多い。難しいけど。

腕の良い料理人は片付けながら料理をする

包丁を研ぐ

例えばテストコード

メンテナンスを放置して逃げ切るのは無理

誰かが大掃除をしておしまいにしない

課題は変化する

眼の前の課題を解決すると次の課題がやってくる。例えば以下のようなもの。

課題が推移するのは喜ばしいこと。類似の課題は他所にもあるものの、やってくる課題はチーム固有の課題なので、他人任せにせずチームで解決するのが基本。

技術的負債返却の支援

Moshの負債返却計画をどのように支援しているか。

計画のレビュー

経営・開発両面への説明責任を果たせるように

スケジュールとマイルストーン

優先順序付け

欲張らないように。どの順番で倒していくかを決めてもらう。

背中を押す

協力者を作ってもらう

ピープルウエア

一人が単独で行動しても、意味のある変化はほとんど起こらない。だが、何も一人で行動する必要はない。何かひどく具合の悪いことが起こったとき(作業スペースでのひどい騒音など)、それについてみんなの関心を集めるのは簡単だ。そうなれば、それはあなたのための問題ではなく、みんなの問題となる。
-- 『ピープルウエア』第39章 眠れる巨人よ、目を覚ませ ◆だが、なぜ私が?

LEADING QUALITY

変化をリードするためには、上司や同僚、またあなたに報告する部下といった人々の助けが必要だ。 (中略) - 誰を味方につけるかを知る、そして彼らのモチベーション・目標としているもの・恐れているものが何であるかを知ること - チーム同士・メンバー同士の共感を生み出して連携と相互理解を深めること
-- LEADING QUALITY 第3章 品質文化醸成

技術選定の誤り

OSS文化圏と技術選定

フルスタック志向かコンポジット志向か

このあたりはエコシステムの文化によっても好みが左右される。

easyかsimpleか

めんつゆはeasy

"Simple is not easy" スライド52 https://speakerdeck.com/takeru0757/simple-is-not-easy?slide=52

JSONとYAML

それぞれに良さがあり、それぞれの良さを他方に求めると、その価値を毀損する。

JSONはsimple

YAMLはeasy

Unix哲学

simpleでコンポジット志向であると言える。今のベテランのエンジニアはその志向の人が多い。

文化圏

その文化圏・エコシステムにそぐわないとなかなか使われない。どういうキラーソフトウェアが作られたかによっても左右されるので鶏卵ではある。

「なぜ、フルスタックフレームワーク / 小回りの聞くユーティリティがないのか」というのは、文化圏の違い。→ 郷に入りては郷に従え

具体例

Web開発の文脈において覇権を取ったWebフレームワークがあるかどうかで文化圏の色が変わる。

私はsimplel志向かつコンポジット志向寄り。

(正確には、僕がPerlを良く書いていた頃は、easyでマジカル(complicated)なコードを書くことへの反省が界隈的にあった気がする)

フルスタック志向のメリット

フルスタック志向のデメリット

batteries includedの良し悪し

(余談) Goの場合

コンポジット志向のメリット

コンポジット志向のデメリット

ガラパゴスを避けることの大事さ

OSSの開発速度と互換性問題

OSSの開発体制や作者の色

作者の色

ghqの場合

昔の go get の挙動にインスパイアされて作られた、リポジトリ管理ツール。

https://github.com/x-motemen/ghq

Ingy döt Net (本名)

YAMLのルーツ

2001年頃

Ref. https://yaml.org/about

「Ingyのコンセプトを真に受けてしまったのか…」みたいな。

YAMLScript

https://github.com/yaml/yamlscript