TypeScript開発の発注/外注/依頼/委託方法について

TypeScriptはJavaScriptに静的型付けを加えた言語です。外注は、発注前の準備と技術要件の整理で成否が分かれ、外注失敗の約60%は発注側の準備不足ともいわれます。

発注は、外注か内製かを判断したうえで、要件を整理し、発注先を選んで契約し、進行を管理する順に進みます。

▼全体ガイドの記事
・TypeScript開発の完全ガイド

TypeScript開発を外注する前の判断材料

TypeScript開発を外注する前に確認する社内スキル、増員、コア技術、情報管理の4項目を示す図
案件の性質と社内体制を並べると、外注範囲を考えやすくなります。

TypeScript開発では、外注に出す前に自社の体制と案件の性質を確認します。外注と内製では長所が異なるため、発注先の特徴まで比べてから進め方を決めます。

外注が適しているケースと内製が向いているケース

外注か内製かは、案件の条件ごとに次の3点で判断できます。

  • 社内スキル:経験者が社内にどれだけいるか。
  • 外部チーム:短期の増員は外注に任せ、コア技術は内製で守る。
  • 情報管理:機密情報を扱う範囲を、契約前に決めておきます。

外注は、社内にTypeScriptの経験者が少ない場合に向いています。ジェネリクスや型設計には専門性が要るため、外注先を選ぶときはReactやNext.jsの経験も確認しておきます。

新規プロダクトや、TypeScriptへのマイグレーションでは、外部チームを期間限定で組む形が取れます。

一方で、コア技術や厳格なセキュリティを自社で守るなら内製が適しています。さらに、仕様変更が多い案件も内製が合います。

発注先の種類と特徴

発注先を比べるときは、次の3点を同じ条件で確認します。

  • 案件規模:案件の規模に合う体制かどうか。
  • 技術適合性:案件で必要な技術の実績があるか。
  • 連携リスク:時差やレビュー体制まで含めた連携のしやすさ。

発注先は、SIer、Web系開発会社、フリーランスエンジニア、オフショア開発会社の4種類です。

Web系開発会社は、React、Next.js、Vue.js、Nuxt.jsに慣れており、月額150万〜400万円程度が目安です。

フリーランスは単機能の案件に向きます。また、SIerは基幹連携に強く、オフショアはベトナム、フィリピン、インドなどを活用する形です。

発注先を選ぶ際は、コードレビューと型設計を重視しているかに加えて、ブリッジSEの質も確認します。

ポイント

社内に経験者が少ない案件は外注、コア技術や厳格なセキュリティを守る案件や仕様変更の多い案件は内製が合います。発注先は、案件規模、技術適合性、連携リスクの3点で比べます。

TypeScript開発の発注・外注の具体的な手順

TypeScript開発の発注を要件整理、RFP作成、候補選定、正式見積もり依頼の順に示す図
候補を広げたあと、正式見積もりを依頼する段階へ進みます。

発注は、要件整理、RFP作成、発注先比較の順に進みます。各段階で判断材料をそろえておくと、発注側と開発会社の認識がずれにくくなります。

要件整理とRFP作成

RFPでは、次の3領域を一つの文書にまとめます。

  • 背景と目的:目的と利用者をそろえる。
  • 技術要件:APIやstrict modeなどの条件の明記。
  • 運用条件:予算、日程、保守の範囲を示す。

RFPはRequest for Proposal、つまり提案依頼書です。そこには、SPAやSSRなどの構成の別をSSGやフルスタックも含めて明記し、ブラウザや端末、機能の優先度も記載します。

要件の整理では、MoSCoWやワイヤーフレーム、Figmaも扱います。フレームワークは、React/Next.js、Vue.js/Nuxt.js、Angularを対象に含めます。

サーバー側は、Node.js + Express/NestJSと既存APIを整理します。認証と決済、CMSやSEOも、あわせて洗い出します。

型の設定は、TypeScript strictとstrict modeを明記します。ホスティング先は、AWSやGCP、Vercel、Cloudflareなどで示します。

Next.jsのSSR/SSGや社内管理画面のReact + Viteのように、選定理由も添えます。

発注先の選定と比較

提案を比べるときは、次の3点を具体的に聞きます。

  • 実績:TypeScriptでの開発実績の中身。
  • 提案内容:テストとCI/CDの提案の違い。
  • 見積内訳:人数と工数の根拠が示されているか。

RFPを出したあとは、候補を5〜8社に広げ、正式見積もりを3〜4社に依頼します。

候補は、Googleや発注ナビ、比較ビズから探せます。PRONIアイミツやGitHubのOSSも、候補を探す場になります。

状態管理については、Redux ToolkitやZustand、TanStack Query、Jotaiの方針を聞きます。

API設計は、REST vs GraphQLやOpenAPI/Swaggerを確認します。テストは、JestやVitest、PlaywrightやCypressの扱いを見ます。

CI/CDは、GitHub ActionsとGitLab CIの違いを見ます。PM体制も、提案の段階で比べておきます。

ポイント

背景と目的、技術要件、運用条件をRFPにまとめ、提案は実績、提案内容、見積内訳で比べます。正式見積もりは3〜4社に依頼します。

TypeScript開発の契約時に押さえるべきポイント

契約では、技術要件と成果物の範囲を先に文書にしておきます。請負契約と準委任契約のどちらを選ぶかは、要件がどこまで確定しているかで決まります。

契約形態の選び方

契約前には、次の3点を文書でそろえておきます。

  • 成果物:納品物と完了条件の範囲。
  • 変更管理:変更が出たときの合意の取り方。
  • 予算管理:工数の上限と追加費用の扱い。

