Salesforceって何?
Salesforceと他のカスタム開発って何が違うの?
っていう質問をよく受けるのですが、メモ程度に情報をまとめたので共有します。
<Salesforceって何?>
Salesforceは顧客情報や商談情報などを管理するためのパッケージ製品です。(もちろん、他にも色々な機能あり。)
パッケージ製品なので、すでに一定の機能(顧客管理や商談管理、分析機能)が作りこまれた状態で売られています。
なので、まっさらな状態からの開発とは異なり、すでに提供されている機能を活用することで、検討や開発スケジュールの短縮、および初期コストの低減を目指すことができます。
(例えば、ユーザ要件(自分のToDoを表示したい)と、Salesforceの提供するToDo機能がうまくマッチしたら、ToDo表示機能の一切作りこみは不要で、ToDoを表示したい画面にドラッグアンドドロップで機能を配置して開発完了となります。
以下は一切作りこみをしていないSalesforceの「今日のToDo表示」機能です。
通常の開発だと、ラベルの位置は?とか色々決めて作りこむ必要があると思うのですが、そういう検討や設計は不要です)
また、Salesforceはクラウド(=ネット経由でシステムを提供)なので、ネット上で開発したり、アクセスしたりすることができ、お客様のセキュリティ問題がなければ、社内での持ち帰りや在宅での開発も可能となります。
特記事項としては、年に3回のバージョンアップで、強制的に機能追加されます。
(過去の例だと、突然ボタンや検索窓が増えたり、レイアウトの項目幅を広くするのか狭くするのかユーザ自身で設定できるようになったりします。
余談ですが、Salesforceが提供する機能はネット上に仕様が掲載されているので、なるべく設計書をかかないようにすることがおすすめです。
じゃないとバージョンアップで仕様が変わった時にメンテナンスが大変だし、反映が漏れてしまうリスクもあります。)
<Salesforceと他のカスタム開発って何が違うの?>
前述の通り、Salesforceはパッケージシステムなので、まっさらな状態からの開発とは異なり、すでに提供されている機能を活用しながら開発を進めます。
開発というか、以下のように、パラメータを手動で設定するイメージになります。
逆に言うと、これ以外何もできないので、例えばボタン変えたいとか、リンク左に寄せたいなどの要望を言われたらクライアントと調整/検討が必要になります。
(ボタンの色を変えるために全部カスタマイズするとXXX万かかるんですけれど、作りこみますか?
それをやって業務にどれだけプラスになりますか?とか。)
なので、クライアント要件が、Salesforceの提供している機能とマッチしない場合、カスタム開発と同様に作りこみが必要となるため、あまりパッケージを使うメリットがなくなります。
よって、要件定義前のフェーズなどでFit&Gapをし、本当にSalesforceを使うべきか診断することは非常に大事です。
(Salesforceの仕様に詳しいメンバーをアサインすることや、クライアントに制約を理解してもらうことが本当に大切です。)
※作りこみ=以下のようにソースコードをがりがり書きます。(詳しくは書きませんが、作りこみするとなってもそれはそれで色々制約あります。)
また仮に、以下のようにクライアント要望とSalesforce機能が理論上マッチしても、
Salesforceには多くの制約があるため、クライアントにSalesforceを理解してもらった上で要件定義に入らないと、かなり苦しい要件定義になります。
例えば、Salesforceの入力画面、参照画面は以下のようなUIになります。
項目を5列表示するとか、ボタンの色を変えるとか、左上にボタンを置くとか、できません。
(Salesfroceは顧客管理ができるが、実際に提供できる画面イメージを見せたところ、ボタンの位置や項目配置列が最大2行などの制約から縦長の画面になってしまうなど諸々の理由により、「これじゃあ業務がまわらないから作りこむしかない」などの結論に達することもあり。)
なので、長くなってしまいましたが、
Salesforce開発とカスタム開発の違いは、(細かいことを抜きにすると、)
すでに提供されている機能を活用しながら開発を進める点で異なります。
また、
・Salesforceの仕様を知っていること
・案件を始める前にFit&Gapをして本当にSalesforceを入れるか見定めること
・クライアントへSalesforce(の主に制約)を理解してもらうことが大事、
となります。