2016-11-08 2016 SWTT Slides for distribution · これはやったらダメ...

37
これはやったらダメ 設計におけるアンチパターン サクセスエンゲージメントマネージャ ⼤城 祐介 ※公開出来ない画像は削除しております

Transcript of 2016-11-08 2016 SWTT Slides for distribution · これはやったらダメ...

これはやったらダメ設計におけるアンチパターン

サクセスエンゲージメントマネージャ⼤城 祐介

※公開出来ない画像は削除しております

Forward-Looking Statements

Statement under the Private Securities Litigation Reform Act of 1995:

This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.

Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

⾃⼰紹介

• SFDC⼊社前は製造業界で需要計画と⽣産計画を調整するためのソリューションをSalesforceで構築するプロジェクトなどを担当

• Salesforceのプリセールスエンジニアとして従事後に現職

• 現在はプリセールス段階で以下の観点で⽀援担当• 無理な実装要件が存在しないか、無理なプロジェクト計画では無いか、適切なライセンス体系をご利⽤いただけて

いるか

⼤城 祐介 (Yusuke Oshiro)

不適切な解決策を分類したもの。

アンチパターンとは?

本⽇のフォーカス

• 課題の抽出• 課題を解決することによって得られるリ

ターン(定性、定量)の定義• 適切なプラットフォームの採択

• LoBでも開発出来る• PDCAが回せる• マルチデバイス対応• 活発なエコシステム• 等

• 実装する業務領域と深度の設定• 誰がどのような業務をSalesforceで⾏う

か?• 管理KPIの設定

• ⼊⼒をどのようにするか?• どのように測定するか?

• Salesforceのどの機能を使うかの検討• 設定 vs 開発• 標準 vs カスタム• All-on-SFDC vs SOA

• Salesforceの特性を考慮した設計の検討• クラウド• マルチテナント

WHY Salesforce? WHAT on Salesforce? HOW on Salesforce?

Salesforceを導⼊するにあたり検討すべき事柄

技術的にどのように実現するか何をして、何をしないのかなぜシステムを導⼊すべきか

本⽇のフォーカス

• 課題の抽出• 課題を解決することによって得られるリ

ターン(定性、定量)の定義• 適切なプラットフォームの採択

• LoBでも開発出来る• PDCAが回せる• マルチデバイス対応• 活発なエコシステム• 等

• 実装する業務領域と深度の設定• 誰がどのような業務をSalesforceで⾏う

か?• 管理KPIの設定

• ⼊⼒をどのようにするか?• どのように測定するか?

• Salesforceのどの機能を使うかの検討• 設定 vs 開発• 標準 vs カスタム• All-on-SFDC vs SOA

• Salesforceの特性を考慮した設計の検討• クラウド• マルチテナント

WHY Salesforce? WHAT on Salesforce? HOW on Salesforce?

Salesforceを導⼊するにあたり検討すべき事柄

技術的にどのように実現するか何をして、何をしないのかなぜシステムを導⼊すべきか

本⽇のフォーカス

本⽇のセッションの対象者

これからSalesforce導⼊を検討される⽅

Salesforceのすでに導⼊されている⽅

実装⽅法に興味がある⽅

本セッションの対象者

特に・・・

• 設定済みのSalesforceの健康状態を知りたい⽅

• 今後機能拡張したい⽅

※⼀部内容に技術的なコンテンツが含まれていますがご了承下さい。

これからご紹介する厳選したアンチパターン

1. 標標準機能が存在するものを開発してしまうパターン2. パッケージ導⼊で回避できる開発をしてしまうパターン3. ガバナ制約(マルチテナンシー)を考慮していないパターン4. その他陥りがちなアンチパターン

1/4

標準機能が存在するものを開発してしまうパターン

あらゆる規模の企業をサポートまったく同じシステムを 1ユーザから利⽤可能、 業種・業態・企業規模を問わず、世界最先端の⾼機能なシステムを

⼩規模企業

中規模企業

⼤企業

お客様のご要望を満たすための仕組み

AppExchangeIdeaExchange

お客様のご要望を収集する仕組みサードパーティーのパートナーがアプリを配布するための仕組み

年に3回のアップグレードを実施

• お客様の声を反映させSalesforceは常に進化している• Summer ʼ16では 240,000ptをIdeaExchangeから消化• True to the Core: 創業者がお客様と直接セッション

• 多くのノウハウが標準機能に詰まっている

*最新バージョン

標準機能が存在するものを開発してしまうパターン

こういったことをやめましょう!• 商談、キャンペーンなどのCRMオブジェクトの類似機能を個別に開発• 「ワークフロー」、「フロー」、「プロセスビルダー」で実装可能な機能を「トリガー」で開

発• 過去のシステムの⾒た⽬や操作性にこだわるあまり、本来不要な画⾯開発をわざわざ⾏う

