Slide 1

Slide 1 text

Copyright coconala Inc. All Rights Reserved. Developers Summit 2023 エンジニア数が3倍になる過程での エンジニア組織の段階的育成アプローチ 2023.2.9 株式会社 ココナラ 村上 正敏

Slide 2

Slide 2 text

Copyright coconala Inc. All Rights Reserved. 2 村上 正敏 株式会社ココナラ 執⾏役員 開発担当 Web系スタートアップにて、toC 向けプロダクト開発を複数経験し た後、2019年にココナラに参画 現在は、技術⾯〜組織⾯まで開発 全般の⽅針策定・推進を担当

Slide 3

Slide 3 text

Copyright coconala Inc. All Rights Reserved. ココナラの事業紹介 / サービス⼀覧(⼦会社除く) 3 「知識・スキル・経験」 を売り買いできるスキル マーケット 「ココナラ」 ITフリーランス向け 業務委託案件紹介サービス 「ココナラエージェント」 ビジネス向けに特化した スキルマーケット 「ココナラビジネス」 ⼀⼈ひとりにあった弁護⼠ が⾒つかる検索メディア 「ココナラ法律相談」

Slide 4

Slide 4 text

Copyright coconala Inc. All Rights Reserved. ココナラの事業紹介 / ココナラの概要 4 知識・スキル・経験を商品化し、ECのように売り買い

Slide 5

Slide 5 text

Copyright coconala Inc. All Rights Reserved. 5 Agenda フェーズ0︓取り組み前の状態 フェーズ1︓技術施策の推進 フェーズ2︓エンジニア評価・育成 フェーズ3︓技術広報 まとめ 1 2 3 3 4 5

Slide 6

Slide 6 text

Copyright coconala Inc. All Rights Reserved. フェーズ0︓取り組み前の状態 Chapter 1 6

Slide 7

Slide 7 text

Copyright coconala Inc. All Rights Reserved. フェーズ0︓取り組み前の状態 数年前の状況 7 事業拡⼤に合わせて3年で約3倍の組織規模に成⻑ 2020年 2023年 フェーズ 上場前 上場後 エンジニア数 20⼈強 60⼈強 リポジトリ数 45 146 1

Slide 8

Slide 8 text

Copyright coconala Inc. All Rights Reserved. Q. 技術負債解消できてますか︖ 8 ところで質問です

Slide 9

Slide 9 text

Copyright coconala Inc. All Rights Reserved. 1 フェーズ0︓取り組み前の状態 技術負債の対応状況 9 A. 数年前は技術負債に⼿が回らない状況でした ● 具体な技術負債例 ● 各種バージョンアップ対応︓なし ● レガシーコードの単体テスト︓なし ● スロークエリ等の対応︓なし ● 軽微な障害対応︓なし 事業成⻑にコミットした結果

Slide 10

Slide 10 text

Copyright coconala Inc. All Rights Reserved. 10 1 フェーズ0︓取り組み前の状態 変わろうとしたきっかけ ⻑年蓄積した負債が、障害という形で顕在化し、 ユーザー様にご迷惑をかけることが増えてきた。 ⼀⽅、社内から開発に関する不満の声もあがっていた。 この状況を問題視し、状況の打破に向けて動き出した。

Slide 11

Slide 11 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 Chapter 2 11

Slide 12

Slide 12 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 Chapter 02 12 2.1. できない理由の解消 2.2. 運⽤ラインの導⼊ 2.3. 技術ロードマップの導⼊ 2.4. 開発委員会の導⼊

Slide 13

Slide 13 text

Copyright coconala Inc. All Rights Reserved. 2 フェーズ1︓技術施策の推進 すぐに技術課題に取り組んだほうが良いのか︖ 13 すぐに技術課題に取り組む まずはできない理由と向き合う 継続できない

Slide 14

Slide 14 text

Copyright coconala Inc. All Rights Reserved. 2 フェーズ1︓技術施策の推進 過去の振り返り 14 ⼀般的になぜ技術負債は後回しにされるのか ● 理由の⼀例 ● 他に優先度が⾼いものがある ● リソース上の余裕がない ● 難易度が⾼すぎて⼿に負えない ● ⾯倒くさい、楽しくない

