アプリケーションを設計すると言うこと

  • 投稿日:
  • by

連休中だと言うのに(いや、連休中だからこそ)、朝から会社に出てきて、新しい機能の設計に没頭しています。こうしている時間が、世の中で一番至福の時間だというのは、梅田さんの年を取ってから後悔しない人生デザインに書いてある通りです。

普段、私はB4サイズの原稿を収納できる書類ケースを毎日持ち歩いていますが、その中には、10種類以上の設計中のアプリケーションの仕様書が入っています。

一つ一つが未完了で、途中までしか記述されていません。

これを行く先々で開くのかと言えばそうではなく、ある日、突然、解決方法が見つかることがあって、それは自宅の場合もあるし、バーのカウンターの夢の中であったりするのですが、その時に必要になるからです。

一つのアプリケーション(の一部の機能)を設計する作業は、私の場合、すべて頭の中で行います。

この作業を人に説明するときによく使うのが、無重力空間に立体ジグソーパズルのピースが浮いていて、ある時突然全てがうまく組み合わさって、パズルが完成する、そう言った感覚です。

ですので、一度に、何種類ものパズルを頭の中に浮かべておくのは大変で、実際には、今は一つしか浮かべていません。作業を行うときに集中して思い浮かべるのですが、ピースの数が多いパズルほど、頭の中で展開するまで時間がかかります。ですからこういった連休中が、一番考え事をするのには最適なのです。

ところが、そうはうまく行かないのです。

全てがうまく組み合わさるという感覚がないと、全く一歩も前に進みません。

仕方がないのでこうやってBlogを書いているという、言い訳ですが(笑)。

ジグソーパズルが組み合わさるという感覚も、単に空間的に、と言うよりは、時空間上で、それぞれが繋がって、データや論理という水の流れが全てうまく流れていくと言った方がより適切です。

私は常々、ソフトウェアの世界は職人の世界ではなく工学(エンジニアリング)の世界だ、と言ってきましたが、果たして、今私のやっている作業を若い技術者に伝える方法があるのか、はなはだ疑問に思います。が、いつかはそれをやれるようにしたいという夢は捨てていません。

これをやるために、今の時点では、例えばUMLと言った方法では厳密すぎるのです。

もう少しフリーハンドで、ラフで、しかし、精密な記述が出来る言語があればいいのですが。先日、NHKだったかの番組でアイデアを記述するための言語システムの開発を紹介していましたが、これも候補かも知れません。 KAI