Slide 1

Slide 1 text

2024-11-20 ROSCAFE TECH NIGHT#12 CTOが技術的負債とどう向き合うか 戦略的視点からの考察 STORES 株式会社 CTO 藤村大介 庭と負債

Slide 2

Slide 2 text

自己紹介 - お仕事 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

Slide 3

Slide 3 text

自己紹介 - 書いたり発表したもの 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

Slide 4

Slide 4 text

自己紹介 - 書いたり発表したもの 4 STORES Tech Conf 2024 AIの時代で我々はどのようにコードを書くのか このさきエンジニアに残される仕事とはなにか?をガチで考えてみたやつ https://speakerdeck.com/fujimura/new-engineering-2024-our-remaining-work

Slide 5

Slide 5 text

自己紹介 - ポッドキャスト 5 論より動くもの.fm 藤村がホストになって、技術や技術にまつわることについてざっくばらんに話す Podcastです。 文字起こしもあるよ! 論より動くもの.fm | Podcast on Spotify 論より動くもの.fm on Apple Podcasts 論より動くもの.fm カテゴリーの記事一覧 - STORES Product Blog

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

STORES のミッション こだわりや情熱、たのしみに駆動される経済をつくる 熱中しているひとたちから生み出される、 多様な商品やサービスが街に溢れる世界。 その経済を支える、デジタルインフラを提供する。 7

Slide 8

Slide 8 text

サービス紹介 8 お店のデジタルを まるっとサポート。 個人や中小事業の方々に向けて、 お店のデジタル化をまるっと 実現できる価値を提供しています。

Slide 9

Slide 9 text

採用してます! STORES 採用 https://jobs.st.inc/ 詳細はこちらで検索

Slide 10

Slide 10 text

ぶっちゃけどうなの?というところから、 これから目指していることなど、リアルな STORES についてお話します。 少しでも興味をお持ちいただけたらお気軽にご参加ください。お待ちしております! オンライン会社説明会、やってます。 開催日程はこちら https://jobs.st.inc/

Slide 11

Slide 11 text

2024-11-20 ROSCAFE TECH NIGHT#12 CTOが技術的負債とどう向き合うか 戦略的視点からの考察 STORES 株式会社 CTO 藤村大介 庭と負債

Slide 12

Slide 12 text

今日の話 ● 「技術的負債」の由来、考えたことありますか? ● 財務会計からの比喩 ● 「返済」「利子」という考え方 ● でも本当にこれが適切なメタファーなのでしょうか? ● 「庭」というメタファーでどうか? ● だいぶ実践よりですが、エンジニアリングの文化も戦略ということで…

Slide 13

Slide 13 text

「技術的負債」というメタファーの限界 ● 企業財務における負債 ● 資金調達方法の一つ。経営判断として意図的に選択される ● 返済計画、リスク評価が存在し、定量的に管理される ● ソフトウェアにおける「負債」 ● 失敗、環境の変化などで意図せず発生する ● その成り立ちからして、計画的な管理は難しい ● 「技術的負債」はミスリーディング ● 人間の思考は言葉の意味に引っ張られる ● 「技術的負債」という財務からの概念は「管理できる」という期待を抱 かせる ● が、実際はできない ● 持続可能なコードベースに向けたよりよいメタファーが必要では?

Slide 14

Slide 14 text

「庭」というメタファーはどうか? ● 作り方 ● 計画はあるが、環境との対話で変化していく ● 完璧な設計図通りには進まない ● 時間とともに育つことを前提とした構想 ● 育て方 ● 日々の手入れの積み重ね ● 環境の変化への適応 ● 予期せぬ事態(病害虫、天候)への対応 ● ソフトウェアとの共通点 ● 完璧な状態がない ● 変化する ● 継続的なケアが必要

Slide 15

Slide 15 text

実践と心がけ ● お手入れ ● 庭が荒れているのを見て「これは計画的な負債」とは感じないはず。見 つけたら片付けよう ● ケアは実践でありマインドセットである。計画性も重要だが日々の行い にするべし ● 具体例:手を入れる前にリファクタリングする ● 庭を歩く ● コードベースとその価値や意味合いは時間とともに変化する。歩いて眺 めよう ● 周囲のコードや使われ方、ドメインモデルと一緒に見て、造形や配置が 自然になっているか感じる ● メトリクスやドキュメントも同じ

Slide 16

Slide 16 text

マインドセットの変化 ● 関係性の変化 ● 負債という管理すべき対象から、庭という愛着の持てる作品へ ● 「お気に入り」の箇所が生まれたり ● 感情の変化 ● 義務としての負債解消から、少しづつ改善して育てる喜びへ ● 「負債の返却」 vs 「お手入れ」 ● 庭仕事は楽しい! ● 計画的な負債の解消よりも、徐々に庭を育てるほうが楽しい ● 庭仕事は実践なので、モチベーションのインパクトは大きい

Slide 17

Slide 17 text

チーム文化への発展 ● 庭仕事は計画的な実行ではなく、日々の実践 ● まずは自分から少しづつ始める ● 毎日出社したら何か一つ片付ける、というのがオススメ ● 前例が習慣となり、文化になる ● ときには採用も大事

Slide 18

Slide 18 text

まとめ ● 「技術的負債」への代替アプローチはある ● 「庭を育てる」という戦術…というか文化 ● 文化を変える、という戦略 ● 庭を育てるようにソフトウェアを書いてみよう ● 愛着をもって、少しづつ、チームで ちなみに、「庭」という捉え方は同僚(@yubrot & @ykpythemind)の発言がオリジナル。この発表をするにあ たって読んだ 山内朋樹『庭のかたちが生まれるとき 庭園の詩学と庭師の知恵』からも大きなインスピレーション をもらいました。