Slide 15

Slide 15 text

Copyright coconala Inc. All Rights Reserved. 2 フェーズ1︓技術施策の推進 できない理由の深堀り例 15 なぜ「優先度が上がらない」のか 優先度の認識が関係者間ですり合っていない ⾔いたいことが相⼿に⼗分伝わってない 相⼿の視座に⽴った会話ができていない

Slide 16

Slide 16 text

Copyright coconala Inc. All Rights Reserved. 2 フェーズ1︓技術施策の推進 認識がすり合っていない例(実際の例ではないです︕) 16 サポート期限が切れる のでバージョンアップ すべき 売上貢献度的にもっと 優先度⾼い施策がある のでは︖ VS 脆弱性を攻撃されると、損害や機会損失などの経営上マイナス インパクトが⼤きいため、バージョンアップを優先すべき (根拠となるデータを⾒せながら) こういう翻訳があると伝わりやすい

Slide 17

Slide 17 text

Copyright coconala Inc. All Rights Reserved. 2 フェーズ1︓技術施策の推進 認識すり合わせの重要性 17 相⼿の視座に合わせて会話すると、 関係者間で認識がすり合ってくる。 その結果、優先度設定が適切になり、 同時に納得感ももてるようになる。

Slide 18

Slide 18 text

Copyright coconala Inc. All Rights Reserved. 2 フェーズ1︓技術施策の推進 できない理由の解消 18 何かできない理由がある場合は まずそれを取り除いていくことが⼤事

Slide 19

Slide 19 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 Chapter 02 19 2.1. できない理由の解消 2.2. 運⽤ラインの導⼊ 2.3. 技術ロードマップの導⼊ 2.4. 開発委員会の導⼊

Slide 20

Slide 20 text

Copyright coconala Inc. All Rights Reserved. 20 ⽇々蓄積していく⼩さいタスクの消化が課題 ● 具体なタスク例 ● 軽微な不具合・障害対応 ● 社内からの調査依頼への対応 ● 問い合わせ内容個別対応 ● 軽微なSEO対策 等 フェーズ1︓技術施策の推進 ⼩規模な技術課題の例 2

Slide 21

Slide 21 text

Copyright coconala Inc. All Rights Reserved. Q. 20%ルールってやってますか︖😇 21 ※業務時間の20%を好きなことに使っていいルールで、Googleが実践

Slide 22

Slide 22 text

Copyright coconala Inc. All Rights Reserved. Q. 合計120%になってませんか︖😭 22 やってる⽅に追加で質問 ※ 80%+20%のはずが 100%+20%

Slide 23

Slide 23 text

Copyright coconala Inc. All Rights Reserved. 23 メイン業務中の合間に気合でやる(120%) 計画的に作業タイムを作る(100%) フェーズ1︓技術施策の推進 リソースの確保をどうするか 2

Slide 24

Slide 24 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 運⽤ラインにおける時間確保のやり⽅ 24 施策間に隙間時間を活⽤し、持ち回り制で運⽤ 施策推進 ライン 運⽤ ライン 施策A タスク タスク タスク 施策B 施策C 施策D X Y Z 2 ・・・ ・・・ ※必ず誰かがアサインされている状況にする事が⼤事

Slide 25

Slide 25 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 運⽤ラインにおけるタスク管理 25 実施する施策は、部署毎に優先順位付けして管理 2 Githubなどの ツールで チケット管理 部署別バックログ

Slide 26

Slide 26 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 ⾒積もり会を通じたタスクの精査 26 ⾒積もり会で⼯数⾒積もりと優先度判断を実施 2 各種改善要望 (不具合等) 毎週の ⾒積もり会 フロントエンドの バックログ追加 バックエンドの バックログ追加 アプリの バックログ追加 PdM、FE、BE、APPなど 関係者が参加

Slide 27

Slide 27 text

Copyright coconala Inc. All Rights Reserved. 27 ⼩規模施策を優先度管理し、 新規導⼊した運⽤ラインによって、 持ち回り制で推進できるようになった。 フェーズ1︓技術施策の推進 運⽤ラインまとめ 2

Slide 28

