Upgrade to Pro — share decks privately, control downloads, hide ads and more …

カオナビのカイゼン・ストーリー 〜どうやってアジャイルな開発組織を作り上げたのか?〜

カオナビのカイゼン・ストーリー 〜どうやってアジャイルな開発組織を作り上げたのか?〜

XP祭り2020で発表した資料です。
https://confengine.com/conferences/xp2020

ローンチからマザーズへ上場し、HRTechをリードするまでになった7年は、カオナビにとってカイゼンの歴史でもありました。

外注開発から、内製化へ。
職能型組織から、マトリクス型組織へ。
レガシーな技術から、モダンな技術へ。
従来型の開発プロセスから、アジャイルな開発へ。

開発組織がない状態から、直面した様々な課題をどう乗り越えていったのか、そしてその先の未来を見据えた取り組みについて紹介しています。

株式会社カオナビ

February 10, 2021
Tweet

More Decks by 株式会社カオナビ

Other Decks in Business

Transcript

  1. カオナビのカイゼン・ストーリー
    〜どうやってアジャイルな開発組織を
    作り上げたのか?〜
    © kaonavi Inc.

    View Slide

  2. 2020/09/19
    © kaonavi Inc.
    登壇者紹介
    尾張部 佑亮

    グループマネージャー/EM

    2
    松下 雅和 (@matsukaz)

    CTO

    小松 史明

    スクラムマスター/EM


    View Slide

  3. 2020/09/19
    © kaonavi Inc.
    このセッションでお話すること
    ● サービス成長の裏側

    ● 1年半におよぶカイゼン活動

    ● カオナビの描く未来像

    3

    View Slide

  4. 2020/09/19
    サービス成長の裏側

    View Slide

  5. 2020/09/19
    © kaonavi Inc. 5
    この6年間に

    どのような出来事があったのか? 


    View Slide

  6. 2020/09/19
    © kaonavi Inc.
    2012年4月〜:カオナビのサービス開始
    6
    ● 開発はーーーーー
    外注100%


    ● 顧客ごとにーーー
    機能をカスタマイズ


    ● 運用はーーーーー
    現地作業あり


    View Slide

  7. 2020/09/19
    © kaonavi Inc.
    2012年4月〜:カオナビのサービス開始
    7
    ● 創業者が自ら仕様を作り、自ら営業に行く

    ● 顧客のオフィスに出向いてのリリース作業(オンプレ時代)

    ● 顧客ごとにサービスをカスタマイズ

    ● etc・・・

    カオナビを軌道に乗せる為に一生懸命!


    View Slide

  8. 2020/09/19
    © kaonavi Inc.
    2015年:運用の安定化を目指し、リプレイスプロジェクト始動
    8
    ● 売上重視の時代が続く

          ↓

    ● 技術負債が溜まる

          ↓

    ● 運用の不安定さを無視できなくなる

          ↓

    ● サービスのリプレイス開始


    View Slide

  9. 2020/09/19
    © kaonavi Inc.
    2017年:組織化への動き
    9
    ● 現行バージョン(3.0)へ移行開始

    ● 新規の利用企業が更に増加(2017年度は約450社)

    ● 組織体制の強化に乗り出す

    職能別の組織が誕生する!


    View Slide

  10. 2020/09/19
    2017年からの開発体制
    PM/企画職のグループ
    エンジニアのグループ
    QAのグループ
    10
    © kaonavi Inc.
    リリース
    実装
    仕様作成/リリースコントロール
    品質担保

    View Slide

  11. 2020/09/19
    組織化によって生産力が増加!!

    View Slide

  12. 2020/09/19
    © kaonavi Inc. 12
    黎明期

    急速な組織化

    様々な歴史の末にサービスの利用企業数は増加していった
    リプレイス


    View Slide

  13. 2020/09/19
    しかし、良いことだけではなかった(; Δ ;)

    View Slide

  14. 2020/09/19
    カオナビ
    大カイゼン時代

    View Slide

  15. 2020/09/19
    15
    ● 深刻化したセクショナリズム
    ● 仕様書を読み込むのに時間がかかる
    ● 期日コミットすることがゴールになっている
    ● 積み重ねた技術負債による鈍化
    2019/4時点でこの状態…
    © kaonavi Inc.

    View Slide

  16. 2020/09/19
    16
    ● 深刻化したセクショナリズム
    ● 仕様書を読み込むのに時間がかかる
    ● 期日コミットすることがゴールになっている
    ● 積み重ねた技術負債による鈍化
    2019/4時点でこの状態…
    © kaonavi Inc.
    アジャイルソフトウェア開発宣言の
    真逆をいく開発をしていることがよく分かる
    個人と対話よりも、プロセスやツールを
    動くソフトウェアよりも、包括的なドキュメントを
    顧客との協調よりも、契約交渉を
    変化への対応よりも、計画に従うことを

    View Slide

  17. 2020/09/19
    17
    これで顧客に素早く価値を届けられる?
    持続可能な開発ができる?
    © kaonavi Inc.

    View Slide

  18. 2020/09/19
    18
    これで顧客に素早く価値を届けられる?
    持続可能な開発ができる?
    © kaonavi Inc.
    そして始まる
    カオナビのカイゼン

    View Slide

  19. 2020/09/19
    19
    期間としては
    この1年半の間の話です!
    © kaonavi Inc.

    View Slide

  20. 2020/09/19
    3本のカイゼンの矢
    20
    開発体制 カイゼン
    開発プロセス カイゼン
    開発技術 カイゼン
    © kaonavi Inc.

    View Slide

  21. 2020/09/19
    21
    開発体制カイゼン
    © kaonavi Inc.

    View Slide

  22. 2020/09/19
    22
    当時の様子
    これ、〇〇までにお願いします
    !
    はい!
    すみません、ここ仕様変えてい
    いですか?
    そこを変更すると色々と影響が

    (仕様について質問したいけど、
    話しかけ辛いな…)
    (実装について確認したいけ
    ど、話しかけ辛いな…)
    順調ですか?
    はい…!(実はギリギリ…)
    引き続きお願いします!
    (よし、順調なんだ)
    © kaonavi Inc.

    View Slide

  23. 2020/09/19
    23
    当時の様子
    これ、〇〇までにお願いします
    !
    はい!
    すみません、ここ仕様変えてい
    いですか?
    そこを変更すると色々と影響が

    (仕様について質問したいけど、
    話しかけ辛いな…)
    (実装について確認したいけ
    ど、話しかけ辛いな…)
    順調ですか?
    はい…!(実はギリギリ…)
    引き続きお願いします!
    (よし、順調なんだ)
    © kaonavi Inc.
    ● 自分の担当を終わらせることで必死
    ● 納期に間にあわせることが目的
    ● 意思疎通不全
    ● 謎のコミュニケーションのハードル

    View Slide

  24. 2020/09/19
    24
    カイゼンのヒント
    ● 壁があるなら壁を取り払う
    ● グループからチームへ
    © kaonavi Inc.

    View Slide

  25. 2020/09/19
    〇〇チーム
    25
    壁を取り払う
    仕様・スケジュール 開発
    エンジニアリング
    グループ
    プロダクトデザイン
    グループ
    〇〇チーム
    〇〇チーム
    ミッションベース グループ
    リリースまでの全行程の責任
    © kaonavi Inc.

    View Slide

  26. 2020/09/19
    26
    グループからチームへ
    関係の質
    行動の質
    思考の質
    結果の質
    星取表

    ドラッカー風エクササイズ

    インセプションデッキ

    チーム名

    チーム飲み会・お茶会

    ふりかえり

    アジャイルコーチによるワークショップ

    デリゲーションポーカー

    © kaonavi Inc.

    View Slide

  27. 2020/09/19
    27
    その結果
    グループ開発 ➡ チーム開発
    何のために開発しているのか分からない ➡ Whyを理解した上で開発
    やらされ仕事 ➡ 自分たちで成し遂げる仕事
    個人で成果を出す ➡ チームで成果を出す
    自分の仕事が終わるかどうか ➡ チームとしての仕事が終わるかどうか
    企画職と開発者のコミュニケーション不足 ➡ 疑問・相談は直接その場で速攻で
    認識のすれ違い ➡ 同じ質で同じ情報量
    生じた変化
    © kaonavi Inc.

    View Slide

  28. 2020/09/19
    28
    カイゼンのポイント
    トップダウンとボトムアップの使い分け
    組織
    チーム
    組織構造といった大きな変化はトップダウンで
    現場のカイゼンはボトムアップで
    © kaonavi Inc.

    View Slide

  29. 2020/09/19
    29
    開発プロセスカイゼン
    © kaonavi Inc.

    View Slide

  30. 2020/09/19
    30
    当時の開発の一例
    工程A
    順調です!!!!
    © kaonavi Inc.

    View Slide

  31. 2020/09/19
    31
    当時の開発の一例
    工程A
    工程B
    今さらだけど
    気が付いたことが…
    © kaonavi Inc.

    View Slide

  32. 2020/09/19
    32
    当時の開発の一例
    工程A
    工程B
    再開だ!!
    多分間に合う!!
    本当に?
    © kaonavi Inc.

    View Slide

  33. 2020/09/19
    33
    当時の開発の一例
    工程A
    工程B
    あっ…
    もしかしてすでに…
    工程C
    状況が変わったから仕様を …
    それどころじゃないか。
    © kaonavi Inc.

    View Slide

  34. 2020/09/19
    34
    当時の開発の一例
    工程A
    工程B
    工程C
    © kaonavi Inc.

    View Slide

  35. 2020/09/19
    35
    カイゼンのヒント
    ● 最適化されていない開発プロセス
    ● 不確実性とのお付き合い
    © kaonavi Inc.

    View Slide

  36. 2020/09/19
    36
    型にハマることで学ぶ
    スクラムの導入
    © kaonavi Inc.

    View Slide

  37. 2020/09/19
    37
    型にハマることで学ぶ
    STEP1
    スクラムガイド原理主義
    違う違うそうじゃない!
    スクラムガイドには
    ウンタラカンタラ!
    なんでか分からないけど
    ルールを守らないなんだ …
    何のためにやってるんだろ …
    実践する価値を感じられない …
    スクラムマスター

    PO・開発チーム

    © kaonavi Inc.

    View Slide

  38. 2020/09/19
    38
    型にハマることで学ぶ
    スクラムの導入
    スクラムの実践と学習
    © kaonavi Inc.

    View Slide

  39. 2020/09/19
    39
    型にハマることで学ぶ
    守
 破
 離

    © kaonavi Inc.

    View Slide

  40. 2020/09/19
    40
    型にハマることで学ぶ
    守
 破
 離

    スクラムを通じて実践と学習し、
    自身も組織も変化させていく
    そのためには、
    スクラムをきちんと理解する必要
    © kaonavi Inc.

    View Slide

  41. 2020/09/19
    41
    型にハマることで学ぶ
    Core Scrum
    © kaonavi Inc.

    View Slide

  42. 2020/09/19
    42
    よし、今度こそ
    スクラムを乗りこなしてみせる!
    © kaonavi Inc.

    View Slide

  43. 2020/09/19
    なるほど…?
    (理解はできるけど腹落ちで
    きない感じ)
    43
    型にハマることで学ぶ
    STEP2
    スクラムを理解
    スクラムはこういう設計になっていて、
    提供されるイベントやロールや成果物には
    こういう背景や狙いがあるんだよ
    だから、こういう風に実践してみよう!
    スクラムマスター

    PO・開発チーム

    © kaonavi Inc.

    View Slide

  44. 2020/09/19
    なるほど…?
    (理解はできるけど腹落ちで
    きない感じ)
    44
    型にハマることで学ぶ
    STEP2
    スクラムを理解
    スクラムはこういう設計になっていて、
    提供されるイベントやロールや成果物には
    こういう背景や狙いがあるんだよ
    だから、こういう風に実践してみよう!
    スクラムマスター

    PO・開発チーム

    © kaonavi Inc.
    スクラム自体の理解は深まったかも
    しかし、スクラムを通じての
    学習と変化が進んでいなかった

    View Slide

  45. 2020/09/19
    45
    型にハマることで学ぶ
    そうだ
    スクラムじゃなくて、
    何かを解決したかったんだ
    © kaonavi Inc.

    View Slide

  46. 2020/09/19
    〇〇だからですよ
    1スプリントだけ試してみ
    ませんか?
    スプリントバックログ作成はタスクまで
    分解してみるといいですよ
    スプリントバックログが
    いつも残っちゃう
    当たり前になってる…
    46
    型にハマることで学ぶ
    STEP3
    スクラムの実践と学習
    どうして?
    試してみたら変化が生まれた!
    そうか、スプリントプランニングってこうい
    う風にやると効果的なんだ。
    PO・開発チーム

    スクラムマスター

    © kaonavi Inc.

    View Slide

  47. 2020/09/19
    〇〇だからですよ
    1スプリントだけ試してみ
    て!
    スプリントバックログ作成はタスクまで
    分解してみるといいですよ
    スプリントをDoneにで
    きない…
    47
    型にハマることで学ぶ
    STEP3
    スクラムの実践と学習
    どうして?
    試してみたら変化が生まれた!
    そうか、プランニングってこういう風にやる
    と効果的なんだ。
    PO・開発チーム

    スクラムマスター

    チームの関心事と紐づけて
    スクラムの実践と学習を行うスタイル
    その結果、徐々に変化が生まれた
    © kaonavi Inc.

    View Slide

  48. 2020/09/19
    48
    その結果
    プロジェクトの終盤まで不確実性が残る ➡ アジャイルな見積もりと計画の実践
    スケジュールもスコープも変えられない …? ➡ 自分たちでプロジェクトのハンドルを握る
    QA・デプロイは他のグループがするもの ➡ チームで完結できるようコラボレーション
    手を動かすまで開発の難易度は分からない ➡ プランニング終了時点で把握、対策を打つ
    プロジェクトが終わってからのふりかえり ➡ 毎スプリント小さなカイゼンを試す
    全て開発し終わるまでリリースできない ➡ α,βリリースでフィードバックループを回す
    生じた変化
    © kaonavi Inc.

    View Slide

  49. 2020/09/19
    49
    おまけ
    全社スプリントレビュー
    毎週木曜日に全社から参加者を募ってスプリント
    レビューを実施。
    各チームの成果物に対して営業・事業戦略・サ
    ポートチームなど、多角的なフィーバックがなされ
    る。
    開発だけでは思いつかないようなアイデアや
    フィードバックをプロダクトに反映!
    © kaonavi Inc.

    View Slide

  50. 2020/09/19
    50
    カイゼンのポイント
    仲間
 根気

    分析

    © kaonavi Inc.

    View Slide

  51. 2020/09/19
    51
    開発技術カイゼン
    © kaonavi Inc.

    View Slide

  52. 2020/09/19
    52
    当時の開発課題のイメージ
    © kaonavi Inc.

    View Slide

  53. 2020/09/19
    53
    当時の開発課題のイメージ
    足回りの悪い
    技術スタック
    属人化 スパゲッティコード
    触ったら
    どこかで不具合が起きる
    © kaonavi Inc.

    View Slide

  54. 2020/09/19
    54
    当時の開発課題のイメージ
    足回りの悪い
    技術スタック
    属人化
    秘伝の
    スパゲッティコード
    触ったら
    どこかで不具合が起きる
    技術的課題による
    諦めや計画の変更が多発
    これでは
    スピードもアジリティも出せない
    © kaonavi Inc.

    View Slide

  55. 2020/09/19
    55
    カイゼンのヒント
    ● 攻守のバランス
    ● 土壌作り
    © kaonavi Inc.

    View Slide

  56. 2020/09/19
    56
    攻守のバランス
    ● React移行プロジェクト
    ● Goによる外部公開API開発
    ● PHP/Laravelバージョンアップ
    ● FlowからTypeScript移行
    ● 着実なリファクタリング
    © kaonavi Inc.

    View Slide

  57. 2020/09/19
    技術課題の一覧可視化
    &
    テックリードのサポート
    57
    土壌作り
    技術スタックは
    現場メンバーで決定して OK
    週に2時間の
    技術品質カイゼン推奨
    ナレッジ共有の場としての
    エンジニア勉強会を定期開催
    © kaonavi Inc.

    View Slide

  58. 2020/09/19
    58
    結果
    再利用性
    可読性 保守性
    変更容易性の
    向上
    属人性の
    解消
    関心毎の
    削減
    小回りの効く
    開発
    実装以外にかける
    時間の削減
    アジリティ
    &
    スピード
    © kaonavi Inc.

    View Slide

  59. 2020/09/19
    59
    カイゼンのポイント
    技術革新は
    エンジニアの
    好奇心から生まれる
    技術的カイゼンの
    種を育むための
    環境と文化
    小さく試す
    実験を繰り返す
    © kaonavi Inc.

    View Slide

  60. 2020/09/19
    3本のカイゼンの矢
    60
    開発体制 カイゼン
    開発プロセス カイゼン
    開発技術 カイゼン
    © kaonavi Inc.

    View Slide

  61. 2020/09/19
    61
    Before
    © kaonavi Inc.

    View Slide

  62. 2020/09/19
    62
    After
    チーム開発
    Whyを理解した上で開発
    自分たちで成し遂げる仕事
    チームで成果を出す
    チームとしての仕事が終わるかどうか
    疑問・相談は直接その場で速攻で
    アジャイルな見積もりと計画の実践
    チームでプロジェクトのハンドルを握る
    リリースまでチームで完結
    スクラムによる現状把握で不確実性を排除
    毎スプリント小さなカイゼンを試す
    α,βリリースでフィードバックループを回す
    全社スプリントレビュー
    アジリティとスピードを支える開発技術
    © kaonavi Inc.

    View Slide

  63. 2020/09/19
    63
    1本の矢は簡単に折れるが、
    3本束ねると簡単には折れない
    それはアジャイルな開発組織作りも同じ!

    View Slide

  64. 2020/09/19
    © kaonavi Inc.
    カオナビ
    未来への一歩

    View Slide

  65. 2020/09/19
    カイゼンの手は緩めない!
    65
    © kaonavi Inc.

    View Slide

  66. 2020/09/19
    開発技術カイゼン
    66
    © kaonavi Inc.

    View Slide

  67. 2020/09/19
    ● KDS(Kaonavi Design System)によるUI/UX改善
    ○ 共通コンポーネントとして専用リポジトリで管理
    ○ カオナビ全体を置き換え中
    © kaonavi Inc.
    Design Systemの導入
    67

    View Slide

  68. 2020/09/19
    ● 独自形式のAPI → RESTful形式
    ● Reactへの完全移行
    ● Swaggerの網羅性を95%以上で維持
    ● パフォーマンス改善
    © kaonavi Inc.
    技術負債との戦い
    68

    View Slide

  69. 2020/09/19
    開発プロセスカイゼン
    © kaonavi Inc. 69

    View Slide

  70. 2020/09/19
    © kaonavi Inc.
    アジャイルテストの導入
    70
    参加者
    ● すべてのメンバー
    ● テスターが特別な専門知識を提供
    ● テストは、要件/設計/実装などすべての開発フェーズに織り込まれる
    ● テストは、開発ライフサイクルを通じて同時に実施
    ● テスターから開発チームへの修正フィードバックが、開発ライフサイクルの中で
    行われる → より良い設計と実装へ
    特徴
    アジャイルソフトウェア開発の原則に従うソフトウェアテスト方法

    View Slide

  71. 2020/09/19
    © kaonavi Inc.
    アジャイルテストのスプリント内の流れ
    71
    1スプリント
    デイリースクラム
    バックログリファインメント
    スプリント
    レビュー
    レトロ
    スペクティブ
    リリース(テスト)計画更新
    リグレッションテスト
    受け入れ条件
    チェック
    テストケース
    設計&作成
    テスト実施
    テストレベル
    定義
    テスト観点
    テスト見積り レポート
    プランニング1 プランニング2
    テストケース
    レビュー
    開発
    スクラム
    イベント
    アジャイル
    テスト

    View Slide

  72. 2020/09/19
    © kaonavi Inc.
    アジャイルテスト導入後のふりかえり
    72
    Problem
    Keep
    リグレッションテスト
    による安心感がある
    バグを早期発見
    テスト設計時点で
    仕様や例外の考慮漏れを指摘
    リグレッションテストが
    回るまで時間がかかる
    テストデータの
    準備が大変
    QAチームと
    どう連携しよう…

    View Slide

  73. 2020/09/19
    © kaonavi Inc.
    ポストモーテム運用
    73
    主に失敗に対するふりかえり、学習、再発防止活動
    ● 実施対象(クリティカルな失敗からの学びを優先)
    ○ 一定深刻度のインシデント
    ○ リリース後の巻き戻し

    View Slide

  74. 2020/09/19
    ● E2Eテスト
    ○ 一部プロジェクトでTestCafeを導入
    ○ CI連携準備中
    ● モブプログラミング
    ○ 一部プロジェクトで実施中
    © kaonavi Inc.
    他にも
    74

    View Slide

  75. 2020/09/19
    75
    開発体制カイゼン
    © kaonavi Inc.

    View Slide

  76. 2020/09/19
    ● 目的
    ○ 権限と責任の委譲
    ○ 責任者を明確化
    © kaonavi Inc.
    新たなロールを設置
    76
    ロール 役割
    エンジニアリングマネージャー 文化醸成、採用援助、エンジニアメンター
    サービスリード サービスの受け入れジャッジ、技術育成、人
    材採用
    テックリード フロントエンド 技術ジャッジ、技術育成、人材採用
    バックエンド(API、機能実装)
    サーバサイド(インフラ寄り)

    View Slide

  77. 2020/09/19
    © kaonavi Inc.
    組織力のさらなる強化
    77
    2020.07.01
    CDO(最高デザイン責任者)に玉木穣太就任
    2020.07.15
    技術顧問に森正弥氏就任
    2020.09.01
    CTO(最高技術責任者)に松下雅和就任
    ● 「デザイン」の力を経営や事業に組み込む
    ○ コーポレートブランディング
    ○ コミュニケーションデザイン
    ○ デザインガイドライン
    ● 元楽天技術研究所代表
    ● 組織戦略、研究開発
    (AI, ビッグデータ)相談
    ● プロダクトの開発体制強化

    View Slide

  78. 2020/09/19
    とはいえ、
    まだ大きな課題が…
    78
    © kaonavi Inc.

    View Slide

  79. 2020/09/19
    モノリス
    © kaonavi Inc. 79

    View Slide

  80. 2020/09/19
    © kaonavi Inc.
    モノリシックなシステムによる弊害
    80
    開発スピードが
    上がらない
    生産性が
    スケールしない
    リリースにかかる
    工数が大きい
    障害発生時の
    影響度が大きい
    複雑度が高いため、
    影響範囲の把握が困難
    機能開発が相互に影響し合う
    可能性があり、同時開発が困難
    1つの障害がシステム全体の
    停止につながる可能性がある
    リリース対象が大きいため、
    影響調査やQAの工数が大きくなる

    View Slide

  81. 2020/09/19
    カイゼンの
    成果は出てきた
    81
    © kaonavi Inc.

    View Slide

  82. 2020/09/19
    いまこそ
    モノリスからの脱却へ
    © kaonavi Inc. 82

    View Slide

  83. 2020/09/19
    マイクロサービス化
    プロジェクト始動!
    83
    © kaonavi Inc.

    View Slide

  84. 2020/09/19
    © kaonavi Inc.
    マイクロサービス化の狙い
    84
    適切な技術と
    体制で開発スピードを
    上げたい
    開発人数に応じて
    生産性を上げたい
    細かく安全に
    リリースしたい
    障害に対する
    影響を減らしたい

    View Slide

  85. 2020/09/19
    © kaonavi Inc.
    マイクロサービス化プロジェクト発足にいたるまで
    85
    ボトムアップ でチームが発足
    ● 個別最適になってしまいそう
    ● 開発組織全体を巻き込むのが難しい
    ● オーナーシップが発揮し辛い
    このままでは
    うまくいかないかも…

    View Slide

  86. 2020/09/19
    © kaonavi Inc.
    マイクロサービス化プロジェクト発足にいたるまで
    86
    経営層の合意の元、トップダウン でプロジェクト化
    ● 全体最適の視点
    ● 開発組織全体を巻き込む
    ○ 第2言語としてGoを正式採用
    ○ DevOpsチームを目指す
    ● オーナーシップをCTOが持つ
    本格始動!

    View Slide

  87. 2020/09/19
    マイクロサービス化は
    始まったばかり
    © kaonavi Inc. 87

    View Slide

  88. 2020/09/19
    新規事業もやりたい
    研究開発もやっていく
    © kaonavi Inc. 88

    View Slide

  89. 2020/09/19
    © kaonavi Inc. 89
    カオナビの
    カイゼン・ストーリーは
    まだまだ続く!

    View Slide

  90. 2020/09/19
    to be continued...
    90
    © kaonavi Inc.

    View Slide

  91. 2020/09/19
    91
    エンジニア募集中!!!
    少しでもカオナビに
    興味を持ってくださった方、
    https://corp.kaonavi.jp/recruit/list.html
    © kaonavi Inc.

    View Slide