システム=コンピュータでは無い。システム作り、2つのポイント | おるずラボ

おるずラボ

発想、プログラミング、デザイン・・あなたも『Creative』な力を手に入れませんか?

さてさて、
「スケジュール管理システム」の
実況中継(?)を始めようかと思ったのですが・・

その前に『システム作り』全体について
事前に話しておきたい事があったので、
つらつらと書き綴ってみようと思います。

コンピュータ以外のシステムを構築するのにも
役立つお話だと思うので、聞いておいて損は無いはず。



まず最初に、
システムを作る上で何より僕が大切にしているポイントを1つ。

システムとコンピュータは、イコールでないという事です。

システムという言葉を聞くと、どうも
機械的でコンピュータちっくなものが思い浮かぶかもしれませんが、
もっと広い視点で考えるとシステムはこんな風に言えます。

「システムとは、個々の要素が相互に影響を及ぼし合うまとまり」

・・例えば、僕たちの身体も1つのシステムです。
脳、血液、筋肉・・様々な要素がそれぞれ独立しているのではなく
お互いに影響し合いながら構成されている。

これを意識するだけで、システムの作り方は大きく変わってきます。

特に「今ある業務を効率化したい」という要望であれば、
そこには既にシステムが存在しているはずなのです。

アナログでやってるかもしれません。
電話で注文受けて、紙に書きまとめて次の担当者に渡す、とか。

デジタルでやってるかもしれません。とりあえずExcelなんかで。

・・でも、効率化したいという事であれば
それらの要素は上手く連携出来てない事がほとんどで、
色々やり過ぎ却ってお仕事が増えちゃっていたりするのです。

そこを上手く整理して、
再デザインしてあげるのが
システム開発者の役割でもあります。



・・あ、そうそう。
もう1つ、システムを考える上で重要なポイントがあります。

「INとOUTを意識する」

・・例えば、『自動販売機』というシステムについて考えてみましょう。

INはお金と各ジュースのボタン。
OUTはジュース本体と釣り銭です。

自動販売機の中では、恐らく色んな細かい機能が関連し合っています。

 お金を投じる部品、
 お金が正しいお金かチェックする部品、
 投入額に合わせてランプを点灯する部品、・・

あるINに対して、適切なOUTを返すために、
どんな要素を関連させて行く必要があるのか?
・・これを考えるのが、システム作りです。

どんなINが存在して、どんなOUTが求められているのか?
これを意識する事で使い勝手の良いシステムが出来上がって行きます。

例えば、今回作ろうとしているスケジュール管理であれば
「誰が、どこに、いつ行くのか?」という情報がINになるでしょう。

OUTについては
「月別スケジュール」「社員別スケジュール」「訪問先別スケジュール」
などになるかもしれません。



・・でも、ここで1つ大きな課題が残ります。

「ユーザーはどんなINを行なうのか?どんなOUTを求めているのか?」

これは、開発サイドだけでは分からない事です。予想と現実は大抵違うものです。



だからこそ大事な事。それは、ユーザーとの『対話』。



【告知】
メルマガ始めました。

プログラミングを「武器」にするためのさらに具体的な方法や、
VB.NET、Java、PHPなどの体験型プログラミング講座、
自作Webサービスの開発進捗などなどをテーマに発信しています。

=> メルマガ『武器としてのプログラミング』に登録