Location via proxy:
[ UP ]
[Report a bug]
[Manage cookies]
No cookies
No scripts
No ads
No referrer
Show this form
Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
負債と言わないことが負債と向き合うこと
Search
Kenichi Takahashi
November 20, 2023
Technology
5
3.5k
負債と言わないことが負債と向き合うこと
技術的負債に向き合う Online Conference - connpass
での発表資料です。
Kenichi Takahashi
November 20, 2023
Tweet
Share
More Decks by Kenichi Takahashi
See All by Kenichi Takahashi
Lv1,2の開発生産性を経営と繋ぐ
kenchan
4
1.7k
「トップ10プランナー」からはじめる目標設定
kenchan
5
3.4k
可用性No.1へ!「カラーミーショップ」のリ・アーキテクティング
kenchan
0
78
カラーミーショップは私たちが作っています
kenchan
0
1.4k
カラーミーショップ 2022 / COLORME SHOP 2022
kenchan
0
600
Amazon RDS移行のための 性能検証でわかった2つのこと
kenchan
3
3.7k
ポストコロナの商売を支えるカラーミーショップのアーキテクチャのこれから / The new architecture of COLORME SHOP in the Post-COVID-19 world
kenchan
2
2k
ペパボのエンジニアリングマネジメント一問一答 / engineering-management-q-and-a-in-gmo-pepabo
kenchan
7
2.5k
POStudy塾で学ぶワークショップデザインとファシリテーション / workshop-design-and-facilitation
kenchan
0
640
Other Decks in Technology
See All in Technology
プロセス改善とE2E自動テストによる、プロダクトの品質向上事例
tomasagi
1
3.7k
40歲的我會給20歲的自己,關於軟體開發的7個建議
line_developers_tw
PRO
0
2.4k
re:Invent2024のIaC周りのアップデート&セッションの共有/around-re-invent-2024-iac-updates
tomoki10
0
480
LangChainとSupabaseを活用して、RAGを実装してみた
atsushii
0
160
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 @ AXIES 2024
ritou
0
240
ONNX推論クレートの比較と実装奮闘記
emergent
0
300
Empowering Customer Decisions with Elasticsearch: From Search to Answer Generation
hinatades
PRO
0
300
深層学習のリペア技術の最新動向と実際 / DNN Repair Techniques for AI Performance Alignment for Safety Requirements
ishikawafyu
0
490
PR TIMESにおけるNext.jsとcacheの付き合い方
apple_yagi
2
190
AWS re:Invent 2024登壇資料(GBL206-JA: Unleashing the power of generative AI on AWS for your business)
minorun365
PRO
7
240
.NET のUnified AI Building Blocks 入門...!
okazuki
0
190
プロダクトの爆速開発を支える、 「作らない・削る・尖らせる」技術
applism118
10
8.5k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Become a Pro
speakerdeck
PRO
25
5k
Six Lessons from altMBA
skipperchong
27
3.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Speed Design
sergeychernyshev
25
650
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
We Have a Design System, Now What?
morganepeng
51
7.3k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
1
100
Transcript
負債と⾔わないことが 負債と向き合うこと 1 ⾼橋健⼀ @kenchan / GMOペパボ株式会社 2023/11/21 技術的負債に向き合う Online
Conference
2 ⾃⼰紹介 GMOペパボ株式会社 技術責任者 兼 EC事業部シニアエンジニアリングリード ⾼橋 健⼀ Kenichi Takahashi
Rubyとアジャイルなソフトウェア開発が好きな ソフトウェアエンジニア。 ⽇々の仕事は、EMとして全社のエンジニア組織 作りと、カラーミーショップを運営するEC事業 部における実質CTO。 インターネットでは @kenchan で活動中。フォ ロー、チャンネル登録、⾼評価よろしくおねが いします。
3 アジェンダ 1. ”負債”のメタファーを乗り越える 2. 15年以上続くサービスで取り組んでいること 3. AIが前提となる時代における技術的”資本”の重要性
”負債”のメタファーを乗り越える • Ward Cunninghamは、問題領域へのチームの 理解と⽬の前のシステムのギャップを負債と 呼んだ。 • 問題領域への理解はかならずチームの理解が 先⾏する。それをシステムに反映するにあた り必ず時差が⽣じる。
• 負債というメタファーは、⾦融システムの責 任者が理解しやすい⾔葉で状況を説明するた めに考案した。 “負債”のメタファーは⾦融システム開発の中で⽣まれた 4 【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ 図. 時間の経過によってギャップが生まれるイメージ
”負債”のメタファーを乗り越える • 負債というメタファーが優れていたが故に 議論が⽩熱する。 • 例:稚拙なコードは負債か? • Martin Fowlerの四象限の整理やSoftware Engineering
Instituteによる12の分類など整 理が進む。 • メタファーを利⽤しつつ、より具体的な問題 に対して向き合うことが重要となった。 (技術的)負債のメタファーの乱⽤、分類、再考が進む 5 技術的負債の四象限 - Martin Fowler's Bliki (ja) (bliki-ja.github.io) Towards an Ontology of Terms on Technical Debt (researchgate.net)
”負債”のメタファーを乗り越える • チームが問題領域を完全に理解し、それを完 璧にシステムに反映できたら……!? • “なるほど完璧な作戦っスねーーーっ 不可能だと いう点に目をつぶればよぉ~ ” •
市場への投⼊が遅れれば遅れるほどその価値 は⽬減りし、いつか損益分岐点を下回る。 • 例: 競合に先を越される。市場がなくなる。 現代では負債を借り⼊れずにシステム開発をすることは不可能(1) 6 図. 市場価値の損益分岐点のイメージ
”負債”のメタファーを乗り越える • ソフトウェアは何もしないと壊れる。 • ビジネス的にも「何もしない」と顧客からは 「壊れて⾒える」ようになる。 • ある瞬間において完璧なシステムがあったと しても、世の中の変化によってギャップが⽣ まれてしまう。
現代では負債を借り⼊れずにシステム開発をすることは不可能(2) 7 Why is building the Ruby environment hard? - Speaker Deck
”負債”のメタファーを乗り越える • 経営者や事業責任者にとっての負債と”技術的負債”で伝えたいことのギャップ。 • 負債(他⼈資本)は事業をレバレッジさせるための重要な道具であり、具体的な⾦額や返済 期限として認識可能。 • “技術的負債”で伝えたいことは、⽬に⾒えないものであることが多い。 • メタファーは共通の理解を⼿助けするが、課題を解決してくれるわけではない。
• 「技術的負債を返済しなければなりません」「なるほど。どんどんやろう!」 • そんなことありますか? • デリバリー速度を低下させる要因であるなら「(技術的)負債である」で留まらずに 詳細化することが解決に直結する。 負債のメタファーは銀の弾丸ではない 8
”負債”のメタファーを乗り越える • 負債というメタファーは⾦融システム開発において責任者とのコミュニケーション のために⽣まれた。 • 「負債」という⾔葉によってかえってコミュニケーションコストがかかっている場 合も散⾒される。 • 事業としてプロダクト開発をしている限り、負債を0にすることはできないし、そ れを⽬指すべきでもない。
• デリバリー速度が事業成⻑に⼤きく影響があることは周知の事実であり、具体的な 課題について議論することが真に負債と向き合うことではないか。 ここまでのまとめ 9
10 アジェンダ 1. ”負債”のメタファーを乗り越える 2. 15年以上続くサービスで取り組んでいること 3. AIが前提となる時代における技術的”資本”の重要性
None
15年以上続くサービスで取り組んでいること • ロリポップ!のECカート機能を切り出して2005年にリリース。 • バージョン管理がない時代からメンテナンスされているコードベース • 最古のコミットは2010年7⽉2⽇、Subversionへの「新規作成」というコミット • ⾃社データセンターとパブリッククラウドを併⽤したハイブリッドクラウド環境 •
バックエンドはPHPとRuby、フロントエンドはVue.js、Angular、jQuery • “技術的負債”と⽇々向き合いプロダクト開発を進めている。 18年⽬を迎えるECサイト構築サービス「カラーミーショップ」 12
15年以上続くサービスで取り組んでいること • リファクタリング • ボトムアップにコードを綺麗にしていく • リアーキテクティング • ⼤きなシステムをサブシステムに分解し、サブシステム単位で置き換えていく •
リプレイス/リライト • ゼロから書き直す • 葬り • ソースコードを削除して機能を無くす 技術的負債を返済するための3+1つのアプローチを愚直に実⾏する 13 技術的負債を返済するためのエンジニアリングとは? VOYAGE GROUPの実践に学ぶ【デブサミ 2021】
15年以上続くサービスで取り組んでいること テストを⽂化とするための研修とその実践(リファクタリング) 14 t_wadaさんによるTDDワークショップを開催しました - Pepabo Tech Portal
• PHPとjQueryによるMPAにVue.jsを段階的に導⼊ 15年以上続くサービスで取り組んでいること 画⾯をリニューアルする(リアーキテクティング) 15 「defineCustomElement」を活用したサービス共通の UIコンポーネントライブラリ - Vue Fes
Japan 2023
15年以上続くサービスで取り組んでいること • システムとして⼀定の独⽴性がある場合は リプレースも検討する。 • 避けられるなら避けたほうがよいが、やる のであればプロモーション等まで最⼤活⽤ する。 • 葬る場合はユーザメリットを提⽰して移⾏
を促す。 • 例: より便利な決済⽅法を提供する ショッピングカートを作り変える(リプレース+葬り) 16
15年以上続くサービスで取り組んでいること • ドキュメントも問題領域への理解を反映 させることができる対象。 • コードやアーキテクチャの変更が困難な 場合でもas-isとto-beを残す。 ユビキタス⾔語を作る(ドキュメンテーション) 17
15年以上続くサービスで取り組んでいること • ドキュメントは腐りやすい。 • ドキュメントの共同所有は⼈類の夢。 • 夢に近づくためには、使うことと問題解 決した経験を積み重ねること。 • ドキュメントを⾃然⾔語で検索できる
slackbotを導⼊し運⽤している。 ドキュメントを腐らせない唯⼀の⽅法は使うこと 18
15年以上続くサービスで取り組んでいること • 負債というメタファーが、ドメインスペシャリストとのコミュニケーションのため に⽣まれたものであれば、その考え⽅⾃体を応⽤できるはず。 • 会社、部⾨、プロジェクトにおいて重要視されていることはなにか。 • ユーザ体験、デリバリーの速度、セキュリティ、コストetc • ⽬の前にある負債は、何にどのような影響があるのかを説明できるか。
• 共通の認識を育むきっかけにできるものを探す。 負債に向き合う⽂化づくり 〜共通認識を育む〜 19
15年以上続くサービスで取り組んでいること • 負債のメタファーのままでは、借りてきた⾔葉の域を出ない。⽬の前の課題と⾃分達 の⽂化を混ぜ合わせてやるべきことやる。 • GMOペパボでは「やっていき‧のっていき」「ナイストライ」という⽂化と、その前 提としての「ユーザファーストであること」を活⽤する。 • やっていき≒リーダーシップ •
のっていき≒フォロワーシップ • ナイストライ≒挑戦を⾃体を賞賛する ⽂化を育むためには既にある⽂化でレバレッジをかける 20 やっていき、のっていき / The Secret of Leadership and Followership - Speaker Deck
15年以上続くサービスで取り組んでいること • 18年⽬を迎えるカラーミーショップは多分に漏れず様々な技術的負債があり、そ れに対して⽇々改善に取り組んでいる。 • 取り組みは⾄って普通で、リファクタリング、リアーキテクティング、リプレー ス、葬りを組み合わせている。 • 負債というメタファーを活⽤しつつ、課題を解決するためには⾃分達の内にある⼤ 切にしていることとの繋りを活⽤する。
ここまでのまとめ 21
22 アジェンダ 1. ”負債”のメタファーとその限界 2. 15年以上続くサービスで取り組んでいること 3. AIが前提となる時代における技術的”資本”の重要性
AIが前提となる時代における技術的”資本”の重要性 • HTTPサーバのコーディングにおいては GitHub Copilotの有無で開発速度に⼤ きな差があった。 • ⼀⽅で、私達が⽇々向き合っている課 題はHTTPサーバの実装よりもはるかに 不確実性が⾼い上、事業ドメインの深
い知識が必要。 GitHub Copilot利⽤によって開発速度が55%向上 23 調査:GitHub Copilotが開発者の生産性と満足度に与える影響を数値化 - GitHubブログ
AIが前提となる時代における技術的”資本”の重要性 • Med-PaLM 2は医療ドメインに特化した LLMであり、⽶国医師免許試験の問題で 「エキスパート」レベルのパフォーマン スを達成している。 • LangChainやLlamaIndex、ChatGPTの Code
interpreterなど外部から固有の知 識を与えることで精度が向上する。 ドメイン特化LLMやドメイン固有の知識を与える⼿法で精度が上がる 24 Med-PaLM (research.google)
AIが前提となる時代における技術的”資本”の重要性 • 社内の資産を活⽤することで⽣成系AIの 価値はさらに⼤きなものになる。 • ユビキタス⾔語、データベース構造、ナ レッジベースを活⽤できるか。 • ソフトウェアの資産価値が競争⼒に直結 する時代に。
事業ドメインとプロダクトを理解したAIと⼀緒に開発する 25 Universe 2023: CopilotがGitHubをAIを駆使した開発者プラットフォームへと変貌させる - GitHubブログ
AIが前提となる時代における技術的”資本”の重要性 • ソフトウェア資産の構成要素は負債と資本。 • チームの理解とプロダクトのギャップが負債 であるなら、正しく反映されたものが資本。 • 良いコード • 良いアーキテクチャ
• 良いドキュメントetc • 負債を返却するというマインドセットから資 本を増やすマインドセットへ転換。 「技術的負債を返済する」から「技術的資本の割合を増やす」へ 26 Rethinking Technical Debt - Speaker Deck
AIが前提となる時代における技術的”資本”の重要性 • 具体的にやることは⼀緒なので⾔葉遊びであるかもしれない。 • ⼀⽅で、⾔葉を変え、マインドセットを変えることで変化があるかもしれない。 • ⽣成系AIの登場で(技術的)資本は組織の⽣産性に直結することは確実。 • 良いコード‧アーキテクチャ‧ドキュメントの価値はスーパーインフレへ。 負債を減らす
or 資本を増やす 27
AIが前提となる時代における技術的”資本”の重要性 • ⽣成系AIの活⽤は企業の競争⼒の源泉となる可能性が⾼い。 • プロダクト開発においてもコード⽣成をはじめ⼀定の効果が報告されている。 • ソフトウェアの資産価値で⽣成系AIの効果にレバレッジをかける。 • 負債を返却するというマインドセットでうまくいなかければ、資本を増やすとい うマインドセットへの転換はどうか
ここまでのまとめ 28
29 アジェンダ 1. ”負債”のメタファーとその限界 2. 15年以上続くサービスで取り組んでいること 3. AIが前提となる時代における技術的”資本”の重要性
30 Face dept, enjoy coding!