2011.04.12 yossy a.k.a. 会長
はいどうも~。お鼻mzmzmzmzエンジニアの吉田です。
最近はマスクを着用していない時の方が違和感を感じるようになり始めました。
という、どうでもいい話は置いといて、前回に引き続き、
ソフトウェア開発にまつわる一般論寄りなお話を綴ってみたいと思います。
今回は「枯れた技術の水平思考」という考え方を、ソフトウェア開発へ
どのように適用できるかを考えてみたいと思います。
「枯れた技術の水平思考」という言葉は、「ゲームボーイ」「ゲーム&ウォッチ」などなどの
生みの親として知られている横井軍平[1]氏の哲学です。
うーん、素敵!
横井軍平氏についてはWikipediaにお任せするとして。
[1] 横井軍平 - Wikipedia
今回もWikipediaからいろいろと引用を交えながら
お気楽ムードで考えてみましょう。
まず、「枯れた技術」とは何を意味しているのでしょうか。
Wikipediaから引用すると、
「すでに広く使用されてメリット・デメリットが明らかになっている技術」
とのことです。
枯れた技術を利用すると、リスクも少なく、開発コストも低く抑えることができる、
というわけです。
次に、「水平思考」とは何を意味しているのでしょうか。
こちらもWikipediaから引用すると、
「今までなかった使い道を考えるということ」
とのことです。
つまり、「枯れた技術の水平思考」とは、ゲーム業界で言うところ、
「ゲーム作りは面白ければよく、ハイテクが必要なわけではない。
むしろ高価なハイテクは商品開発の邪魔になる。そのために
ごくありふれた技術を使い、それをまるで違う目的に使うことによって
ヒット商品というものは生まれるのではないか」
という考えです。
任天堂さんのDNAが感じられるお言葉ですね。
これは、ハイテクを否定している、というわけではなく
「開発に対するコストのバランスを取る考え方」
であるところが、とても素晴らしく感じます。
※ここまではほぼ Wikipedia からの パクリ 引用です。
この考え方、なんだかソフトウェア開発にも適用できそうな気がしてなりません。
ということで、2通りの適用例を考えてみます。
1つ目は、「枯れた技術」が「違う使い方」をされた例として、
"Ajax"について考えてみます。
これは、XMLHttpRequestという「枯れた技術」が"Ajax"という命名を受けることで
JavaScriptの「今までなかった使い方」へのパラダイムシフトを起こした事例なのでは
ないかと個人的には思っています。
1999年公開のInternet Explorer 5においてActiveXオブジェクトとして実装したのが始まりですが、
5年の歳月を経て「今までなかった使い方」にみんなが気づきだした好例なのではないでしょうか。
なので、今、巷にありふれている技術でも、きっとAjaxのような「違う使い方」を発見することで
爆発的に普及するものが、まだまだ眠っているのではないかと思います。
2つ名は、「開発に対するコストのバランスを取る考え方」の例として、
"受託開発"について考えてみます。
システム開発を受託するにあたっては、お客様の要求を満たているシステムを
納品する必要があり、その要求を満たすためには、様々な手段が考えられます。
例えば、ある財務会計システムを改修したいと考えているお客様がいるとして、
そのお客様は、COBOLベースの老朽化した財務会計システムを既に運用しているが、
老朽化しているがために柔軟なシステム開発ができないと悩んでいるとしましょう。
お客様はその解決策として、Javaベースでフルスクラッチでゼロから開発をする、
という考えを持っているかもしれません。
しかし、フルスクラッチ開発には「開発に対するコスト」がかかってしまいます。
なので、既存のレガシーシステムという「枯れた技術」を残したまま、柔軟性が必要な
部分だけを拡張開発をするという選択肢の方が「コストのバランスを取る考え方」
ということになるかもしれません。
※もちろん、どちらが良いかはケースバイケースなので言い切るのは難しいところです。
というわけで、今回は「枯れた技術の水平思考」について2つの応用を考えてみましたが、
このような先人の素敵な思想や考え方を普遍的にとらえ、
「枯れた技術の水平思考」の水平思考
へ展開していけるようになれたらいいな、なんて思ったりしています。
他にもソフトウェア開発業へ応用できる考え方は世の中にたくさんあると思うので、
積極的に先人の知恵を拝借して「巨人の肩の上に立つ」ことを心がけていきたいものですね。
今回はこの辺で。
デワデワ。