2008年5月27日火曜日

エンジニアリングとサイエンス

漠然とした問題意識が、具体的な現状把握に繋がった気がする
ずっと考えてきたことの答えに、少しだけ近づいた気がする

中卒のオレが学歴について語ってみる


上記リンクはアルファブロガーの小飼弾氏のブログエントリである

僕が、このエントリで“なくしたい”と
書いた壁のひとつに、「ビジネスとサイエンスの壁」がある

技術的にはすばらしい研究成果が、
エンジニアや経営者に受け入れられず
ビジネスとしての利益に繋がらない例はたくさんある
僕はそれをいつか解消したいと思っている

ただ、
-----
ソフトウェアエンジニアというものはありません。
少なくともまだないです。どういうことかというと、
これ以上削れないところまで削るのがエンジニアリング。
これ以上削れないところまで削るということは、
どこまで削るとそれが壊れてしまうかというのが
わかっていることです。
まだソフトウェアに関しては我々はそのレベルには
達してないんです。
-----

確かにそうだ。
ここでは簡単のため、
ビジネスとエンジニアリングを同義(※1)だとすると
少なくともソフトウェアの世界では、
壁があるのではなく、片方の概念自体が存在しないのだ。

ビジネス(エンジニアリング)とサイエンスは、
片方が進歩すれば、もう片方がそれに追いつく形で進歩する、
いわば車の両輪のように進んでいくのが理想であるが、
片方の車輪が異常な回転数で回っていたら、
うまく進まない(※2)のは当然といえる

(※1)
“ビジネス”のほうが広義で、“エンジニアリング”は
リソースのひとつと捉えるのが普通。

(※2)
厳密には進んでいるのだろうけど、
一見するとそうは感じられない。

次々に世に出されるソフトウェアサービスと比較すると
小難しい数学的な理論や言語理論の進展は遅い。
というか、ほぼないと言ってもいい。
#ハードウェアの進歩は、いまだにムーアの法則に則っているが。。

でも、大学ではそういう小難しい理論しか学べない。
世の中の動向が早すぎるために、
それを体系化してカリキュラムに組み込むには
大学という組織では無理があるのだ
学生も4年間(あるいは6年間)がんばって勉強しても、
卒業する頃にはまったく違った環境の中に
身をおかなければいけない。

大学では
デバッグのやり方やテストのやり方を教えてくれないし
プロジェクトの進め方やチームでの開発なども経験できない
設計に関しても、極めて理論的な話には触れるが、
それを実践することはない
業務で扱うような数千行~数万行のコーディングをする経験もできず、せいぜい数百行のサンプルプログラムしか書かないから
“仕事でソフトウェアを扱う”というイメージがわかない

これを是正するためには、
サイエンスの領域に、
エンジニアリングの最新動向を取り入れるしかないような気がする
ソフトウェア業界の成長を止めろといっても無理だし、
そうすることにメリットがない
“ソフトウェアエンジニアリング”が体系化されるのは、
ずいぶん先だろうから、それを待つわけにもいかない

エンジニアリング側の車輪の回転数が大きすぎるのならば
サイエンス側の車輪も同じ回転数で回せばいい
そうすれば、両者間の乖離はなくなるのではないか

大学に戻って、研究をする上、目標とすることが今決まった

0 件のコメント: