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

技術的負債に向き合い続ける姿勢はスキル幅の広がりにも繋がる話

 技術的負債に向き合い続ける姿勢はスキル幅の広がりにも繋がる話

コドモン開発チーム

February 01, 2023
Tweet

More Decks by コドモン開発チーム

Transcript

  1. 技術的負債に向き合い続ける姿勢は
    スキル幅の広がりにも繋がる話
    2022年12月9日
    西銘 承太郎

    View full-size slide

  2. 2
    経歴
    PGとしてSESの会社で開発現場を数社経験し、事業に寄り
    添ったエンジニアとして働きたいと思い、コドモンに入社。
    自己紹介
    西銘 承太郎 にしめ じょうたろう
    2019.10 コドモンに開発エンジニアとして入社
    2020.04 保守改善チームのリーダーとして、
    技術的負債に向き合い始める
    2021.04 リリース運用改善を始める
    2021.10 SREチームに異動。
    インフラ周りにも手を伸ばし始める

    View full-size slide

  3. 4
    すべての先生に 子どもと向き合う
    時間と心のゆとりを
    こんなプロダクトを開発しています
    メインプロダクトは、こども施設職員の業務を支援するWebアプリケーション。
    保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版
    アプリケーション、外部サービスと連携するAPIなども開発しています。

    View full-size slide

  4. 受託開発期
    2009年
    創業
    導入数
    11,000
    5
    これまでの沿革
    2009年に創業し、受託開発事業を経て2015年に保育・教育施設向け業務支援サービス「コドモン」をリリース。
    保育・教育業界に根付いたバーティカル領域でシェアを伸ばしつつ、着実に成長戦略を実現しています。
    全国200自治体
    で採用
    BizDev
    始動
    ベネッセHD社と
    資本業務提携
    ㈱コドモンを
    新設分割にて設立
    コドモン正式版
    リリース
    導入数
    5,000
    導入数
    1,500
    導入数
    100
    スクール向け
    連絡ツール
    開発
    コドモンβ版
    リリース

    View full-size slide

  5. 219人
    ※2022年7月時点
    6
    チーム構成
    2022年6月時点

    View full-size slide

  6. 7
    開発・保守の難易度が
    高いプロダクト状況
    2020年まで「早くたくさん機能をつ
    くる」ことを最優先に開発してきた
    ため、アーキテクチャ面に課題があ
    ります。
    技術的負債の課題
    開発・保守しやすい
    ソースコードへ
    だからこうしていきます
    機能単位でのリプレイス
    ● 2021年2月、シフト機能をリリース
    ● 2022年8月、資料室機能をリリース
    →今後は複線同時進行しリプレイスを加速予定
    機能や処理単位でのリファクタリング
    ● ドメイン駆動開発 x クリーンアーキテクチャ  
    ベースへのリファクタリングが進行中
    →今後も各チームで優先度を判断しながら進行予定
    7

    View full-size slide

  7. 8
    はじめに

    View full-size slide

  8. 9
    本題に入る前に

    View full-size slide

  9. 10
    この半年のシステム稼働状況について
     

    View full-size slide

  10. 11
    2022年4月から半年ほど
    システム稼働が不安定な状況が
    時折発生してしまいました

    View full-size slide

  11. 12
    安定稼働にもつながる
    技術的負債の返済に向き合ってきた
    私の話をします

    View full-size slide

  12. 13
    ひたすら
    技術的負債に向き合ったら
    意外とスキルがついていた

    View full-size slide

  13. 14
    そんな話です

    View full-size slide

  14. 15
    エンジニアとは
    なぜ負債に向き合ってきたのか
    負債に向き合ってなにを得たのか
    振り返り
    今日話すこと
    1
    2
    3
    4

    View full-size slide

  15. 16
    今日話さないこと
    ● 負債の具体的な返済方法
    ● システムの稼働状況の詳細

    View full-size slide

  16. 17
    エンジニアとは
    なぜ負債に向き合ってきたのか
    負債に向き合ってなにを得たのか
    振り返り
    今日話すこと
    1
    2
    3
    4

    View full-size slide

  17. 18
    CONFIDENTIAL - © 2022 CoDMON Inc. 18
    エンジニアとは?
    1. エンジニアとは

    View full-size slide

  18. 19
    CONFIDENTIAL - © 2022 CoDMON Inc. 19
    『エンジニアリング組織論への招待
    〜不確実性に向き合う思考と組織のリファクタリング』
    1. エンジニアとは

    View full-size slide

  19. 20
    CONFIDENTIAL - © 2022 CoDMON Inc. 20
    1. エンジニアとは
    エンジニアリング


    View full-size slide

  20. 21
    CONFIDENTIAL - © 2022 CoDMON Inc. 21
    1. エンジニアとは
    エンジニアリング

    工学
    (実現するための科学)

    View full-size slide

  21. 22
    CONFIDENTIAL - © 2022 CoDMON Inc. 22
    1. エンジニアとは
    ソフトウェアにおける
    エンジニアリング


    View full-size slide

  22. 23
    CONFIDENTIAL - © 2022 CoDMON Inc. 23
    1. エンジニアとは
    ソフトウェアにおける
    エンジニアリング

    不確実性を効率よく削減すること

    View full-size slide

  23. 24
    CONFIDENTIAL - © 2022 CoDMON Inc. 24
    1. エンジニアとは
    ソフトウェアにおける
    エンジニアリング

    不確実性を効率よく削減すること
    (=「曖昧さ」を減らし、「具体性・明確さ」を増やす行為)

    View full-size slide

  24. 25
    CONFIDENTIAL - © 2022 CoDMON Inc. 25
    1. エンジニアとは
    どういうことか?

    View full-size slide

  25. 26
    CONFIDENTIAL - © 2022 CoDMON Inc. 26
    1. エンジニアとは
    出典: 広木 大地 (著)『エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング』技術評論社、2018年、P12

    View full-size slide

  26. 27
    CONFIDENTIAL - © 2022 CoDMON Inc. 27
    1. エンジニアとは
    エンジニアとは

    不確実性を効率よく削減する人

    View full-size slide

  27. 28
    1
    3
    4
    エンジニアとは
    なぜ負債に向き合ってきたのか
    負債に向き合ってなにを得たのか
    振り返り
    今日話すこと
    2

    View full-size slide

  28. 29
    CONFIDENTIAL - © 2022 CoDMON Inc. 29
    2. なぜ負債に向き合ってきたのか
    負債を返済する


    View full-size slide

  29. 30
    CONFIDENTIAL - © 2022 CoDMON Inc. 30
    2. なぜ負債に向き合ってきたのか
    負債を返済する

    目の前の開発ストレスを
    取り除くこと?

    View full-size slide

  30. 31
    CONFIDENTIAL - © 2022 CoDMON Inc. 31
    負債を返済する

    目の前の開発ストレスを
    取り除くこと?
    2. なぜ負債に向き合ってきたのか

    View full-size slide

  31. 32
    CONFIDENTIAL - © 2022 CoDMON Inc. 32
    2. なぜ負債に向き合ってきたのか
    負債を返済する


    View full-size slide

  32. 33
    CONFIDENTIAL - © 2022 CoDMON Inc. 33
    2. なぜ負債に向き合ってきたのか
    負債を返済する

    長期的にプロダクトを
    良くすること

    View full-size slide

  33. 34
    CONFIDENTIAL - © 2022 CoDMON Inc. 34
    2. なぜ負債に向き合ってきたのか
    どういうことか?

    View full-size slide

  34. 35
    CONFIDENTIAL - © 2022 CoDMON Inc. 35
    2. なぜ負債に向き合ってきたのか
    良いプロダクトをつくる

    View full-size slide

  35. 36
    CONFIDENTIAL - © 2022 CoDMON Inc. 36
    2. なぜ負債に向き合ってきたのか
    良いプロダクトをつくる


    View full-size slide

  36. 37
    CONFIDENTIAL - © 2022 CoDMON Inc. 37
    2. なぜ負債に向き合ってきたのか
    良いプロダクトをつくる

    良い設計?流行りの技術使う?

    View full-size slide

  37. 38
    CONFIDENTIAL - © 2022 CoDMON Inc. 38
    2. なぜ負債に向き合ってきたのか
    良いプロダクトをつくる

    「ユーザーにとっての本当の価値」
    を仮説検証して積み重ねる

    View full-size slide

  38. 39
    CONFIDENTIAL - © 2022 CoDMON Inc. 39
    案件:ダッシュボード画面のデザイン変更(一般的な仮説検証の流れ)
    前提:コードの改修は表示関数を修正すればOK!
     
    2. なぜ負債に向き合ってきたのか

    View full-size slide

  39. 40
    CONFIDENTIAL - © 2022 CoDMON Inc. 40
    案件:ダッシュボード画面のデザイン変更(一般的な仮説検証の流れ)
    前提:コードの改修は表示関数を修正すればOK!
      ↓
    仮説:ユーザーが喜ぶデザインはA?B?
    ● 〇〇だからデザインAだろう
    ● △△だからデザインBかも
    2. なぜ負債に向き合ってきたのか

    View full-size slide

  40. 41
    CONFIDENTIAL - © 2022 CoDMON Inc. 41
    案件:ダッシュボード画面のデザイン変更(一般的な仮説検証の流れ)
    前提:コードの改修は表示関数を修正すればOK!
      ↓
    仮説:ユーザーが喜ぶデザインはA?B?
    ● 〇〇だからデザインAだろう
    ● △△だからデザインBかも
      ↓
    仮説検証結果をプロダクトに反映する
    2. なぜ負債に向き合ってきたのか

    View full-size slide

  41. 42
    CONFIDENTIAL - © 2022 CoDMON Inc. 42
    2. なぜ負債に向き合ってきたのか
    それが今のコドモンでは...

    View full-size slide

  42. 43
    CONFIDENTIAL - © 2022 CoDMON Inc. 43
    案件:ダッシュボード画面のデザイン変更 (コドモンでの仮説検証の流れ)
    前提:コードの改修は表示関数を修正すればOK!
      
    2. なぜ負債に向き合ってきたのか





    View full-size slide

  43. 44
    CONFIDENTIAL - © 2022 CoDMON Inc. 44
    案件:ダッシュボード画面のデザイン変更 (コドモンでの仮説検証の流れ)
    前提:コードの改修は表示関数を修正すればOK!
      ↓
    テストで不具合を検知!
    表示関数を修正すると特定のデータを持った
    ユーザーで画面崩れが発生!
     
    2. なぜ負債に向き合ってきたのか





    View full-size slide

  44. 45
    CONFIDENTIAL - © 2022 CoDMON Inc. 45
    案件:ダッシュボード画面のデザイン変更 (コドモンでの仮説検証の流れ)
    前提:コードの改修は表示関数を修正すればOK!
      ↓
    テストで不具合を検知!
    表示関数を修正すると特定のデータを持った
    ユーザーで画面崩れが発生!
      ↓
    仮説検証の前に前提の再確認が必要!
    2. なぜ負債に向き合ってきたのか





    View full-size slide

  45. 46
    CONFIDENTIAL - © 2022 CoDMON Inc. 46
    案件:ダッシュボード画面のデザイン変更 (コドモンでの仮説検証の流れ)
    前提(じゃなかった):コードの改修は表示関数を修正すればOK!
      ↓ 
    本当の前提:コードの改修は表示関数とデータ取得関数を修正すればOK!
    2. なぜ負債に向き合ってきたのか
    前提が違うのか...確かめなきゃ...

    View full-size slide

  46. 47
    CONFIDENTIAL - © 2022 CoDMON Inc. 47
    案件:ダッシュボード画面のデザイン変更 (コドモンでの仮説検証の流れ)
    前提(じゃなかった):コードの改修は表示関数を修正すればOK!
      ↓ 
    本当の前提:コードの改修は表示関数とデータ取得関数を修正すればOK!
      ↓ 
    仮説:ユーザーが喜ぶデザインはA?B?
      ↓
    仮説検証結果をプロダクトに反映する
    2. なぜ負債に向き合ってきたのか
    前提が違うのか...確かめなきゃ...
    前提がわかった...!やっと本題の仮説検証するぞ...

    View full-size slide

  47. 48
    CONFIDENTIAL - © 2022 CoDMON Inc. 48
    この既存プロダクトの
    「じゃなかった前提」こそが
    技術的負債です
    2. なぜ負債に向き合ってきたのか

    View full-size slide

  48. 49
    CONFIDENTIAL - © 2022 CoDMON Inc. 49
    2. なぜ負債に向き合ってきたのか
    一般的に向き合いたい課題
    コドモンが向き合っている課題

    View full-size slide

  49. 50
    CONFIDENTIAL - © 2022 CoDMON Inc. 50
    2. なぜ負債に向き合ってきたのか
    → 「ユーザーにとっての本当の価値」(不確実性) + 前提の確認
    一般的に向き合いたい課題
    コドモンが向き合っている課題

    View full-size slide

  50. 51
    CONFIDENTIAL - © 2022 CoDMON Inc. 51
    2. なぜ負債に向き合ってきたのか
    →「じゃなかった前提(技術的負債)」の確認(不確実性)
      +「ユーザーにとっての本当の価値」(不確実性)
    → 「ユーザーにとっての本当の価値」(不確実性) + 前提の確認
    一般的に向き合いたい課題
    コドモンが向き合っている課題

    View full-size slide

  51. 52
    CONFIDENTIAL - © 2022 CoDMON Inc. 52
    2. なぜ負債に向き合ってきたのか
    ユーザーにとっての本当の価値に向き合いたい人
    技術的負債に向き合いたい人

    View full-size slide

  52. 53
    CONFIDENTIAL - © 2022 CoDMON Inc. 53
    2. なぜ負債に向き合ってきたのか
    ● 社長、CS、営業、PdM、デザイナー、エンジニアなどなど
    ● サービスに共感してくれる社外の人
    → たくさんいる
    技術的負債に向き合いたい人
    ユーザーにとっての本当の価値に向き合いたい人

    View full-size slide

  53. 54
    CONFIDENTIAL - © 2022 CoDMON Inc. 54
    2. なぜ負債に向き合ってきたのか
    ● リファクタ大好きなエンジニア
    → あまりいない
    ● 社長、CS、営業、PdM、デザイナー、エンジニアなどなど
    ● サービスに共感してくれる社外の人
    → たくさんいる
    ユーザーにとっての本当の価値に向き合いたい人
    技術的負債に向き合いたい人

    View full-size slide

  54. 55
    CONFIDENTIAL - © 2022 CoDMON Inc. 55
    技術的負債を放置すると
    人数が増えてもユーザーのための課題解決に
    使える時間はあまり増えない
    2. なぜ負債に向き合ってきたのか

    View full-size slide

  55. 56
    CONFIDENTIAL - © 2022 CoDMON Inc. 56
    2. なぜ負債に向き合ってきたのか
    自分はエンジニアとして
    コドモンでどう働くべきか?

    View full-size slide

  56. 57
    CONFIDENTIAL - © 2022 CoDMON Inc. 57
    2. なぜ負債に向き合ってきたのか
    自分はエンジニアとして
    コドモンでどう働くべきか?

    技術的負債に向き合うこと

    View full-size slide

  57. 58
    CONFIDENTIAL - © 2022 CoDMON Inc. 58
    2. なぜ負債に向き合ってきたのか
    負債を返済する

    長期的にプロダクトを
    良くすること

    View full-size slide

  58. 59
    エンジニアとは
    なぜ負債に向き合ってきたのか
    負債に向き合ってなにを得たのか
    振り返り
    今日話すこと
    1
    2
    3
    4

    View full-size slide

  59. 60
    CONFIDENTIAL - © 2022 CoDMON Inc. 60
    3. 負債に向き合ってなにを得たのか
    負債に向き合って得たもの
    それは

    View full-size slide

  60. 61
    CONFIDENTIAL - © 2022 CoDMON Inc. 61
    3. 負債に向き合ってなにを得たのか
    負債に向き合って得たもの
    それは
    「仕事」でした

    View full-size slide

  61. 62
    CONFIDENTIAL - © 2022 CoDMON Inc. 62
    「仕事の報酬は仕事」
    by ソニー創業者 井深 大
    3. 負債に向き合ってなにを得たのか

    View full-size slide

  62. 63
    CONFIDENTIAL - © 2022 CoDMON Inc. 63
    3. 負債に向き合ってなにを得たのか
    ● コード修正によるリスク低減
    ● コードの複雑さを下げる
    重視していたこと
    レガシーコード改善

    View full-size slide

  63. 64
    CONFIDENTIAL - © 2022 CoDMON Inc. 64
    3. 負債に向き合ってなにを得たのか
    ● コード修正によるリスク低減
    ● コードの複雑さを下げる
    ● アプリの野良コードのGit管理化
    ● 神ファイルの解体
    重視していたこと
    やったこと
    レガシーコード改善

    View full-size slide

  64. 65
    CONFIDENTIAL - © 2022 CoDMON Inc. 65
    3. 負債に向き合ってなにを得たのか
    ● コード修正によるリスク低減
    ● コードの複雑さを下げる
    ● アプリの野良コードのGit管理化
    ● 神ファイルの解体
    重視していたこと
    やったこと
    レガシーコード改善
    ● 可読性と変更容易性の向上による
     開発者体験UP
    結果

    View full-size slide

  65. 66
    CONFIDENTIAL - © 2022 CoDMON Inc. 66
    3. 負債に向き合ってなにを得たのか
    ● コード修正によるリスク低減
    ● コードの複雑さを下げる
    ● アプリの野良コードのGit管理化
    ● 神ファイルの解体
    重視していたこと
    やったこと
    ● 可読性と変更容易性の向上による
     開発者体験UP
    Mgr) 「DX改善とかやる?」
    ※DX (Developer Experience)
    = 開発者体験
    結果
    得た仕事
    レガシーコード改善

    View full-size slide

  66. 67
    CONFIDENTIAL - © 2022 CoDMON Inc. 67
    3. 負債に向き合ってなにを得たのか
    ● リリース作業によるリスク低減
    ● トイル(手作業)の削減
    重視していたこと
    DX(開発者体験)改善

    View full-size slide

  67. 68
    CONFIDENTIAL - © 2022 CoDMON Inc. 68
    3. 負債に向き合ってなにを得たのか
    ● リリース作業によるリスク低減
    ● トイル(手作業)の削減
    ● 3つに分かれたリポジトリの統合
    ● ビルド、デプロイ運用の整備
    ● リリースフローの自動化
    重視していたこと
    やったこと
    DX(開発者体験)改善

    View full-size slide

  68. 69
    CONFIDENTIAL - © 2022 CoDMON Inc. 69
    3. 負債に向き合ってなにを得たのか
    ● リリース作業によるリスク低減
    ● トイル(手作業)の削減
    ● 3つに分かれたリポジトリの統合
    ● ビルド、デプロイ運用の整備
    ● リリースフローの自動化
    重視していたこと
    やったこと
    ● リリース作業の均一化/工数の削減
    ● GitOpsの定着
    結果
    DX(開発者体験)改善

    View full-size slide

  69. 70
    CONFIDENTIAL - © 2022 CoDMON Inc. 70
    3. 負債に向き合ってなにを得たのか
    ● リリース作業によるリスク低減
    ● トイル(手作業)の削減
    ● 3つに分かれたリポジトリの統合
    ● ビルド、デプロイ運用の整備
    ● リリースフローの自動化
    重視していたこと
    やったこと
    ● リリース作業の均一化/工数の削減
    ● GitOpsの定着
    SRE) 「DevOpsやってるし、
    アプリ触れるし、SREチームで
    プッシュ通知基盤の改善とかどう?」
    結果
    得た仕事
    DX(開発者体験)改善

    View full-size slide

  70. 71
    CONFIDENTIAL - © 2022 CoDMON Inc. 71
    3. 負債に向き合ってなにを得たのか
    ● 負荷によるリスク低減
    ● サービスの疎結合化
    重視していること
    プッシュ通知基盤 / インフラ改善

    View full-size slide

  71. 72
    CONFIDENTIAL - © 2022 CoDMON Inc. 72
    3. 負債に向き合ってなにを得たのか
    ● 負荷によるリスク低減
    ● サービスの疎結合化
    ● プッシュ通知基盤の改善
    ● 既存サービスの負荷調査
    重視していること
    やっていること
    プッシュ通知基盤 / インフラ改善

    View full-size slide

  72. 73
    CONFIDENTIAL - © 2022 CoDMON Inc. 73
    ● レガシーコード改善
    3. 負債に向き合ってなにを得たのか
    やってきた仕事
    ● プロダクトの深い知見
    得たスキル、知見

    View full-size slide

  73. 74
    CONFIDENTIAL - © 2022 CoDMON Inc. 74
    ● レガシーコード改善

    ● DX(開発者体験)改善
    3. 負債に向き合ってなにを得たのか
    やってきた仕事
    ● プロダクトの深い知見
    ● CI/CDツール(GitHub Actions)
    得たスキル、知見

    View full-size slide

  74. 75
    CONFIDENTIAL - © 2022 CoDMON Inc. 75
    ● プロダクトの深い知見
    ● CI/CDツール(GitHub Actions)
    ● コンテナ設計(Docker,ECS)
    ● Terraformによるインフラ構築
    ● レガシーコード改善

    ● DX(開発者体験)改善

    ● プッシュ通知基盤改善
    3. 負債に向き合ってなにを得たのか
    やってきた仕事 得たスキル、知見

    View full-size slide

  75. 76
    CONFIDENTIAL - © 2022 CoDMON Inc. 76
    ● レガシーコード改善

    ● DX(開発者体験)改善

    ● プッシュ通知基盤改善
    ● インフラ改善
    ● プロダクトの深い知見
    ● CI/CDツール(GitHub Actions)
    ● コンテナ設計(Docker,ECS)
    ● Terraformによるインフラ構築
    ● 監視ツール(Datadog)
    ● データ分析ツール(Jupyter)
    ● 負荷テストツール(k6)
    3. 負債に向き合ってなにを得たのか
    やってきた仕事 得たスキル、知見

    View full-size slide

  76. 77
    CONFIDENTIAL - © 2022 CoDMON Inc. 77
    ● レガシーコード改善

    ● DX(開発者体験)改善

    ● プッシュ通知基盤改善
    ● インフラ改善
    3. 負債に向き合ってなにを得たのか
    やってきた仕事
    ● プロダクトの深い知見
    ● CI/CDツール(GitHub Actions)
    ● コンテナ設計(Docker,ECS)
    ● Terraformによるインフラ構築
    ● 監視ツール(Datadog)
    ● データ分析ツール(Jupyter)
    ● 負荷テストツール(k6)
    得たスキル、知見

    View full-size slide

  77. 78
    CONFIDENTIAL - © 2022 CoDMON Inc. 78
    負債を返済すると
    プロダクトの
    次の理想像が見えてくる
    3. 負債に向き合ってなにを得たのか

    View full-size slide

  78. 79
    CONFIDENTIAL - © 2022 CoDMON Inc. 79
    プロダクトの
    次の理想像への障壁が
    また負債として見えてくる
    3. 負債に向き合ってなにを得たのか

    View full-size slide

  79. 80
    CONFIDENTIAL - © 2022 CoDMON Inc. 80
    この流れを繰り返していくと
    プロダクトが成長する
    3. 負債に向き合ってなにを得たのか

    View full-size slide

  80. 81
    CONFIDENTIAL - © 2022 CoDMON Inc. 81
    プロダクトが成長すると
    自分が挑戦できる
    機会も増えていく
    3. 負債に向き合ってなにを得たのか

    View full-size slide

  81. 82
    CONFIDENTIAL - © 2022 CoDMON Inc. 82
    その結果こそが!
    3. 負債に向き合ってなにを得たのか

    View full-size slide

  82. 83
    CONFIDENTIAL - © 2022 CoDMON Inc. 83
    技術的負債に向き合い続ける姿勢は
    スキル幅の広がりにも繋がる話
    3. 負債に向き合ってなにを得たのか

    View full-size slide

  83. 84
    エンジニアとは
    なぜ負債に向き合ってきたのか
    負債に向き合ってなにを得たのか
    振り返り
    今日話すこと
    1
    2
    3
    4

    View full-size slide

  84. 85
    CONFIDENTIAL - © 2022 CoDMON Inc. 85
    4. 振り返り
    負債に向き合ってきて
    実際どうだったのか?

    View full-size slide

  85. 86
    CONFIDENTIAL - © 2022 CoDMON Inc. 86
    4. 振り返り
    実は

    View full-size slide

  86. 87
    CONFIDENTIAL - © 2022 CoDMON Inc. 87
    4. 振り返り
    最初はめちゃくちゃ大変でした...

    View full-size slide

  87. 88
    CONFIDENTIAL - © 2022 CoDMON Inc. 88
    4. 振り返り
    神ファイル(controllers.js)の解体

    View full-size slide

  88. 89
    CONFIDENTIAL - © 2022 CoDMON Inc. 89
    神ファイル(controllers.js)とは
    ● 可読性がとにかく低い!
    ファイル内検索で同じ名前の関数や変数が大量に...
    4. 振り返り

    View full-size slide

  89. 90
    CONFIDENTIAL - © 2022 CoDMON Inc. 90
    神ファイル(controllers.js)とは
    ● 可読性がとにかく低い!
    ファイル内検索で同じ名前の関数や変数が大量に...
    ● 影響範囲がとにかく大きい!
    触るたびに他の機能に影響が出ないか不安になる...
    4. 振り返り

    View full-size slide

  90. 91
    CONFIDENTIAL - © 2022 CoDMON Inc. 91
    4. 振り返り
    controllers.jsに悩まない状況にしたい!

    View full-size slide

  91. 92
    CONFIDENTIAL - © 2022 CoDMON Inc. 92
    神ファイル(controllers.js)解体の大変さ
    ● リリースまでの慎重な影響調査
    担当チームと古株メンバーへの影響確認と可読性の低さ
    4. 振り返り

    View full-size slide

  92. 93
    CONFIDENTIAL - © 2022 CoDMON Inc. 93
    神ファイル(controllers.js)解体の大変さ
    ● リリースまでの慎重な影響調査
    担当チームと古株メンバーへの影響確認と可読性の低さ
    ● 影響範囲を抑えるための分割リリース
    画面ごとに20回以上に分けてのリリース作業
    4. 振り返り

    View full-size slide

  93. 94
    CONFIDENTIAL - © 2022 CoDMON Inc. 94
    4. 振り返り
    神ファイル(controllers.js)を解体すると

    View full-size slide

  94. 95
    CONFIDENTIAL - © 2022 CoDMON Inc. 95
    神ファイル(controllers.js)を解体すると
    ● 返済した時に、開発部が盛り上がる!
    みんなその負債に苦しんでたので、とても感謝してくれるし、自分も嬉しい!
    4. 振り返り

    View full-size slide

  95. 96
    CONFIDENTIAL - © 2022 CoDMON Inc. 96
    神ファイル(controllers.js)を解体すると
    ● 返済した時に、開発部が盛り上がる!
    みんなその負債に苦しんでたので、とても感謝してくれるし、自分も嬉しい!
    ● 負債の名前が、返済以降は会話に出なくなる!
    組織とプロダクトのたしかな進歩を感じる!
    (最近入社した方は、controllers.js なんて知らない)
    4. 振り返り

    View full-size slide

  96. 97
    CONFIDENTIAL - © 2022 CoDMON Inc. 97
    4. 振り返り
    この最初の取り組みで得た
    反省があります

    View full-size slide

  97. 98
    CONFIDENTIAL - © 2022 CoDMON Inc. 98
    → ユーザーの価値に直接繋がらないため、何のためにやってるか見失いやすい
     その結果、トラブルが起きた時にモチベーションを保つのが難しかった
    4. 振り返り
    反省 一人でやってて、辛くなった時があった

    View full-size slide

  98. 99
    CONFIDENTIAL - © 2022 CoDMON Inc. 99
    → ユーザーの価値に直接繋がらないため、何のためにやってるか見失いやすい
      その結果、トラブルが起きた時にモチベーションを保つのが難しかった
    4. 振り返り
    反省 一人でやってて、辛くなった時があった
    → なるべく会社やチームと合意しながら進めて、一人でやらない
     周りの理解を得られなければ課題の数値化、言語化から始めるのも良いかも
    学び 周りを巻き込んでいこう

    View full-size slide

  99. 100
    CONFIDENTIAL - © 2022 CoDMON Inc. 100
    4. 振り返り
    チームで対応すると
    自分には無いスキルや知見を持った人と働くため
    お互いにスキル、知見を深めやすい

    View full-size slide

  100. 101
    CONFIDENTIAL - © 2022 CoDMON Inc. 101
    4. 振り返り
    スキル、知見が増えると
    プロダクトや組織に還元出来ることも増えるので
    チームワークは大事にしていきましょう

    View full-size slide

  101. 102
    CONFIDENTIAL - © 2022 CoDMON Inc. 102
    4. 振り返り
    プロダクトや組織も大事ですが

    View full-size slide

  102. 103
    CONFIDENTIAL - © 2022 CoDMON Inc. 103
    4. 振り返り
    プロダクトや組織のためにも

    View full-size slide

  103. 104
    CONFIDENTIAL - © 2022 CoDMON Inc. 104
    4. 振り返り
    負債返済で自分が
    辛くならない
    ようにしましょう!

    View full-size slide

  104. 105
    まとめ

    View full-size slide

  105. 106
    今日話したこと
    エンジニアとは
    なぜ負債に向き合ってきたのか
    負債に向き合ってなにを得たのか
    振り返り
    1
    2
    3
    4

    View full-size slide

  106. 107
    今日話したこと
    エンジニアとは
    →不確実性を効率よく削減する人
    なぜ負債に向き合ってきたのか
    負債に向き合ってなにを得たのか
    振り返り
    1
    2
    3
    4

    View full-size slide

  107. 108
    今日話したこと
    エンジニアとは
    →不確実性を効率よく削減する人
    なぜ負債に向き合ってきたのか
    →長期的にプロダクトを良くするため
    負債に向き合ってなにを得たのか
    振り返り
    1
    2
    3
    4

    View full-size slide

  108. 109
    今日話したこと
    エンジニアとは
    →不確実性を効率よく削減する人
    なぜ負債に向き合ってきたのか
    →長期的にプロダクトを良くするため
    負債に向き合ってなにを得たのか
    →仕事の報酬は仕事、スキルは副産物
    振り返り
    1
    2
    3
    4

    View full-size slide

  109. 110
    今日話したこと
    エンジニアとは
    →不確実性を効率よく削減する人
    なぜ負債に向き合ってきたのか
    →長期的にプロダクトを良くするため
    負債に向き合ってなにを得たのか
    →仕事の報酬は仕事、スキルは副産物
    振り返り
    →負債返済で自分が辛くならないように、周りを巻き込んでいこう
    1
    2
    3
    4

    View full-size slide

  110. 111
    この話を聞いて

    View full-size slide

  111. 112
    「プロダクトや開発組織を良くしたい!」
    (でも技術的負債は嫌だなぁ...)

    View full-size slide

  112. 113
    「プロダクトや開発組織を良くしたい!」
    (でも技術的負債は嫌だなぁ...)

    一歩踏み込んで挑戦してみるかー!

    View full-size slide

  113. 114
    「プロダクトや開発組織を良くしたい!」
    (でも技術的負債は嫌だなぁ...)

    一歩踏み込んで挑戦してみるかー!
    (と思ってくれたら嬉しいです!)

    View full-size slide

  114. 115
    最後に

    View full-size slide

  115. ユーザーへ届く価値を
    最大化し続ける
    “すべての先生に 子どもと向き合う
    時間と心のゆとりを”持ってもらうた
    めに存在するフラットなチームで
    す。
    結果からの学びを活かし
    ベターを模索し続ける
    プロダクトも/チームも/個々人も、起
    きた結果からの学びを活かして「より
    よい状態」へ成長し続けるチームであ
    りたいと思っています。
    チームの存在理由 だからこんなチームでいたい
    116

    View full-size slide

  116. LT会
    毎月第三水曜日の午後に1時間、
    LT会を開催しています。
    トピックを技術に限定しておらず
    多様な発表があり、トピックに
    よってはGoogle Meetのチャット
    コメントがお祭りのようになるこ
    ともあります。
    育休や時短勤務
    男女関係なく、育休や時短勤務を
    しているメンバーも多いです。
    「子どもを取り巻く環境をテクノ
    ロジーの力でよりよいものに」と
    いう会社のミッションは、自分た
    ちの働き方にもつながっていま
    す。
    リノベマンションでコロナ禍を乗
    り越えた一家の話
    現代エディタ界の帝王
    あなたの知らないリリース基盤の
    世界
    MySQLでテーブルロックが掛かっ
    た話
    クリーンアーキテクチャで絶対ク
    リーンにならない部分の話
    こんなこともあります
    輪読会や勉強会の開催
    コドモンには週半日の学習投資の
    制度があります。制度を使って個
    人的な学習だけではなく、チーム
    や有志での勉強会・輪読会などが
    頻繁に開催されています。また外
    部の方や有識者主催でハンズオン
    が開催されることもあります。
    117
    毎日の開発や調査にペアプログラミ
    ングを取り入れてます。ドライバー
    のコーディング・進め方・ふるまい
    についてナビゲーターがその場です
    ぐにフィードバックし、小さいタイ
    ムラグでフィードバックサイクルを
    回します。
    ペアプロ/モブプロ

    View full-size slide

  117. 118
    コドモン採用ページ 開発ブログ
    コドモンでは一緒に働きたい仲間を募集しています!

    View full-size slide

  118. 119
    ご清聴ありがとうございました!

    View full-size slide