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
プロフェッショナルとしての成長「問題の深掘り」が導く真のスキルアップ / issue-anal...
Search
MinoDriven
April 23, 2025
Programming
6
710
プロフェッショナルとしての成長「問題の深掘り」が導く真のスキルアップ / issue-analysis-and-skill-up
Qiita Conference2025の登壇資料です
https://qiita.com/official-campaigns/conference/2025
MinoDriven
April 23, 2025
Tweet
Share
More Decks by MinoDriven
See All by MinoDriven
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
32
6k
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
19
5.3k
アーキテクチャレベルで考える開発生産性 / architecture-and-productivity
minodriven
24
13k
見えないものに着目すると上手くいく、モデリングの勘所 / invisible-driven-design
minodriven
25
7.3k
クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2
minodriven
27
17k
技術的負債の怨霊と除霊方法 / ghosts-of-technical-debt
minodriven
11
4.4k
分岐を低減するinterface設計と発想の転換 / interface_design_idea.pdf
minodriven
18
7.3k
目的と抽象化の関係性から分かる、システムの設計精度を高める考え方 / purpose abstraction design
minodriven
23
9.2k
『良いコード/悪いコードで学ぶ設計入門』を一歩深める読み方 / deepen good code bad code
minodriven
18
7.3k
Other Decks in Programming
See All in Programming
DataStoreをテストする
mkeeda
0
290
The Nature of Complexity in John Ousterhout’s Philosophy of Software Design
philipschwarz
PRO
0
100
自分のために作ったアプリが、グローバルに使われるまで / Indie App Development Lunch LT
pixyzehn
1
160
Defying Front-End Inertia: Inertia.js on Rails
skryukov
0
480
リストビュー画面UX改善の振り返り
splcywolf
0
140
状態と共に暮らす:ステートフルへの挑戦
ypresto
1
520
Code smarter, not harder - How AI Coding Tools Boost Your Productivity | Webinar 2025
danielsogl
0
130
RuboCop: Modularity and AST Insights
koic
2
550
SEAL - Dive into the sea of search engines - Symfony Live Berlin 2025
alexanderschranz
1
140
Amazon CloudWatchの地味だけど強力な機能紹介!
itotsum
0
160
エンジニアが挑む、限界までの越境
nealle
1
200
アプリを起動せずにアプリを開発して品質と生産性を上げる
ishkawa
0
2.8k
Featured
See All Featured
The Invisible Side of Design
smashingmag
299
50k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
The Pragmatic Product Professional
lauravandoore
33
6.5k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Automating Front-end Workflow
addyosmani
1369
200k
GraphQLとの向き合い方2022年版
quramy
46
14k
Making Projects Easy
brettharned
116
6.1k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
How to train your dragon (web standard)
notwaldorf
90
6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Agile that works and the tools we love
rasmusluckow
328
21k
Practical Orchestrator
shlominoach
186
11k
Transcript
© DMM © DMM プロフェッショナルとしての成長 「問題の深堀り」が導く 真のスキルアップ 2025/04/24(木) Qiita Conference
2025 合同会社DMM.com ミノ駆動
© DMM 自己紹介 ミノ駆動 ( @MinoDriven ) 合同会社DMM.com プラットフォーム開発本部 第3開発部
DeveloperProductivityGroup DMMプラットフォームの設計を改善し 開発生産性向上を図るのがミッション 2
© DMM 著書紹介 『改訂新版 良いコード/悪いコードで学ぶ設計入門』 変更容易性の高い設計を学ぶ、 初級〜中級向け入門書 初版は12刷重版 ITエンジニア本大賞2023技術書部門大賞受賞 台湾版、韓国語版でも翻訳出版
3
© DMM 皆さん 仕事で良い成果を出せていますか
© DMM 仕事を通じて成長できていますか
© DMM こんなお悩みありませんか 毎日コードを書き、学び、試している。 トレンドな技術もキャッチアップしている。 それなのに • なぜか成長している気がしない • 成果が出ている実感がない
• ちゃんと開発業務をこなしているのに評価されない 6
© DMM なぜなんだろう?
© DMM この疑問を紐解くには 「そもそも仕事とは何か」 を考える必要があります
© DMM 我々は仕事によって給与を得ています 給与は誰が払ってくれますか?
© DMM 会社が給与を払ってくれますよね でも給与となるお金はどこからやってきますか?
© DMM 顧客が支払った対価の一部が 我々の給与になりますよね ではなぜ顧客は対価を支払ってくれるのですか?
© DMM 製品やサービスを使うから 対価を支払っているんですよね 魅力あるサービスは使われ対価は支払われますが 魅力のないサービスは使われず対価は支払われません
© DMM 仕事とは価値創出 つまり仕事とは顧客にとっての価値を創出すること。 そしてITサービスの開発では、 価値創出にあたりさまざまな問題を解決しなければなりません。 問題を技術で解決するのが我々エンジニアの仕事となります。 13
© DMM 問題理解が不正確だと解決方法も不正確 ところで、問題を正しく把握していない状態で、 正しい解決方法を提示できるでしょうか? できないですよね。 例えば開発生産性が低下しているチームがあるとします。 コードが複雑で混乱していて生産性を出せない構造が本当の原因なのに 「チームの回し方がダメなんだ、アジャイルだ、アジャイルでやろう」 と判断した場合、問題解決になるでしょうか?
なりませんよね。 問題解決には問題の正確な把握が不可欠です。 14
© DMM ところで皆さんは ちゃんと問題に向き合っていますか? 今仕事で直面している問題をすぐに説明できますか?
© DMM 技術ばかりに目を奪われていませんか? エンジニアは職業柄、技術に関心があるのはわかります。 しかし技術ばかりに目を奪われていませんか? サービスが提供したい価値や解決すべき問題を忘れてはいませんか? 問題の理解が不正確だったり、洞察が浅いと 技術が問題解決に結びつきません。 当然成果は出ないですし、成長にもつながりません。 深い洞察をもって問題に向き合っていない、
これが成果や成長が得られない大きな原因と言えるでしょう。 16
© DMM 問題を認知する、洞察を得る 良い成果を得る、成長につなげるには、 問題を認知する、深い洞察を得る活動が必要です。 いくつか方法を紹介します。 • 目的を定義し問題を顕在化 • あるべき理想から問題を顕在化
• 問題を書き出す、言語化する 17
© DMM 【問題認知方法 その1】 目的を定義し 目的達成上解決が必要な問題を顕在化
© DMM 目的がわかると問題が顕在化する 19 目的 問題 解決手段
© DMM ところで クーポンの目的って 何であるか知ってますか?
© DMM 「自社サービスに顧客をロックインすること」 がクーポンの目的です 顧客を逃さず継続的に サービス利用してもらうためなんですね
© DMM 目的から問題を顕在化する クーポンの目的から、目的達成上解決が必要な問題が洗い出されます。 そしてシステム的にどう解決するかも決まります。 22 問題 解決手段 クーポンによる売上貢献や 新規顧客数が追えない
クーポン単位でのKPI(使用率、利用者 の再来率、平均注文額)のログ設計 誰にどのクーポンを送るかが一律で効 果が薄い 顧客セグメントに応じたターゲティング モジュール クーポンの存在に気づかない 使い方がわからない 「あと◯◯円でクーポン適用可能です」 などのUI表示
© DMM 【問題認知方法 その2】 あるべき理想を定義し 理想と現状のギャップから問題を顕在化
© DMM リファクタリングのゴールについて説明できますか? どうなっているのが理想なのか説明できますか?
© DMM 25 変更容易性 (修正性) 現状構造 変更容易性の高い 理想構造 現状と理想のギャップが 技術的負債
バグをなるべく埋め込まず 素早く正確にコード変更できる度合い
© DMM 26 変更容易性 (修正性) 現状構造 変更容易性の高い 理想構造 理想構造を知らないとギャップを 認識できない!
技術的負債を認識できない! 「このコードの一体どこが負債な んですか?これが普通でしょ?」 バグをなるべく埋め込まず 素早く正確にコード変更できる度合い 理想は何か、どうあるべきかについて 知識を得たり、考察する活動が重要です
© DMM 【問題認知方法 その3】 問題を書き起こして言語化する
© DMM 頭の中で考えてることはかなり曖昧 問題を深堀り、深い洞察を得るには、 問題を書き出して言語化することが重要です。 技術記事を執筆した経験をお持ちの方ならわかると思いますが、 いざ書こうとしたら、書こうとした内容が曖昧だったり、 書いているうちに矛盾に気がついたり、といったことがあると思います。 人が頭の中で考えてることは、実はかなりいい加減で曖昧です。 テキストに書き起こすことにより
矛盾に気付いたり、新たな発見があったり、 問題が整理されて深い洞察を得られます。 28
© DMM 設計講座における問題の言語化 弊社DMMのPF開発本部ではエンジニアの設計スキル向上を目的に ワークショップ形式の設計講座を開催しています。 この講座は、変更容易性の点で問題のあるコードについて、 何が問題かを言語化し、問題解決するよう設計する、という流れです。 何が問題かをテキストに書き起こさせるのですが、 受講者それぞれでビックリするぐらい言語化に差が出ます。 そして精緻に的確に問題を言語化できている受講者ほど
的確な設計ができております。 29
© DMM 以上の方法を用いることにより 問題を発見したり、問題の洞察を得ることができます
© DMM そして問題の認知、分析、言語化する力は、 間違いなく今後より一層重要になっていきます なぜなら……
© DMM 生成AI
© DMM AIとの協働が必須となる時代 ここ最近AIエージェントなどの登場により ITサービス開発においてAIとの協働が急速に進んでいます。 「これからの開発はAI協働は必須」 「エンジニアにとってAIを使いこなすことが必須基礎スキルとなる」 とも言われ始めています。 33
© DMM AIの力を引き出すには AIを使いこなすにはプロンプトでの的確な指示が必要です。 雑な指示だと(回答を含む)行動の精度が落ち、 ハルシネーションが増えます。 一方で深い知識に基づき要点をおさえた指示をすると、 高い精度で行動します。 34
© DMM 「良い問い」を立てる力がAI協働に必要 AIに行動(回答)させるとは「AIに問題を解かせる」と同義です。 つまり「良い解」を得るには「良い問い」を立てることが重要です。 「良い問い」を立てるには、以下について熟知する必要があります。 • 達成したい目的 • 解決したい問題の構造
実際、目的や解決したい問題をAIに伝えると 回答精度が向上することが分かっています。 35
© DMM 問題に向き合う力がAI駆動開発をスケールする 望む望まざるに関わらずAIによる開発のスケールは 業界的に必須の流れです。 テクノロジーの本質は能力の拡大。 良い問いを立てられる人と立てられない人とでは AIによる効果に大きな差が開いていくでしょう。 生成AIがなかった時代においても 問題分析や言語化は重要なスキルでしたが
そのスキルの恩恵は生成AIにより一層増幅していくでしょう。 36
© DMM というクソデカ概念に 踊らされてはいけません 技術
© DMM もっと大事なのは解くべき問題! こちらに深くアプローチしよう 技術 問題
© DMM 今日からできること • 技術は問題解決の手段 問題が先に立つ、問題を見極めよう • 問題整理に関する本を読み、実務に活かそう • 目的が何であるかを考え、
目的達成上解決すべき問題を洗い出そう • あるべき理想を考え 理想と現状のギャップから問題を洗い出そう • 問題を言語化しよう、頭の中で考えるだけでなく、必ず書き出そう • Qiita Conference、「どういった問題を扱っているのか」という観 点でセッションを視聴しよう 39
© DMM 技術は、正しく問題を捉えたときにだけ輝く道具です 問題を的確に把握し あなたの技術を輝かせましょう
© DMM ご清聴ありがとうございました