クラウドが昔ながらのSIerの仕事を奪うようになってきてはいるけれど

Salesforceといえば、ちょうど最近行われたSalesforce Developers | Developer Eventsというイベントに参加された方もSI業界では多くいらっしゃるのではないかと思います。私はそのイベントには参加していませんでしたが、先日会社でSalesforceのSE*1の方からお話を伺う機会がありました。
Salesforceの提供するForce.comのようなパブリッククラウド上での開発を最初からなんとなく敬遠してしまう組織もあるかもしれませんが、多くの業務システム開発に対しては開発生産性がJavaや.NETの5倍という宣伝文句は決して大げさでないケースが多いと考えます。実際この5倍という数字は日本における実績というよりワールドワイドでの実績に基づくものと思われますが、海外ではそもそもSalesforceが対象とするような領域ではもともと生産性の高いフレームワークやパッケージを使い、アジャイルで開発するのが多いと思われます。対照的に日本の業界では、伝統的に簡単なシステムであっても大量の画面定義書やExcelの設計書、テスト仕様書の作成が義務付けられていることが多いと思われますし、このブログで何度も指摘しているように、オブジェクト指向を使った再利用なども十分浸透していませんから、実は工数ベースで考えると生産性に10倍や20倍といった具合にもっと大きな開きがあっても不思議ではないかもしれません。
Force.comはSaaSとして提供されるCRMフレームワーク部分の拡張であり、もともと、かなり業務ロジックが単純な(いわゆるガラポンの)社内システムを短期間に構築するためのものというイメージがありました。しかし、最近ではコンシューマー向けのサイトを構築するためのSiteforceという技術や、社内でTwitterのようなやり取りを行うChatterといった機能も提供されるようになっています。また、Database.comという技術を利用することで、Force.comをデータベース的に利用するといったことも可能になっています。また、将来的にはvmforceHerokuの技術を使うことで、画面周りをSpring MVCRubyの技術で作成するといったことも可能になると思われます。つまり、従来は全レイヤーがSalesforceの独自技術に拘束されるという制約が非常に大きかったのですが、だんだんとレイヤーごとに、よりオープンな技術と連携可能になってきています。
ただし、SalesforceもGolden Hammer的に常に最適なわけではもちろんなく、以下のような制約があると思っています。

  • データベースが独自(内部的にはオラクルを使っているらしいけれど普通のTableとしては利用できない)のため、場合によっては既存データの移行などに相当の工数がかかる危険性がある。
  • 現状の開発環境や言語からは、大量のビジネスロジックを記述するのは非常に困難と想定される。
    • Javaのパッケージに相当するものがApex言語にはない。(名前空間はアプリケーションごとに決まる)
    • SVNのようなソースコードレベルでのバージョン管理の機構が利用できない(開発者ごとにクラスを分けるなどの運用上の対処が必要)
    • DIやAOPに相当するものがない。
    • 単体試験を含めてすべてクラウド上で実行する必要がある
  • 大量データのバッチ処理が困難
  • governorリミットなど性能上の上限値が存在することを考慮する必要があり、スケーラブルでない。
  • 外接インターフェースをうまく設計しないと、結局情報サイロ*2になってしまう。

全体的に技術が独自ということもありますが、結局Access VBAExcel VBAのアプリケーションをクラウド上で実行するようなイメージに近いところもあるためベンダーロックインが心配なのと、ユーザー数や運用年数に応じてコストもかかるわけですから、機能が多く、かつ、長期にわたって運用するようなシステムにはまったく向かない気がします。それゆえ、SIerの大切な仕事である大規模な基幹業務システムの分野とは住み分けができると思われます。
GAEもそうですが、従来のPasS環境はプラットフォーム独自の制約というのが大きく、その上で展開できるシステムは限られるというところがありました。しかし、今後の傾向としては、クラウドのPaaS環境もよりオープンで柔軟性の高いものになっていくというのは自然な流れだと思います。そして、独自の性能要件や機能要件を満たす必要があるようなシステムもデプロイ可能なプラットフォームがパブリックなクラウド上でより安価に利用できるような環境が提供されるようになっていくだろうと容易に想像されます。ちょうど、Amazon Web Service(AWS)が東京に上陸したというニュースがありましたが、
http://aws.typepad.com/aws_japan/2011/03/now-open-aws-region-in-tokyo.html
レイテンシーの問題や海外拠点にデータを持ち込むことに対する精神的な障壁、日本語サポートの問題といったことがクリアされたことで、今後publicクラウドを導入する企業が確実に増えていくと思われます。アプリケーションの開発も基盤運用も含めて、従来SIerが伝統的に担ってきた仕事は、当然ですがどんどん少なくなってくると思われますね。
こうしたことは当然誰でも予測していたことなのですが、いざAWS上陸のニュースを聞くといよいよ本当に黒船が来航したかという気になりますね。幕末の時は黒船から明治維新まで15年くらいかかっているのですが、変化の急速な現代のIT業界のことですから、業界の大きな変革が起こるのにはそれほど時間はかからないのではないかという気もします。この1年〜2年のうちに業界のビジネスモデルが大きく変革せざるを得ないという事態になることもまったくありえないことではないなと思います。(もちろん、レガシーシステムのメンテナンスの仕事は一定期間続くことにはなりますが。)ISIDさんもhttp://www.isid.co.jp/news/2011/0303.htmlのようなサービスを開始するそうですが、今後他のSIerクラウドを対象としたサービスについて、何らかの変革を迫られることになると思います。(今のSI業界もリファクタリング可能だと思います - 達人プログラマーを目指して
クラウド関連のネタで、私も含めてSI業界で働くものとしては、ちょっと悲観的な話になってしまったのですが、今後本当に技術力が試される時代になってきているということでもあるのですし、本物のプログラマー(エンジニア)としては今後ますます面白い時代になっていくだろうという楽観的な希望も述べておきたいと思います。

*1:セールスエンジニアの略?

*2:特定のアプリケーション内にデータが蓄積されるだけで有効活用できない状態