Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
技術的負債を解消してくための組織づくり
Search
darquro
April 10, 2023
Technology
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
技術的負債を解消してくための組織づくり
darquro
April 10, 2023
More Decks by darquro
See All by darquro
Jailbreakと向き合おう
darquro
0
3k
ラクマでのSwiftUI導入方針とTips / Rakuma SwiftUI Introduction Policy and Tips
darquro
2
5.5k
Half modal comparision in iOS15
darquro
2
2.8k
2 Years Challenge as Engineering Manager in Rakuma
darquro
0
160
Property Wrappersがもたらす新しいSwiftプログラミング / New Swift programming with Property Wrappers
darquro
3
1.8k
iOS View Class Design Basic
darquro
3
850
Swift 5 Exclusivity Enforcement
darquro
4
890
SDK連携を用いたAdMob活用法
darquro
1
1.1k
ContributingSwift
darquro
0
110
Other Decks in Technology
See All in Technology
はじめてのDatadog
kairim0
0
280
noUncheckedIndexedAccess、3時間、1万円。 / noUncheckedIndexedAccess, 3 Hours, 10,000 JPY.
kaonavi
1
300
データ基盤をDataformで整えた話 〜 開発環境を添えて 〜
takapy
0
110
「気づいたら仕事が終わっている」バクラクAIエージェント本番運用の裏側 / layerx-bakuraku-aie2026
yuya4
18
10k
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
270
LLMと共に進化するプロセスを目指して
ymatsuwitter
11
3k
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
460
JJUG CCC 2026 Spring AI時代の開発こそ標準化を武器に! ― 方式・プロセス・プラットフォームの標準化
s27watanabe
2
720
Agentic ERPをどう設計するか ー 受発注エージェントを動かす、現場の知見と設計思想ー
recerqainc
1
1.5k
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
140
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.8k
EventBridge Connection
_kensh
4
520
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
190
30 Presentation Tips
portentint
PRO
1
320
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
300
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Thoughts on Productivity
jonyablonski
76
5.2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
For a Future-Friendly Web
brad_frost
183
10k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
Transcript
技術的負債を解消していくための組織づくり Yuki Kuroda(@darquro) Rakuten Group, Inc.
2 楽天ラクマについて • 2014年からネイティブアプリを開発 • 2018年時点では30~40%がSwift/Kotlin (darquro⼊社) • 2022年に100%Swift/Kotlinに移⾏完了 *1
https://www.wantedly.com/companies/rakutenrakuma/post_articles/427902 *2 https://www.wantedly.com/companies/rakutenrakuma/post_articles/455377 技術的負債を解消⽅針 • ⾔語の移⾏と同時にリアーキテクチャーも⾏ い、テストを増やしていく • 機能開発は⽌めない *1 *2
3 EMとしての組織づくり 技術的負債を解消してく組織をつくりたい メンバーが⾃律的に動ける体制を整える 結論 Next どんなこと をやってきたか
4 ⽬標を表明 “今こういうことに取 りん組んでいる”、 ”これはどういう意味 がある” ということを定期的に 発信する。 チーム外 “こういう⽅針でやっ
ていこう” 、 ”いつまでに何を完了 させよう” といったビジョンを伝 える。 チーム内 “これがX⽉くらいに終わってる といいですよね” “今期はリファクタリングで注 ⼒したいのはどのあたりですか ね︖” といった具体的かつ、ある期間 で達成できるゴールのイメージ を掴んでもらう。 メンバー個々 コンテキストが揃うことで、コミュニケーションをスムーズに。 漠然としたゴールではなく、わかりやすいゴールを。
5 評価制度への組み込み リファクタリングの粒度、影響度に応じたImpact Levelを定義。またそれに応じた難易度ポイントを設定。 メンバーにはすべてのPRに対してImpact Lebelを設定してもらう。(→ QA時の分析指標としても利⽤) メンバーは⽬標設定で、⾃⾝のリファクタリングタスクの稼働率から⽬標ポイントを算出し、合計ポイント が⽬標達成しているかどうかを定量評価できるように仕組み化。 Impact
Level Example Point 1 • 機械的に⾏えるリファクタリング • ライブラリのMinor Version Up • 軽微なパフォーマンスチューニング 1 2 • 限定的な影響範囲のクラスのや機能のリファクタリング • ライブラリのバージョンアップとそれに伴う⼀定の調査とテストに時間が要するも ののリファクタリング 2 3 • 複数の機能に影響するクラスのリファクタリング • UXやメモリ削減等に影響するパフォーマンス向上 4 4 • コアとなるクラス、開発のボトルネックとなっている、アプリ全体へ影響する複雑 性の⾼いクラスのリファクタリング • 全体へ影響するアーキテクチャの改善、チーム⽣産性へも影響するリファクタリン グ 8
6 評価制度への組み込み リファクタリング稼働率 (%) = ⽬標達成合計Point Ex. リファクタリング稼働率 20% →
⽬標達成合計Point 20点が100%達成のRatingとする。 • ImpactLevel 2 (2point) × 6件 = 12point • ImpactLevel 3 (4point)× 2件 = 8point さらに合計の1.5倍以上達成で⼀つの上のRatingになる。
7 評価制度への組み込み パフォーマンス 評価 (定量評価) コンピテンシー 評価 (定性評価) リファクタリング ImpactLevelに応じた合計Pointで評価
⽬標達成(完了)まで到達しなかった けど、プロセスとして評価できるも のはグレードに応じた期待役割を軸 に評価
8 品質担保のための仕組みづくり • すべてのPRとImpactLevelをQAに共有し、QAのテスト観点として利⽤ • テストプロセスとリリースプロセスの⾃動化(CI/CD) • どうしてもマニュアル作業が必要なところにリリース プロセスチェックリストで漏れを防⽌ •
本番リリース前の、最終動作確認テスト項⽬を作成し、”違和感”に気がつけるタイミングを設け る
9 トラブル後の振り返り 参加メンバー • iOS/Androidエンジニアチームごとのメンバー全員で参加 事象の再確認 • 検知⽇時、発⽣時期、復旧⽇時 直接原因の整理 •
どんなコード変更をしたのか • どんなオペレーションをしたのか 根本原因の深堀り • どうしてこのようなコード変更をする経緯に⾄ったのか • 間違いに気がつけるタイミング、フロー、プロセスはあったのか 再発防⽌策 • UTでカバーできるか • プロセスでカバーできるか • ドキュメントでカバーできるか … その他仕組み化できることは何か
10 リファクタリングスピードの調整 • ⾃律した組織化が進んでいくと、スピードがどんどん上がっていく • レビュー数が増えることで、⼀つ⼀つの精度が下がる ⼀度⽴ち⽌まって、スピードを落とすことも伝える。 あまりマイナスな印象を与えないようにすることも⼤切。 ⼀歩ずつ丁寧にやっていこうと前向きな⾔葉を使う。 https://www.pixiv.net/en/artworks/32470259
11 ⾃律的なチームを拡⼤ モバイルアプリチームの成功事例を 開発組織全体へ拡⼤ • チームの認知負荷の軽減 • チームの適切な境界を再定義 • 組織の再編成を模索中
『チームトポロジー』⽇本能率境界マネジメントセンター
12 偉業は⼀時的な衝動でなされるものではなく、⼩さなことの積 み重ねによって成し遂げられるのだ。 Great things are not done by impulse,
but by a series of small things brought together. フィンセント・ファン・ゴッホ Vincent van Gogh
Thank you for listening!