Upgrade to Pro — share decks privately, control downloads, hide ads and more …

庭と負債

Fujimura Daisuke
November 20, 2024
860

 庭と負債

Fujimura Daisuke

November 20, 2024
Tweet

Transcript

  1. 自己紹介 - お仕事 2 時期 2008~2012 2013~ 2015~ 2020~ 会社

    いろいろ Quipper マチマチ STORES バックエンド Rails Rails Rails Rails, etc. フロントエンド jQuery, Backbone.js etc. Backbone.js etc. React.js React.js, Vue.js 立場 ほぼメンバー いわゆるEM CTO CTO 藤村大介 twitter.com/ffu_ github.com/fujimura note.com/fujimuradaisuke
  2. 自己紹介 - 書いたり発表したもの 3 Rails Developer Meetup 2019 入門 名前

    WEB+DB PRESSの特集のダイジェスト版 https://speakerdeck.com/fujimura/ru-men-ming-qian WEB+DB PRESS Vol.110 特集 名前付け大全 「よい命名とは」をガチで考えてみたやつ https://gihyo.jp/magazine/wdpress/archive/2019/vol110
  3. 6

  4. 「技術的負債」というメタファーの限界 • 企業財務における負債 • 資金調達方法の一つ。経営判断として意図的に選択される • 返済計画、リスク評価が存在し、定量的に管理される • ソフトウェアにおける「負債」 •

    失敗、環境の変化などで意図せず発生する • その成り立ちからして、計画的な管理は難しい • 「技術的負債」はミスリーディング • 人間の思考は言葉の意味に引っ張られる • 「技術的負債」という財務からの概念は「管理できる」という期待を抱 かせる • が、実際はできない • 持続可能なコードベースに向けたよりよいメタファーが必要では?
  5. 「庭」というメタファーはどうか? • 作り方 • 計画はあるが、環境との対話で変化していく • 完璧な設計図通りには進まない • 時間とともに育つことを前提とした構想 •

    育て方 • 日々の手入れの積み重ね • 環境の変化への適応 • 予期せぬ事態(病害虫、天候)への対応 • ソフトウェアとの共通点 • 完璧な状態がない • 変化する • 継続的なケアが必要
  6. 実践と心がけ • お手入れ • 庭が荒れているのを見て「これは計画的な負債」とは感じないはず。見 つけたら片付けよう • ケアは実践でありマインドセットである。計画性も重要だが日々の行い にするべし •

    具体例:手を入れる前にリファクタリングする • 庭を歩く • コードベースとその価値や意味合いは時間とともに変化する。歩いて眺 めよう • 周囲のコードや使われ方、ドメインモデルと一緒に見て、造形や配置が 自然になっているか感じる • メトリクスやドキュメントも同じ
  7. マインドセットの変化 • 関係性の変化 • 負債という管理すべき対象から、庭という愛着の持てる作品へ • 「お気に入り」の箇所が生まれたり • 感情の変化 •

    義務としての負債解消から、少しづつ改善して育てる喜びへ • 「負債の返却」 vs 「お手入れ」 • 庭仕事は楽しい! • 計画的な負債の解消よりも、徐々に庭を育てるほうが楽しい • 庭仕事は実践なので、モチベーションのインパクトは大きい
  8. まとめ • 「技術的負債」への代替アプローチはある • 「庭を育てる」という戦術…というか文化 • 文化を変える、という戦略 • 庭を育てるようにソフトウェアを書いてみよう •

    愛着をもって、少しづつ、チームで ちなみに、「庭」という捉え方は同僚(@yubrot & @ykpythemind)の発言がオリジナル。この発表をするにあ たって読んだ 山内朋樹『庭のかたちが生まれるとき 庭園の詩学と庭師の知恵』からも大きなインスピレーション をもらいました。