Javaは高い?!

弊社は様々なアーキテクチャをTPOで使い分けています。
例えば、金融基幹ではJava、ECサイトではphp、RFIDではC#・・・
それぞれに「選定理由」があって選んでいる場合がほとんどです。
例えば、金融の基幹・・・となった場合に信頼性やUnixでの運用・・・などを考慮して、Javaになることが多く、ICタグでWindows上でデバイスの制御がある場合はC#。顧客が自身でメンテをしたいので、顧客がスキルを持つphp・・・
といった具合です。
 4年間様々なシステムを構築してきました。
そのなかでしばしば「(スクリプト言語に比べて)Javaは高いんでしょう?」という質問をぶつけられて戸惑うことがあります。
 はっきり先に述べておけば「Java=高い」というのは明らかな誤解です。
 実装の工数は上記のような向き不向きを考慮は必要ですが、基本的に殆ど変わりません。
 まったくの私見では、Javaのほうが早く安く確実に作れると考えています。
 (このあたりの議論はまたの機会に・・・)
 ただし、誤解では済まされない事情が少しだけあります。


 まず第一点。それは、人材支援を求めた場合です。
 人材支援の場合だけは別で、この価格(単価)はほぼ需給関係で決まります。
 全体にシステム開発技術者が需要のほうが逼迫しているのは事実ですが、
特にJavaの技術者は逼迫していると言われています。
 結果として、供給が不足しているJava技術者の「単価」があがりやすいのが
事実です。
 
 そして第2点。Javaのシステム開発の場合に大規模な引き合いも多く「プロジェクトマネジメント技術」を求められたりもします。
 あるいは金融など「業務ノウハウ」など専門的なノウハウを同時に求める場合なども多いのです。
 結果「実装工数」以外のコストがかさんで、高くなる傾向があるのは事実です。
 世間で「Javaで作ると高くなる」という誤解はココから始まっています。
 ためしに、ベンダーに「PHPにするので安くしてください」と問い合わせてみてください。
 おそらく多くのベンダーが相当困ることと思われます。
 基本的にシステム開発のコストは、機能の数や複雑さ、技術の特異性、必要な信頼性、プロジェクトの規模などマネジメントのリスクやコスト・・・などによって算出されています。「言語」は価格の算定にはほとんど影響していません。
 ただし、例外なのが極端な「コマモノ」と言われる簡易なWebシステムの場合です。
 この場合は、Javaだと通常「アプリケーションサーバー」が必要になってきますので必然的にインフラコストがアップするという側面があります。
 サーバー自身は無償のものを使っても、導入作業や保守作業が比較的複雑になることは回避できません。
 それがある程度の規模のシステムであれば、ほとんど見積もりに影響しません。しかし逆に小さなシステムの場合、アプリケーションのコストも小さい分、その「インフラ構築コスト」が目だって来てしまいます。
 其の場合は「Webサーバーのみで動作するスクリプト言語のほうが安い。」と言い切ることができます。
 少なくとも弊社は「Javaなので高い見積もりになりました」という事葉ありません。
 たぶん多くのJavaでのシステム開発を行っている企業がこの「Javaは高い」という誤解に悩まされていると思います。
 ちなみに、少なくとも言語が弊社の見積もりのうち「実装工数」には影響を与えていません。
 「御客様の「TPO」に合った言語を選定するのが一番安い」というのが非常に正しい解答だと思われます。
 無論「どんなアーキテクチャを使うかは、ベンダーの言いなり」になる必要はありません。
 自身のビジネス的要件。。。保守の容易性や、システムの規模。自社でITガバナンスのコントロールが可能なアーキテクチャ・・・などをベンダーに伝えてアーキテクチャを選定し提案してもらうべきです。
 其のうえで「なぜそのアーキテクチャを選定したか」を説明してもらい、慎重に検討をした上でアーキテクチャを選定する必要性はあります。
 ただ、其の前に理解しておいて頂きたいのは「プログラミングという視点だけで見るならば、言語によるコスト差は殆ど無い」という事実です。

オープントーンリクルート 奨学金代理返済制度