Slide 28 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 Chapter 02 28 2.1. できない理由の解消 2.2. 運⽤ラインの導⼊ 2.3. 技術ロードマップの導⼊ 2.4. 開発委員会の導⼊

Slide 29

Slide 29 text

Copyright coconala Inc. All Rights Reserved. あまり技術負債解消されてなくない︖😵💫 29 運⽤ライン導⼊したけども・・・

Slide 30

Slide 30 text

Copyright coconala Inc. All Rights Reserved. 30 フェーズ1︓技術施策の推進 技術施策の⼤きさと対応状況 2 分類 規模感 対応状況 ⼩規模施策 1週間程度 OK 中規模施策 数週間〜1ヶ⽉程度 NG ⼤規模施策 数ヶ⽉〜 NG 中〜⼤規模の技術施策は取り組めていなかった ←運⽤ラインの スコープ

Slide 31

Slide 31 text

Copyright coconala Inc. All Rights Reserved. 31 中規模施策は、複数部署横断の内容が多く、 部署毎の施策管理では限界がある。 フェーズ1︓技術施策の推進 中規模技術施策の課題 2 部署横断の共通的な施策管理が必要

Slide 32

Slide 32 text

Copyright coconala Inc. All Rights Reserved. 32 フェーズ1︓技術施策の推進 技術ロードマップの整理 2 中〜⼤規模の技術施策は部署横断でリストアップ 技術ロードマップ

Slide 33

Slide 33 text

Copyright coconala Inc. All Rights Reserved. 33 フェーズ1︓技術施策の推進 技術ロードマップの施策の⼯数確保 2 隙間時間ではなく、1施策として関係者のリソースを確保 施策推進 ライン 技術 ライン 運⽤ ライン 施策A タスク タスク タスク 施策B 施策C 施策D(技術) X Y Z ・・・ ・・・

Slide 34

Slide 34 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 Chapter 02 34 2.1. できない理由の解消 2.2. 運⽤ラインの導⼊ 2.3. 技術ロードマップの導⼊ 2.4. 開発委員会の導⼊

Slide 35

Slide 35 text

Copyright coconala Inc. All Rights Reserved. 難易度⾼い問題は相変わらず残ってるよね😵 35 ある程度は負債解消進んでいるけども

Slide 36

Slide 36 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 難易度⾼い課題が着⼿できない理由 36 なぜ「難易度が⾼いと⼿に負えない」のか 課題が抽象的すぎてどこから着⼿すればいいかわからない 課題が実施可能な粒度までブレイクダウンされていない 2

Slide 37

Slide 37 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 課題をブレイクダウンした例(実際の例ではないです︕) 37 サービスが重いのを解消したい ⼤きすぎるのでブレイクダウンする アプリ側とインフラ側でわけて負荷対策を実施する アプリ側で負荷軽減 インフラ側でスケーラビリティ向上 まだ曖昧なのでさらにブレイクダウンする スロークエリを 個別で対策 ⼀部データを ⾮RDB化 サーバーの 台数追加 Aurora への移⾏ ・・・ ・・・ 2

Slide 38

Slide 38 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 課題をブレイクダウンする重要性 38 ⼤きな課題は、適切にブレイクダウンすれば、 計画も⽴てやすくなり、施策は推進しやすくなる 2 関係者で集まって定期的に議論する場が必要と考え テーマ毎に開発委員会を設置 でも上記は誰でも簡単にできるわけではない

Slide 39

Slide 39 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 各開発委員会のテーマ 39 2 委員会名 ⽬的 QA開発委員会 品質向上およびQA⾃動化推進 開発環境改善委員会 開発環境刷新および開発スピードの向上 SLO委員会 可⽤性向上、負荷軽減 パフォーマンス委員会 パフォーマンス、スケーラビリティ向上 インフラ改善委員会 保守運⽤の効率化、セルフサービス化 プロダクト改善委員会 バージョンアップ対応 情報セキュリティ向上委員会 各種情報セキュリティ対策

Slide 40