契約形態は、請負契約と準委任契約の2種類です。

請負契約は成果物が明確な案件に向いており、変更が出たときは追加の見積もりが必要です。一方で、準委任契約は工数に応じた契約で、要件が変わる案件やアジャイル開発に向いています。

また、要件定義を準委任、実装を請負にするハイブリッド型も選べます。

契約書で確認すべき重要条項

契約書では、次の3領域を条項に落とし込みます。

  • 権利帰属:ソースコードの権利者の明記。
  • 品質基準:ブラウザと型チェックの基準の設定。
  • 管理範囲:リポジトリと更新対応の担当の決定。

契約書には、知的財産権と技術要件を記載します。Git管理と検収条件も、同じ契約書に盛り込みます。

品質の基準は、tsconfig.jsonのstrictやany型のほか、ESLintとPrettierを使って決められます。コードカバレッジは80%以上のように、合否を判定できる条件にしておきます。

GitHubやGitLabのリポジトリ、Git FlowやGitHub Flowの運用、Node.jsのLTS更新も、対象を決めて管理します。

対応ブラウザは、ChromeやSafari、Firefox、Edgeが対象です。性能は、Lighthouseの基準でも確かめます。

ポイント

成果物が明確な案件は請負契約、要件が変わる案件やアジャイル開発は準委任契約が合います。どちらを選んでも、成果物、変更管理、予算管理は契約前に文書でそろえておきます。

TypeScript開発の発注後のプロジェクト管理

TypeScript開発の品質管理を自動検査、タスク基準、レビュー条件に分け、タスクの区切りを示す図
自動化、作業単位、承認条件を別々に整える構成です。

契約後は、ビジネス要件と技術判断を共有する体制を作ります。早い段階で決めておけば、後の行き違いが減ります。

コミュニケーション体制の構築

連絡体制は、次の3点を開始前に決めておきます。

  • 定例会:会議の頻度と議題。
  • 共有環境:画面を見るための環境。
  • 意思決定:技術判断を担う責任者。

アジャイル開発では、1〜2週間ごとにデモを確認します。

VercelのプレビューデプロイやStorybookを使うと、画面を共有できます。

SlackやMicrosoft Teamsは日常の連絡に使い、API設計の話はGitHub Issueに残します。

CTOやテックリードが週次でレビューすれば、設計の意図がずれていないかを確かめられます。

進捗管理と品質保証の方法

品質管理は、次の3段階を日常の運用に組み込みます。

  • 自動検査:CIでの型チェックと書式の確認。
  • タスク基準:完了条件をそろえる。
  • レビュー条件:承認者数とAPI仕様の確認方法。

進捗と品質は、CI/CDとタスク運用を組み合わせて見ます。GitHub ActionsやGitLab CIでは、tsc –noEmit、ESLint、Prettierを自動で実行します。

テストは、Jest/VitestとPlaywright/Cypressのe2eテストも確認します。

タスクは1〜3日単位に区切り、JiraやLinear、Asana、GitHub Projectsなどで管理します。

ステータスは、Todo → In Progress → In Review → Doneの流れにそろえます。承認方法は、1名承認と2名承認を使い分けます。

any型、ジェネリクス、APIをレビューしたうえで、OpenAPIやSwagger、openapi-typescriptで型を管理します。

ポイント

定例会、共有環境、意思決定は開始前に決め、品質はCIによる自動検査、タスク基準、レビュー条件で管理します。決めることを先に置くほど、途中の手戻りを減らせます。

まとめ

TypeScript開発の発注は、外注の適否を見てから、候補を比べ、契約し、進行を管理する順で考えます。

見積もりは最低3社から集め、React/Next.js、Vue.js/Nuxt.js、CI/CDの実績を比べます。

RFPには、strictモードとフレームワークの方針を書きます。

契約後は、UI/UXとUIを確認します。運用では、Issue、ESLint/Prettier、Vercelを使います。

▼全体ガイドの記事
・TypeScript開発の完全ガイド

会社紹介

株式会社riplaでは、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを、構想策定・要件定義から開発・改善まで一気通貫で支援。事業会社でIT・DXを経験したプロフェッショナルによる高い要件定義力・システム設計力を活かし、事業成果の最大化に伴走します。

また、当社独自の開発テンプレート「Boxシリーズ」による標準機能の高速開発と、AI駆動開発の独自フレームワーク「GoDD」による独自機能のAI実装を組み合わせることで、低コスト・短期間で開発を実現いたします。

もし、システム開発やプロダクト開発に関するご要望がございましたら、お気軽にお問い合わせください。

・サービス概要資料のURLはこちら >>>
・お問合せページのURLはこちら >>>
・お役立ち資料のURLはこちら >>>

執筆者プロフィール
張田谷凌央
張田谷凌央

株式会社ripla 代表取締役CEOとして、システムパッケージ活用、システム開発、データ分析、生成AI活用、SaaS開発、アプリ開発、EC構築など、幅広い領域で企業のDX推進と事業成長を支援している。事業会社でIT・DXを経験したプロフェッショナルが集う株式会社riplaにおいて、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを構想策定・要件定義から開発・改善まで一気通貫で支援し、単なるシステム納品にとどまらず、クライアントと同じ目線で事業成果の最大化に向けた伴走支援を行う。早稲田大学卒業後、ラクスル株式会社、LINEヤフー株式会社にて事業開発やDX推進などに従事した後、株式会社riplaを創業。