本来の目的を思い出そう | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

面倒くさいこと 」に書いたように、繰り返し行うような単純作業はコンピュータにやらせた方が効率的だ。プログラムを作る時間が掛かったとしても、長期的にみて利益が大きいならそうすべきである。

しかし、逆に、人間がやった方が効率的な仕事までコンピュータにやらせようとして、失敗することも少なくない。苦労してデータを入力しても、それに見合うだけの恩恵を与えてくれないようなシステムを見かけたことがないだろうか。

コンピュータに限らず、道具というものは、適した所に適した形で使わなければ効果がない。「システム化」といっても、何でもかんでも電子化してコンピュータで管理すればいいというものではないのである。

「システム化」というと、業務の一部をコンピュータ・システム(機械系)に移すことが目的であるかのように聞こえる。しかし、本来の目的は、業務を改善することである。機械系だけではなく、人間系を含めた広い意味での「システム」を再構築しなければ、その目的を果たせない場合も多い。


本来の目的が見失われてしまうという状況は、この業界ではよく見かける(もっとも、他の業界でもそうかもしれないが)。

例えば、プログラミングに集中しすぎたプログラマが、本来の「要件」を忘れてしまうことがある。技術を追求しすぎて、そのシステムに必要のない機能を作りこんでしまったり、過剰な性能を追求してしまったりするのだ。もちろん、ソフトウェアの機能が多く、高性能だというのは良いことだ。しかし、過剰な実装のために費やした作業時間は、本来なら別のことに使えたはずであり、そういう意味では損失である。

SEO(検索エンジン最適化)の場面でも、そうした状況が見られる。本来は「サイトを多くの人に使ってもらうこと」が目的のはずなのに、「検索エンジンの上位に表示されること」が目的であるかのように錯覚されることがあるのだ。そうなると、コンテンツ(サイトの内容)の充実に使うべき労力を、小手先の SEO ばかりに使ってしまう(※)。

あるいは、情報セキュリティに関しても見受けられる。本来、「情報漏洩を防ぐこと」が目的のはずなのに、「社内ルール」のようなものを守ることが目的になってしまうことがある。ルールが完璧ならそれでもいいのだが、中途半端だと危険だ。例えば、「コンピュータにはログイン・パスワードを設定すること」というルールがあるとしよう。しかし、そのパスワードを付箋に書いてモニターに貼っていたのでは意味がない。確かに、ルールは守っているのかもしれないが、本来の目的からすると意味がない。


このように、本来の目的が見失われてしまうと、無駄な労力を使うことになったり、無用な危険を招くこともある。特に、技術者が注意したいのは、どうしても技術寄りの視点にとらわれてしまいがちなことだ。目の前の技術的な問題に取り組んでいると、ついつい視野が狭くなってしまう。自分がやっていることの本来の目的は何かということを、時々、意識的に思い出すようにしたいものである。





※検索エンジンが目指しているのは、「検索者にとって有用なサイトを見つけてあげること」だろう。彼らはそのためにランキング等の仕組み作り、改良を続けている。つまり、SEO の王道があるとすれば、「有用なサイトにする」ということなのである。



■関連記事
デザイナーの屈辱
YAGNI ~ 予想でモノを作るな
うちの社員は信用できません



IT失敗学の研究―30のプロジェクト破綻例に学ぶ
不条理なコンピュータ研究会 日経コンピュータ
日経BP社 (2006/02)
売り上げランキング: 22896
おすすめ度の平均: 4.5
4 システム構築の世界は難しいのだが・・・
4 システム開発者自身を映し出す「鏡」
4 すべてのプロジェクトは大なり小なり不条理な側面を持っている


ザ・ゴール ― 企業の究極の目的とは何か
エリヤフ ゴールドラット 三本木 亮
ダイヤモンド社 (2001/05/18)
売り上げランキング: 2395
おすすめ度の平均: 4.5
4 値段以上の価値が宿る本
4 日本の製造業の凄さを再認識
5 小説でTOC理論(経営工学の制約理論)を学ぶ