元底辺エンジニアが語る、エンジニアとしての生き様、そしてこれからの生き方

生き様028. システムとは何かを考える ~シリーズ:システム開発考(1)~

»

ある勉強会で受けた刺激

先日、『概念投影によるオブジェクト指向設計の考え方とその方法』というセッションを聴きました。
どんなセッションだったのかは、下記のスライドを見て頂ければ、と思います。


このセッションを聴いた後、僕の中には大きな衝撃がありました。

僕には日頃想い描いていながら、言葉に出来ていない「システム開発とはこうあるべきだ」という姿があります。
それが、ここに見事に言語化されていたからです。

そして、僕の思い描いていた姿は「当たり前」の筈なのに意識されていないこと、
さらに、とても価値の在る考え方だ、ということが理解できました。

であれば、上のスライドを作成した人とは違う言葉で語ることで、届く人も居るかも知れません。

ということで、4回に分けて『シリーズ:システム開発考』として、僕なりの言語化をしていきたいと思います。

  1. システムとは何か? ← 【今回】
  2. ITシステムを作るという事の意味
  3. システム開発とは?
  4. 業務システムとアミューズメント(ゲーム系)システム、開発の大きな違い


システム=仕組み、ITシステム=IT技術を駆使した仕組み

こういう文章のお約束、言葉の定義から始めましょう。


システム

仕組み。
世の中に色々ある、社会を動かすためのルール や 手順。

法律だったり、暗黙の了解だったり、一子相伝の秘伝だったり、形態は色々。
自動車や飛行機のように、目的に併せてパッケージングされた仕組みもある。

何かと何か、AとBが連結してたり関係してたりしたら、立派なシステム。


コンピューターシステム

コンピューターの上で動くシステム。
人や他のシステムが担ってきた仕事を、コンピューターの上で行えるようにしたもの。

必ずしも、コンピューター上で完結している必要はない。


ITシステム

ITシステム≒コンピューターシステム

[IT=InfomationTechnology] は、必ずしもコンピューターに限定されるものではない、と僕は考えている。
めんどくさいので、本コラムでは両者を同じものとして扱う。

およそ、ITシステム ⊃ コンピューターシステム なんじゃないかな?とも思っているが。
実際はこんな感じだろう。

028.関係図.png

技術者(=エンジニア)

技術を利用して、システムを造る人。

何をその手段とするかで、分類される。
例えば、ITをその手段とするなら、ITエンジニアになる。
例えば、音楽をその手段とするなら、音楽エンジニアとなる。
例えば、蒸気機関をその手段とするなら、蒸気エンジニアとなる。


技術

システムを実現する能力。
造る能力に限られない。実行する能力も含まれる。

体系化され、習得が可能なもの。
ただし、習得に際して特別な才能を有する必要がある場合もある。

魔法ではない。
だから、タネもシカケもある


社会というシステムは悠久の歴史の成果

僕は、人が生まれた時、既にシステムはあった、と考えています。
少なくとも、生物はそれ自体が小さなシステムの集まりであり、それひとつの個体がシステムなのだ、と。
そして、群れとなればまたシステムであり、地球という場所もまた、大きく自然的なシステムのひとつである、と。
そして宇宙は、時空は、次元は…。

少し、話のスケールが大きくなりすぎました。
今回フォーカスしたい事とは、ちょっとズレるので、一旦忘れて下さい。


システムは、我々の生活の中で当たり前の様に、時にそれと意識せずに使われています。 例えば時計。例えば交通ルール。例えばスマホ。例えば…

それは、人類が長い時間を掛けて、【社会】という複合システムを築き上げてきました。
今日の我々の生活は、その上に成り立っています。

そして、その【社会】というシステムは、日々変化しています。
【社会】を構成する数多のシステムも、日々変化しています。

ある側面では進歩かもしれません。ある側面では衰退かもしれません。
どちらにせよ、1秒か1日か1年か。何かしらの単位で目に見えるようになるまでの間でも。
変化を続けている、という事です。
変化を続けてきた、という事です。

それは、常に、その時々で、最適の形であったはずです。
最高にはなりえず、至高には至らず、しかし最適であった。

悠久の歴史の中で、常に【最適】へ変化してきた【社会】というシステム。
その一部を、我々個人個人が担っている、というのは忘れたくないですね。


技術者としてシステムに向かい合う

我々エンジニアは、新しいシステムを造るために、必然と旧いシステムと向き合う事になります。
もちろん、これから造る新しいシステムにも、相当向き合う必要がある事は、言うまでもありません。

その為に行う行為が【設計】です。
しかし、今回は設計という行為そのものについては、扱いません。
設計という行為ついてはまた後でしっかりと扱います。

この設計で「旧いシステムと新しいシステムの双方に向き合う」という観点を忘れている人は多い感じがします。

「旧いシステム=悪いシステム」ではありません。
「新しいシステム=悪いシステム」になる可能性は、とても高いです。
しかし、そうさせてはいけません

その為に何をすれば良いのか?
答えはシンプルです。

  1. 旧いシステムについてよく知る
  2. 旧いシステムの何を新しいシステムにするのか、よく考える

旧いシステムは「今までの変化を受け止めてきたシステム」です。
当然、その中にはユガミやヒズミもあるでしょう。

新しいシステムに、それをそのまま移すのも、立派な一つの方法です。
ですが、それを整えて作り直すのが、好ましいでしょう。

勘違いしてはいけないのは、何でも新しくすればいい、というわけではありません。

「今までの変化を受け止めてきたシステム」から「これからの変化を受け止められるシステム」へ ある面では「継承させる」と表現できる、
ある意味では「転生させる」と言える事をする。

それが、システムを造る、という事であることを忘れてはいけません。
その思想を持って、エンジニアはシステムに向かい合うべきなのです。


今回のまとめ

どっぷりと哲学しました。

という程度しか、纏めることがありません。
必要なことは、全部本文に書いたし、
必要なことだけを、本文に書いた!




今日の戯れ言

誰も見たこと無いシステムなんて、創れねーよ!

既存のシステムを、視点を変えて組み合わせた結果こそが、

誰も見たことがなかった景色を映し出してるだけなんだよ。


Comment(0)

コメント

コメントを投稿する