はじめに:「このままSESを続けていいのか」という違和感
客先常駐、多重下請け、契約更新のたびに感じる将来への不安。「SES つらい」と検索してこの記事にたどり着いた人も多いはずだ。ただ、この記事はSESという働き方そのものを否定する記事ではない。問題は雇用形態そのものではなく、「スキルの主導権を自分が握れているかどうか」にある。
本記事では、SES から フリーランスへの移行を検討するエンジニア向けに、AIツールを武器にした技術スタックの作り方、収益化の具体例、そして実践的な移行ステップを、実際に手を動かしながら解説する。SESの話題はこの導入部だけに留め、残りはすべて「AIをどう使って独立の武器にするか」という実務ネタに振り切っていく。
SES vs フリーランス 徹底比較
まず、働き方としての構造的な違いを整理しておく。単価や年収の具体的な数字は契約条件によって大きく変わるため、ここでは一般的に語られる特性の比較に留める。
| 項目 | SES(客先常駐) | フリーランス |
|---|---|---|
| 契約形態 | 準委任契約(自社雇用) | 業務委託契約(個人事業主 or 法人) |
| 単価交渉 | 会社経由、本人は関与しにくい | 自分で直接交渉できる |
| 技術選定権 | 現場のルールに従う | 案件選定時点で自分で選べる |
| 収入の天井 | 給与テーブルに依存 | 稼働量とスキル次第で変動幅が大きい |
| 社会保険 | 会社が半分負担 | 全額自己負担(国保・国民年金 or 法人化して調整) |
| 確定申告 | 不要(年末調整で完結) | 必須(白色 or 青色申告) |
| 収入の波 | 比較的安定 | 案件が切れると即ゼロになりうる |
| スキルの証明方法 | 稼働実績(社内評価が中心) | ポートフォリオ・実績・紹介ベース |
| 案件の掛け持ち | 基本的に不可 | 複数案件の並行受注が可能 |
この表からわかる通り、フリーランスへの移行で一番のハードルになるのは「技術選定権」と「単価交渉」を自分でやる必要がある点だ。これはつまり、自分の市場価値をデータで語れる状態を、独立前に作っておく必要があるということでもある。
ステップ1: AIツールの環境構築から始める
独立準備の第一歩は、開発生産性を底上げするAIツールの導入だ。ここではClaude Codeを例に、実際のセットアップ手順を示す。
インストールと初期設定
# Claude Codeのインストール(npm経由)
npm install -g @anthropic-ai/claude-code
# バージョン確認
claude --version
# 認証
claude auth login
プロジェクトルートに CLAUDE.md を置いておくと、案件ごとのコーディング規約やディレクトリ構成をAIに毎回説明せずに済むようになる。
# CLAUDE.md
## この案件のルール
- TypeScript strict モード必須
- テストは Vitest、カバレッジ80%以上
- コミットメッセージは Conventional Commits 形式
- DBマイグレーションは必ずレビュー後にapply
- 本番環境への直接アクセスは禁止、必ずステージング経由
これだけで、複数の案件を並行して受けるフリーランスにとって「案件を切り替えるたびにコンテキストを説明し直す」という無駄が消える。
複数案件を並行運用するためのディレクトリ設計
フリーランスは同時に2〜3案件を掛け持ちすることも珍しくない。案件ごとにセッションとコンテキストを分離しておくと、事故のリスクが下がる。
~/freelance/
├── client-a/
│ ├── CLAUDE.md
│ └── .claude/settings.json
├── client-b/
│ ├── CLAUDE.md
│ └── .claude/settings.json
└── client-c/
├── CLAUDE.md
└── .claude/settings.json
案件ごとに .claude/settings.json の権限設定を変えておけば、「A社の本番DBに誤ってアクセスする」といった事故も防ぎやすくなる。
{
"permissions": {
"allow": ["Bash(npm test:*)", "Bash(git status)", "Read"],
"deny": ["Bash(rm -rf *)", "Bash(psql --host=prod*)"]
}
}
ステップ2: 自分の市場価値をデータ分析する
SES から フリーランスへの移行で失敗しやすいのは、根拠のない単価設定だ。他人の市場調査データに頼るのではなく、自分で集められるデータを分析して意思決定することが重要になる。
自分の稼働ログをCSVで記録し、pandasで分析する
案件ごとの工数・単価・技術スタックを自分でログしておくと、次の案件交渉の材料になる。
import pandas as pd
# 自分の稼働実績を記録したCSV(自作)
df = pd.read_csv("my_work_log.csv")
# 列例: date, client, tech_stack, hours, rate
# 技術スタック別の実質時給を算出
summary = (
df.groupby("tech_stack")
.agg(total_hours=("hours", "sum"), total_income=("rate", "sum"))
)
summary["hourly_rate"] = summary["total_income"] / summary["total_hours"]
print(summary.sort_values("hourly_rate", ascending=False))
このデータ分析を3ヶ月〜半年続けると、「どの技術スタックが自分にとって最も時給効率が良いか」が定量的に見えてくる。これは他人の市場調査データより、自分の実績データの方が単価交渉の材料として強い。
求人票の傾向を自分で追ってみる
案件情報サイトが公式にRSSやAPIを公開している場合は、それを使ってスキル需要のトレンドを自分で継続的に追うこともできる。公式のデータソースがないサイトについては、必ず利用規約を確認した上で対応すること。
import feedparser
from collections import Counter
feed = feedparser.parse("https://example-job-feed.com/rss")
titles = [entry.title for entry in feed.entries]
keywords = ["Python", "React", "AWS", "TypeScript", "Claude", "LLM", "Terraform"]
counter = Counter()
for title in titles:
for k in keywords:
if k.lower() in title.lower():
counter[k] += 1
print(counter.most_common())
こうした自前のデータ分析基盤を持っておくと、営業や単価交渉のたびに「なんとなく」で判断せずに済むようになる。
ステップ3: 収益化の具体例
AIツールを使った収益化は、大きく分けて3パターンに整理できる。
- 開発の高速化による受注単価の維持: Claude Codeでコーディング速度を上げ、同じ工数でより多くの案件をこなす
- AI活用コンサル/自動化案件の受注: SESで培った業務知識とAIツールの実装力を掛け合わせ、業務自動化案件を単独で受ける
- ストック型コンテンツ/プロダクト: 自分の知見をnoteやプロダクトにして、稼働時間に依存しない収入源を作る
例えば3つ目について、簡単な請求書生成ツールであればClaude Code上で数十分で組み立てることもできる。
// invoice-generator.js (簡易版)
function generateInvoice({ client, items, taxRate = 0.10 }) {
const subtotal = items.reduce((sum, item) => sum + item.price * item.qty, 0);
const tax = Math.round(subtotal * taxRate);
return {
client,
items,
subtotal,
tax,
total: subtotal + tax,
issuedAt: new Date().toISOString().slice(0, 10),
};
}
const invoice = generateInvoice({
client: "株式会社Example",
items: [{ name: "システム開発支援", price: 500000, qty: 1 }],
});
console.log(invoice);
こうした「自分の業務を自動化するツールを自作できる」こと自体が、フリーランスとしての差別化要因になる。案件先に対しても「工数見積もりの精度が高い」「請求・進捗管理が自動化されている」といった信頼材料として提示できる。
AI/データ分析スキルロードマップ(未経験から独立まで)
SESで実務経験はあるが、AI活用やデータ分析は未経験というエンジニア向けのロードマップを示す。
| 段階 | やること | 目安期間 |
|---|---|---|
| Step0 | Claude Code / ChatGPTを日常業務に組み込む | 1〜2週間 |
| Step1 | 自分の稼働ログをCSV化し、pandasで集計する習慣をつける | 1ヶ月 |
| Step2 | 小規模な自動化スクリプト(請求書、日報など)を自作する | 1〜2ヶ月 |
| Step3 | AIエージェント/API連携(Claude API等)を使った簡易プロダクトを作る | 2〜3ヶ月 |
| Step4 | 副業として小さい案件を1件受注してみる | 3〜6ヶ月 |
| Step5 | 複数案件と収入源を持った状態でSES契約を見直す | 6ヶ月〜 |
重要なのは、SESを辞めてからスキルを身につけるのではなく、在籍中に土台を作っておくことだ。特にStep1〜Step2は業務時間外の数時間でも進められるため、最初のハードルとして取り組みやすい。
独立で陥りがちな失敗と対処法
AI駆動で独立準備をする際、よくある失敗パターンも共有しておく。
- 失敗1: AIに丸投げして中身を理解しないままリリースする → 対処: Claude Codeが生成したコードは必ず自分でレビューし、なぜその実装になったかを説明できる状態にしておく
- 失敗2: 単価をSES時代の給与換算でそのまま決めてしまう → 対処: 前述のデータ分析で算出した実質時給をベースに、経費・保険料・稼働できない期間も織り込んで単価を決める
- 失敗3: 案件を1社に依存してしまう → 対処: 常に2案件以上のパイプラインを持つ、または前述のストック型収入を並行して作っておく
- 失敗4: 契約書・請求周りをすべて自己流で済ませる → 対処: 業務委託契約のテンプレートを税理士や専門家に一度チェックしてもらう
-
失敗5: AIツールの権限設定を怠り、事故を起こす → 対処: 前述の
.claude/settings.jsonのように、案件ごとにアクセス権限を明示的に分離しておく
保存版:SESからフリーランス移行チェックリスト
最後に、ここまでの内容を実践するためのチェックリストをまとめておく。ブックマークや保存をしておき、移行準備の進捗確認に使ってほしい。
- Claude CodeなどのAIツールを日常業務に導入した
-
CLAUDE.mdで案件ごとのルールを明文化した - 自分の稼働ログ(CSV)を記録し始めた
- 技術スタック別の実質時給を算出した
- 小規模な自動化ツールを最低1つ自作した
- 副業案件を1件以上受注した経験がある
- 業務委託契約書のひな形を確認した
- 案件が途切れた場合の生活防衛資金(最低3ヶ月分)を確保した
- 複数の収入源(案件+ストック型)の見通しを立てた
- 案件ごとにAIツールの権限設定を分離した
このチェックリストを全て埋められた状態になれば、「SES つらい」という感情論ではなく、データと準備に裏付けられた意思決定として独立を選べるようになっているはずだ。
まとめ
SESからフリーランスへの移行は、勢いや不満だけで決めるものではない。AIツールを使って開発生産性を上げ、自分の稼働データを分析し、収益源を複数持つ準備を、在籍中から少しずつ進めておくことが、失敗しない徹底比較と意思決定の土台になる。今日紹介したステップとチェックリストを、まずは1つだけでも今週中に試してみてほしい。
関連記事
- SES1年目が知るべきAI経営OS実践術|年収を上げるデータ分析視点
- Claude Codeを1年運用して分かった実務Tips5選とAI時代のキャリア戦略
- 【2026年最新】AIコーディングツール徹底比較|Claude Code・Copilot・Cursorどれを使う?
AI駆動塾 — AIを使ったスモビジの作り方を学ぶ
Claude Code、OpenClaw、AI経営OSの実践ノウハウを毎週公開中。
月額¥4,980で過去記事すべて読み放題。
💼 フリーランスエンジニアの案件をお探しですか?
SES解体新書 フリーランスDBでは、高単価案件を多数掲載中です。
- ✅ マージン率公開で透明な取引
- ✅ AI/クラウド/Web系の厳選案件
- ✅ 専任コーディネーターが単価交渉をサポート