プログラムとはデータ構造+アルゴリズムだと言われますが、ビジネスではまず結果を求められるためデータ構造もアルゴリズムも理解しないまま他人が作った部品をいかに速く利用して金儲けに繋げるかが問われる場面が多いです。他人が作った部品を使う際にも新たに自分なりにデータ構造とアルゴリズムを追加する作業を伴うので、それもまたプログラミングではありますが面白みを感じない作業しか残っていないケースが多いのではないでしょうか。どこに面白みを感じるかは人によって違うので一概には言えませんが…。

     また仕事でプログラミングする際は「車輪の再開発はするな」とも言われます。これも結果を出すことが最優先のビジネスの世界では仕方がないことでしょう。全て自前でやると主張しても、今の時代に食事をするために火打石で火を起こすところから始めるわけにはいかないので、プログラミングにおいても必ずどこかで妥協しているはずで、だからこそ「車輪の再開発はするな」と言われるわけですが、実は車輪を作ったり工夫したりするところが面白かったりするわけです。プログラミングの面白さは先人が築いてきた手法を理解し自分なりに工夫したり、新たな手法を考えたりして問題解決に繋げていくところにあったりします。こうやってみたらどうだろう、こういう解決方法もあるかもしれないとアイデアを搾り出しながらコードを弄って試行錯誤して成果を出すところにあるのです。理解度が深まらないと新たな工夫も生まれないので、車輪の再開発は必ずしも無駄ではありません。

     試行錯誤を繰り返し思い悩んで出来上がったソフトウェアは作った人の思い入れが強くなり、それはソフトウェアの品質向上にもつながります。巷では「自己満足に陥ってはダメ」とよく言われますが、顧客のためと思いながら顧客の言う通り作ったソフトウェアが顧客にとって使い物にならないということはよくあります。それは、顧客自身が実は自分が実現したいこと(要件)をよく理解していないことが多いからですが、作り手が要件を理解していれば最強です。作る人がその必要性を実感しながら自分が納得する(自己満足する)ように作れば最高のソフトウェアが出来上がります。

    自己満足プログラミング万歳!

     このブログではたとえ金にならなくても車輪の再開発でもいいから、自分自身が興味の赴くままに作成したプログラムをネタにした記事を主に書いています。