抽象化と具体化の行き来とシステム開発

スポンサーリンク
速読を覚えよう スキルアップ
スポンサーリンク
Pocket
LINEで送る

抽象化と具体化の行き来が出来る人は優秀なビジネスパーソンであると言われています。
これはシステム開発でも当てはまり、プログラマであっても抽象化と具体化の行き来ができるプログラマーは非常に優秀です。

今回は、このあたりの事を記事にしたいと思います。

システム開発の前提

システム開発は、要件定義、基本設計、詳細設計、プログラミング、テストという流れで開発します。

システム自体は、以下の図のように前提となる業務サービスがあり、それを実現する為に、複数のシステムがあり、システムの中には、複数のサーバがあり、サーバの中には複数のプログラムで構成されています。

一般的に、システムの設計、構築はシステムエンジニアが実施、プログラム開発に関してはプログラマーが実施します。

サーバについては、データベースサーバ、WEBサーバ、アプリケーションサーバなどがあり、実際にプログラムが動作するのは、WEBサーバとアプリケーションサーバになります。

プログラマーは、WEBサーバかアプリケーションサーバ内で動作するプログラムを作成するのが仕事になります。

システム開発は、顧客が望む業務サービス(業務要件)があり、それを実現する為に複数のシステムを稼働させ、顧客が実現したい要件を満たしていきます。

ここで抽象化と具体化の話をすると、上記の図の上に行けば行くほど抽象度が大きくなります。
そして下に行けば行くほど抽象度が低くなり、具体的な機能になります。

システム開発とは具体化していく事

具体的に言うと、業務要件とは、顧客が望むサービスであり、「こんな事がしたい、こんなサービスを世の中に提供したい」など、抽象的な要件が出てきます。
それをシステムエンジニアが要件定義という形で、顧客が望むサービスを大まかに定義づけをし、顧客承認の元、設計という形で徐々に具体化し、最終的にプログラムまで落とし込む事でシステムを作り上げます。

通常の流れでは、具体化しかしていません。
一般的にシステム開発や世の中の設計と言うのは抽象的な概念を具体化していく事なのです。

抽象化と具体化の行き来

冒頭に述べたように抽象化と具体化ができる人は優秀なビジネスパーソンと言いましたが、実際の業務では、具体化が出来れば事足ります。

では何故?抽象化と具体化ができる人が優秀なビジネスパーソンであるかと言うと、抽象化が出来る人は上位の考えを想像し、上位の意図を汲み取って具体化できるので、ミスが少なく、上位の意図通りのものが作成できるのです。

ここではプログラマーを前提として話しますが、システム開発では、システム全体の設計をシステムエンジニアが実施し、その設計書をベースにプログラマがプログラミング設計とプログラム作成を行います。

ここで抽象化が出来ないプログラマがプログラムを作成すると、設計書に書かれた通りのプログラムしか書けず、要件を満たしているが、拡張性に乏しかったり、性能が出なかったりと「目の前の事は出来るがそれだけの普通のプログラマ」となります。
酷い時には仕様すら満たしていないプログラムを作成するケースもあります。

しかし、抽象化が出来るプログラマであれば、システム設計者と同様の目線でシステムを考える事が出来、そのシステムの中で作成するプログラムの役割りも正確に考える事ができます。

つまり抽象化が出来ると言うのは、上位の目線に立って物事を考えれるか?と言う事になります。

抽象化と具体化の行き来を身に付ける為ににやるべき事

ではどのようにしたら抽象化と具体化の行き来が出来るようになるか?と言うと、「常になぜ?なぜ?と問いかける事です。」

プログラマ目線では、何故このプログラムや機能が必要なのか?

なぜこのサーバは必要なのか?このサーバの役割りはなにか?

なぜこのシステムは必要なのか?このシステムの役割りはなにか?

この問いかけに対しての自分なりの答えと設計書に記載されている内容に整合性が取れた時に抽象化できたとなります。

抽象化と具体化の行き来が出来るようになるとキャリアも上がって来ると思うので是非身に付けていただきたい。

Pocket
LINEで送る

スキルアップ
スポンサーリンク
bassmaniaをフォローする
コロナ後の世界でお金を稼ぐ方法を考えるブログ

コメント