クラウドビジネス参入記(2): Salesforce案件と既存SI案件との違い

By |9月 24, 2013|CI, DevOps, 未分類, |


クラウドビジネス参入記(1): クラウドインテグレータになるということの続きです。

弊社はSalesforce界隈へ参入する以前はWeb開発を主なビジネスとしていました。自社の営業支援のために導入したSalesforceがWeb技術によりカスタマイズ可能なことを好機と感じSalesforce導入支援ビジネスへ参入しました。

そして1,000件以上の案件に携わらせていただいた結果、Salesforce界隈での導入案件は以下の特徴が挙げられると考えています。

  • 八割方のプロジェクトは1ヶ月〜3ヶ月という短納期
  • ひとつのプロジェクトに携わる人員は1〜3名程度という少人数
  • プロトタイピングでスパイラルな開発

Salesforceはほとんどの場合、マウスクリックによる宣言的アプローチによりデータ構造やビジネスロジック・画面までも作成可能なことから、エンドユーザとの仕様ミーティングの最中に要望を素早くアプリケーションへ適用し、1度のミーティングで決定できる仕様の数を飛躍的に向上させます。

つまり、以下のような既存SI案件と同じような感覚で始めてしまうとビックリします。

  • 半年から数年に及ぶ開発期間が普通だと思っている
  • 人員が10名以下のプロジェクトは稀
  • ユーザとの仕様打ち合わせは外部設計書などドキュメントを用いて行う
  • 社内では開発人員のレベルを平準化するための施策が行われている
  • 開発人員の専門性は常に一定であり完全な分業体制が当たり前
  • システムの開発と運用の境目が明確

弊社にも既存SIer出身者が多数入社されますが、まず誰もが短納期に面食らいますし、更にプロジェクトメンバーが少人数なので誰かの陰に隠れていれば安心というタイプの人には向かないようです。

何より単に開発する場所がSalesforceに代わっただけという大きな勘違いをしてしまった人は、その意識を大きく変えなければ仕事が立ち行かなくなるほどの障害となります。

具体的にはSalesforceの以下の特徴が、これらのギャップを生んでいます。

  • システムに必要な共通基盤は概ね揃っている
  • オンライン環境さえあればいつでもどこでもカスタマイズできる

これらの特徴があるだけでプロジェクト周辺に変化が生じます。

  • 簡単な思いつきでさえ迅速にシステムへ適用可能になる
    →ひとつの設計〜開発〜テスト〜運用までの粒度が小さくなる
  • システムに必要な共通基盤をゼロから実装する必要がなくなる
    →少人数での開発が可能になる
  • システムに必要な共通基盤の品質はSalesforceが担保している
    →少人数での開発が可能になる
  • エンドユーザでさえもオンライン環境さえあればカスタマイズできる
    →開発と運用の境目が曖昧になる

たとえばノンコーディングでカスタマイズ可能な部品をほとんど理解せずに、ApexとVisualforceだけでコーディングすれば既存のWebアプリケーション開発と同様に開発できるであろうという考えが最も愚かで、その行為はSalesforceが用意した領域でSalesforceが用意した部品をわざわざ再開発するようなものです。

ただ、だからと言って思いつきだけで何の考慮もなくカスタマイズを繰り返せば良いというものではありません。システムに実際手を加える前の業務分析や要件定義など、システムのグランドデザインをまとめる作業は既存SIと何ら違いはありません。

そればかりかSalesforce案件に携わる担当者には業務やシステムのコンサルティング能力に加えて、基本要件から将来的にどんなカスタマイズがされるかを予測し、粒度の小さい機能を継続的に構築していくことを前提としたアジャイル的なノウハウが必要です。

更に冒頭お話しました通りSalesforce開発はプロトタイピングでスパイラルな開発なため、エンドユーザの目の前で仕様を決める担当者はSalesforceをよく知っていて、人前で迷いなくSalesforceを操作することが可能なほどの経験があり、尚且つエンドユーザを前述したような最適なSalesforce開発へ導くべく啓蒙を同時に行わなければなりません。

これは誤解を恐れずに言いますと既存SIにおけるプログラマがエンドユーザと直接会話する感覚に近いです。

この「短い期間単位の反復型開発」というアプローチはCIDevOpsと考え方は同じで、これを実現するためには旧態依然としたスケールアウトな分業体制ではなく開発人員や体制の継続的なスケールアップが必要不可欠です。

なぜなら、既存SIにおける分業は各フェーズに膨大な作業量や待ち時間が存在したからこそ各分野に特化して効率化を図ったり、各分野を平行で走らせることで完成までの時間を短縮する狙いで用いられたからです。

それに対してSalesforce開発は開発範囲が限定的で、前述したように各フェーズは非常に効率化されていますので、仮に既存SIと同じ開発期間を与えられるなら、極端に言えば開発人員1名でシステム構築が可能になってしまいます。

つまり、膨大な作業量や待ち時間が解消されたSalesforce開発を用いてシステムを構築する場合、分業は要件や仕様を伝達するコストが目につかない程度に限定され、開発者は各フェーズを横断した知識やスキルを求められます。

そしてSalesforceに限らずクラウド開発は概ね同じ傾向にあり、各クラウドサービスはアプローチこそ違っても「クラウドによりあらゆるオーバヘッドが解消される」ことに違いはありません。

それではクラウドインテグレーションに必要な開発人員や体制とはどんなものか、詳細は次回ご紹介させていただきます。