SIerのSEには、ぜひオープンソースの開発に触れていただきたいものです。そうすることで技術力を磨き、ネットワークを広げられます。開発のすべてをオープンソースにすることを要求してはいません。オープンソースの開発を知ることで、視野も広がり、技術力もネットワークも急激に広がるはずです。
SIer は、自社開発のソフトウェアを欧米を見習って最初からオープンソース化することも選択肢にいれていただきたいと思います。 SEも、オープンソース化するのであれば、世界的なレベルのソフトウェアに引けをとらないように、商用のソフトウェアよりも念入りに開発するはずです。最初から再利用可能な設計にしてより汎用的なシステムができあがります。日本でしか通用しないシステムではなく、最初から世界中で利用されるシステムの開発を行うことにもつながります。
そうしてプロジェクトごとにプログラムを使い捨てにするのではなく、再利用されて開発資産が継承されていきます。
こうしてしっかりとしたアーキテクチャーの上に様々な機能(Geeklogにおけるアドオンと呼ぶプラグインやカスタム関数など)が追加されていくことになります。
現状の問題解決に向けて
1.クライアント側はソフトウェアのアーキテクチャーを尊重する
日本にこのような開発が根付かないもうひとつの理由は、クライアントの非常に理不尽でわがままなアーキテクチャーを無視した要件定義です。そして大局を見ないで重箱の隅ばかりをつつく姿勢です。
こういった姿勢があるかぎり、ひとつのプロジェクトが終わったら、そのシステムの開発は終了して開発資産を継承するプロジェクト体制に移行することはできないでしょう。
クライアント側は、アーキテクチャーを尊重して本体の思想をそのまま受け入れて、将来のバージョンアップをスケジュールに組み込み、カスタマイズを最小限にするべきです。
2.SIerは、開発のベースをオープンソースに
これを解決するのが、最初から納品するシステムを、アーキテクチャーのしっかりとしたオープンソースを選んで開発することです。
オープンソースは多くの開発者が並行して開発し、バージョンアップしていきます。バグがあったとしても次のバージョンでバグフィックスされるのを待てばよいし、急ぐのであればコードをフィードバックすれば確実にバグフィックスされるでしょう。
機能を追加したければ、すでに公開されているアドオンを追加するだけです。なければアドオンを開発して、本体に追加するだけです。
どうしても本体をハックしなければならない要件があったとしたら、それを、本当に必要なハックなのかどうか慎重に検討し、すこしの不便は我慢してもらう姿勢を貫くべきです。
もし、必要なハックであるのなら、そのソフトウェアに足りない機能だったということにもなるわけですから、本家に機能要望を伝えるか、実際にハックしたコードをフィードバックすることです。そうすることによって、将来のバージョンではハックすることなく利用できる、完成度の高いより使いやすいソフトウェアに成長します。
これでSIerは、どこまでもクライアントの要望に答える受身の立場から、オープンソースを活用しフィードバックして貢献する立場となって、SEの技術力も上がり、強い立場に立って良いシステムを提供できる企業になります。
SEの技術力は、海外の開発者との交流でより磨かれて競争力を失いません。
また、優秀な開発者と連携することによって、足りない技術力もカバーできます。