人様の望むシステムを開発するのは大変だなと思いました

- プログラミング・IT

人様が望むシステムを作るというのは大変だよなーと、最近よく思います。趣味でWebサービスなりソフトウェアなり、何かプログラムをよく作る人ならば、おそらくみんな思っていることでしょう。

この画像を見たことはありますか。これは、「顧客が本当に必要だったもの」と呼ばれる風刺画です。

公式で厳密な答えがないと言われており、解釈というか、突っ込みどころが沢山あります。ただ、システム開発の困難さを伝えるには充分な画像です。画像のように、顧客が本当に必要なものを顧客自身が分かっていないケースというのは往々にしてあります。顧客の説明を開発者チームが正しく理解できるとは限りません。そして大きなシステムになればなるほど、開発に関わる人は増えていき、要件や仕様等は伝言ゲームのように伝わっていきます。伝言ゲームのズレを埋めるために色々工夫したりはするのですが、これは大抵の場合、工数と引き換えです。

そして現実的には、どのぐらいの工数でできるとか、そういう難しい話も出てきます。なぜそんなに工数がかかるのか?と言われても、それを真の意味で理解できるのは開発者だけです。話のわかる人が相手ならいいんですが、そうでない人も沢山います。

これらはシステム開発に限ったことではない話ですが、ITという分野自体の歴史が浅いせいか、クライアントがPCやインターネットというものに本当に疎かったりするケースや、作るモノによっては沢山の人・技術が必要な点(PCとか、ちっちゃいモノの中でしか動かないくせに!)、そして、多くの場合は形のないものを作るという性格上、そういった問題は起きがちではないでしょうか。

とはいえ、この仕事をする以上、それは仕方のないことだし、避けられないことです。根本的に、趣味での個人開発と仕事での開発は違うものです。

ただ、趣味で色々作っていると、最近人様のシステムを作るのが億劫に、本当に億劫に感じ始めてきました。私が面倒くさがりというのも理由の一つですが、自分で何かサービスを出そうとすると、極端な話、自分の頭の中にあるイメージを直接コードで表現すれば良いだけなのです。顧客の脳みそにある理想を聞き出し、場合によっては設計書の類に落とし込み、それを基に開発し、顧客に見てもらい、顧客の脳みそと照らし合わせる、といった面倒なフローの大部分が短縮できるのです。

来年以降、私は業務委託で人様のシステムを開発するのを辞める予定という話を前に書きましたが、理由はこれです。自分でサービスを出していき、最低限のお金を稼いで、好きなことを勉強する時間も沢山とって、気ままに暮らして行くのが直近の夢です。ダメだったらまた、人様のシステムを開発すれば良いだけの話です。

Icons made by Prosymbols from www.flaticon.com