色々小難しい話はあるが、足元の開発フローの課題を解決するのが効果が高い。基本的なことをしっかりやる。
技術的負債と言えば聞こえが良いが、掃除や整理整頓をちゃんとやりましょうくらいで済む話が多い。難しいけど。
眼の前の課題を解決すると次の課題がやってくる。例えば以下のようなもの。
課題が推移するのは喜ばしいこと。類似の課題は他所にもあるものの、やってくる課題はチーム固有の課題なので、他人任せにせずチームで解決するのが基本。
Moshの負債返却計画をどのように支援しているか。
経営・開発両面への説明責任を果たせるように
欲張らないように。どの順番で倒していくかを決めてもらう。
一人が単独で行動しても、意味のある変化はほとんど起こらない。だが、何も一人で行動する必要はない。何かひどく具合の悪いことが起こったとき(作業スペースでのひどい騒音など)、それについてみんなの関心を集めるのは簡単だ。そうなれば、それはあなたのための問題ではなく、みんなの問題となる。
-- 『ピープルウエア』第39章 眠れる巨人よ、目を覚ませ ◆だが、なぜ私が?
変化をリードするためには、上司や同僚、またあなたに報告する部下といった人々の助けが必要だ。 (中略) - 誰を味方につけるかを知る、そして彼らのモチベーション・目標としているもの・恐れているものが何であるかを知ること - チーム同士・メンバー同士の共感を生み出して連携と相互理解を深めること
-- LEADING QUALITY 第3章 品質文化醸成
このあたりはエコシステムの文化によっても好みが左右される。
Easy: 手数の少なさを重視(そのかわり覚えることが増え、特定の状況には強いが他には弱い設計になる)
— Takuto Wada (@t_wada) March 31, 2021
Simple: 覚えることの少なさを重視(そのかわり手数が増えたり、自分で組み合わせたりしなければならない)
この二つを混ぜると設計の軸がぶれるので、分けることが重要https://t.co/exlrQB2osz pic.twitter.com/iwQ3Eknfl3
"Simple is not easy" スライド52 https://speakerdeck.com/takeru0757/simple-is-not-easy?slide=52
それぞれに良さがあり、それぞれの良さを他方に求めると、その価値を毀損する。
simpleでコンポジット志向であると言える。今のベテランのエンジニアはその志向の人が多い。
その文化圏・エコシステムにそぐわないとなかなか使われない。どういうキラーソフトウェアが作られたかによっても左右されるので鶏卵ではある。
「なぜ、フルスタックフレームワーク / 小回りの聞くユーティリティがないのか」というのは、文化圏の違い。→ 郷に入りては郷に従え
Web開発の文脈において覇権を取ったWebフレームワークがあるかどうかで文化圏の色が変わる。
私はsimplel志向かつコンポジット志向寄り。
(正確には、僕がPerlを良く書いていた頃は、easyでマジカル(complicated)なコードを書くことへの反省が界隈的にあった気がする)
昔の go get
の挙動にインスパイアされて作られた、リポジトリ管理ツール。
https://github.com/x-motemen/ghq
2001年頃
「Ingyのコンセプトを真に受けてしまったのか…」みたいな。
https://github.com/yaml/yamlscript