今回は、オブジェクト指向に基づいて、物事の考え方に関して記載したいと思います。

本記事の狙い

今回の内容は、仕事としてだけでなく、普段生活する上での考え方の幅を広げる一つのきっかけに繋がることを期待して記載します。
特に若手社員にできるだけ早く、考え方のベースを築いて欲しいという思いで記載しています。

オブジェクト指向を5W1Hで考える

オブジェクト指向の定義については以前の記事にも記載しましたが、
考え方を分かり易くするために、今回は5W1Hの観点でオブジェクトの定義と対応付けを行ってみます。

〇オブジェクトの定義
ある主体が、 → Who
ある目的/観点をもって、 → Where, Why
捉えた対象のものごと → What

さらに下記オブジェクト指向のポイントとも5W1Hで対応付けを行ってみます。

〇オブジェクト指向のポイント
・オブジェクトは責務をもつ → Whose
・静的な構造を定義し、動的な振る舞いを考える → What, Whose, How

5W1Hの各要素の登場順に優先順位が高いとすると、
Who > Where > Why > What > Whose > How
の優先順位で物事は考えるべきだということになります。

また、意識して欲しいのは、優先順位が高い部分が変化すれば、それ以下の優先順が低い部分すべてに影響を与える可能性があるということです。
例えば、Aさん(Who)にとって現在課題(What)だと思われることも、Bさん(Who)にとっては課題ではないと感じたり、Aさんの環境(Where)が変わったりすれば、課題ではなくなることがあるということです。

また近頃はよく聞くデザインシンキングは、顧客を観察することでWho, Where, Whyを見つけ出し、Whatを定義しようというアプローチ手法と捉えられます。

What→Howを意識しよう

普段仕事をしていて、目の前の課題ばかりに気を取られて、本質的な課題解決になっていなかったなんて経験はないでしょうか。

そんなときはWhat → Howを意識しましょう。
下図の①~④の4つの領域を意識して、①→②→③→④の順で考えるように日頃から意識してみましょう。

ある開発プロジェクトで課題が発生したときの①~④の流れを具体例で示します。

① PMであるAさんは、プロジェクトの情報をメンバーから集め、 顧客と現在の状況と課題について認識を合わせた。
② Aさんは、顧客から聞いた課題発生の要因を分析し、本質的な要因を特定した。分析結果とあるべき姿に関して顧客と認識を合わせた。
③ Aさんは、現状をあるべき姿に改善するための解決方法を複数検討した。
④ Aさんは開発における制約と実現可能性を加味し、影響範囲の一番少ない解決方法に決定した。

まとめ

本記事ではオブジェクト指向を基に、5W1Hの観点で下記の順序に考えるべきと記載しました。
Who > Where > Why > What > Whose > How

今回の記事内容は、考え方に関する記事なので、かなり抽象的な内容になりましたが、考えの幅を広げるきっかけに繋がればと思います。

おまけコラム

物事を捉えるということを別の切り口で紹介します。
ドイツの哲学者カントの認識の概念を、私の解釈で記載した図が以下になります。

人が物事を認識するプロセスにおいて、感性、理性、悟性の3つを使って、認識するという考えです。
①感性を使って対象となるものごとを知覚する。
②理性を使って知覚した対象がどの概念に相当するか検索する。
③悟性を使って対象に概念を割り当てる。

経験に伴う自分が持つ概念を増やせば増やすほど、②で検索して適切な概念がヒットする確率が高くなるということです。

私はモデリングには経験が必要だとよく言いますが、理性を使うあなた自身が持つ概念の母数が少ないと、そもそも②の検索の精度が落ちるからです。
さらにいえば、人は経験を積むと、逆に理性を使わなくなります。(例:最初は楽譜を見て弾いていたピアノも、練習するうちに、考えなくても指が動いて無意識に弾ける)。
結局言いたいことは、オブジェクト指向のような考え方は、経験を積むこと(日々の努力)無しに、効率やコツだけを考えて習得できる技術ではないということです。

技術習得のために効率を求めることは大事ですが、時間を掛けて知識量を増やしたり、反復しないと到達できないこともあることを忘れないでください。