Slide 40 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 開発委員会の位置づけ 40 2 部署定例での 議論内容 各プロジェクト の振り返り 各種 ポストモーテム テーマ毎の 開発委員会 テーマ毎の 開発委員会 テーマ毎の 開発委員会 技術ロードマップ に登録し推進 さまざまな技術課題を持ち寄り開発委員会で討論 ・課題提起とブレイクダウン ・各課題の優先度判断と⽅針議論 ・施策の進捗モニタリング 参加は⾃由

Slide 41

Slide 41 text

Copyright coconala Inc. All Rights Reserved. ここからは開発委員会施策の例を3つ紹介します 41

Slide 42

Slide 42 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 施策の⼀例︓各種バージョンアップ対応(期間︓各1ヶ⽉程度) 42 2 リポジトリ 対象 サポート期限 1Q 2Q 3Q 4Q repo_A Ruby / 2.7.7 2023/03/31 ◯ repo_B Vue.js / 2.6.14 2023/09/23 ◯ repo_C Ubuntu / 22.10 2023/07/20 ◯ 対象物のEOLをリストアップし、期限に応じて計画作成 ソリューションマップ(現在︓約200件)

Slide 43

Slide 43 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 施策の⼀例︓Web/APPのE2Eテスト⾃動化(期間︓半年以上) 43 2 Playwright Appium APP WEB QA⼯程におけるE2Eテストの⼀部を⾃動化 ReportPortal E2Eテストツール テスト実⾏結果 独⾃のCI環境

Slide 44

Slide 44 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 施策の⼀例︓DBスケーラビリティ(期間︓1年以上) 44 2 RDS (MySQL 5.7) Aurora (MySQL8) RDS (MySQL 5.7) Aurora (MySQL8) RDS (MySQL 5.7) Aurora (MySQL8.0) ・5.7→8.0、RDS→Auroraへの影響調査 ・本番を想定した性能検証、負荷試験 ・E2Eテストによる動作確認 ・DB毎の⼊念な移⾏計画策定 IOPSの限界やサポート期限を考慮し、Aurora移⾏を実施中

Slide 45

Slide 45 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 技術施策を推進した結果 45 2 頑張った結果、⽣産性が⾼い企業として表彰されました

Slide 46

Slide 46 text

Copyright coconala Inc. All Rights Reserved. フェーズ1︓技術施策の推進 フェーズ1まとめ 46 2 2.1. できない理由の解消 → 相⼿の視座に⽴った認識のすり合わせ 2.2. 運⽤ラインの導⼊ → ⼩規模施策を部署別で推進 2.3. 技術ロードマップの導⼊ → 中規模施策を全社共通で推進 2.4. 開発委員会の導⼊ → ⼤規模施策をブレイクダウンして推進

Slide 47

Slide 47 text

Copyright coconala Inc. All Rights Reserved. フェーズ2︓エンジニア評価・育成 Chapter 3 47

Slide 48

Slide 48 text

Copyright coconala Inc. All Rights Reserved. 「この会社で、今後エンジニアとしての キャリアがイメージできません😥」 48

Slide 49

Slide 49 text

Copyright coconala Inc. All Rights Reserved. フェーズ2︓エンジニア評価・育成 エンジニア評価に関する課題感 49 3 エンジニアの専⾨能⼒が⼗分評価されていない キャリアアップの道筋が⾒えない エンジニアの技術⼒を評価する仕組みが必要 評価制度は全社で共通

Slide 50

Slide 50 text

Copyright coconala Inc. All Rights Reserved. 50 そもそも技術⼒ってなんだろ︖🤔

Slide 51

Slide 51 text

Copyright coconala Inc. All Rights Reserved. フェーズ2︓エンジニア評価・育成 技術⼒の4分類 51 3 「技術⼒=技術を使って問題解決できる能⼒」として定義 技術⼒ 問題発⽣前にどう防ぐか (システム設計・計画⼒) 問題継続中にどう運⽤改善するか (運⽤強化⼒) 問題発⽣後にどう応急対処するか (技術原因解決⼒) 上記対応⼈材をどう確保し育成するか (採⽤育成⼒)

Slide 52

Slide 52 text

Copyright coconala Inc. All Rights Reserved. フェーズ2︓エンジニア評価・育成 エンジニアグレード表の整備 52 3 グレードを定義し、技術⼒レベルを細かく明⽂化 6~ 5~ 4~ 3~ 2~ 1~ マネジメント トラック エキスパート トラック エンジニア共通トラック 技術⼒4分類 エンジニアグレード表