なぜなら・・・• 保守・メンテナンスをご⾃⾝で⾏う必要が発⽣する。標準機能であれば弊社が⾏う。• 機能拡張の恩恵を受けることが出来ない。標準機能であれば弊社が積極的に機能拡張を⾏う。• 例) 売上予測、セールスパス、AppExchange• モバイル(マルチデバイス) 対応を個別に⾏う必要がある。

標準機能が存在するものを開発してしまうパターン

推奨 ⾮推奨

標準オブジェクトの利⽤ 標準オブジェクトに似たオブジェクトの再構築

標準機能の最⼤限の利⽤ 標準である機能をApex/VFでわざわざ開発

2/4

パッケージ導⼊で回避出来た開発をしてしまうパターン

パッケージ導⼊で回避できた開発をしてしまうパターン

こういったことをやめましょう!•パッケージとして販売されているものと同等の機能をSalesforce上に構築すること。

なぜなら・・・•財務会計パッケージ(SAPやOracle EBS等)の⻑年のノウハウが詰まった機能を再現するには相当の費⽤と期間がかかり、正当な投資になる可能性は低い。•弊社、もしくは3rd Partyが⽤意していないものは新機能リリースの可能性が限定的 (法改正などの外部要因に直接影響をうけてしまう)

パッケージ導⼊で回避できた開発をしてしまうパターン

推奨 ⾮推奨

AppExchange、もしくは外部から適切なパッケージを調達

パッケージ導⼊の⼀時費⽤を回避すべく開発を選ぶ

適切なパッケージが存在しない場合に精査した上での開発

投資効果やFit-Gapを考えずにパッケージをそのまま導⼊

御社の競争⼒に直結する機能は惜しまず開発

御社の競争⼒に直結する機能を汎⽤パッケージで代⽤してしまう

3/4

ガバナ制約(マルチテナンシー由来)を考慮していないパターン

※ここから⼀部技術的な内容を含みます

Salesforceはクラウド専⾨のマルチテナント・プラットフォームです。

インフラストラクチャ

データベース

アプリケーション

…….会社A 会社B 会社C

⼀つだけの構成で全世界15万社を対応している

会社ごとのカスタマイズ情報

会社A専⽤のSalesforce

会社B専⽤のSalesforce

会社C専⽤のSalesforce

Salesforceはクラウド専⾨のマルチテナント・プラットフォームです。

インフラストラクチャ

データベース

アプリケーション

…….会社A 会社B 会社C

弊社が常にバージョンアップ・メンテナンスを⾏います

お客様が個別の設定を⾃由に出来ます

• 会社ごとに全く挙動が変わるが実は共有の資産を使っている• Salesforceのユーザはインフラの管理をする必要がなくなります。• 共有のインフラをお客様が管理をすることは出来ません。

⼀つだけの構成で全世界15万社を対応している

会社ごとのカスタマイズ情報

Salesforceはクラウド専⾨のマルチテナント・プラットフォームです。

インフラストラクチャ

データベース

アプリケーション

…….会社A 会社B 会社C

⼀つだけの構成で全世界15万社を対応している

会社ごとのカスタマイズ情報

弊社が常にバージョンアップ・メンテナンスを⾏います

お客様が個別の設定を⾃由に出来ます

• 会社ごとに全く挙動が変わるが実は共有の資産を使っている• Salesforceのユーザはインフラの管理をする必要がなくなります。• 共有のインフラをお客様が管理をすることは出来ません。

共通のインフラを全てのお客様で共有するので全員が快適に過ごすためのルールがある!

ü 制限/制約内で利⽤すれば動作/可⽤性が担保されるü 将来のバージョンアップでも動作/可⽤性が担保される

Salesforceのルール: ガバナ制約とは?

• 制限/制約はどのようなシステムにも存在する• Salesforceはマルチテナントで提供しているため制限や制約を具体的

な数値で公開詳しくは: https://resources.docs.salesforce.com/204/latest/ja-jp/sfdc/pdf/salesforce_app_limits_cheatsheet.pdf

ガバナ制約の例

制限名 制限値 抵触するシーン例 回避策

発⾏されるSOQLクエリの合計数 100(同期)200(⾮同期) ループ内にクエリ/DMLス

テートメントが⼊るプログラムを実⾏した場合

該当の処理をループ外に出す発⾏されるDMLステートメントの合計

数 150

発⾏されるSOSLクエリの合計数 20

SOQLクエリによって取得されるレコートの合計数 50,000 ⼤量データ返すSOQLを発

⾏した場合要件を再検討する、クエリではなくデータのエクスポートを使う

DMLステートメント、Approval.process、またはdatabase.emptyRecycleBinの結果として処理されるレコートの合計数

10,000 ⼤量データを更新するDMLを発⾏した場合 処理単位を分割する

1つのSOSLクエリによって取得されるレコートの合計数 2,000 ⼤量データがヒットしそう

な短いキーワードを避けるより具体的なキーワードをしていするかSOQLを検討する

as of Winter 17 / API 38.0

ガバナ制約(マルチテナンシー)を考慮していないパターン

