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
現場のいちメンバーの視点からの技術的負債への向き合い方 / My approach to t...
Search
コドモン開発チーム
May 09, 2025
0
610
現場のいちメンバーの視点からの技術的負債への向き合い方 / My approach to technical debt as an individual team member
コドモン開発チーム
May 09, 2025
Tweet
Share
More Decks by コドモン開発チーム
See All by コドモン開発チーム
WebからモバイルへVue.js × Capacitor 活用事例
codmoninc
0
14
コードに語らせよう 自己ドキュメント化が内包する楽しさについて / Let the Code Speak: The Joy of Self-Documenting Code
codmoninc
0
37
コードリーディング入門! 先人たちに思いを馳せれば プログラミングがもっと楽しくなる / Introduction to Code Reading!
codmoninc
1
300
子育てインフラの構築と子どもを取り巻く市場の拡大に向けて / Building child-rearing infrastructure and expanding the children's market
codmoninc
0
470
伸び代しかない業界で、何をどうつくる?PdM視点で語るプロダクト開発の裏側 / A PdM's Inside Story of Product Development
codmoninc
0
430
技術で挑む保育現場の課題解決 〜コドモンエンジニアの開発スタイルと取り組み〜 / Tackling Challenges in Childcare Settings with Technology
codmoninc
0
430
ドメイン駆動設計とXPで支える子どもの未来〜保育の暗黙知を活かすシステム開発〜 / Empowering Children's Future Through DDD and XP
codmoninc
0
430
コドモンPdM紹介資料
codmoninc
0
90
「石の上にも三年」 の石の上での三ヶ月(話題のペアプログラミングを4社が徹底的に語る!) / Three months on a rock.
codmoninc
3
150
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
42
7.5k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
480
Scaling GitHub
holman
459
140k
Into the Great Unknown - MozCon
thekraken
39
1.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
930
Statistics for Hackers
jakevdp
799
220k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Transcript
2025年5月8日 株式会社コドモン 福井 将之 現場のいちメンバーの視点からの 技術的負債への向き合い方
2 経歴 請求関連チームに所属、請求計算や打刻周りの機能を担当 PHPが (自分にとってはほど良く & 生い立ちを含めて) 好き 自己紹介 福井
将之 ふくい まさゆき 2023.12 コドモンにソフトウェアエンジニアとして入社 日々プロダクト開発に勤しんでいます
3 Mission
4 すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、保育・教育施設向けWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。
5
技術的負債への向き合い
7
8 今日話すこと • 日々取り組んでいる対応の一例 • 現場で向き合うための手持ちの道具 • 向き合うモチベーションはどこに?
9 • 会社組織としての取り組み • 組織・チーム体制、採用 • リアーキテクチャ 今日話さないこと
日々取り組んでいる対応の一例
11 日々取り組んでいる対応の一例(1/3) • ルールに合わないディレクトリ・ファイル構成を見直す • 修正前に linter, formatter を適用する •
require_once の見直し、依存するファイルを減らす • 可能ならクラスに final を付ける、readonly にする • PHP, PHPUnit の古い記法を書き換える • スーパーグローバル、グローバル変数への依存を減らす • デッドコードを消す
12 PHPUnit の古い記法を書き換えたい例
13 スーパーグローバルへの依存を減らしたい例
14 日々取り組んでいる対応の一例(2/3) • 自動テストを書く/追加する/消す/移動する • Web、アプリ、バッチのテスト • APIのテスト • ユニットテスト
• 名前空間の定義のないファイルを名前空間で区切る • クラスが使われていない構成をクラスに切り出す • クラスを分割する、メソッドに切り出す
15 日々取り組んでいる対応の一例(3/3) • PHP や依存するライブラリ群をアップグレードする • 引数、返却値に型を付け、厳密な型付けを有効化する • PDO の利用をクエリービルダーに徐々に切り替える
• 不必要な可変変数を除去して置き換える • 複雑な連想配列をクラスに置き換える • API をまるっと保守しやすい構成に漸近的に置き換える など..
16 除去したい可変変数の利用例
現場で向き合うための手持ちの道具
18 現場で向き合うための手持ちの道具 • 素振り(常に備える) • 自分のプロダクトとして振る舞う • 現物主義 • (ある種の)ずうずうしさ
19 現場で向き合うための手持ちの道具 • 素振り(常に備える) • 自分のプロダクトとして振る舞う • 現物主義 • (ある種の)ずうずうしさ
20 自分のプロダクトとして振る舞う • 学びを得られる感謝と驚き • 自分のものにするために見る • 障害対応を発生から完了までを経験する • 問い合わせ対応を率先して対応する
21 自分のプロダクトとして振る舞う • 学びを得られる感謝と驚き • 自分のものにするために見る • 障害対応を発生から完了までを経験する • 問い合わせ対応を率先して対応する
22 学びを得られる感謝と驚き • 動くことで価値を生み続けている ◦ まずは価値あるプロダクトを作り出した先人に感謝と尊敬を ◦ 後から来た人は何もしないなら ただ乗り しているだけ
• こんなに複雑なコードなのに、 ◦ ちゃんと動作しているだけで本当にすごい! • 知らないことや先人の生きた知恵を学べる ◦ 生きている悪いコードはリファクタリングの最良のサンプル
23 (再掲)除去したい可変変数の利用例
24 自分のプロダクトとして振る舞う • 学びを得られる感謝と驚き • 自分のものにするために見る • 障害対応を発生から完了までを経験する • 問い合わせ対応を率先して対応する
25 • 批判的に見る • ラフに見る • 丁寧に見る • ひたすら見て頭の中のものを外に出す(図にまとめるなど) •
自分ならどう書くか? を考える • 頭の中にモデルを作る、引き出しを作る 自分のものにするために見る
26
27 自分のプロダクトとして振る舞う • 学びを得られる感謝と驚き • 自分のものにするために見る • 障害対応を発生から完了までを経験する • 問い合わせ対応を率先して対応する
28 障害対応を発生から完了までを経験する • 普段からアンテナを張っておく ◦ 最初は担当範囲じゃなくてもアラートは全部見る勢いで • 自分から手を挙げる ◦ 理解のための特等席
◦ 割り込みのない集中できる 非常モード になれる • ポストモーテムをまとめる • 議論する・意見をもらう
29 自分のプロダクトとして振る舞う • 学びを得られる感謝と驚き • 自分のものにするために見る • 障害対応を発生から完了までを経験する • 問い合わせ対応を率先して対応する
30 問い合わせ対応を率先して対応する • 障害対応と似ている ◦ 人は 切羽詰まらないと 本気になれない (少なくとも私は.. ◦
より利用者に近い肌感覚で業務やシステムを理解できる ◦ 場合によっては内外の方からの感謝が得られる ◦ ただし感謝という報酬は 諸刃の剣 になりうるので注意
向き合うモチベーションはどこに?
33 向き合うモチベーションはどこに? • 「人や過去の自分が残した技術的負債に囚われるのは 貴重な人生の時間の浪費では?」 との声も.. ◦ まあそうかも (できれば言葉はもうちょっと選んで欲しいけれど) 特につらくなったら環境を変えるのも一つの選択
◦ でも私にとってはむしろこういうのがやりたいこと 取り組んでいて楽しいので!
34 私の場合は.. • 仕事の対価をいただいているので できているかはわからないが、少なくとも給与分の仕事はしたい.. あわよくば仕事にともなう達成感も手軽に得たい • どこかに連れていってくれる感覚が楽しい ◦ リファクタリングをしていてふと気がつくと整っている
◦ 例えば TDD 本を写経している時の、いつの間にか天地が 入れ替わる様な不思議な感覚
35 まわりのみんなに聞いてみた! • ユーザーのため ◦ まずユーザーのためになることは何?.. 自分にできることは?..これだ! ◦ 利用いただいているお客様のユーザー体験の改善が 自身の喜び
36 まわりのみんなに聞いてみた! • お金、価値、事業、プロダクトのため ◦ 売り上げになりお金を生んでいる、 世の中により価値を出していきたい ◦ 事業とミッション・ビジョンに対する共感 からの成長の後押し
◦ プロダクトに貢献したい!少しでも前に進めたい!
37 まわりのみんなに聞いてみた! • 自分のため、人のため ◦ 自己顕示欲 ◦ 達成感 ◦ ゴールがわかりやすい
◦ 後から来た人が極力困らないようにしたい 負担を軽減したい
38 みなさんのモチベーションも ぜひ教えてください!
39 • 技術的負債の現場での取り組みの一例をお話ししました • 現場でいちメンバーとして向き合う際の手持ちの道具に ついてご紹介しました • なぜ技術的負債の解消に取り組み続けているのか? 根底 にあるモチベーションについて考えてみました
まとめ 少しでもみなさまのご参考になれば幸いです!
40 ちなみに
41 コドモン採用ページ コドモンでは一緒に働きたい仲間を募集しています! 開発チームX
42 ご清聴ありがとうございました!
None