Slide 53

Slide 53 text

Copyright coconala Inc. All Rights Reserved. 53 グレード定義はいいけど、評価どうするの︖

Slide 54

Slide 54 text

Copyright coconala Inc. All Rights Reserved. フェーズ2︓エンジニア評価・育成 技術⼒評価の軸 54 3 技術成果物(FACT)を元に能⼒レベルを評価 グレード定義 技術成果物 技術⼒の4分類 ・技術原因解決⼒ ・システム設計・計画⼒ ・運⽤強化⼒ ・採⽤育成⼒ ・ソースコード ・ドキュメント ・各種対応履歴・ログ ・その他ファクト

Slide 55

Slide 55 text

Copyright coconala Inc. All Rights Reserved. フェーズ2︓エンジニア評価・育成 技術⼒評価委員会 55 3 エンジニア 上⻑評価 技術⼒評価 委員会 最終 評価結果 委員会で第3者視点での客観的かつ公平な評価を実施 エンジニア 上⻑評価 エンジニア 上⻑評価 最終 評価結果 最終 評価結果 エンジニアマネージャー が複眼で評価

Slide 56

Slide 56 text

Copyright coconala Inc. All Rights Reserved. フェーズ2︓エンジニア評価・育成 エンジニアキックオフによる技術交流 56 3 際⽴つ成果については、定期的なキックオフで全体共有 LT形式で成果を共有 懇親会で横断的に交流

Slide 57

Slide 57 text

Copyright coconala Inc. All Rights Reserved. フェーズ2︓エンジニア評価・育成 フェーズ2まとめ 57 3 技術⼒をエンジニアグレードという形で定義し、 それを⽤いた評価/FBサイクルを設計 その結果、各⼈のキャリアパスが明確になり、 1on1でもキャリアに対する相談が増えた

Slide 58

Slide 58 text

Copyright coconala Inc. All Rights Reserved. フェーズ3︓技術広報(現在) Chapter 4 58

Slide 59

Slide 59 text

Copyright coconala Inc. All Rights Reserved. 59 「御社はテックブログとかやってないんですね🥴」

Slide 60

Slide 60 text

Copyright coconala Inc. All Rights Reserved. フェーズ3︓技術広報 外部発信に関する課題感 60 4 エンジニアからの認知度が低く、採⽤時に苦戦 情報発信が⼀切ないため、興味を持てない状況 技術的な外部発信を強化していく必要がある

Slide 61

Slide 61 text

Copyright coconala Inc. All Rights Reserved. フェーズ3︓技術広報 外部発信のコンテンツについて 61 4 採⽤⾯・育成⾯で、技術広報を強化したいが 何を発信すればいい・・・︖ 技術ロードマップで推進している内容を 飾らずそのまま発信していけばいいのでは︖

Slide 62

Slide 62 text

Copyright coconala Inc. All Rights Reserved. フェーズ3︓技術広報 現在〜今後の実践 62 4 テックブログの 推進 ITイベント 登壇 外部メディアに 事例掲載 社外勉強会 採⽤ページ の拡充 カンファレンス の協賛 以下のようなことを実施してきました&今後も頑張ります

Slide 63

Slide 63 text

Copyright coconala Inc. All Rights Reserved. まとめ Chapter 5 63

Slide 64

Slide 64 text

Copyright coconala Inc. All Rights Reserved. まとめ 64 5 エンジニア数が3倍になる過程で以下を実施 ● ⼤⼩さまざまな技術施策推進体制を構築 ● エンジニアに特化したグレード評価制度を整備 ● 採⽤⾯・育成⾯で外部情報発信を強化

Slide 65

Slide 65 text

Copyright coconala Inc. All Rights Reserved. さいごに 65 5 私⾃⾝が現場で課題を感じる中で、 メンバーと共に相談しながら、 現在の状況を作り上げてきました 今後もさらなる成⻑に向けて頑張っていきます

Slide 66

Slide 66 text

Copyright coconala Inc. All Rights Reserved. ご清聴 ありがとうございました