•⾮同期処理で⾏われるタイムクリティカルな処理の実装• ⾮同期処理は共有キューを使って処理されるので開始時間が約束されない• 時間的余裕がないタイムクリティカルな処理は同期で分散して実⾏

•オンプレではさほど深刻な問題にならなかった処理効率の悪いコード開発• ガバナ制約により、しきい値を超えるとタイムアウトして実⾏されない• 効率のよいプログラムを書き、処理件数が増えても対応が出来るようにしておく

•データ量が増えたら検索パフォーマンスが落ちる設計• オンプレのようにハードウェアをアップグレードすることが出来ない• 適切なチューニングをしておき、データ量に依存しない設計にしておく

ガバナ制約(マルチテナンシー)を考慮していないパターン

推奨 ⾮推奨

同期処理と⾮同期処理は⽤途によって適切に使い分ける

⾮同期処理の終了時間に重⼤な依存性がある業務設計

事前クエリ、事前ソートなど処理効率を⼗分に考慮したロジック 処理効率を考慮していないロジック

ユーザの検索の仕⽅、未来のデータ量、共有設定を考慮した設計

今は機敏に動くが将来のスケールを考慮していない設計

重要なのでもう⼀段掘り下げます

パフォーマンス関連ではこのような事も気をつけましょう

•数百万から数千万のデータを扱う可能性はありますか?•検索、表⽰時のキーとなる項⽬はインデックスが有効となるように設計してください ※Demo有り• ✕ フルテーブルスキャン (全件検索)• ◯ インデックスがきく検索•⼤容量のデータを扱うことがある場合はSalesforce独⾃のQuery Optimizerの動作を考慮してください。• データ検索の仕⽅に「〜を含む」という条件は必須ですか?• 「〜ではない」という否定形の条件は必須ですか?

SOQL Query Optimizer

最適化されたSQL

詳しくは: http://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/salesforce_query_search_optimization_developer_cheatsheet.pdf

パフォーマンス関連ではこのような事も気をつけましょう

•Salesforceが持つ全⽂検索機能(サイドバー検索、⾼度な検索、グローバル検索)を検討してください。

4/4

その他陥りがちなアンチパターン

最初から項⽬を盛り込みすぎ

• ⼊⼒項⽬が多すぎると、データ品質が低下• ⼊⼒項⽬は最低限でスタートし、慣れてきたら徐々に追加• レコードタイプを使って⼊⼒⽤途に応じて必要な項⽬を表⽰

既存のシステムに引きずられすぎ

• 画⾯を開発してしまうと機能追加やモバイル対応などでコストがかかる可能性が⾼い• 業務の⽬的を明確にし、Salesforceで⼀番簡単に構築できる画⾯に

美しいデータモデルにこだわりすぎ

• レポートで⾒たいアウトプットが出しづらい• ⼊⼒が複雑になる• 可能なところで「選択リスト」を使い、最⼤限シンプルに

必要以上にセキュリティを強化しすぎ

• 狙った情報共有の促進が進まない• 管理者本位で⼊⼒者が⼊⼒することに意味を感じづらい• 必要以上のセキュリティ制限はかけない

壊れるハードコーディング

CLICK

• リンクが壊れて業務に⽀障をきたす• 絶対リンクではなく相対リンクを使う

https://ap.salesforce.com/00O10000003wfGC?pv0=A

不適切なデータ連携の実装

バッチ?

リアルタイム?

• 求められる鮮度と連携⽅式が⼀致しないために、不要なコストがかかったり、業務ミスが発⽣• 連携のタイミングや、実装⽅法はビジネス要件に合わせて正しく選定する

アンチパターンに陥らないためにはまず相談下さい!新規のお客様 既存のお客様

• 貴社担当の営業へご相談下さい• 貴社の管理者は弊社の研修メニューを

ご検討下さい

Premier Success Plan以上のお客様• ライセンスに含まれるアクセラレータプログ

ラムを活⽤下さい

Basic Planのお客様• Premier Success Planへのアップグレードを

検討下さい• 以下でアドバイスが貰えることもあります。

• ユーザ会• Success Community• Developer Community

共通

• TrailheadでSalesforceの実装⽅法が楽しく学べます

本⽇の資料はサクセスコミュニティよりご取得ください

■アクセスはこちら:http://bit.ly/SFDC7830 (SFDCナヤミゼロ)※Salesforceへログインが必要です画⾯右上の をクリックすると、毎週末にコミュニティ内の投稿のダイジェストメールを受け取れます。

■サクセスコミュニティでできること1. Salesforce活⽤のエキスパートへ質問・相談できる。2. 他のユーザからの質問を検索できる。3. 新機能紹介やイベント情報等、最新の情報、資料が取得

できる。4. Salesforceのちょっとした⼩技情報が検索できる。

お気軽にご質問・ご相談ください!

Salesforceユーザなら誰でも活用できるコミュニティです!

Thank Y u