はじめに
9/27に都内某所で『具体と抽象』に関する勉強会が開催されました。
当記事は上記の勉強会のレポ記事です。
勉強会で触れた内容についてはこちらの記事も詳しいです。
勉強会でやったこと
流れとしては以下の通りでした。
- 具体とは何か、抽象とは何かの講義
- 具体と抽象がなぜエンジニアに必要なのかの講義
- 講義内容は上記のQiita記事の内容がメイン
- グループワーク1:ユーザーの求めているものを推測する
- グループワーク2:ユーザーの抱えている問題に対して解決策を提示する
学んだこと・感じたこと
場面に応じて求められる問いの粒度が変わる
今回のワークはいずれも「相手の求めているものを探る」が目的でした。
相手が求めるものを時間内に探るには、最初は俯瞰するような広い質問からはじめ、全体像が見えてきてから徐々にフォーカスした目線での質問が必要だということを実感しました。
イメージで言うとアキネーターのような形です。
最初に詳細すぎる質問をしても的外れになり、最後の方に広範すぎる質問をしても絞り込みに繋がらないことを体験でき、
これこそが具体と抽象をフェーズごとに使い分けることなのかと身体で感じることができました。
コアドメインの概念、共通言語(ユビキタス言語)により認識を合わせることの重要性
(設計における)「コアドメイン」とは競争力の鍵となっている領域・競合優位性をもたらす領域を指すことを学びました。
また「境界づけられたコンテキスト」や「ユビキタス言語」を通して開発者とクライアントやユーザーとの間で、同じ言葉の認識を合わせたり同じ言葉がどんな文脈で使われているかを把握することも重要と学びました。
プログラムに限らず双方で認識の齟齬があると問題解決に遠回りが発生してしまうのは肌感では感じていたのですが、
設計システムにこのような明示的な概念があることでより理解が増したように思います。
「抽象を操れるエンジニア」は実質コンサルとエンジニアの二刀流なのでは?
今回最も感じた感想がこれです。
- コアドメイン=事業において最も価値を出せる部分の把握
- 抽象思考を使って問題の大枠や構造をすばやく把握し、具体思考で問題の焦点を探し当てる力
- 今回行ったワークがいずれも「クライアントが抱えている問題を解決すること」であったこと
** クライアントが明確な答えを持っておらずふわふわした状態の中、質問や提案によって問題解決に「導く」こと - 表面的な数字やデータだけでなく、質問を通してその人が持つ根本の課題を発見すること
今回のワークではこれらのことを体験を通して学びました。
そしてこれは、エンジニアの勉強会ではあるものの極めてコンサル的な思考回路や業務フローだと感じました。
コードと向き合うだけの「具体」的な仕事は確かにAIが強敵になる可能性が高いことは勉強会の中でも触れられていました。
(コードはあくまで戦略的設計の道具でしかないことも)
一方、「抽象」を使いこなしてコンサル的な視点を持てればAIに代替できない領域の仕事ができるため、
今後の仕事の可能性が広がることを実感しました。
おわりに
「具体と抽象」についてはすぐに活かすには時間がかかる一方、この概念を認識しているだけでも大切だと感じました。
また、具体と抽象を操れる人間がコンサル的視点の持ち主である以上、エンジニア技術だけでなく具体や抽象をはじめとした思考プロセスや
クライアントとの折衝能力もますます必要になってくるように感じました。
今後も双方のスキルを伸ばしていきたいです。
JISOUのメンバー募集中!
プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
興味のある方は、ぜひホームページをのぞいてみてください!
▼▼▼
参考資料
