eコマースに参入する企業は、開発を外注するか社内に保つか、いずれ判断することになります。
成否に大きく影響するため、経営者が軽く扱うべきではありません。必要時に対応する専任チームを好む企業も、外注の利点が欠点を大きく上回ると考える企業もあります。
内製チームの長所と短所
構築を考えるなら、次を検討してください。
長所
- 迅速な対応:社内にいれば開発目標を早く達成し、詳しい調査の前に緊急の修正も行えます。小さな問題を大きくなる前に扱え、忙しい外部チームや新たな委託先探しを待たずに済みます。
- 簡単な連絡:同じ建物なら対面で文化や細かな要件を伝えられます。高価なミスややり直しを避ける直接の連絡は重要で、社内チームだけがこの機会を提供します。
- 完全な制御:自社だけに集中するチームなら仕様どおりに作れます。必要事項をすぐ扱い、指示と戦略に沿って具体的に変更できます。全側面を管理し期待を満たせます。
- チームの唯一の顧客なので、効率を高められる可能性があります。
- 運営方法や作業・案件の量によっては、社内の方が安くなる場合があります。
短所
- 離職:大半の開発者は同じ会社に長くとどまらないことで知られます。専門家への需要が強く、優秀な人は競合から誘われます。入退社による中断を想定してください。後任探しには時間がかかり、重要時期の離脱は高くつきます。候補探し、審査、採用、受け入れの費用も考慮します。
- 高い費用:自社専属の常勤チームは特に小企業には高額です。尊重される専門家は多くの会社で高収入を得られ、固定給で専属にする余裕がある会社は少数です。他社へ移らないよう、報酬の希望を十分満たす必要があります。
- 時間効率:常勤でも毎分高度な案件には取り組めません。休憩自体は正常でも、専門家の給与を払う立場では受け入れにくくなります。大小の作業だけでなく、職場を離れる時間にも支払います。
- 少人数の社内チームでは、大手代理店のように多数が互いから学ぶ利点がありません。
- 性能やアクセシビリティなどを重視する文化を作りにくくなります。
- コード品質の維持が難しい場合があります。
大きなリスクは品質が下がり、手順から徐々に離れることです。場当たり的な公開、性能への注意低下、QA削減などが起きがちです。プロダクトオーナーが監督するか、専門性のある技術プロジェクト管理者を置くことが推奨されます。
チーム構成
各人の技能や他システム、Shopifyサイト、画面開発の複雑さで構成は変わります。最初にバックログとロードマップに沿って責任と作業量を整理してください。各テーマを持つ簡単な新規サイトを複数作るなら、中級の画面開発者の仕事が増えます。
1人に全開発を依存すると、コードや知識がその人に閉じ、基準と品質が落ちます。プルリクエストとコードレビューは防止に役立ちますが、2人以上必要です。
多くの技術企業で機能している、採用できる構成例です。
リードまたはシニアShopify開発者
Shopifyを知り、大規模案件を経験したフルスタック開発者から始めます。特に大規模経験が重要で、体系的な作業、現代的な道具、開発手順の構築ができます。プロダクトオーナーや専任管理者と資源、公開、計画、優先順位を管理し、連携、独自アプリ、高度な案件の設計も担います。
中級または初級の画面開発者
フルスタックが対応できるため必須ではありませんが、大半の人は高品質でデザインに忠実な画面の専任者を好みます。シニアほどの理解や経験がなくても、画面、アプリ、基本Liquidロジックなどの作業を進められます。
ヘッドレスなら技能要件はほぼ確実に変わり、Vue.jsやReact.jsの経験が重視されるでしょう。
システム担当
他の社内システム専任チームも重要で、それらとの連携を担います。
各分野の作業量を先に数値化してください。長期のバックログとロードマップで必要人数と時期による変化が分かります。
道具と開発スキル
前職で同じ役割だっただけで良い仕事をすると仮定してはいけません。必須技能と、あると役立つ技能を確認します。
優先するスキル
Liquid構文
Shopifyの画面用テンプレート言語で、ロジックを適用します。データによる商品推薦から一覧へのセール表示まで扱います。
RubyやJavaScript経験者なら働きながら学ぶのは難しくありませんが、理解と経験があればすぐ進められ、学習中の品質低下も避けられます。
素のJavaScript
どのサイトでも役割があり、問題は範囲です。アニメーションや再読み込み不要のフォームなど動的なものを動かし、カート追加など主要機能も依存します。少なくとも素のJavaScriptの理解が重要です。
HTML5
見た目だけでなく性能、SEO、アクセシビリティに与える影響を含め、良いマークアップの基礎が必要です。効率的な機能を妨げるデザインを見抜く目も求められます。
SCSS
画面開発者は、スタイルシートの作成と維持によく使われるCSSプリプロセッサーを知るべきです。
その他のスキル
Ruby/PHP
Shopifyはコードをそれほど必要とせず、サーバー側技能を重要と分類しなくてよいのが利点です。データ処理でアプリや中間ソフトが必要な場合は役立ちますが、少し調整すれば分析やERPへの入出力など一般的な要件は既存アプリで満たせます。
GraphQL
多くのアプリに加え、ShopifyはAPI開発の将来としてGraphQLを推進しています。APIのデータ照会・操作用のオープンソース言語で、既存データへのクエリを実行する仕組みでもあります。データ操作や追加のサーバー機能を計画するなら、経験者がいると有益です。
React/Vue.js
既存または新規ストアを内製する前に、ReactやVue.jsで作られたかを確認しましょう。高度な機能を加える計画なら、最も使われるこの2つへの深い理解も有利です。
開発プロセス
必要な技能に加え、社内チームに必要な手順を整えましょう。
品質保証テスト
バックログから選んで開発した後、公開物の質を保証する十分なQAが必要です。まず自動化を最初の防護として使います。次の方法があります。
- スナップショットテストは画面の一部を比較し、コード変更後の誤った変化を見つけます。
- GitHubやBitbucketのプルリクエストで、統合前に各コードをレビューして意見を伝えます。
- Cypresso.io、Jest、CircleなどでJavaScriptテスト群を作り、コミットごとに実行して全成功時だけマージを許可できます。
プロダクトオーナーや技術管理者は開発者と別にし、成果が指示に合うか確認することも重要です。タスク説明が明確なら差し戻しは減ります。
デプロイ
円滑に進めるには決まった手順を体系的に守ります。成功するチームの経験者は多くを知っているでしょう。
- 大きな作業は他の並行開発に影響せず分離できます。そのため機能別テーマがあります。複数作業を主コードへ統合して問題が出ないようGitに記録します。
- 公開は決めた条件内で行います。プロダクトオーナーの見解が試されることはありますが、事故を避けるには手順を守る方が安全です。
- 本番公開テーマへ出す前に、必ずステージングテーマで基本動作を確認します。
タスク管理
道具は多数あり、私はTrelloを便利に使っています。ほかも調べられますが、大半は同じ役割です。
各タスクはサイトのロードマップとなる整理済みバックログから始めます。一貫性と情報の透明性が重要で、少なくとも次を含めます。
- タスク名
- 説明
- 完了に必要な条件を示す指標
- 期限
- 依存または関連タスク
- 見積時間
最後に
内製か外注かは難しい選択です。日常の中核案件は社内、高度な技能を要する機能は外注する中間案を選ぶ販売者もいます。
過剰なリスクなしで広い人材を活用し、固定費も減らせます。ただし適切な外部パートナー選びが重要です。
普遍的な答えはありません。他社でうまくいっても自社に合うとは限らないため、必要なものと資源の評価から始めましょう。





