Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Kyash Tech Talk #5マネジメント 技術負債の返済計画と事業のバランス
Search
Masahiko Matsuura
November 30, 2022
Programming
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kyash Tech Talk #5マネジメント 技術負債の返済計画と事業のバランス
Masahiko Matsuura
November 30, 2022
Other Decks in Programming
See All in Programming
JIS keyboard support in Omarchy
lef237
0
130
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
3.9k
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
contenteditable と日本語入力に向き合う
colorful12
0
200
golang-bob.pdf
iwatsukayura
0
130
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
520
AWSに止められる覚悟してますか?
morizo_1984
2
540
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
800
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Product Roadmaps are Hard
iamctodd
55
13k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
630
My Coaching Mixtape
mlcsv
0
360
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Claude Code のすすめ
schroneko
67
230k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Transcript
©2022 Kyash Inc. ©2022 Kyash Inc. 技術負債の返済計画と事業のバランス 2022/11/30 Tech Talk
#5 マネジメント 2022.10更新 Kyash Techチーム ServerSide Engineering Manager Masahiko Matsuura(masamatsu66)
©2022 Kyash Inc. 2 自己紹介 映像機器メーカー、物流スタートアップを経てKyashに2020年6月にJoin。 サーバーサイド全体をマネジメントしています。 • 2社目の途中からEMに抜擢してもらい、それ以降自分には合っているのかなと感じてEM方向に進んでいます •
元々HWメーカーにいたのでC++など比較的ローレベルな環境を好みます(2社目はPHP/Laravelでしたが、こ れはこれで好きです) • 他社システムとのAPI連携などをやってきた経歴も長いです。 • 最近ゲーミングPCを買ってオジサンながらAPEX Legendsを頑張ってます 松浦 優彦(まつうら まさひこ) Backend Devチーム Manager
©2022 Kyash Inc. 3 目 次 1. Kyashの技術負債 2. 返済の取り組み
〜PAN祭り編〜 3. 機能開発にフォーカスした時期 4. 開発生産性という意味での取り組み編 Table of contents
©2022 Kyash Inc. ©2022 Kyash Inc. Kyashの技術負債 4 4
©2022 Kyash Inc. 5 Kyashの成り立ち 最初から技術選定が出来るエンジニア・CTOがいたわけでは ない • エンジニアの体制が整ってきたのは後から •
最初は創業者の鷹取CEO1名で始まった。 golangの選定も実は元銀行員の鷹取がプログラミングを齧ったりしつつ 行っていた
©2022 Kyash Inc. 6 Kyashの成り立ち 初期の設計は・・・ • かなりモノリシックだった • レイヤードアーキテクチャ?何それ美味しいの?
• 色々と同期的 • EC2で普通に動いているだけ、仮想化とは一体・・・ • 履歴の構造がカオス • 開発環境はDocker for Macでめちゃくちゃ重かった
©2022 Kyash Inc. 7 Kyashの成り立ち 色々と直している • モノリシック→マイクロサービスに • 新しく作るマイクロサービスはDDD・オニオンアーキテクチャに基づき設計
• 非同期基盤をAWS SNS・SQSで整備 • EC2→ECS Fargateへ移行 • AWS RDS→Auroraへ移行 • 開発環境をEC2へ移行、DockerをLinuxネイティブに動かせるように
©2022 Kyash Inc. 8 Kyashの成り立ち ただし・・・ • 初期のサービス・DBは依然としてファット ◦ 特に残高変動などコアロジックほど剥がしにくい
• 非同期で動くべきものが未だに一部は同期的なまま • EC2で動くバッチもまだ多数残っている • リポジトリによっては新旧のディレクトリ構成が混在しており保守性が下がっている
©2022 Kyash Inc. レイアウトの適用 9 技術負債返済のバランスは難しい • 事業体としてユーザー価値の提供速度が一番大事 • かといって動くもの最優先で負債を積み続ける、あるい
は生産性の上がる取り組みをしなかった場合は長期的に はその速度が落ちる • このバランスは全ての会社が悩み続けているはず • Kyashも時期によって変遷がある
©2022 Kyash Inc. ©2022 Kyash Inc. 返済の取り組み 〜PAN祭り編〜 10 10
©2022 Kyash Inc. “ ” 11 某パンのお祭りではない
©2022 Kyash Inc. 12 返済の取り組み 〜PAN祭り編〜 PAN祭り • Important Task
消化祭り • クォーター(3ヶ月)ごとに新機能開発などを一 切しない期間を一週間作る、この期間をPAN祭 り期間と呼んでいた • 日々の業務に忙殺されてできなかったような取 り組みをこの期間に集中してやっていた
©2022 Kyash Inc. 13 返済の取り組み 〜PAN祭り編〜 PAN祭り • メンバーからの評判は良かった •
気分をリセットするきっかけにもなっていた • しかし2020年Q4に目玉機能の開発がいくつも控えており、PAN祭り期間の確保が難しかったこともあり一旦廃 止に
©2022 Kyash Inc. ©2022 Kyash Inc. 機能開発にフォーカスした時期 14 14
©2022 Kyash Inc. 15 機能開発にフォーカスした時期 2021/05 共有口座 2021/07 イマすぐ入金 2021/08
セブン銀行 ATM出金 2021/12 法人送金サービス 2022/01 クレカ自動チャージ 廃止 2022/02 Kyash バリュー送金
©2022 Kyash Inc. 16 機能開発にフォーカスした時期 その結果 • 技術負債が増加傾向 • プロジェクトの片手間で片付けられる気がしなかった
• 技術的なチャレンジもしにくくなった • メンバーのモチベーション低下 • 技術的な発信のネタ不足、発信不足 • 結果として採用活動が全然進まない、人数はむしろ減り始めた
©2022 Kyash Inc. ©2022 Kyash Inc. 開発生産性という意味での取り 組み編 17 17
©2022 Kyash Inc. 18 開発生産性という意味での取り組み編 どうすれば技術負債を返済していけるのか? • 単に必要性を訴えるだけでは組織を動かすことができなかった • その活動が直接的ではないにせよ、事業に貢献することを示す必要があった
• そのために開発生産性の改善に繋がっていることを示すためにKPIを設定することを提案した
©2022 Kyash Inc. 19 開発生産性という意味での取り組み編 どういうKPIが開発生産性を表すと言えるのか? • 当初は独自のKPIを作成する方向で話していた • DevOpsの観点からGoogleのFourKeysを使う方針に
◦ FourKeysについてはTeck Talk #4の「fourkeys基盤を構築した話」を御覧ください ◦ 開発生産性=FourKeysではないが、ある程度は関連してくる指標だと考えている
©2022 Kyash Inc. 20 開発生産性という意味での取り組み編 どういう体制で進めるのか? • チームを2つ分けた • 従来の機能開発を進めるチームをGrowth
Productにとした • 技術負債返済に関わらずGrowth Productの 生産性を向上させるために、技術基盤レベルの も見直しも含めて行うGrowth Technology チームを作成 blogもご覧ください 「Tech Teamの生産力を爆上げすべくGrowth Technology Teamが爆誕しました」 https://blog.kyash.co/entry/2022/06/15/170000 ServerSideチーム Growth Product Growth Technology
©2022 Kyash Inc. 21 開発生産性という意味での取り組み編 まとめ • 重要なのは開発生産性が向上し続けること • そのために技術負債は返済>蓄積のバランスを維持する必要がある。僅かでも返済スピードが勝っていれば時間が味
方になる • 返済に傾け過ぎていいわけではない。返済ばかりやっていても生産していないなら意味が無い。 • リアーキテクトなどはタイミングも重要 • 結局はマネジメント層のバランス感覚のセンスが問われる Kyashでは各職種にて絶賛採用中! • エンジニアも、エンジニア以外の方も様々なポジションがあります • まずは話を聞くだけのカジュアル面談から始められますのでぜひ!
©2022 Kyash Inc. ©2022 Kyash Inc. Thank you 2022.11.30 Kyash
Tech Talk#5 マネジメント 技術負債の返済計画と事業のバランス (Masahiko Matsuura) 22