勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

ディジタル作法と魔法使い見習い

カーニハン先生の「ディジタル作法 −カーニハン先生の「情報」教室−」を読んで考えた事について。本書は非技術者向けに書かれたコンピュータに関する本である。しかし、職業ソフトウェア技術者のどれほどが本書に書かれている事を理解しているのだろうか。魔法駆動で働いているエンジニアが増えているような気がする。

『デジむず』のこと

少し前になるのだけど、NHK教育テレビ大人のピタゴラスイッチ「デジむず」というのが特番として放送されていた。

今回のテーマは文字通り「デジタル」で、いろいろと工夫しながら概念を説明されていて面白い(個人的には「デジタル片桐」が好き)。

家族で楽しんだのだけど、見終わったあとに嫁(文系)と娘(5歳)からいろいろと質問されたりする事になってちょっと大変である。一般的にはデジタル、であるとかコンピュータは魔法、魔法の箱なのだなあと思う反面、それでは周りのエンジニアは深く理解しているのかというと微妙だなと思ったりしたのだった。

原理を知らなくても仕事はできるが

ソフトウェア開発の仕事で世間から大きく誤解されてることがある。それは、この仕事の大きな割合が、ひどく地味でハイテックじゃないということだ。

こんな感じじゃ全然ない。(画像はちょっと前に話題になっていた、映画と現実のプログラミング比較)

実際のところは、多くの人は地味に会議したりドキュメントを書いたり調べ物をしたりプログラミングしたりテストしたりして過ごしている。

作業の多くは、実はコンピュータの原理を知らなくてもぜんぜんできる(困ったことに)。さらに困ったことに、原理を知らないで作業している人がどんどん増えている気がする。原理や仕組みを知らない人に取ってソフトウェア開発の仕事は一種の魔法使いの修行のようなもので、「動くまで、試行錯誤したり調べて(検索して)みる」ということを延々とやることになる。もちろんこのやり方がダメということはないし、この方法で作ったソフトウェアでも色々な仕掛けにより(たいてい)きちんと動くようになっている。

じゃあ問題ないか、というとそうではなくて、魔法駆動は回り道になることがあるので効率に問題がある。また一応動くけれども前提が変わると途端に問題が出るというリスクもある。エンジニアとして「判断」を行う時に、大きな差が出てしまうはずだ。

ディジタル作法のこと

ということを、この本の序文を読みながら考えたのであった。

多くの人たちは、直接システムの構築に関わったりはしませんが、誰もがそのようなシステムによって強く影響されますし、一部の人はそのようなシステムに関して重大な判断を下さなければならない立場に立つことがあります。だとしたら、人々はコンピュータについてもっとよく知っておいたほうがよいのではないでしょうか?教養のある人ならば、少なくともコンピューティングの基本原理、コンピュータには何ができるのか、それをどうやってやるのか、まったくできないことや、現時点ではやるのが単に非常に困難なことは何か、コンピュータどうしはどうやって通信するのか、通信するとき何が起こるのか、そしてコンピューティングと通信が私たちの世の中にどんなさまざまな形で影響を与えるのかについて、知っておくべきではないでしょうか?
ディジタル作法 −カーニハン先生の「情報」教室−

内容は非常に平易だけれども、教科書のように無味乾燥ではないので読みやすいと思う。また歴史的な経緯を踏まえてかかれていて、とても勉強になる。登場する言語もjavascriptなのでとても現代的。ブラウザで動くトイコンピュータとか興味深い。

もちろん本書を読んだからといって専門家や職人になれるわけではない。けれど、職業ソフトウェア開発者なら教養として読んでおいていいのではないかと考えた次第。