<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>現場IT  |  takeHo（たけほ）のへなちょこ台帳</title>
	<atom:link href="https://blog.takeho.com/category/fieldit/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.takeho.com</link>
	<description>いわゆる自由帳ってところです。</description>
	<lastBuildDate>Wed, 30 Sep 2026 02:18:09 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6</generator>

<image>
	<url>https://blog.takeho.com/wp-content/uploads/2024/08/icon-150x150.png</url>
	<title>現場IT  |  takeHo（たけほ）のへなちょこ台帳</title>
	<link>https://blog.takeho.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>「修正したら動かない」を卒業するGit入門―Linuxでの導入・使い方とGitHub・GitLab・Bitbucketの違い</title>
		<link>https://blog.takeho.com/h7g01v70k3ryhqt5pqqvj4ebwu0o0tn4/</link>
					<comments>https://blog.takeho.com/h7g01v70k3ryhqt5pqqvj4ebwu0o0tn4/#respond</comments>
		
		<dc:creator><![CDATA[たけほ]]></dc:creator>
		<pubDate>Wed, 30 Sep 2026 05:10:00 +0000</pubDate>
				<category><![CDATA[現場IT]]></category>
		<category><![CDATA[Bitbucket]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[GitLab]]></category>
		<guid isPermaLink="false">https://blog.takeho.com/?p=2016</guid>

					<description><![CDATA[「ちょっと直しただけなのに、サイトが動かなくなった」 「修正前のファイルは、どこに保存したっけ？」 「最終版、最終版2、本当の最終版……結局どれが最新？」 こんな経験はありませんか。ファイルをコピーして残す方法でも、小さ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>「ちょっと直しただけなのに、サイトが動かなくなった」</p>



<p>「修正前のファイルは、どこに保存したっけ？」</p>



<p>「最終版、最終版2、本当の最終版……結局どれが最新？」</p>



<p>こんな経験はありませんか。ファイルをコピーして残す方法でも、小さな作業なら対応できます。しかし、修正が増え、担当者が増えると、いつ何を変えたのかを追いかけるだけで時間がかかります。</p>



<p>そこで役立つのが、バージョン管理ツールのGit（ギット）です。</p>



<p>Gitを使うと、ファイルの変更を記録し、修正前後の違いを確認し、必要に応じて過去の内容を取り戻せます。一人でPHPを書いている場合にも、Linuxサーバーの設定や運用スクリプトを管理する場合にも使えます。</p>



<p>この記事では、Gitの概要からLinuxでの導入、日常的な操作、GitHub・GitLab・Bitbucketとの連携まで、手を動かしながら解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2"><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Gitとは？「変更の履歴」を管理する道具</a></li><li><a href="#toc2" tabindex="0">なぜGitが必要なのか？現場で起きる4つの事例</a><ol><li><a href="#toc3" tabindex="0">事例1：PHPを修正したらログインできなくなった</a></li><li><a href="#toc4" tabindex="0">事例2：二人が同じファイルを編集した</a></li><li><a href="#toc5" tabindex="0">事例3：担当者が変わり、変更の理由が分からない</a></li><li><a href="#toc6" tabindex="0">事例4：AIに修正を頼んだら、想定以上に書き換わった</a></li></ol></li><li><a href="#toc7" tabindex="0">GitとGitHubは別のもの</a></li><li><a href="#toc8" tabindex="0">最初に覚える言葉は、この7つ</a></li><li><a href="#toc9" tabindex="0">LinuxにGitをインストールする</a><ol><li><a href="#toc10" tabindex="0">Rocky Linux・AlmaLinux・RHEL系</a></li><li><a href="#toc11" tabindex="0">Ubuntu・Debian系</a></li><li><a href="#toc12" tabindex="0">インストールを確認する</a></li></ol></li><li><a href="#toc13" tabindex="0">名前とメールアドレスを設定する</a></li><li><a href="#toc14" tabindex="0">練習用のリポジトリを作る</a><ol><li><a href="#toc15" tabindex="0">HTMLファイルを作成する</a></li></ol></li><li><a href="#toc16" tabindex="0">管理しないファイルを.gitignoreで指定する</a></li><li><a href="#toc17" tabindex="0">最初のコミットをする</a></li><li><a href="#toc18" tabindex="0">ファイルを変更し、差分と履歴を確認する</a><ol><li><a href="#toc19" tabindex="0">git diffとgit diff &#8211;cachedの違い</a></li></ol></li><li><a href="#toc20" tabindex="0">「戻す」は、状況に応じて使い分ける</a><ol><li><a href="#toc21" tabindex="0">まだステージングしていない変更を取り消す</a></li><li><a href="#toc22" tabindex="0">git addの選択だけを取り消す</a></li><li><a href="#toc23" tabindex="0">コミット済みの変更を取り消す</a></li></ol></li><li><a href="#toc24" tabindex="0">ブランチで、作業の流れを分ける</a></li><li><a href="#toc25" tabindex="0">GitHub・GitLab・Bitbucketの違いを詳しく知る</a><ol><li><a href="#toc26" tabindex="0">GitHub：コード共有とレビュー、自動化を組み合わせる</a></li><li><a href="#toc27" tabindex="0">GitLab：コード管理からテスト・公開までをまとめる</a></li><li><a href="#toc28" tabindex="0">Bitbucket：Jiraで管理する仕事とコード変更をつなげる</a></li><li><a href="#toc29" tabindex="0">3サービスを比較する</a></li></ol></li><li><a href="#toc30" tabindex="0">LinuxからSSHで接続する準備</a><ol><li><a href="#toc31" tabindex="0">公開鍵と秘密鍵とは？</a></li><li><a href="#toc32" tabindex="0">既存の鍵を確認してから作成する</a></li></ol></li><li><a href="#toc33" tabindex="0">GitHubへ初めて送る</a><ol><li><a href="#toc34" tabindex="0">手順1：公開鍵を登録する</a></li><li><a href="#toc35" tabindex="0">手順2：接続を確認する</a></li><li><a href="#toc36" tabindex="0">手順3：空のリポジトリを作る</a></li><li><a href="#toc37" tabindex="0">手順4：共有先を登録し、pushする</a></li></ol></li><li><a href="#toc38" tabindex="0">GitLabとBitbucketで使う場合</a><ol><li><a href="#toc39" tabindex="0">GitLab.comの場合</a></li><li><a href="#toc40" tabindex="0">Bitbucket Cloudの場合</a></li><li><a href="#toc41" tabindex="0">すでにGitHubをoriginとして登録した場合</a></li></ol></li><li><a href="#toc42" tabindex="0">別のLinux環境で続きを作業する</a></li><li><a href="#toc43" tabindex="0">チームで使う基本の流れ</a></li><li><a href="#toc44" tabindex="0">競合が起きたらどうする？</a></li><li><a href="#toc45" tabindex="0">Linuxの現場で管理すると便利なもの</a></li><li><a href="#toc46" tabindex="0">導入時に押さえておきたいこと</a><ol><li><a href="#toc47" tabindex="0">データベースやアップロード画像は別にバックアップする</a></li><li><a href="#toc48" tabindex="0">.gitをWebから読める状態にしない</a></li><li><a href="#toc49" tabindex="0">変更は「説明できる単位」で記録する</a></li><li><a href="#toc50" tabindex="0">pushに失敗したら、まず原因を確認する</a></li></ol></li><li><a href="#toc51" tabindex="0">よく使うコマンド早見表</a></li><li><a href="#toc52" tabindex="0">最初は、一つのフォルダーから始めればよい</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Gitとは？「変更の履歴」を管理する道具</span></h2>



<p>Gitは、ファイルがどのように変わったかを記録する、分散型のバージョン管理ツールです。「分散型」とは、手元のPCやサーバーにも履歴を持てる仕組みのことです。</p>



<p>例えば、問い合わせフォームのプログラムを修正したとします。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>記録した変更</th><th>後から分かること</th></tr></thead><tbody><tr><td>問い合わせフォームを作成</td><td>最初の実装内容</td></tr><tr><td>メールアドレスの入力チェックを追加</td><td>どのチェックを追加したか</td></tr><tr><td>送信ボタンの二重押しを防止</td><td>二重送信対策の内容</td></tr><tr><td>メール送信エラーを修正</td><td>エラーへの対応内容</td></tr></tbody></table></figure>



<p>Gitには、変更した内容とともに、作成者として設定した名前・メールアドレスや日時、説明を残せます。ただし、作成者情報は設定値なので、それだけで本人確認ができるわけではありません。</p>



<p>大切なのは、<strong>「現在のファイル」だけでなく、「そこに至る変更の経緯」を残せること</strong>です。</p>



<p>Gitは導入しただけで変更を自動記録するわけではありません。後で説明する「コミット」という操作で、記録する区切りを自分で決めます。</p>



<h2 class="wp-block-heading"><span id="toc2">なぜGitが必要なのか？現場で起きる4つの事例</span></h2>



<p>以下は、Gitの使いどころを説明するための想定事例です。</p>



<h3 class="wp-block-heading"><span id="toc3">事例1：PHPを修正したらログインできなくなった</span></h3>



<p>ログイン画面の見た目を変更するつもりでPHPを修正したところ、認証まで動かなくなりました。</p>



<p>Gitを使っていないと、「どのファイルの、どの行を変更したか」を思い出すところから始まります。バックアップがあっても、そこから先に行った正常な修正まで消してしまうかもしれません。</p>



<p>Gitで変更を記録していれば、修正前後の差分を確認できます。問題の変更を見つけ、必要な範囲で取り消すこともできます。</p>



<p>ただし、Gitは原因を自動診断するツールではありません。差分や履歴を調査の材料として使い、動作確認と組み合わせます。</p>



<h3 class="wp-block-heading"><span id="toc4">事例2：二人が同じファイルを編集した</span></h3>



<p>Aさんが問い合わせフォームを修正し、Bさんが同じファイルに別の項目を追加しました。FTPで順番にアップロードすると、後からアップロードした内容で前の変更を上書きしてしまうことがあります。</p>



<p>Gitでは、それぞれの変更を取り込んでまとめる「マージ」ができます。同じ箇所を変更して自動で判断できない場合には、「競合」として人の確認を求めます。</p>



<p>自動でマージできても、組み合わせた結果が正しく動くとは限りません。変更内容のレビューとテストは必要です。</p>



<h3 class="wp-block-heading"><span id="toc5">事例3：担当者が変わり、変更の理由が分からない</span></h3>



<p>Linuxの運用スクリプトに、用途が分からない条件分岐がありました。削除してよいか判断できず、前任者への確認もできません。</p>



<p>履歴に「バックアップ先の容量不足時は処理を止める」と記録してあれば、その変更の目的を理解しやすくなります。</p>



<p><strong>Gitの価値は、戻せることだけでなく、次の担当者に理由を残せることにもあります。</strong></p>



<h3 class="wp-block-heading"><span id="toc6">事例4：AIに修正を頼んだら、想定以上に書き換わった</span></h3>



<p>AIに「このエラーだけ直して」と頼んだところ、別の処理まで書き換わることがあります。</p>



<p>修正前にコミットしておけば、AIによる変更を差分で確認できます。必要な変更かどうかを判断してから、次のコミットに残せます。</p>



<p>AIがコードを書くようになっても、「どこを変えたのか」を確認する仕事は残ります。Gitは、その確認を支える道具です。</p>



<h2 class="wp-block-heading"><span id="toc7">GitとGitHubは別のもの</span></h2>



<p>まず、混同しやすい言葉を整理しましょう。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>名前</th><th>役割</th></tr></thead><tbody><tr><td>Git</td><td>ファイルの変更履歴を管理するツール</td></tr><tr><td>GitHub</td><td>Gitで管理したコードを保存・共有し、レビューや自動処理を行うサービス</td></tr><tr><td>GitLab</td><td>Gitの共有に加え、開発・テスト・公開などを管理するサービス／製品</td></tr><tr><td>Bitbucket</td><td>Gitの共有やレビューを行い、Jiraなどと連携できるAtlassianのサービス／製品</td></tr></tbody></table></figure>



<p><strong>Gitは手元で使う道具、GitHubなどはチームで共有する場所と機能</strong>と考えると分かりやすくなります。</p>



<p>Gitだけなら、アカウントを作らずに使い始められます。GitHubなどへの通信ができない状況でも、手元で履歴を確認したり、コミットしたりできます。</p>



<p>この記事では、連携先としてGitHub.com、GitLab.com、Bitbucket Cloudを扱います。</p>



<h2 class="wp-block-heading"><span id="toc8">最初に覚える言葉は、この7つ</span></h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>用語</th><th>意味</th></tr></thead><tbody><tr><td>リポジトリ</td><td>ファイルと変更履歴を管理する場所。プロジェクトの保管庫</td></tr><tr><td>作業ツリー</td><td>現在編集しているファイルが置かれている場所</td></tr><tr><td>ステージング</td><td>次の記録に含める変更を選ぶこと</td></tr><tr><td>コミット</td><td>選んだ変更を、説明付きで履歴に記録すること</td></tr><tr><td>ブランチ</td><td>作業の流れを分ける仕組み。新機能や修正を別の流れで進める</td></tr><tr><td>マージ</td><td>別のブランチで進めた変更を取り込むこと</td></tr><tr><td>リモート</td><td>GitHubなどにある、共有先のリポジトリ</td></tr></tbody></table></figure>



<p>基本操作は、<strong>編集 → 記録する変更を選ぶ → 内容を確認 → コミット</strong>です。</p>



<p>GitHubなどへ共有するときは、その後に「push」を行います。コミットしただけでは、共有先には送られません。</p>



<h2 class="wp-block-heading"><span id="toc9">LinuxにGitをインストールする</span></h2>



<p>ここからは、ログイン中の一般ユーザーが所有するホームディレクトリで練習します。本番サイトのファイルを直接変更する必要はありません。</p>



<p>Git操作は通常のユーザーで行い、パッケージのインストール時だけ<code>sudo</code>を使います。</p>



<h3 class="wp-block-heading"><span id="toc10">Rocky Linux・AlmaLinux・RHEL系</span></h3>



<pre class="wp-block-code"><code>sudo dnf install git openssh-clients</code></pre>



<p><code>git</code>はバージョン管理ツール、<code>openssh-clients</code>は後半で使うSSH接続や鍵作成のためのパッケージです。</p>



<h3 class="wp-block-heading"><span id="toc11">Ubuntu・Debian系</span></h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install git openssh-client</code></pre>



<p><code>apt update</code>でパッケージ一覧を更新し、GitとSSHクライアントをインストールします。</p>



<h3 class="wp-block-heading"><span id="toc12">インストールを確認する</span></h3>



<pre class="wp-block-code"><code>git --version</code></pre>



<p>Gitのバージョンが表示されれば、インストールを確認できます。バージョン番号はOSや配布パッケージによって異なります。</p>



<p>この記事の<code>git switch</code>と<code>git restore</code>はGit 2.23以降を前提にしています。古い環境では、OSでサポートされる更新方法を確認してください。</p>



<p>参考：<a href="https://git-scm.com/install/linux">Git公式・Linuxへのインストール</a></p>



<h2 class="wp-block-heading"><span id="toc13">名前とメールアドレスを設定する</span></h2>



<p>コミットに記録する情報を設定します。以下の名前とメールアドレスは自分のものに置き換えてください。</p>



<pre class="wp-block-code"><code>git config --global user.name "Taro Yamada"
git config --global user.email "taro@example.com"</code></pre>



<p><code>--global</code>は、現在のLinuxユーザーが使うGitの共通設定にする指定です。他のLinuxユーザーには適用されません。</p>



<p>確認します。</p>



<pre class="wp-block-code"><code>git config --global --get user.name
git config --global --get user.email</code></pre>



<p>これはGitHubなどへのログイン設定ではありません。コミットの作成者情報です。公開するリポジトリでは、このメールアドレスが履歴から見える点にも注意してください。GitHubではアカウントのメール設定で確認できる非公開用アドレスを使う方法もあります。</p>



<p>会社のプロジェクトだけ別の情報にする場合は、そのリポジトリ内で<code>--global</code>を付けずに設定します。</p>



<pre class="wp-block-code"><code>git config user.name "Taro Yamada"
git config user.email "taro@company.example.com"</code></pre>



<h2 class="wp-block-heading"><span id="toc14">練習用のリポジトリを作る</span></h2>



<p>ホームディレクトリに練習用フォルダーを作ります。</p>



<pre class="wp-block-code"><code>mkdir -p ~/git-practice/example-site
cd ~/git-practice/example-site
git init
git branch -M main</code></pre>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>コマンド</th><th>意味</th></tr></thead><tbody><tr><td><code>mkdir -p</code></td><td>必要なフォルダーを作成する</td></tr><tr><td><code>cd</code></td><td>作業するフォルダーへ移動する</td></tr><tr><td><code>git init</code></td><td>そのフォルダーをGitの管理対象にする</td></tr><tr><td><code>git branch -M main</code></td><td>初期ブランチの名前を<code>main</code>にそろえる</td></tr></tbody></table></figure>



<p><code>git init</code>を実行すると、<code>.git</code>という管理用ディレクトリが作られます。この中に履歴などが保存されるため、削除しないようにします。</p>



<h3 class="wp-block-heading"><span id="toc15">HTMLファイルを作成する</span></h3>



<pre class="wp-block-code"><code>cat &gt; index.html &lt;&lt;'EOF'
&lt;!doctype html&gt;
&lt;html lang="ja"&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;title&gt;Git練習サイト&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h1&gt;Gitの練習を始めます&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;
EOF</code></pre>



<p><code>cat &gt; ファイル名</code>は、続く内容をファイルに書き込む操作です。同名のファイルがあると上書きされるので、この練習用フォルダーで実行します。</p>



<p>続けて、プロジェクトの説明を作ります。</p>



<pre class="wp-block-code"><code>cat &gt; README.md &lt;&lt;'EOF'
# Git練習サイト

LinuxでGitの基本操作を学ぶためのサンプルです。
EOF</code></pre>



<p><code>README.md</code>は、目的や使い方を記載するファイルです。GitHubなどでも、プロジェクトの説明として表示できます。</p>



<h2 class="wp-block-heading"><span id="toc16">管理しないファイルを.gitignoreで指定する</span></h2>



<p>すべてのファイルをGitへ入れる必要はありません。パスワードなどが入る環境設定、ログ、一時ファイルなどは、管理対象から除外します。</p>



<pre class="wp-block-code"><code>cat &gt; .gitignore &lt;&lt;'EOF'
.env
.env.*
!.env.example
*.log
*.pem
*.key
/node_modules/
/vendor/
/backups/
EOF</code></pre>



<p>この例では、<code>.env</code>や<code>.env.production</code>を除外し、設定例として使う<code>.env.example</code>は例外にしています。<code>.env.example</code>にも本物のパスワードやAPIキーは入れません。</p>



<p><code>*.pem</code>と<code>*.key</code>は、この入門例で鍵ファイルを誤登録しにくくする指定です。PEM形式には公開証明書もあるため、実際のプロジェクトでは用途に合わせて調整してください。</p>



<p><code>vendor</code>や<code>node_modules</code>を除外する場合でも、依存関係を再現するための<code>composer.lock</code>や<code>package-lock.json</code>などは、プロジェクトの方針に沿って管理します。</p>



<p><strong>.gitignoreは、すでにGitで追跡されているファイルには効きません。</strong> また、秘密情報を一度コミットした後でファイルを削除しても、過去の履歴には残ります。漏えいした鍵やパスワードの無効化・再発行と、履歴への対応が必要になります。</p>



<p>参考：<a href="https://git-scm.com/docs/gitignore">Git公式・gitignore</a></p>



<h2 class="wp-block-heading"><span id="toc17">最初のコミットをする</span></h2>



<p>まず、現在の状態を確認します。</p>



<pre class="wp-block-code"><code>git status</code></pre>



<p>新しく作ったファイルは、まだ追跡されていないファイルとして表示されます。次に、記録するファイルを指定します。</p>



<pre class="wp-block-code"><code>git add index.html README.md .gitignore
git diff --cached</code></pre>



<p><code>git add</code>は、指定したファイルの現在の内容をステージングします。<code>git diff --cached</code>で、コミットに含まれる変更を確認します。</p>



<p>問題がなければ、コミットします。</p>



<pre class="wp-block-code"><code>git commit -m "練習サイトの初期ファイルを追加"
git status</code></pre>



<p><code>-m</code>の後ろは、変更の説明です。「修正」「更新」だけでなく、「何をしたか」を残すと、後から役立ちます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>曖昧な説明</th><th>内容が分かる説明</th></tr></thead><tbody><tr><td>修正</td><td>問い合わせフォームにメールアドレス検証を追加</td></tr><tr><td>更新</td><td>バックアップ失敗時の通知処理を追加</td></tr><tr><td>対応</td><td>ログイン時の空欄入力で発生するエラーを修正</td></tr></tbody></table></figure>



<p>ここまでで、手元に最初の履歴ができました。まだGitHubなどには送っていません。</p>



<p>参考：<a href="https://git-scm.com/docs/git-commit">Git公式・git commit</a></p>



<h2 class="wp-block-heading"><span id="toc18">ファイルを変更し、差分と履歴を確認する</span></h2>



<p>見出しを書き換えてみます。</p>



<pre class="wp-block-code"><code>sed -i 's/Gitの練習を始めます/Gitで変更履歴を管理します/' index.html
git diff</code></pre>



<p><code>sed -i</code>は、指定した文字列をファイル内で置き換えます。ここではLinuxの<code>sed</code>を使っています。</p>



<p><code>git diff</code>では、通常、削除された行が<code>-</code>、追加された行が<code>+</code>で示されます。同じ行を書き換えた場合も、変更前の行と変更後の行として表示されます。</p>



<p>確認して記録します。</p>



<pre class="wp-block-code"><code>git add index.html
git diff --cached
git commit -m "トップページの見出しを変更"
git log --oneline</code></pre>



<p><code>git log --oneline</code>は、履歴を一行ずつ表示するコマンドです。先頭の英数字がコミットを識別するID、後ろが説明です。</p>



<p>直近のコミットで何を変更したかを見る場合は、次を使います。</p>



<pre class="wp-block-code"><code>git show HEAD</code></pre>



<p><code>HEAD</code>は、通常、現在のブランチの最新コミットを指します。</p>



<h3 class="wp-block-heading"><span id="toc19">git diffとgit diff &#8211;cachedの違い</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>コマンド</th><th>主に確認するもの</th></tr></thead><tbody><tr><td><code>git diff</code></td><td>作業ファイルとステージング済み内容との差分</td></tr><tr><td><code>git diff --cached</code></td><td>ステージング済み内容と最新コミットとの差分</td></tr></tbody></table></figure>



<p><code>git add</code>した後にもう一度編集した場合、その追加の編集はまだステージングされていません。コミットに含めるには、再び<code>git add</code>します。</p>



<p>また、新規の未追跡ファイルは通常の<code>git diff</code>に出ません。<code>git status</code>も合わせて確認しましょう。</p>



<h2 class="wp-block-heading"><span id="toc20">「戻す」は、状況に応じて使い分ける</span></h2>



<p>Gitで戻せるのは、基本的に記録した内容です。コミットしていない作業を捨てると、その編集をGitから復元できるとは限りません。</p>



<h3 class="wp-block-heading"><span id="toc21">まだステージングしていない変更を取り消す</span></h3>



<p>例えば、先ほどの<code>index.html</code>を編集したものの、その編集を取り消したい場合です。</p>



<pre class="wp-block-code"><code>git diff -- index.html
git restore -- index.html</code></pre>



<p>先に差分を確認してから実行します。<code>git restore</code>は、通常、ステージング済みの内容に作業ファイルを戻します。ステージングしていなければ、最後にコミットした内容と一致します。</p>



<p><strong>この操作では、対象ファイルの未記録の編集が失われます。</strong> 残したい内容がある場合は実行しません。</p>



<h3 class="wp-block-heading"><span id="toc22">git addの選択だけを取り消す</span></h3>



<pre class="wp-block-code"><code>git restore --staged -- index.html</code></pre>



<p>この例は、最初のコミットがあるリポジトリで使います。ステージングを取り消しますが、作業ファイルの編集内容は残ります。</p>



<p>参考：<a href="https://git-scm.com/docs/git-restore">Git公式・git restore</a></p>



<h3 class="wp-block-heading"><span id="toc23">コミット済みの変更を取り消す</span></h3>



<p>共有済みの変更を取り消す場合は、「取り消したという新しい記録」を作る<code>git revert</code>が役立ちます。</p>



<pre class="wp-block-code"><code>git status
git log --oneline</code></pre>



<p>作業中の変更がないことを確認し、取り消したいコミットのIDを調べます。次の<code>COMMIT_ID</code>を実際のIDに置き換えて実行します。</p>



<pre class="wp-block-code"><code>git revert --no-edit COMMIT_ID</code></pre>



<p>元のコミットを消すのではなく、その変更を打ち消す新しいコミットを作ります。後の変更とぶつかる場合は、競合の解消が必要です。マージコミットを取り消す場合は追加の指定と検討が必要なので、この入門例とは分けて扱ってください。</p>



<p>参考：<a href="https://git-scm.com/docs/git-revert">Git公式・git revert</a></p>



<h2 class="wp-block-heading"><span id="toc24">ブランチで、作業の流れを分ける</span></h2>



<p>新機能を試すとき、すぐに通常のコードへ混ぜたくない場合があります。そこでブランチを使います。</p>



<p>ここでは、<code>main</code>を通常の変更をまとめるブランチとし、お知らせページを追加する作業を分けます。</p>



<pre class="wp-block-code"><code>git status
git switch -c feature/news-page</code></pre>



<p>作業中の変更がない状態で始めます。<code>-c</code>は、新しいブランチを作成して切り替える指定です。</p>



<pre class="wp-block-code"><code>cat &gt; news.html &lt;&lt;'EOF'
&lt;!doctype html&gt;
&lt;html lang="ja"&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;title&gt;お知らせ&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h1&gt;お知らせ&lt;/h1&gt;
  &lt;p&gt;Gitの練習サイトを公開しました。&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
EOF

git add news.html
git diff --cached
git commit -m "お知らせページを追加"</code></pre>



<p>元のブランチへ戻ります。</p>



<pre class="wp-block-code"><code>git switch main
ls</code></pre>



<p><code>main</code>にはまだ追加していないため、通常、この時点では<code>news.html</code>が作業フォルダーからなくなります。</p>



<p>ブランチは、作業フォルダーを別の場所に複製する操作ではありません。<strong>切り替えると、同じフォルダー内のファイルが、そのブランチの内容に合わせて変わります。</strong></p>



<p>動作を確認する場合は<code>feature/news-page</code>に切り替え、内容を確認したら<code>main</code>へ戻して取り込みます。</p>



<pre class="wp-block-code"><code>git switch feature/news-page
# ファイルの内容や表示を確認する
git switch main
git merge feature/news-page
git log --oneline --graph --all</code></pre>



<p>この練習ではローカルでマージします。チーム開発では、後半のプルリクエスト／マージリクエストを経由して取り込む運用もできます。</p>



<p>参考：<a href="https://git-scm.com/docs/git-switch">Git公式・git switch</a>、<a href="https://git-scm.com/docs/git-merge">Git公式・git merge</a></p>



<h2 class="wp-block-heading"><span id="toc25">GitHub・GitLab・Bitbucketの違いを詳しく知る</span></h2>



<p>どのサービスを使っても、基本の<code>add</code>、<code>commit</code>、<code>push</code>などはGitのコマンドです。違うのは、共有先の機能や開発の進め方です。</p>



<h3 class="wp-block-heading"><span id="toc26">GitHub：コード共有とレビュー、自動化を組み合わせる</span></h3>



<p><a href="https://github.com/">GitHub</a>では、リポジトリを作り、コードや履歴をブラウザーで確認できます。</p>



<p>変更の提案には<strong>Pull Request（プルリクエスト）</strong>を使います。「この変更をmainに取り込んでよいですか」と提案し、差分を見ながらコメントやレビューを行う仕組みです。</p>



<p>不具合や作業項目を整理するIssuesも使えます。修正の提案と作業項目を関連付けると、「どの問題を直した変更か」を追いやすくなります。</p>



<p><strong>GitHub Actions</strong>では、コードを送った際のテストや、承認された変更の公開などを自動化できます。処理は<code>.github/workflows/</code>配下のYAMLファイルで定義します。</p>



<p>本記事で最初に試す共有先としてGitHubを使うのは、リポジトリの作成、変更の共有、レビューまでを一つの流れで学べるためです。会社で指定のサービスがある場合は、それに合わせれば問題ありません。</p>



<p>参考：<a href="https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests">プルリクエスト</a>、<a href="https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue">Issuesとの関連付け</a>、<a href="https://docs.github.com/en/actions/get-started/understand-github-actions">GitHub Actions</a></p>



<h3 class="wp-block-heading"><span id="toc27">GitLab：コード管理からテスト・公開までをまとめる</span></h3>



<p><a href="https://gitlab.com/">GitLab</a>では、変更の提案を<strong>Merge Request（マージリクエスト）</strong>と呼びます。GitHubのプルリクエストと同様に、変更内容を確認して取り込むための機能です。</p>



<p><strong>GitLab CI/CD</strong>では、<code>.gitlab-ci.yml</code>に処理を定義し、テスト、ビルド、公開などを実行できます。処理を実際に動かす実行環境をRunnerと呼びます。</p>



<p>GitLab.comを利用する方法に加え、<strong>GitLab Self-Managed</strong>として自社側で運用する方法もあります。コードや開発基盤を自社で管理したい場合の選択肢になりますが、サーバー構築、更新、バックアップ、監視などの運用も必要です。</p>



<p>参考：<a href="https://docs.gitlab.com/user/project/merge_requests/">マージリクエスト</a>、<a href="https://docs.gitlab.com/ci/pipelines/">GitLab CI/CD</a></p>



<h3 class="wp-block-heading"><span id="toc28">Bitbucket：Jiraで管理する仕事とコード変更をつなげる</span></h3>



<p><a href="https://bitbucket.org/product">Bitbucket</a>はAtlassianのGit管理サービス／製品です。本記事で扱うBitbucket Cloudでは、リポジトリ共有、プルリクエストによるレビュー、<strong>Bitbucket Pipelines</strong>による自動処理を利用できます。</p>



<p>Pipelinesの設定は<code>bitbucket-pipelines.yml</code>で行います。</p>



<p>特徴の一つは、Atlassianの課題管理ツール<strong>Jiraとの連携</strong>です。Jiraの課題とブランチ、コミット、プルリクエストを関連付けることで、作業の依頼とコード変更を追いやすくなります。Jiraを中心に開発を進めているチームでは、検討しやすい選択肢です。</p>



<p>参考：<a href="https://bitbucket.org/product">Bitbucketの概要</a>、<a href="https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines/">Bitbucket Pipelines</a></p>



<h3 class="wp-block-heading"><span id="toc29">3サービスを比較する</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>GitHub</th><th>GitLab</th><th>Bitbucket Cloud</th></tr></thead><tbody><tr><td>変更を提案・レビューする機能</td><td>Pull Request</td><td>Merge Request</td><td>Pull Request</td></tr><tr><td>テストなどの自動化</td><td>GitHub Actions</td><td>GitLab CI/CD</td><td>Bitbucket Pipelines</td></tr><tr><td>自動処理の設定ファイル</td><td><code>.github/workflows/*.yml</code></td><td><code>.gitlab-ci.yml</code></td><td><code>bitbucket-pipelines.yml</code></td></tr><tr><td>選ぶ際の着眼点</td><td>コード共有、レビュー、周辺機能を使う</td><td>開発・テスト・公開をまとめる／自社運用も検討する</td><td>Jiraとの連携を中心に使う</td></tr></tbody></table></figure>



<p>機能の利用条件、実行時間、保存容量、承認ルールなどはプランによって異なります。料金や上限は変わるため、利用開始時に各社の公式情報を確認してください。</p>



<p>なお、<strong>CIは、変更を取り込む際にテストなどを継続的に実行する仕組み</strong>です。CDは、リリース可能な状態を維持したり、公開まで自動化したりする仕組みを指します。</p>



<p>Gitに変更を送るだけで、自動的に本番サイトが更新されるわけではありません。公開処理は別途設定します。</p>



<h2 class="wp-block-heading"><span id="toc30">LinuxからSSHで接続する準備</span></h2>



<p>GitHubなどへの接続にはHTTPSとSSHがあります。ここでは、3サービスで共通して使えるSSHを例にします。</p>



<h3 class="wp-block-heading"><span id="toc31">公開鍵と秘密鍵とは？</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>種類</th><th>用途</th></tr></thead><tbody><tr><td>公開鍵</td><td>GitHubなどに登録する。通常、ファイル名は<code>.pub</code>で終わる</td></tr><tr><td>秘密鍵</td><td>手元で本人側の認証に使う。他の人やサービスへ渡さない</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc32">既存の鍵を確認してから作成する</span></h3>



<pre class="wp-block-code"><code>ls -al ~/.ssh</code></pre>



<p>ディレクトリがないという表示なら、まだ作成されていない可能性があります。既存の鍵を上書きしないよう、この記事では専用の名前を使います。</p>



<pre class="wp-block-code"><code>mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t ed25519 -C "taro@example.com" -f ~/.ssh/id_ed25519_git_services</code></pre>



<p>同名のファイルがある場合、上書きを承認せず、別名にしてください。作成時には、秘密鍵を保護するパスフレーズの入力を求められます。</p>



<p>作成した鍵をSSHエージェントに登録します。</p>



<pre class="wp-block-code"><code>eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_git_services
cat ~/.ssh/id_ed25519_git_services.pub</code></pre>



<p>最後のコマンドで表示される<strong>公開鍵</strong>をサービスへ登録します。<code>.pub</code>の付いていない秘密鍵はコピーしません。ログインし直した際には、環境によってエージェントへの再登録が必要です。</p>



<p>以下は一台・一アカウントずつ使う入門例です。複数の業務アカウントを使う場合は、鍵とSSH設定を分ける運用を検討します。</p>



<p>参考：<a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent">GitHub公式・SSH鍵の作成</a></p>



<h2 class="wp-block-heading"><span id="toc33">GitHubへ初めて送る</span></h2>



<h3 class="wp-block-heading"><span id="toc34">手順1：公開鍵を登録する</span></h3>



<p>GitHubにログインし、アカウント設定の<strong>SSH and GPG keys</strong>からSSH鍵を追加します。タイトルには「Rocky Linux 開発環境」など、どの環境の鍵か分かる名前を付けます。</p>



<p>登録するのは、前の手順で表示した公開鍵です。用途の選択がある場合は、接続認証用の鍵として登録します。</p>



<h3 class="wp-block-heading"><span id="toc35">手順2：接続を確認する</span></h3>



<pre class="wp-block-code"><code>ssh -T git@github.com</code></pre>



<p>初回接続でホスト鍵の確認が出たら、表示されたフィンガープリントを公式情報と照合してから承認します。</p>



<p>GitHubでは、認証成功とシェル接続を提供しない旨が表示されます。SSH認証に成功しても、この確認コマンドの終了コードは1になります。</p>



<p>参考：<a href="https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints">GitHubのホスト鍵情報</a></p>



<h3 class="wp-block-heading"><span id="toc36">手順3：空のリポジトリを作る</span></h3>



<p>GitHubで新しいリポジトリを作成し、名前を<code>example-site</code>にします。</p>



<p>今回は手元にファイルと履歴があるため、GitHub側ではREADME、.gitignore、ライセンスの追加を選ばず、<strong>空のリポジトリ</strong>を作成します。公開範囲は、練習ならPrivateを選んで進められます。</p>



<h3 class="wp-block-heading"><span id="toc37">手順4：共有先を登録し、pushする</span></h3>



<p>次の<code>YOUR_USER</code>を自分のGitHubユーザー名に置き換えます。URLは作成したリポジトリの画面に表示されるSSH URLを使うのが確実です。</p>



<pre class="wp-block-code"><code>cd ~/git-practice/example-site
git remote add origin git@github.com:YOUR_USER/example-site.git
git remote -v
git push -u origin main</code></pre>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>コマンド／指定</th><th>意味</th></tr></thead><tbody><tr><td><code>remote add</code></td><td>共有先を登録する</td></tr><tr><td><code>origin</code></td><td>共有先に付ける名前。慣例として使われる</td></tr><tr><td><code>remote -v</code></td><td>登録されている共有先を確認する</td></tr><tr><td><code>push</code></td><td>手元のコミットを共有先へ送る</td></tr><tr><td><code>-u</code></td><td>今後の送受信に使う追跡先を設定する</td></tr></tbody></table></figure>



<p>GitHubのリポジトリ画面を開き、ファイルとコミットが表示されることを確認します。</p>



<p>以後、変更をコミットした後は、同じブランチなら通常<code>git push</code>で送れます。</p>



<p>参考：<a href="https://docs.github.com/ja/migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github">GitHub公式・ローカルのコードを追加する</a></p>



<h2 class="wp-block-heading"><span id="toc38">GitLabとBitbucketで使う場合</span></h2>



<p>Gitの基本操作は同じです。アカウントへの公開鍵登録、リポジトリ作成、接続先の指定が変わります。</p>



<h3 class="wp-block-heading"><span id="toc39">GitLab.comの場合</span></h3>



<ol start="1" class="wp-block-list">
<li>GitLabにログインする。</li>



<li>プロフィールの編集／ユーザー設定からSSH Keysを開き、公開鍵を登録する。</li>



<li>新規の空プロジェクト<code>example-site</code>を作成する。</li>



<li>READMEによる初期化を選ばず、公開範囲と名前空間を確認する。</li>



<li>プロジェクト画面のSSH URLをコピーする。</li>
</ol>



<p>接続確認は次のとおりです。初回のホスト鍵はGitLab公式情報と照合します。</p>



<pre class="wp-block-code"><code>ssh -T git@gitlab.com</code></pre>



<p><strong>まだoriginを登録していないリポジトリ</strong>では、次を実行します。<code>YOUR_NAMESPACE</code>は自分のユーザー名またはグループのパスに置き換えます。</p>



<pre class="wp-block-code"><code>git remote add origin git@gitlab.com:YOUR_NAMESPACE/example-site.git
git push -u origin main</code></pre>



<p>Self-Managed環境では、ホスト名、SSHポート、利用できる鍵の種類などを管理者に確認してください。</p>



<p>参考：<a href="https://docs.gitlab.com/user/ssh/">GitLab公式・SSH鍵</a>、<a href="https://docs.gitlab.com/user/project/repository/">GitLab公式・リポジトリ</a></p>



<h3 class="wp-block-heading"><span id="toc40">Bitbucket Cloudの場合</span></h3>



<ol start="1" class="wp-block-list">
<li>Bitbucketにログインする。</li>



<li>Personal Bitbucket settingsのSSH keysから公開鍵を登録する。</li>



<li>利用するWorkspaceに<code>example-site</code>というリポジトリを作成する。</li>



<li>READMEを追加せず、空のリポジトリにする。</li>



<li>リポジトリ画面のSSH URLをコピーする。</li>
</ol>



<p>接続確認は次のとおりです。初回のホスト鍵はAtlassian公式情報と照合します。</p>



<pre class="wp-block-code"><code>ssh -T git@bitbucket.org</code></pre>



<p><strong>まだoriginを登録していないリポジトリ</strong>では、次を実行します。<code>YOUR_WORKSPACE</code>は実際のWorkspaceのIDに置き換えます。</p>



<pre class="wp-block-code"><code>git remote add origin git@bitbucket.org:YOUR_WORKSPACE/example-site.git
git push -u origin main</code></pre>



<p>ここでは個人のSSH鍵を使います。リポジトリのAccess keysは読み取り用途なので、pushするための個人鍵登録とは区別してください。</p>



<p>参考：<a href="https://support.atlassian.com/bitbucket-cloud/docs/set-up-personal-ssh-keys-on-linux/">Bitbucket公式・Linuxでの個人SSH鍵設定</a>、<a href="https://support.atlassian.com/bitbucket-cloud/docs/log-into-or-connect-to-bitbucket-cloud/">接続とAccess keys</a></p>



<h3 class="wp-block-heading"><span id="toc41">すでにGitHubをoriginとして登録した場合</span></h3>



<p>上記は3サービスのどれかを選ぶ例であり、同じリポジトリで<code>origin</code>を繰り返し追加する手順ではありません。</p>



<p>共有先を変更する場合は、<code>git remote -v</code>で確認したうえで<code>git remote set-url origin 新しいSSH_URL</code>を使います。移行先にも履歴がある場合は、単純な送信ではなく、履歴と移行手順の確認が必要です。</p>



<h2 class="wp-block-heading"><span id="toc42">別のLinux環境で続きを作業する</span></h2>



<p>既存の共有リポジトリを手元に取得する操作が<code>clone</code>です。</p>



<p>別のLinux環境でもGitの導入、名前・メールの設定、SSH認証を準備し、その環境専用の公開鍵をアカウントに登録します。</p>



<pre class="wp-block-code"><code>mkdir -p ~/projects
cd ~/projects
git clone git@github.com:YOUR_USER/example-site.git
cd example-site
git status</code></pre>



<p><code>clone</code>では、ファイルと履歴を取得し、通常は<code>origin</code>も自動設定されます。取得したフォルダーでもう一度<code>git init</code>する必要はありません。</p>



<p>共有先の更新を取り込むには、作業中の変更がない状態で次を使います。</p>



<pre class="wp-block-code"><code>git switch main
git pull --ff-only</code></pre>



<p><code>--ff-only</code>は、履歴をそのまま進められる場合にだけ取り込む指定です。手元と共有先の両方で別々のコミットが増えている場合は、勝手にまとめずに止まります。</p>



<p>止まったときは、履歴を確認してマージやリベースを検討します。初心者のうちは、理由が分からないまま強制pushしないことが大切です。</p>



<p>参考：<a href="https://git-scm.com/docs/git-pull">Git公式・git pull</a></p>



<h2 class="wp-block-heading"><span id="toc43">チームで使う基本の流れ</span></h2>



<p>チームでは、「mainから作業用ブランチを作り、変更を提案してから取り込む」という進め方ができます。</p>



<pre class="wp-block-code"><code>git switch main
git pull --ff-only
git switch -c fix/top-page-title</code></pre>



<p><code>index.html</code>のタイトルを変更します。</p>



<pre class="wp-block-code"><code>sed -i 's/&lt;title&gt;Git練習サイト&lt;\/title&gt;/&lt;title&gt;Git変更履歴の練習サイト&lt;\/title&gt;/' index.html
git diff
git add index.html
git diff --cached
git commit -m "トップページのタイトルを分かりやすく変更"
git push -u origin fix/top-page-title</code></pre>



<p>ここで共有先の画面を開きます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>サービス</th><th>画面で行う操作</th></tr></thead><tbody><tr><td>GitHub</td><td>作業ブランチから<code>main</code>へのPull Requestを作成する</td></tr><tr><td>GitLab</td><td>作業ブランチから<code>main</code>へのMerge Requestを作成する</td></tr><tr><td>Bitbucket</td><td>作業ブランチから<code>main</code>へのPull Requestを作成する</td></tr></tbody></table></figure>



<p>説明には「何を変えたか」「なぜ変えたか」「どう確認したか」を記載します。例えば、「ブラウザーのタブで用途が分かるようにタイトルを変更。表示と文字コードを確認」と書けば、確認する側も判断しやすくなります。</p>



<p>レビューや必要なテストが終わったら、画面上でマージします。承認人数やmainへの直接pushを制限する設定は、サービスとプラン、チームの方針に合わせて決めます。</p>



<p>手元のmainにも、マージ後の変更を取り込みます。</p>



<pre class="wp-block-code"><code>git switch main
git pull --ff-only</code></pre>



<h2 class="wp-block-heading"><span id="toc44">競合が起きたらどうする？</span></h2>



<p>同じ箇所を別々に編集し、Gitがどちらを採用するか判断できないと、マージ時に競合が起きます。</p>



<p>例えば、ファイルに次のような目印が入ります。</p>



<pre class="wp-block-code"><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
&lt;h1&gt;社内向けのお知らせ&lt;/h1&gt;
=======
&lt;h1&gt;お客様向けのお知らせ&lt;/h1&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt; feature/change-heading</code></pre>



<p>この目印は、完成したHTMLではありません。両方の変更の意図を確認し、最終的に必要な内容へ編集して、目印を削除します。</p>



<p>ローカルの<code>git merge</code>で起きた競合を直す場合は、次のように進めます。</p>



<pre class="wp-block-code"><code>git status
# 対象ファイルを編集し、内容と動作を確認する
git add index.html
git diff --cached
git commit -m "見出しの競合を解消"</code></pre>



<p>まだマージを完了しておらず、今回のマージを中止する場合は<code>git merge --abort</code>を使います。マージ前から未記録の変更があると元の状態への復元が難しくなる場合があるため、最初に作業をコミットするなどしてから始めます。</p>



<p>ここで説明しているのはマージの競合です。リベース中の競合は、続行や中止のコマンドが異なります。</p>



<h2 class="wp-block-heading"><span id="toc45">Linuxの現場で管理すると便利なもの</span></h2>



<p>Gitは、Webアプリのソースコード以外にも使えます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>管理対象の例</th><th>役立つ場面</th></tr></thead><tbody><tr><td>PHP・Pythonなどのコード</td><td>不具合が発生した変更を調べる</td></tr><tr><td>バックアップ用シェルスクリプト</td><td>処理条件や通知先の変更理由を残す</td></tr><tr><td>Apache・Nginxの設定テンプレート</td><td>設定変更をレビューする</td></tr><tr><td>systemdのサービス定義</td><td>起動コマンドや環境設定の変更を追う</td></tr><tr><td>導入手順・障害対応メモ</td><td>手順の変更と修正理由を共有する</td></tr></tbody></table></figure>



<p>サーバー設定を管理する場合も、まず作業用リポジトリにテンプレートを用意して確認し、別の手順で適用する方法が取れます。<code>/etc</code>全体をそのまま登録すると、認証情報などまで含める可能性があります。</p>



<p>本番サーバーでは、Gitのマージと公開を別の作業として考えます。PHPなら依存パッケージの導入、LaravelならキャッシュやDB変更、設定ファイルなら構文確認など、必要な処理はアプリごとに異なります。</p>



<h2 class="wp-block-heading"><span id="toc46">導入時に押さえておきたいこと</span></h2>



<h3 class="wp-block-heading"><span id="toc47">データベースやアップロード画像は別にバックアップする</span></h3>



<p>Gitでソースコードを管理しても、MySQLのデータや利用者がアップロードした画像まで自動で保存されるわけではありません。必要なデータのバックアップと復旧手順は、別途用意します。</p>



<h3 class="wp-block-heading"><span id="toc48">.gitをWebから読める状態にしない</span></h3>



<p>Webサーバーの公開ディレクトリに<code>.git</code>が置かれていると、設定によっては履歴やコードが外部へ漏れる可能性があります。公開ディレクトリの外で管理し、公開に必要なファイルだけ配置する方法や、Webサーバー側でのアクセス制限を検討します。</p>



<h3 class="wp-block-heading"><span id="toc49">変更は「説明できる単位」で記録する</span></h3>



<p>フォーム修正、デザイン変更、バックアップ処理変更を一つにまとめると、後から特定の変更を取り消しにくくなります。</p>



<p>一方で、意味のない細切れにする必要もありません。「このコミットは何をしたものか」を一文で説明できる区切りを意識すると、履歴が読みやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc50">pushに失敗したら、まず原因を確認する</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>表示例</th><th>最初に確認すること</th></tr></thead><tbody><tr><td><code>Permission denied (publickey)</code></td><td>公開鍵の登録、SSHエージェント、使用アカウント、アクセス権</td></tr><tr><td><code>remote origin already exists</code></td><td><code>git remote -v</code>で、originがすでに登録されていないか</td></tr><tr><td><code>src refspec main does not match any</code></td><td>初回コミットの有無、現在のブランチ名</td></tr><tr><td><code>non-fast-forward</code></td><td>共有先に未取得の履歴がないか。先に取得して履歴を確認する</td></tr></tbody></table></figure>



<p>「送れないから<code>--force</code>を付ける」という対応は、共有先の履歴を上書きするおそれがあります。エラーの理由を確認してから進めましょう。</p>



<h2 class="wp-block-heading"><span id="toc51">よく使うコマンド早見表</span></h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>コマンド</th><th>用途</th></tr></thead><tbody><tr><td><code>git init</code></td><td>新しく管理を始める</td></tr><tr><td><code>git clone URL</code></td><td>既存のリポジトリを取得する</td></tr><tr><td><code>git status</code></td><td>作業中の状態を確認する</td></tr><tr><td><code>git diff</code></td><td>まだステージングしていない変更を確認する</td></tr><tr><td><code>git add ファイル名</code></td><td>次のコミットに含める内容を選ぶ</td></tr><tr><td><code>git diff --cached</code></td><td>コミット予定の変更を確認する</td></tr><tr><td><code>git commit -m "説明"</code></td><td>履歴を記録する</td></tr><tr><td><code>git log --oneline</code></td><td>履歴を一覧表示する</td></tr><tr><td><code>git show HEAD</code></td><td>直近のコミットを確認する</td></tr><tr><td><code>git switch -c ブランチ名</code></td><td>新しいブランチを作って切り替える</td></tr><tr><td><code>git switch main</code></td><td>mainへ切り替える</td></tr><tr><td><code>git merge ブランチ名</code></td><td>別のブランチの変更を取り込む</td></tr><tr><td><code>git remote -v</code></td><td>共有先を確認する</td></tr><tr><td><code>git push</code></td><td>コミットを共有先へ送る</td></tr><tr><td><code>git pull --ff-only</code></td><td>履歴をそのまま進められる場合に共有先の更新を取り込む</td></tr><tr><td><code>git restore -- ファイル名</code></td><td>作業ファイルの変更を取り消す。対象の未記録の編集は失われる</td></tr><tr><td><code>git restore --staged -- ファイル名</code></td><td>ステージングを取り消し、編集内容は残す</td></tr><tr><td><code>git revert --no-edit コミットID</code></td><td>指定した通常のコミットを打ち消す新しいコミットを作る</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc52">最初は、一つのフォルダーから始めればよい</span></h2>



<p>Gitのコマンドを最初から全部覚える必要はありません。まずは練習用フォルダーで、<code>status</code>、<code>diff</code>、<code>add</code>、<code>commit</code>、<code>log</code>を使ってみてください。</p>



<p>変更を確認し、理由を付けて記録する。それだけでも、「修正前はどうなっていたか」が分かるようになります。</p>



<p>次にGitHubなどへ共有し、ブランチとレビューを取り入れれば、複数人での作業にもつなげられます。</p>



<p>小さな修正ほど、「これくらいなら大丈夫」と記録を省きがちです。その小さな変更が原因で困ったとき、履歴があるかどうかで調査の始めやすさが変わります。次の修正から、変更の理由も一緒に残してみましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.takeho.com/h7g01v70k3ryhqt5pqqvj4ebwu0o0tn4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows 10延命の先にある現実――Windows 11移行で現場が詰まる理由と進め方</title>
		<link>https://blog.takeho.com/windows10-esu-windows11-migration/</link>
					<comments>https://blog.takeho.com/windows10-esu-windows11-migration/#respond</comments>
		
		<dc:creator><![CDATA[たけほ]]></dc:creator>
		<pubDate>Sun, 06 Sep 2026 02:57:00 +0000</pubDate>
				<category><![CDATA[現場IT]]></category>
		<category><![CDATA[ESU]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[Windows 11]]></category>
		<category><![CDATA[サポート終了]]></category>
		<guid isPermaLink="false">https://blog.takeho.com/?p=1981</guid>

					<description><![CDATA[Windows 10の延命措置だけでは移行問題は解決しません。端末棚卸し、互換性、周辺機器、バックアップ、例外端末、廃棄まで、中小企業の現場でWindows 11移行を進める実践手順を解説します。]]></description>
										<content:encoded><![CDATA[
<p>Windows 10のサポート終了は、2025年10月14日という日付を過ぎれば終わる話ではありません。むしろ現場にとっては、その後からが本番です。延長セキュリティ更新プログラム（ESU）で時間を買った会社、動かない業務ソフトを理由に旧PCを残した会社、予算の都合で入れ替えを翌年度へ送った会社。事情はそれぞれ違っても、共通しているのは「Windows 10が起動する限り使える」と「業務で安全に使い続けられる」は同じではない、という現実です。</p>



<p>Windows 11への移行は、OSを更新するだけの作業に見えます。しかし実際には、端末台帳、業務アプリ、周辺機器、認証、バックアップ、予算、利用者教育、廃棄までがつながる小さな全社プロジェクトです。特に専任の情シスがいない中小企業では、総務担当者や「パソコンに詳しい人」に負担が集中し、問題が表面化したときには期限も予算も足りなくなりがちです。</p>



<p>この記事では、Windows 10を延命している、あるいは移行が途中で止まっている組織に向けて、何から確認し、どの順番で進め、どこまでを例外として認めるべきかを現場目線で整理します。AIのような派手な話題ではありませんが、PCが毎日の仕事そのものである会社にとって、こちらのほうがはるかに切実なテーマです。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3"><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">「まだ動く」は安全の証明ではない</a></li><li><a href="#toc2" tabindex="0">ESUは「解決策」ではなく、判断時間を買う仕組み</a></li><li><a href="#toc3" tabindex="0">最初の壁は「何台あるか分からない」</a></li><li><a href="#toc4" tabindex="0">Windows 11対応判定は三つに分ける</a></li><li><a href="#toc5" tabindex="0">本当に調べるべきは「ソフト名」ではなく業務の流れ</a></li><li><a href="#toc6" tabindex="0">周辺機器が移行計画を止める</a></li><li><a href="#toc7" tabindex="0">移行日に初めてバックアップを試してはいけない</a></li><li><a href="#toc8" tabindex="0">全台一斉更新より、小さな波で進める</a></li><li><a href="#toc9" tabindex="0">買い替え予算は本体価格だけでは決まらない</a></li><li><a href="#toc10" tabindex="0">古いPCは「捨てれば終わり」ではない</a></li><li><a href="#toc11" tabindex="0">移行を止めるのは技術より「誰が決めるか」</a></li><li><a href="#toc12" tabindex="0">利用者への案内は短く、具体的に</a></li><li><a href="#toc13" tabindex="0">現場で使える移行チェックリスト</a></li><li><a href="#toc14" tabindex="0">30台の会社なら、こう進める</a></li><li><a href="#toc15" tabindex="0">やってはいけない五つの近道</a><ol><li><a href="#toc16" tabindex="0">1. 台帳を作らず、見つけた端末から更新する</a></li><li><a href="#toc17" tabindex="0">2. 非対応PCへ強引にWindows 11を入れる</a></li><li><a href="#toc18" tabindex="0">3. 新しいPCを配れば終わりと考える</a></li><li><a href="#toc19" tabindex="0">4. 古いPCをそのまま予備機にする</a></li><li><a href="#toc20" tabindex="0">5. 現場へ直前まで知らせない</a></li></ol></li><li><a href="#toc21" tabindex="0">移行後に残すべきもの</a><ol><li><a href="#toc22" tabindex="0">移行の成否を数字で振り返る</a></li></ol></li><li><a href="#toc23" tabindex="0">まとめ――延命できた今こそ、静かに移行を進める</a></li><li><a href="#toc24" tabindex="0">参考情報</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">「まだ動く」は安全の証明ではない</span></h2>



<p>サポートが終了しても、Windows 10のPCが突然起動しなくなるわけではありません。WordやExcelも開き、ブラウザも動き、共有フォルダにも接続できるでしょう。この「見た目が昨日と変わらない」ことが、移行を遅らせる最大の理由になります。</p>



<p>ところが、サポート終了とは、OSに新たな弱点が見つかっても通常のセキュリティ更新が提供されない状態になることです。攻撃者はサポート終了日を境に活動を始めるわけではありません。むしろ、今後修正されない環境が一定数残ることを前提に、既知の弱点、認証情報の窃取、古いドライバー、設定不備などを組み合わせて狙います。ウイルス対策ソフトが動いていても、OS自体の穴をすべて塞げるわけではありません。</p>



<p>さらに見落とされやすいのが、OS以外の「周辺サポート」です。ブラウザ、会計ソフト、VPNクライアント、電子申請、プリンタードライバー、バックアップ製品などは、それぞれ独自の対応OSを定めています。Windows 10上で当面動いても、メーカーの動作保証から外れれば、障害時に調査を断られたり、最新版への更新ができなくなったりします。つまりリスクは、ある日一斉に増えるのではなく、周囲から少しずつ支えが外れていく形で高まります。</p>



<h2 class="wp-block-heading"><span id="toc2">ESUは「解決策」ではなく、判断時間を買う仕組み</span></h2>



<p>延長セキュリティ更新プログラム（ESU）は、移行が間に合わない組織にとって重要な選択肢です。ただし、ESUへ加入した瞬間にWindows 10の問題が解決するわけではありません。ESUの役割は、重要または重大なセキュリティ更新を受け取りながら、移行のための猶予を確保することです。機能追加、設計変更、アプリの互換性保証、通常の技術支援まで延長されるものではありません。</p>



<p>現場で起きやすい失敗は、「ESUを購入したので来年考えればよい」と計画まで停止してしまうことです。猶予期間は、放置期間ではありません。端末を棚卸しし、Windows 11へ移せるものを先に移し、移せない理由を一台ずつ消していくための作業期間です。ESU対象端末には、移行期限、残す理由、責任者、代替案を紐づけておかなければ、翌年も同じ会議を繰り返します。</p>



<p>「古い測定機につながっている」「特注ソフトがWindows 10でしか動かない」「取引先指定の環境である」など、すぐに移行できない事情は実際にあります。その場合も、ESU加入だけで終わらせず、インターネット接続を制限する、メールやWeb閲覧に使わない、一般社員のアカウントと分離する、USBメモリーの利用を制御する、重要データを端末内に置かない、といった多層的な対策が必要です。</p>



<h2 class="wp-block-heading"><span id="toc3">最初の壁は「何台あるか分からない」</span></h2>



<p>移行作業で最初に困るのは、Windows 11の操作方法ではありません。会社に何台のPCがあり、誰が、どこで、何に使っているか分からないことです。購入記録と実際の利用状況が一致しない会社は珍しくありません。倉庫に眠る予備機、在宅勤務用に持ち出した端末、退職者から返却されたままのPC、会議室の表示用端末、工場や店舗の専用機などが台帳から漏れます。</p>



<p>端末台帳には、少なくとも管理番号、利用者、設置場所、メーカーと型番、シリアル番号、購入年月、Windowsのエディションとバージョン、CPU、メモリ、ストレージ、TPM 2.0、セキュアブート、主要アプリ、接続する周辺機器、データの保存先を記録します。完璧な管理ツールを最初から導入する必要はありません。表計算でもよいので、判断に必要な情報を一か所へ集めることが先です。</p>



<p>ここで重要なのは、PCの台数だけでなく「業務のつながり」を見ることです。経理PC一台が止まれば請求書を出せない、受付PCが止まれば来客対応ができない、製造設備のPCが止まればラインが止まる。この影響度を台帳に加えると、単純に古い順ではなく、事業への影響を踏まえて移行順を決められます。</p>



<h2 class="wp-block-heading"><span id="toc4">Windows 11対応判定は三つに分ける</span></h2>



<p>Windows 11の最小要件として、対応する64ビットCPU、4GB以上のメモリ、64GB以上のストレージ、UEFI、セキュアブート、TPM 2.0などが示されています。ただし「最小要件を満たす」と「業務で快適に使える」は別です。4GBのメモリで起動できても、ブラウザのタブを複数開き、Teamsや表計算を同時に使えば、現場では遅さが仕事の停滞につながります。</p>



<p>判定は、次の三つに分けると整理しやすくなります。</p>



<ol class="wp-block-list"><li><strong>そのまま移行できる端末</strong>：ハードウェア要件を満たし、主要アプリと周辺機器の対応も確認できる。</li><li><strong>手当てをすれば移行できる端末</strong>：TPMやセキュアブートが無効、空き容量不足、メモリ不足、BIOS更新が必要など、解消可能な課題がある。</li><li><strong>入れ替えまたは隔離が必要な端末</strong>：CPUが対象外、重要な業務アプリや機器が非対応、性能や故障リスクを含めて延命の費用対効果が悪い。</li></ol>



<p>「要件を回避してWindows 11を入れる方法」もインターネット上にはあります。しかし、会社の業務端末で非対応構成を常態化させると、更新の保証、メーカーサポート、障害時の切り分け、監査への説明が難しくなります。一時的に起動できることより、三年後も責任を持って管理できることを優先すべきです。</p>



<h2 class="wp-block-heading"><span id="toc5">本当に調べるべきは「ソフト名」ではなく業務の流れ</span></h2>



<p>互換性調査というと、インストール済みソフトの一覧を作り、各メーカーのWindows 11対応表を確認する作業が思い浮かびます。それは必要ですが、十分ではありません。業務は一つのソフトだけで完結せず、入力、変換、保存、印刷、送信、承認など複数の処理で成り立っているからです。</p>



<p>たとえば販売管理ソフトが起動しても、帳票の専用フォントがない、古いプリンタードライバーが動かない、Excelマクロが32ビット版Officeを前提にしている、共有フォルダへの接続方式が古い、といった理由で仕事は止まります。ブラウザで使うサービスでも、電子証明書、カードリーダー、拡張機能、ポップアップ、ActiveX時代の設計が残っている場合があります。</p>



<p>確認単位は「アプリが開くか」ではなく、「担当者が始業から終業までの代表的な仕事を完了できるか」です。テスト用PCを一台用意し、実際の利用者に日常業務を試してもらうと、台帳だけでは見えない依存関係が出てきます。情報システム担当者が代わりに確認するだけでは、「月末にしか使わない機能」や「年に一度の申告処理」が漏れます。</p>



<h2 class="wp-block-heading"><span id="toc6">周辺機器が移行計画を止める</span></h2>



<p>PC本体より長く使われる周辺機器も要注意です。複合機、ラベルプリンター、バーコードリーダー、スキャナー、タイムレコーダー、計測器、USBシリアル変換器、ICカードリーダーなどは、見た目が問題なくてもドライバーや管理ソフトがWindows 11に対応していないことがあります。</p>



<p>特に業務専用機器は、後継モデルへの交換費用がPCより高くなりがちです。そのため「古いPCを残す」という判断自体はあり得ます。ただし、その一台を通常の社内PCと同じネットワーク、同じアカウント、同じ利用方法のまま置くことが問題です。専用端末として用途を限定し、通信先を絞り、データ受け渡し方法を管理し、故障時に復旧できる予備機やイメージを用意する必要があります。</p>



<p>「この機械が壊れるまで」という方針には、期限がありません。少なくとも半年ごとに継続理由を見直し、代替機器、仮想化、ネットワーク分離、業務委託などの選択肢を比較します。例外を認めるなら、例外を管理する仕組みまでセットにすることが現場ITの仕事です。</p>



<h2 class="wp-block-heading"><span id="toc7">移行日に初めてバックアップを試してはいけない</span></h2>



<p>OS更新や端末交換では、「データはクラウドにあるはず」「バックアップソフトが動いているから大丈夫」という思い込みが事故につながります。クラウド同期とバックアップは同じではありません。誤削除や暗号化されたファイルが同期されれば、別の端末にも反映される場合があります。また、デスクトップやドキュメントは同期されていても、業務ソフトのデータ、メールのローカル保存、ブラウザのお気に入り、辞書、テンプレート、証明書、SSH鍵などが対象外かもしれません。</p>



<p>大切なのは「保存できている」ことではなく「戻せる」ことです。移行前にバックアップを取得し、別の環境で代表的なファイルを実際に復元します。暗号化回復キー、アプリのライセンス情報、二要素認証の復旧手段、管理者アカウントも確認します。BitLockerが有効な端末で回復キーが不明なまま故障すると、データ救出は難しくなります。</p>



<h2 class="wp-block-heading"><span id="toc8">全台一斉更新より、小さな波で進める</span></h2>



<p>台数が少なくても、全台を同じ日に更新するのは危険です。問題が起きたとき、原因が端末固有なのか、アプリ共通なのか、ネットワークなのか判断できず、全員の仕事が同時に止まります。</p>



<p>まずITに比較的詳しく、業務影響を抑えやすい利用者で先行テストを行います。次に、部署ごとに一台または少人数へ広げます。そこで、ログイン、印刷、会議、VPN、共有フォルダ、基幹システム、電子メール、スキャン、帳票などを確認し、手順書を修正します。その後、一般利用者へ段階的に展開します。経理の締め日、繁忙期、重要な顧客対応、イベント前後を避けることも欠かせません。</p>



<p>一回の移行単位を小さくすると、失敗しても戻せます。現場で重要なのは、失敗ゼロを宣言することではなく、失敗の範囲を限定し、短時間で復旧できる設計です。</p>



<h2 class="wp-block-heading"><span id="toc9">買い替え予算は本体価格だけでは決まらない</span></h2>



<p>PC更新の稟議では、一台あたりの購入価格に注目が集まります。しかし実際の費用には、初期設定、データ移行、ソフトの再導入、ライセンス、周辺機器、利用者への説明、問い合わせ対応、旧端末の消去と廃棄が含まれます。安い端末を選んでも、メモリ不足で毎日の待ち時間が増えたり、短期間で再交換になったりすれば、総費用は高くなります。</p>



<p>反対に、全員へ同じ高性能PCを配る必要もありません。事務、開発、設計、営業、受付など用途別に標準構成を二、三種類へまとめると、選定と保守が楽になります。例外機種を増やすほど、ドライバー、ACアダプター、故障対応、交換在庫の管理が複雑になります。</p>



<p>経営者へ説明するときは、「Windows 10が危険だから買ってください」だけでは弱いでしょう。故障や感染で一日停止した場合の損失、取引先のセキュリティ要件、サイバー保険、監査、従業員の作業時間、保守会社の対応範囲まで数字に近づけて示します。PC更新は備品購入ではなく、業務継続のための投資です。</p>



<h2 class="wp-block-heading"><span id="toc10">古いPCは「捨てれば終わり」ではない</span></h2>



<p>新しいPCが使えるようになると、旧端末の扱いは後回しになりがちです。しかし、端末を倉庫へ移しただけでは情報資産として残り続けます。SSDやHDDには、削除済みに見えるファイル、メール、ブラウザ情報、顧客データ、認証情報が残っている可能性があります。</p>



<p>廃棄時は、会社として決めた方法でデータを消去し、端末管理番号、シリアル番号、消去日、実施者、廃棄先を記録します。外部業者へ委託する場合も、引き渡しから処理完了までの管理方法と証明書の内容を確認します。リース品やレンタル品は、契約上の返却条件とデータ消去の責任範囲を先に確認しておきます。</p>



<p>一方、災害用の予備機として残す場合は、棚へ入れる前に用途と期限を決めます。更新されないPCを数年後に緊急利用するのは危険です。予備機も定期的に起動し、更新、充電、ログイン、復旧手順を確認してこそ役に立ちます。</p>



<h2 class="wp-block-heading"><span id="toc11">移行を止めるのは技術より「誰が決めるか」</span></h2>



<p>移行が進まない会社では、技術的な問題より意思決定の所在が曖昧なことがあります。利用部門は「今のままで困っていない」と考え、経営側は「IT担当が何とかする」と考え、IT担当は「業務の可否は部門で判断してほしい」と考えます。誰も間違っていませんが、役割がつながっていません。</p>



<p>経営側は予算と受容するリスクを決め、業務部門は必要な機能とテスト結果に責任を持ち、IT担当は技術的な選択肢とリスクを分かる言葉で示します。移行できない端末を残す最終判断も、担当者一人に背負わせるべきではありません。「なぜ残すのか」「いつまで残すのか」「事故時に誰が判断するのか」を記録し、承認者を明確にします。</p>



<h2 class="wp-block-heading"><span id="toc12">利用者への案内は短く、具体的に</span></h2>



<p>Windows 11へ変わると、スタートメニュー、右クリック、タスクバー、設定画面などが変化します。IT担当には小さな違いでも、日々決まった操作をしている利用者には負担です。移行案内へ機能一覧を詰め込むより、「当日までにすること」「当日使えない時間」「変わる操作」「困ったときの連絡先」を一枚にまとめるほうが伝わります。</p>



<p>また、更新直後の問い合わせ増加を失敗と考えないことです。利用者が質問できない雰囲気のほうが危険です。分からないまま自己流の回避策を使い、個人クラウドへデータを置く、非公式ソフトを入れる、古いPCへ戻るといった行動につながります。最初の数日は質問窓口を明確にし、よくある内容を随時追記します。</p>



<h2 class="wp-block-heading"><span id="toc13">現場で使える移行チェックリスト</span></h2>



<ul class="wp-block-list"><li>利用中、予備、持ち出し、専用機を含めた端末台帳がある</li><li>Windows 11対応可否を端末ごとに判定した</li><li>主要アプリだけでなく、実際の業務フローをテストした</li><li>プリンター、スキャナー、カードリーダー、計測器を確認した</li><li>バックアップから実際に復元できることを確認した</li><li>BitLocker回復キーと管理者アカウントを管理している</li><li>先行利用者から段階的に展開する計画がある</li><li>繁忙期、締め日、イベント日を避けている</li><li>移行できない端末の理由、期限、責任者、代替案がある</li><li>旧端末の消去、廃棄、返却を記録する</li><li>利用者向けの短い案内と問い合わせ窓口を用意した</li><li>移行完了後に台帳、手順書、ライセンス情報を更新する</li></ul>



<h2 class="wp-block-heading"><span id="toc14">30台の会社なら、こう進める</span></h2>



<p>たとえば30台のPCを持つ会社で、10台がWindows 11へそのまま移行でき、12台が買い替え対象、残り8台に業務上の課題があるとします。最初の一週間で全台を更新する計画では、問い合わせも障害も集中します。</p>



<p>まず一か月目に台帳と業務一覧を作り、対応可能な10台のうち二台で先行テストを実施します。二か月目に残りの対応可能端末を部署ごとに移行しながら、新規端末の標準設定を固めます。三か月目から買い替え端末を四台ずつ展開します。課題のある8台は、業務ソフトの更新、周辺機器の交換、ネットワーク分離などに分け、通常端末の移行とは別の計画で処理します。</p>



<p>この方法なら、目立つ成果が早く出ます。対応できる端末まで難しい八台に引きずられて停止することもありません。「全台移行できなければ未完了」ではなく、安全な端末を毎月増やし、例外を毎月減らすという見方に変えることが大切です。</p>



<h2 class="wp-block-heading"><span id="toc15">やってはいけない五つの近道</span></h2>



<h3 class="wp-block-heading"><span id="toc16">1. 台帳を作らず、見つけた端末から更新する</span></h3>

<p>進んでいるように見えて、重要端末の漏れと二重作業が発生します。最初に全体像を作り、更新後も結果を記録します。</p>


<h3 class="wp-block-heading"><span id="toc17">2. 非対応PCへ強引にWindows 11を入れる</span></h3>

<p>短期的には費用を抑えられても、更新や故障時の不確実性を抱えます。実験用ではなく業務用なら、サポート可能性まで判断材料にします。</p>


<h3 class="wp-block-heading"><span id="toc18">3. 新しいPCを配れば終わりと考える</span></h3>

<p>データ、認証、プリンター、ショートカット、業務手順が揃わなければ仕事は始まりません。利用者が業務を完了できた時点を移行完了とします。</p>


<h3 class="wp-block-heading"><span id="toc19">4. 古いPCをそのまま予備機にする</span></h3>

<p>更新されていない予備機は、必要なときほど安全に使えません。予備機にも管理期限と点検日を設定します。</p>


<h3 class="wp-block-heading"><span id="toc20">5. 現場へ直前まで知らせない</span></h3>

<p>突然の変更は抵抗と混乱を生みます。早めに目的と予定を伝え、テストへ利用者を巻き込みます。</p>


<h2 class="wp-block-heading"><span id="toc21">移行後に残すべきもの</span></h2>



<h3 class="wp-block-heading"><span id="toc22">移行の成否を数字で振り返る</span></h3>



<p>作業が一段落したら、「何台交換したか」だけでなく、業務停止時間、問い合わせ件数、移行に要した作業時間、想定外だったアプリや機器、再作業が発生した理由を振り返ります。たとえば、データ移行に時間がかかったなら保存先の標準化、問い合わせが特定の操作に集中したなら案内資料の改善、設定漏れが多かったなら初期設定の自動化というように、次の行動へつなげます。</p>



<p>また、移行後一週間、一か月、三か月のタイミングで利用部門へ確認すると、初日に発見できなかった問題を拾えます。「以前より遅くなったが我慢している」「月末処理でだけエラーになる」「古い端末をこっそり使っている」といった状況は、完了報告の直後には出てきません。移行完了を一日の点ではなく、安定稼働を確認するまでの期間として考える必要があります。</p>



<p>成功の基準は、新OSの導入率100％だけではありません。例外端末を把握できていること、利用者が通常業務を行えること、障害時に戻せること、次回の更新計画が残っていることまで含めて評価します。数字と記録を残せば、次の予算説明にも使えます。</p>



<p>Windows 11移行が終わったあと、手元に新しいPCだけが残る状態はもったいありません。今回作った端末台帳、標準設定、アプリ一覧、復旧手順、廃棄記録、利用者向けFAQは、次の更新で使える会社の資産です。PCには寿命があり、OSにもアプリにも期限があります。今回だけの臨時作業にせず、毎年一定数を更新する仕組みに変えれば、数年後に再び全台が古くなる事態を避けられます。</p>



<p>端末の購入年を分散し、四年または五年など社内の標準利用期間を決め、毎年予算化します。退職や異動時の返却、初期化、再配布も同じ台帳で管理します。新しい業務システムを導入するときは、対応OSとサポート期限を選定条件へ入れます。こうした地味な積み重ねが、次のサポート終了を「突然の大事件」から「予定された更新」に変えます。</p>



<h2 class="wp-block-heading"><span id="toc23">まとめ――延命できた今こそ、静かに移行を進める</span></h2>



<p>Windows 10のPCが今日も動いていると、移行の優先順位は下がりがちです。しかし、問題が起きてからでは、互換性調査も予算確保も利用者への説明も同時進行になります。ESUを利用しているなら、その時間は単なる延命ではなく、混乱を避けるために与えられた準備期間です。</p>



<p>まず端末と業務を棚卸しし、移せるものから小さく移す。移せない端末は理由と期限を明確にし、隔離や代替策を用意する。データを戻せることを確かめ、旧端末の最後まで管理する。これらは華やかな施策ではありませんが、会社の仕事を止めないために最も効く現場ITです。</p>



<p>全台を一日で完璧に変える必要はありません。今日一台を台帳へ登録し、一つの業務をテストし、一台の例外に期限を付ける。その小さな前進を積み重ねれば、Windows 10はいつまでも残る不安材料ではなく、計画的に終えられる案件へ変わります。</p>



<h2 class="wp-block-heading"><span id="toc24">参考情報</span></h2>



<ul class="wp-block-list"><li><a href="https://support.microsoft.com/ja-jp/windows/windows-10%E3%81%AE%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AF-2025%E5%B9%B4-10%E6%9C%88-14%E6%97%A5%E3%81%AB%E7%B5%82%E4%BA%86%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F-2ca8b313-1946-43d3-b55c-2b95b107f281">Microsoft：Windows 10のサポート終了に関する案内</a></li><li><a href="https://www.microsoft.com/ja-jp/windows/windows-11-specifications">Microsoft：Windows 11の仕様とシステム要件</a></li><li><a href="https://learn.microsoft.com/ja-jp/windows/whats-new/extended-security-updates">Microsoft Learn：Windows 10拡張セキュリティ更新プログラム</a></li></ul>

]]></content:encoded>
					
					<wfw:commentRss>https://blog.takeho.com/windows10-esu-windows11-migration/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>初めてPMになって気づいた「思っていた仕事と全然違う」――開発現場で起きる12の“あるある”</title>
		<link>https://blog.takeho.com/i6bpxjjwdshc9jvcgc0i1lnygyor9df2/</link>
					<comments>https://blog.takeho.com/i6bpxjjwdshc9jvcgc0i1lnygyor9df2/#respond</comments>
		
		<dc:creator><![CDATA[たけほ]]></dc:creator>
		<pubDate>Fri, 24 Jul 2026 10:49:00 +0000</pubDate>
				<category><![CDATA[現場IT]]></category>
		<category><![CDATA[PM]]></category>
		<guid isPermaLink="false">https://blog.takeho.com/?p=1905</guid>

					<description><![CDATA[目次 PMは「みんなに指示を出す人」だと思っていた今回のプロジェクトあるある1――要件定義が終わった翌日に「少しだけ追加」が来るあるある2――進捗率90％から一週間動かないあるある3――会議では誰も反対しなかったのに、終 [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5"><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">PMは「みんなに指示を出す人」だと思っていた</a></li><li><a href="#toc2" tabindex="0">今回のプロジェクト</a><ol><li><a href="#toc3" tabindex="0">あるある1――要件定義が終わった翌日に「少しだけ追加」が来る</a></li><li><a href="#toc4" tabindex="0">あるある2――進捗率90％から一週間動かない</a></li><li><a href="#toc5" tabindex="0">あるある3――会議では誰も反対しなかったのに、終わった瞬間から反対意見が出る</a></li><li><a href="#toc6" tabindex="0">あるある4――「確認します」が積み重なり、誰も回答期限を持っていない</a></li><li><a href="#toc7" tabindex="0">あるある5――一番詳しい人が、一番忙しくて会議に出られない</a></li><li><a href="#toc8" tabindex="0">あるある6――偉い人の「それ、スマホでも使えるよね？」で計画が揺れる</a></li><li><a href="#toc9" tabindex="0">あるある7――担当者が突然いなくなり、引き継ぎ資料は「ソースコードです」</a></li><li><a href="#toc10" tabindex="0">あるある8――テスト環境では動くのに、本番環境だけ動かない</a></li><li><a href="#toc11" tabindex="0">あるある9――不具合を直したら、別の場所が壊れる</a></li><li><a href="#toc12" tabindex="0">あるある10――「納期優先」「品質優先」「予算厳守」を全員が同時に言う</a></li><li><a href="#toc13" tabindex="0">あるある11――問題を早く報告すると怒られ、遅く報告するともっと怒られる</a></li><li><a href="#toc14" tabindex="0">あるある12――リリース成功の翌日に「ここからが本番です」と言われる</a></li></ol></li><li><a href="#toc15" tabindex="0">初めてPMをして分かる「自分には決定権がない」という現実</a></li><li><a href="#toc16" tabindex="0">PMの仕事は「人を管理する」より「認識のズレを管理する」</a></li><li><a href="#toc17" tabindex="0">初心者PMがやりがちな失敗</a><ol><li><a href="#toc18" tabindex="0">自分が全部理解してから動こうとする</a></li><li><a href="#toc19" tabindex="0">遅れを取り戻すため、自分が作業を引き取る</a></li><li><a href="#toc20" tabindex="0">悪い報告を整えてから出そうとする</a></li><li><a href="#toc21" tabindex="0">会議を増やせば解決すると思う</a></li><li><a href="#toc22" tabindex="0">メンバーへ気を遣い、遅れを聞けない</a></li><li><a href="#toc23" tabindex="0">顧客の要望をすべてチームへそのまま渡す</a></li></ol></li><li><a href="#toc24" tabindex="0">初めてPMをする人が、最初に用意しておきたいもの</a><ol><li><a href="#toc25" tabindex="0">完了条件を記載したタスク表</a></li><li><a href="#toc26" tabindex="0">決定事項を残す記録</a></li><li><a href="#toc27" tabindex="0">課題とリスクを分けた一覧</a></li><li><a href="#toc28" tabindex="0">変更管理のルール</a></li><li><a href="#toc29" tabindex="0">エスカレーション先</a></li><li><a href="#toc30" tabindex="0">リリース後の体制</a></li></ol></li><li><a href="#toc31" tabindex="0">PMが毎日している地味だが重要な仕事</a></li><li><a href="#toc32" tabindex="0">「良いPM」は、強く引っ張る人とは限らない</a></li><li><a href="#toc33" tabindex="0">それでもPMの仕事には面白さがある</a></li><li><a href="#toc34" tabindex="0">PMは予定を守らせる人ではなく、予定が崩れたときに前へ進める人</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">PMは「みんなに指示を出す人」だと思っていた</span></h2>



<p>「次の案件、PMをお願いしたい」</p>



<p>上司からそう言われたとき、少し誇らしい気持ちになった人は多いのではないでしょうか。</p>



<p>これまでは開発メンバーとして、割り振られた機能を実装し、テストを行い、進捗会議で状況を報告する側でした。それが今度はプロジェクト全体を見る立場になります。スケジュールを引き、メンバーへ仕事を割り振り、会議で方針を決め、課題があれば適切な判断をする。映画やドラマほど格好よくはなくても、チームの先頭に立って開発を動かしていく仕事を想像していたはずです。</p>



<p>ところが、実際に始めてみると、朝から晩までやっているのは想像していた仕事と少し違います。</p>



<p>予定表を作ったと思ったら、翌日に前提条件が変わる。担当者へ進捗を聞くと「ほぼ終わっています」と言われるが、三日後も「ほぼ終わっています」のまま。顧客からは「前に伝えたはず」と言われ、開発者からは「それは聞いていない」と言われる。会議では全員が納得したように見えたのに、会議後のチャットで反対意見が次々に出てくる。</p>



<p>仕様を決める立場だと思っていたら、自分には決定権がない。チームを管理する立場だと思っていたら、メンバーの上司は別にいる。品質を守ろうとすると納期が危なくなり、納期を守ろうとすると品質が危なくなる。そして問題が起きると、なぜか最初に説明を求められるのはPMです。</p>



<p>PMの仕事は、単に計画を立てて人を動かすことではありません。むしろ、予定どおりに進まない現実を受け止め、関係者の認識のズレを埋め、誰も拾わなかった作業を拾い、問題が致命傷になる前に表へ出す仕事です。</p>



<p>この記事では、初めてPMを担当した人が「こんなはずではなかった」と感じやすい場面を、架空の開発プロジェクトをもとに紹介します。登場する出来事は創作ですが、開発経験者であれば、どこかで見たことのある光景が一つや二つはあるはずです。</p>



<h2 class="wp-block-heading"><span id="toc2">今回のプロジェクト</span></h2>



<p>今回の舞台は、ある企業が利用する受発注管理システムの刷新プロジェクトです。</p>



<p>既存システムは十年以上使われており、画面が古い、処理が遅い、担当者しか分からない操作が多いという問題を抱えています。そこで、Webブラウザから利用できる新システムへ作り替えることになりました。</p>



<p>プロジェクト期間は九か月。メンバーは、PMになったばかりの佐藤さん、業務担当者、社内の開発者三名、協力会社の開発者二名、インフラ担当者、品質管理担当者です。顧客側にはシステム部門と業務部門があり、さらに部長や役員も節目の会議へ参加します。</p>



<p>佐藤さんは開発者として七年の経験があります。技術には自信があり、要件さえ決まれば大きな問題は起きないと考えていました。</p>



<p>プロジェクト開始時、佐藤さんは細かなWBSを作り、担当者と期限を設定し、週次会議の予定を入れました。リスク管理表も課題管理表も用意しています。キックオフ会議では、顧客から「非常に分かりやすい計画です」と評価されました。</p>



<p>佐藤さんは思いました。</p>



<p>「準備はできた。あとは、この計画に沿って進めればいい」</p>



<p>もちろん、そんなに簡単には進みません。</p>



<h3 class="wp-block-heading"><span id="toc3">あるある1――要件定義が終わった翌日に「少しだけ追加」が来る</span></h3>



<p>要件定義の最終日、顧客と開発側は二時間かけて機能一覧を確認しました。画面、帳票、権限、データ移行、外部連携について一通り合意し、議事録にも「要件確定」と記載しました。</p>



<p>佐藤さんは、その日の夕方に開発チームへ宣言します。</p>



<p>「これで要件は固まりました。明日から設計へ進みます」</p>



<p>翌朝、顧客の業務担当者からメールが届きました。</p>



<p>「昨日の会議後、現場へ確認したところ、出荷確定後にも数量を修正したいという意見がありました。小さな変更だと思いますので、追加をお願いします」</p>



<p>画面に入力欄を一つ増やす程度に聞こえます。しかし、出荷確定後の数量変更は、在庫数、売上金額、請求データ、操作履歴、承認権限、外部システムへの連携内容に影響します。すでに確定したデータを誰が、いつ、どの条件で変更できるのかも決めなければなりません。</p>



<p>佐藤さんが影響範囲を説明すると、顧客は少し驚いた様子で言います。</p>



<p>「でも、今のシステムではできていますよ」</p>



<p>既存システムでできることは、新システムでも当然できる。顧客から見れば自然な考えです。一方、開発側から見れば、要件一覧に記載されていなかった機能です。</p>



<p>ここで初めてPMは、「要件確定」という言葉の意味が関係者によって違うことに気づきます。</p>



<p>開発側の要件確定は、「これ以降の追加や変更は、費用と納期への影響を確認して扱う」という意味です。しかし顧客側では、「大体の方向性が決まり、細かな部分は今後調整できる」という意味で使われていることがあります。</p>



<p>PMがやるべきことは、「もう確定したので変更できません」と突っぱねることでも、「小さそうなので入れておきます」と安請け合いすることでもありません。</p>



<p>まず、変更内容を具体化します。次に、影響する画面、データ、テスト、外部連携を整理します。その上で、追加費用、納期への影響、代わりに削れる機能、次期対応へ回す選択肢を示します。</p>



<p>つまりPMの仕事は、変更を止めることではなく、変更の値段を見えるようにすることです。</p>



<p>初めてPMをすると、要件変更を「顧客のわがまま」と感じることがあります。しかし実際には、顧客自身も設計や画面を見て初めて必要性に気づく場合があります。問題は変更が起きることではなく、変更が無料で、影響なく、予定どおり入れられるように扱われることです。</p>



<h3 class="wp-block-heading"><span id="toc4">あるある2――進捗率90％から一週間動かない</span></h3>



<p>設計工程が始まり、佐藤さんは週次会議で各担当者に進捗率を確認しました。</p>



<p>「受注登録画面の設計はどのくらいですか」</p>



<p>担当者は答えます。</p>



<p>「90％です。ほぼ終わっています」</p>



<p>翌週も同じ質問をします。</p>



<p>「受注登録画面はどうですか」</p>



<p>「引き続き90％です。細かいところを確認しています」</p>



<p>その翌週も90％でした。</p>



<p>PM初心者が陥りやすいのは、進捗率を客観的な数字だと思ってしまうことです。しかし、作業者が感覚で答える進捗率は、かなり曖昧です。</p>



<p>人によっては、着手した時点で30％、大枠を書いた時点で70％、自分の中で書き終えた時点で90％と答えます。残り10％には、レビュー、指摘修正、顧客確認、関連資料の更新など、実は作業の半分近くが残っていることもあります。</p>



<p>また、「遅れています」と報告しづらい空気があると、進捗率は少しずつ楽観的になります。担当者に悪意があるとは限りません。本人も「今日集中すれば終わる」と信じています。ただし、その“今日”が毎日更新されます。</p>



<p>そこで佐藤さんは、進捗率ではなく完了条件を確認するようにしました。</p>



<p>「設計書は作成済みですか」</p>



<p>「自己レビューは終わっていますか」</p>



<p>「レビュー依頼は出しましたか」</p>



<p>「指摘事項は何件残っていますか」</p>



<p>「顧客へ確認が必要な項目はありますか」</p>



<p>この聞き方に変えると、90％の中身が見えてきます。設計書は書かれているものの、レビューは未実施。権限に関する不明点が三つあり、顧客へ質問も出していない。つまり、完了予定日はまだ見えていませんでした。</p>



<p>PMの仕事は数字を集めることではなく、その数字が何を意味しているかを確認することです。</p>



<p>進捗会議で「順調です」と言われ、そのまま議事録へ書くのは簡単です。しかし、本当に必要なのは、完了した成果物、残作業、阻害要因、次に誰が何をするかを明確にすることです。</p>



<p>「何％ですか」より「何が終われば完了ですか」の方が、現場では役に立ちます。</p>



<h3 class="wp-block-heading"><span id="toc5">あるある3――会議では誰も反対しなかったのに、終わった瞬間から反対意見が出る</span></h3>



<p>ある日の設計会議で、検索画面の仕様について議論しました。</p>



<p>A案は検索条件が少なく、操作が簡単です。B案は細かな検索ができますが、画面が複雑になります。会議ではA案を採用する方向で話が進みました。</p>



<p>佐藤さんは最後に確認します。</p>



<p>「では、A案で進めることで問題ないでしょうか」</p>



<p>参加者は黙っています。反対意見はありません。</p>



<p>「異論がないようですので、A案で決定します」</p>



<p>会議終了から十分後、開発者からチャットが届きました。</p>



<p>「A案だと、運用開始後に絶対困ると思います」</p>



<p>さらに別の担当者からも届きます。</p>



<p>「私もB案の方がよかったと思います。ただ、顧客がA案を希望しているようだったので言えませんでした」</p>



<p>顧客側の担当者からは、別のメールが届きます。</p>



<p>「社内で確認したところ、検索条件はもっと必要ではないかという話になりました」</p>



<p>会議では決まったはずなのに、何も決まっていません。</p>



<p>PM初心者は、沈黙を同意として扱いがちです。しかし会議の沈黙には、さまざまな意味があります。</p>



<p>内容を理解できていない。反対だが空気を壊したくない。上司や顧客の前で発言しづらい。自分の担当外だと思っている。早く会議を終わらせたい。後から考えればいいと思っている。</p>



<p>そのため、単に「異論はありますか」と聞くだけでは不十分です。</p>



<p>佐藤さんは次回から、役割ごとに確認するようにしました。</p>



<p>「業務担当の立場では、A案で運用できますか」</p>



<p>「開発側として、実装上の懸念はありますか」</p>



<p>「保守担当として、問い合わせが増えそうな点はありますか」</p>



<p>「今日決められない場合、いつまでに誰が確認しますか」</p>



<p>また、重要な決定は会議の最後に、決定事項、保留事項、前提条件を読み上げます。会議後には議事録を送り、「認識相違がある場合は何日までに連絡してください」と期限を設けます。</p>



<p>PMは会議を開催する人ではありません。会議で何を決めるのかを定義し、発言しやすい状態を作り、決定した内容が後から蒸発しないようにする人です。</p>



<p>会議の回数が多くても、決定が残らなければプロジェクトは進みません。</p>



<h3 class="wp-block-heading"><span id="toc6">あるある4――「確認します」が積み重なり、誰も回答期限を持っていない</span></h3>



<p>プロジェクトでは、分からないことが次々に出てきます。</p>



<p>「旧システムのこの項目は、新システムへ移行する必要がありますか」</p>



<p>「確認します」</p>



<p>「返品時の承認者は誰ですか」</p>



<p>「業務部へ確認します」</p>



<p>「外部システムの接続先はテスト用がありますか」</p>



<p>「ベンダーへ確認します」</p>



<p>言葉だけを聞けば、すべて前へ進んでいるように感じます。しかし一週間後、回答は一つも戻ってきません。</p>



<p>佐藤さんが状況を聞くと、それぞれ次のような返事が返ってきました。</p>



<p>「担当部署へメールは送りました」</p>



<p>「まだ回答がないので待っています」</p>



<p>「誰に聞けばよいか確認しているところです」</p>



<p>ここで問題なのは、質問した人が悪いということではありません。「確認する」という作業に、責任者と期限と次の行動が設定されていないことです。</p>



<p>PMになったばかりの頃は、課題表へ「顧客確認中」と書くだけで管理した気になります。しかし、「確認中」は状態であって計画ではありません。</p>



<p>必要なのは、誰が、誰に、何を、いつまでに確認し、回答がなければいつ催促し、さらに回答がなければ誰へ相談するかです。</p>



<p>たとえば次のようにします。</p>



<p>担当者：顧客システム部の田中さん。<br>回答期限：水曜日の正午。<br>回答がない場合：水曜日午後に再連絡。<br>金曜日までに決まらない場合：暫定案で設計を進め、週次会議で判断を依頼。</p>



<p>ここまで決めると、初めて課題が管理可能になります。</p>



<p>PMの一日は、「あの件どうなりましたか」と聞く時間でかなり消えていきます。格好よく言えばフォローアップですが、実態は催促です。</p>



<p>しかも、強く催促しすぎると関係が悪くなり、遠慮すると予定が遅れます。相手も別の仕事を抱えているため、プロジェクトの質問を最優先にしてくれるとは限りません。</p>



<p>PMに必要なのは、威圧的な催促ではなく、回答が必要な理由と期限への影響を伝えることです。</p>



<p>「まだですか」ではなく、「この回答が木曜日までにない場合、画面設計とテスト準備が止まり、来週のレビュー日程へ影響します」と伝える方が、相手も優先度を判断できます。</p>



<h3 class="wp-block-heading"><span id="toc7">あるある5――一番詳しい人が、一番忙しくて会議に出られない</span></h3>



<p>旧システムの仕様を理解しているのは、業務部の鈴木さん一人でした。</p>



<p>過去の資料は断片的で、なぜその処理になっているのか誰も説明できません。鈴木さんへ聞けば分かりますが、鈴木さんは通常業務の中心人物でもあります。</p>



<p>要件確認会議へ招待しても、「月末処理のため欠席します」「トラブル対応が入ったため参加できません」と返ってきます。</p>



<p>代わりに参加した人へ質問すると、こう言われます。</p>



<p>「そこは鈴木さんでないと分かりません」</p>



<p>会議後に鈴木さんへメールを送りますが、返信は数日後です。しかも短い回答だけで、追加の疑問が生まれます。</p>



<p>初めてPMをすると、必要な人を会議へ呼べば参加してもらえると思いがちです。しかし現実には、プロジェクトで最も必要な人ほど、本業でも重要人物であることが多く、予定を確保できません。</p>



<p>そして、その人の知識へ依存したままプロジェクトを進めると、確認待ちがボトルネックになります。</p>



<p>佐藤さんは、鈴木さんへ毎回一時間の会議参加を求めるのをやめました。代わりに、週二回、十五分だけ質問できる時間を確保してもらいます。質問は事前に一覧化し、選択肢と推奨案を付けました。</p>



<p>「この処理はどうしますか」と丸投げするのではなく、次のように聞きます。</p>



<p>「現行どおりAとする案と、運用を簡略化するB案があります。利用頻度と影響を踏まえ、開発側はB案を推奨します。問題があれば教えてください」</p>



<p>回答後は、その内容を業務ルールとして文書化します。</p>



<p>PMの役割は、詳しい人を探し続けることではありません。詳しい人から知識を取り出し、チームが共有できる形へ変えることです。</p>



<p>「その人がいないと分からない」は、担当者の能力の高さを示す一方、プロジェクトにとっては大きなリスクです。</p>



<h3 class="wp-block-heading"><span id="toc8">あるある6――偉い人の「それ、スマホでも使えるよね？」で計画が揺れる</span></h3>



<p>開発が半分ほど進んだ頃、役員向けの中間報告会が開かれました。</p>



<p>佐藤さんは、進捗、課題、今後の予定を説明し、開発中の画面をデモしました。大きな問題もなく、報告は順調に終わるように見えました。</p>



<p>最後に役員がスマートフォンを取り出し、何気なく言いました。</p>



<p>「これ、外出先からスマホでも使えるよね？」</p>



<p>会議室が静かになります。</p>



<p>今回のシステムは社内PCから利用する前提で設計されています。スマートフォン対応は要件に含まれていません。画面サイズだけでなく、認証方式、社外からの接続、端末管理、操作性、セキュリティ対策まで検討が必要です。</p>



<p>顧客のシステム担当者は答えます。</p>



<p>「現時点ではPC利用を前提にしています」</p>



<p>役員は悪気なく言います。</p>



<p>「今どきスマホで使えないのは不便じゃない？　難しくない範囲で考えておいて」</p>



<p>会議後、「難しくない範囲」が何を意味するのかを巡って議論が始まります。</p>



<p>業務部門は「役員要望なので対応したい」と言い、システム部門は「契約外なので難しい」と言い、営業担当は「追加費用の話をすると印象が悪い」と言います。開発者は「レスポンシブ対応だけならできるかもしれないが、安全な社外接続は別問題」と言います。</p>



<p>PMは、この一言を無視することも、その場で約束することもできません。</p>



<p>ここで必要なのは、曖昧な要望を具体的な選択肢へ変えることです。</p>



<p>閲覧だけ必要なのか。承認操作も必要なのか。会社支給端末だけか、個人端末も許可するのか。社外ネットワークから接続するのか。今回のリリースに含めるのか、次期開発とするのか。</p>



<p>その上で、最低限の対応、完全対応、次期対応という複数案を作り、それぞれの費用、納期、リスクを示します。</p>



<p>PMにとって怖いのは、偉い人の要望そのものではありません。「考えておいて」が、いつの間にか「対応することになっている」へ変換されることです。</p>



<p>重要な発言は議事録へ残し、決定なのか、検討依頼なのか、単なる意見なのかを明確にする必要があります。</p>



<h3 class="wp-block-heading"><span id="toc9">あるある7――担当者が突然いなくなり、引き継ぎ資料は「ソースコードです」</span></h3>



<p>開発が佳境に入った頃、中心メンバーの一人が体調不良で長期休暇に入ることになりました。</p>



<p>その担当者は、外部システム連携部分を一人で実装していました。佐藤さんは心配しながらも、別の開発者へ引き継げば対応できると考えます。</p>



<p>引き継ぎ資料の場所を確認すると、返ってきた答えはこうでした。</p>



<p>「基本的にはソースコードを見てもらえれば分かります」</p>



<p>設計書は途中まで。接続先の仕様書は古い版。テスト用アカウントの申請状況は本人のメールボックスにしかありません。動作確認で使っていたデータの作り方も、ローカルPCのメモに残っているだけでした。</p>



<p>別の開発者がコードを読むと、処理自体は理解できました。しかし、なぜ特定のエラーを無視しているのか、再送条件がなぜ三回なのか、外部ベンダーとどのような合意をしたのかは分かりません。</p>



<p>PM初心者は、人員計画を人数で考えがちです。六人のうち一人が抜けたなら、残り五人で分担すればよいと考えます。しかし実際には、知識、権限、接点、作業環境が特定の一人へ集中していることがあります。</p>



<p>人が一人減るのではなく、プロジェクトの記憶が一部消えるのです。</p>



<p>これを防ぐには、普段から次のような状態を作る必要があります。</p>



<p>設計上の判断を記録する。外部とのやり取りを共有場所へ残す。重要な作業を複数人でレビューする。接続情報や申請状況を個人管理にしない。定期的に担当を入れ替え、他の人でも作業できるか確かめる。</p>



<p>ただし、これらは忙しいと後回しになります。</p>



<p>「資料を整える時間があれば実装したい」</p>



<p>「今は本人が分かっているから問題ない」</p>



<p>「リリース後に整理する」</p>



<p>そして、整理される前に担当者が抜けます。</p>



<p>PMは、目の前の生産性だけでなく、誰かが明日休んでも継続できる状態を作らなければなりません。これは効率を下げる作業に見えますが、実際にはプロジェクトを止めないための保険です。</p>



<h3 class="wp-block-heading"><span id="toc10">あるある8――テスト環境では動くのに、本番環境だけ動かない</span></h3>



<p>結合テストが終わり、いよいよ本番環境へのリリース日を迎えました。</p>



<p>手順書どおりにアプリケーションを配置し、データベースを更新し、サービスを起動します。ログイン画面は表示されました。</p>



<p>佐藤さんは少し安心します。</p>



<p>しかし、外部システムへデータを送信するとエラーになりました。</p>



<p>テスト環境では何度も成功しています。プログラムも設定値も確認済みです。開発者は首をかしげます。</p>



<p>調査の結果、本番環境から外部システムへ接続するためのファイアウォール許可が入っていないことが分かりました。</p>



<p>申請したはずでした。</p>



<p>インフラ担当へ確認すると、「申請書は受け取っているが、接続元IPアドレスが未確定だったため保留していた」と言われます。開発側は、未確定なら連絡が来ると思っていました。インフラ側は、確定情報が送られてくるのを待っていました。</p>



<p>誰も嘘をついていません。誰も作業を拒否していません。それでも必要な設定は入っていませんでした。</p>



<p>これは開発現場でよく起きる、「依頼した側は依頼済み、受けた側は情報待ち」という状態です。</p>



<p>PMはタスク表に「ファイアウォール申請」と書き、完了にしていました。しかし本当に必要だったのは、「申請書提出」ではなく「本番環境から疎通できることの確認」です。</p>



<p>作業の完了条件を、書類を出したことにするか、目的を達成したことにするかで結果が変わります。</p>



<p>同じことはアカウント発行、DNS設定、証明書準備、監視登録、バックアップ設定などでも起きます。</p>



<p>「依頼メールを送った」</p>



<p>「申請チケットを作った」</p>



<p>「担当部署へ連絡した」</p>



<p>これらは途中経過です。</p>



<p>PMは、依頼系のタスクほど、受付、情報不足、実施予定日、実施完了、結果確認まで追う必要があります。</p>



<p>リリース当日に初めて本番接続を試すのも危険です。可能であれば事前疎通を行い、本番固有の設定差分を一覧化し、誰がいつ確認したかを残します。</p>



<p>本番障害の原因は、高度なプログラム不具合より、「一つ設定が入っていなかった」という地味なものだったりします。そして地味な原因ほど、関係者全員が「誰かがやっていると思った」と言います。</p>



<h3 class="wp-block-heading"><span id="toc11">あるある9――不具合を直したら、別の場所が壊れる</span></h3>



<p>受入テスト中、顧客から「受注を取り消した後も在庫が戻らない」という不具合が報告されました。</p>



<p>開発者が原因を調べ、在庫を戻す処理を追加します。修正後、受注取消では正しく在庫が戻るようになりました。</p>



<p>ところが翌日、返品処理をすると在庫が二重に増える不具合が見つかりました。</p>



<p>受注取消と返品で共通処理を利用しており、今回の修正が返品側にも影響していたのです。</p>



<p>さらに修正すると、今度は外部連携データの在庫数が合わなくなりました。</p>



<p>顧客からは言われます。</p>



<p>「一つ直すたびに別の不具合が出ていますが、品質は大丈夫ですか」</p>



<p>開発者は言います。</p>



<p>「仕様が複雑で、影響範囲が広いんです」</p>



<p>品質管理担当は言います。</p>



<p>「修正箇所以外の回帰テストが不足しています」</p>



<p>納期は迫っています。</p>



<p>PMはここで、「全部直してください」と言うだけでは仕事になりません。不具合の重要度、発生条件、業務影響、修正リスク、回避策を整理し、優先順位を決める必要があります。</p>



<p>すべての不具合を同じ重さで扱うと、チームは重要でない表示崩れに時間を使い、重大なデータ不整合への対応が遅れます。一方、「軽微だから後回し」としすぎると、顧客の不信感が高まります。</p>



<p>また、不具合件数だけを見ても品質は判断できません。</p>



<p>百件見つかっても、早い段階で軽微な問題を多く発見できているなら健全な場合があります。十件しかなくても、テストが不足して見つかっていないだけかもしれません。</p>



<p>PMが見るべきなのは、未解決件数、重大度、増減傾向、再発率、修正後の確認状況、特定機能への集中、テスト消化率です。</p>



<p>そして何より、修正のたびにどこを再確認するかを決める必要があります。</p>



<p>不具合対応は、穴を一つずつ塞ぐ作業ではありません。配管全体のつながりを見ながら、別の場所から水が漏れないようにする作業です。</p>



<h3 class="wp-block-heading"><span id="toc12">あるある10――「納期優先」「品質優先」「予算厳守」を全員が同時に言う</span></h3>



<p>リリースまで一か月となった時点で、開発は二週間ほど遅れていました。追加要件と不具合修正が重なり、テスト期間が圧迫されています。</p>



<p>佐藤さんは、顧客へ選択肢を提示しました。</p>



<p>一つ目は、リリース日を二週間延ばし、当初範囲をすべて実装する案。</p>



<p>二つ目は、重要度の低い機能を次回へ回し、予定日にリリースする案。</p>



<p>三つ目は、人員を追加し、予定日に全機能を目指す案。ただし費用が増え、途中参加者の立ち上がりにも時間がかかります。</p>



<p>すると関係者から次々に要望が出ました。</p>



<p>業務部門は「現場へ告知済みなので日程は変えられない」と言います。</p>



<p>システム部門は「不安定な状態で出すことはできない」と言います。</p>



<p>購買部門は「追加費用は認められない」と言います。</p>



<p>営業担当は「機能削減は顧客満足度に影響する」と言います。</p>



<p>全員の意見をまとめると、「納期は守る、品質は落とさない、機能は減らさない、費用は増やさない」となります。</p>



<p>しかし、魔法はありません。</p>



<p>初めてPMをすると、この矛盾を自分の努力で解決しようとします。会議を増やし、残業し、メンバーへ頑張ってもらい、何とか全部を成立させようとします。</p>



<p>短期間なら乗り切れるかもしれません。しかし、そのやり方を続けると、疲労によるミスが増え、さらに品質が悪化し、プロジェクトはもっと苦しくなります。</p>



<p>PMの役割は、無理な条件を黙って引き受けることではありません。何を優先し、何を諦めるかを、決定できる人へ判断してもらうことです。</p>



<p>そのためには、「厳しいです」だけでなく、数字と影響を示します。</p>



<p>現時点の残作業。必要工数。利用可能な人数。テストに最低限必要な日数。削減可能な機能。延期した場合の業務影響。予定どおり進めた場合に残るリスク。</p>



<p>判断者が選べる材料を作るところまでがPMの仕事です。</p>



<p>そして、決定内容は必ず記録します。後から問題が起きた際、「なぜこの範囲でリリースしたのか」を説明できるようにするためです。</p>



<h3 class="wp-block-heading"><span id="toc13">あるある11――問題を早く報告すると怒られ、遅く報告するともっと怒られる</span></h3>



<p>プロジェクト終盤、データ移行テストで重大な問題が見つかりました。</p>



<p>旧システムの顧客データに重複や不正な文字が多く、そのままでは新システムへ取り込めません。修正には業務部門の確認が必要で、予定していた移行リハーサルへ間に合わない可能性があります。</p>



<p>佐藤さんは、状況がまだ完全には分かっていないため、もう少し調査してから報告しようと考えました。中途半端な情報で不安を与えたくなかったからです。</p>



<p>二日後、影響範囲が大きいと判明し、顧客へ報告しました。</p>



<p>顧客から言われます。</p>



<p>「なぜ、分かった時点ですぐ共有しなかったのですか」</p>



<p>別のプロジェクトでは、問題の可能性を早めに報告したところ、「まだ確定していない話で現場を混乱させないでください」と言われたこともあります。</p>



<p>PMは、報告の早さと確度の間で悩みます。</p>



<p>ここで大切なのは、「確定した事実」と「まだ分からないこと」と「次に確認すること」を分けて伝えることです。</p>



<p>たとえば、次のように報告します。</p>



<p>現時点で、一部データが移行できない事象を確認している。対象件数と原因は調査中。移行リハーサルへ影響する可能性がある。明日の正午までに一次調査結果を報告する。現段階ではリリース延期を決定する状況ではない。</p>



<p>これなら、未確定な情報を断定せず、問題の存在は早く共有できます。</p>



<p>悪いPMは問題を起こす人ではありません。問題を隠し、判断の時間を失わせる人です。</p>



<p>ただし、何でも即座に全員へ投げればよいわけでもありません。影響範囲に応じて、まず誰へ伝えるか、どの段階で顧客へ共有するか、次の報告時刻をどうするかを決めます。</p>



<p>報告で重要なのは、完璧な説明よりも、相手が次の行動を判断できることです。</p>



<h3 class="wp-block-heading"><span id="toc14">あるある12――リリース成功の翌日に「ここからが本番です」と言われる</span></h3>



<p>さまざまな問題を乗り越え、システムは予定日から一週間遅れでリリースされました。</p>



<p>主要機能は正常に動作し、大きな障害もありません。佐藤さんは、ようやく肩の荷が下りた気がしました。</p>



<p>チームで簡単な打ち上げを行い、「大変だったけれど、無事に終わってよかった」と話しました。</p>



<p>翌朝八時、問い合わせが届きます。</p>



<p>「ログイン方法が分かりません」</p>



<p>続いて、別の問い合わせが届きます。</p>



<p>「昨日まで使っていた帳票と並び順が違います」</p>



<p>さらに電話が鳴ります。</p>



<p>「処理が遅い気がします」</p>



<p>「マニュアルの画面と実際の画面が違います」</p>



<p>「退職した人のアカウントが残っています」</p>



<p>「この操作を元に戻したいのですが」</p>



<p>システムとしては正常でも、利用者にとっては問題になることがあります。操作に慣れていない、説明が不足している、権限設定が実態と合っていない、旧システムとの違いが受け入れられない。リリース後に初めて見える課題は少なくありません。</p>



<p>顧客の責任者は佐藤さんへ言いました。</p>



<p>「リリースはスタートです。ここから安定運用までお願いします」</p>



<p>佐藤さんは、プロジェクトが終わったのではなく、フェーズが変わっただけだと気づきます。</p>



<p>PMはリリース日だけをゴールにしてはいけません。問い合わせ窓口、初動体制、障害時の連絡先、よくある質問、利用者教育、監視、バックアップ、保守チームへの引き継ぎを準備する必要があります。</p>



<p>また、開発メンバーがリリース直後に別案件へ移動すると、問題を調べられる人がいなくなります。少なくとも初期安定期間は、主要メンバーの対応時間を確保しておくべきです。</p>



<p>花火が上がるようなリリース成功の裏で、運用担当者の仕事は始まっています。</p>



<h2 class="wp-block-heading"><span id="toc15">初めてPMをして分かる「自分には決定権がない」という現実</span></h2>



<p>PMという名前から、プロジェクトに関することを自由に決められる立場を想像する人もいます。しかし、実際のPMは多くの責任を負う一方で、すべての決定権を持っているわけではありません。</p>



<p>予算を増やす判断は上司や顧客が行います。納期を変更するには業務部門や経営層の承認が必要です。メンバーの評価や配置は、それぞれの所属長が決めます。仕様は顧客が決めますが、技術的に実現できるかは開発側が判断します。セキュリティや運用には、別部署のルールがあります。</p>



<p>PMができるのは、情報を集め、選択肢を作り、影響を説明し、決定が必要な人へ期限内に判断を求めることです。</p>



<p>つまり、PMは「何でも決める人」というより、「誰が何を決めるべきかを明らかにする人」です。</p>



<p>この現実を知らないと、決められないことまで一人で抱え込みます。そして判断が遅れたとき、自分の能力不足だと感じてしまいます。</p>



<p>しかし、PMの失敗は、すべてを自分で決められないことではありません。決定者が不明なまま放置すること、判断材料を用意しないこと、判断期限を設定しないことです。</p>



<h2 class="wp-block-heading"><span id="toc16">PMの仕事は「人を管理する」より「認識のズレを管理する」</span></h2>



<p>プロジェクトの問題の多くは、技術だけが原因ではありません。</p>



<p>顧客は伝えたと思っている。開発者は聞いていないと思っている。インフラ担当は情報待ちだと思っている。依頼者は作業中だと思っている。担当者は自分の作業範囲ではないと思っている。</p>



<p>このような認識のズレが、小さな遅れや手戻りを生みます。</p>



<p>PMが管理する対象として、スケジュール、コスト、品質、リスクがよく挙げられます。しかし現場で毎日起きているのは、言葉の意味、完了条件、優先順位、責任範囲、期限の認識を合わせる作業です。</p>



<p>「対応します」という言葉一つでも、人によって意味が違います。</p>



<p>今日中に着手する。</p>



<p>今週中に終える。</p>



<p>余裕があれば対応する。</p>



<p>担当者へ依頼する。</p>



<p>検討だけする。</p>



<p>PMは、この曖昧さを具体化します。</p>



<p>誰がやるのか。いつまでか。何をもって完了か。完了後に誰が確認するか。できない場合はいつ相談するか。</p>



<p>細かく聞くと、管理が厳しいと思われることもあります。しかし、問題が起きた後で責任を追及するより、最初に確認する方がはるかに健全です。</p>



<h2 class="wp-block-heading"><span id="toc17">初心者PMがやりがちな失敗</span></h2>



<h3 class="wp-block-heading"><span id="toc18">自分が全部理解してから動こうとする</span></h3>



<p>技術者出身のPMほど、自分で詳細を理解し、正しい答えを出そうとします。しかしプロジェクトが大きくなると、一人ですべてを理解することはできません。</p>



<p>PMに必要なのは、すべての答えを持つことではなく、誰が答えを持っているかを知り、必要なタイミングで参加してもらうことです。</p>



<h3 class="wp-block-heading"><span id="toc19">遅れを取り戻すため、自分が作業を引き取る</span></h3>



<p>資料作成やテスト、場合によっては実装まで自分で引き取るPMもいます。一時的には進みますが、PMの確認や調整が止まり、別の問題が大きくなります。</p>



<p>PMが実作業を行うこと自体が悪いわけではありません。ただし、自分にしかできない管理作業を止めてまで引き取ると、全体としては遅くなることがあります。</p>



<h3 class="wp-block-heading"><span id="toc20">悪い報告を整えてから出そうとする</span></h3>



<p>原因や対策が決まってから報告しようとすると、共有が遅れます。重大な可能性がある場合は、事実、未確定事項、次回報告予定を分けて早めに伝える方が安全です。</p>



<h3 class="wp-block-heading"><span id="toc21">会議を増やせば解決すると思う</span></h3>



<p>問題が増えると、定例会議、課題会議、品質会議、進捗会議を追加したくなります。しかし、参加者と目的が同じなら、報告のための時間が増えるだけです。</p>



<p>会議では、共有だけなのか、相談なのか、決定なのかを明確にします。資料で済む内容は事前共有し、会議では判断が必要な論点へ時間を使います。</p>



<h3 class="wp-block-heading"><span id="toc22">メンバーへ気を遣い、遅れを聞けない</span></h3>



<p>厳しいPMと思われたくないため、進捗確認を遠慮する人もいます。しかし、遅れを早く知ることは責めるためではなく、支援するためです。</p>



<p>「なぜ遅れたのですか」だけでなく、「完了を妨げているものは何ですか」「誰の支援があれば進みますか」と聞くことで、確認は追及ではなくなります。</p>



<h3 class="wp-block-heading"><span id="toc23">顧客の要望をすべてチームへそのまま渡す</span></h3>



<p>顧客から来た要望を整理せず、開発者へ転送するだけでは、PMが伝書鳩になります。</p>



<p>要望の目的、優先度、期限、背景、受入条件を確認し、実現方法の検討に必要な形へ整えることが必要です。反対に、開発側の「難しい」という回答も、そのまま顧客へ返すのではなく、理由と代替案を整理します。</p>



<h2 class="wp-block-heading"><span id="toc24">初めてPMをする人が、最初に用意しておきたいもの</span></h2>



<h3 class="wp-block-heading"><span id="toc25">完了条件を記載したタスク表</span></h3>



<p>担当者と期限だけでなく、何をもって完了とするかを書きます。「設計書作成」ではなく、「設計書作成、内部レビュー完了、指摘反映、顧客確認依頼まで」とした方が、認識が揃います。</p>



<h3 class="wp-block-heading"><span id="toc26">決定事項を残す記録</span></h3>



<p>誰が、いつ、何を、どの前提で決めたかを残します。議事録が長すぎると読まれないため、決定事項、保留事項、担当者、期限を冒頭にまとめると実用的です。</p>



<h3 class="wp-block-heading"><span id="toc27">課題とリスクを分けた一覧</span></h3>



<p>すでに起きている問題が課題、今後起きる可能性があるものがリスクです。両方を同じ表で管理しても構いませんが、対応の考え方は異なります。</p>



<p>リスクには、発生確率、影響、予防策、発生した場合の対応、監視する兆候を設定します。</p>



<h3 class="wp-block-heading"><span id="toc28">変更管理のルール</span></h3>



<p>要件変更を禁止するのではなく、変更時に影響を確認し、誰が承認するかを決めます。口頭やチャットで出た要望が、そのまま確定仕様にならない仕組みが必要です。</p>



<h3 class="wp-block-heading"><span id="toc29">エスカレーション先</span></h3>



<p>自分で解決できない問題を、誰へ、どの条件で相談するかを決めておきます。PMが抱え続けるほど、上位者が判断できる時間は減ります。</p>



<h3 class="wp-block-heading"><span id="toc30">リリース後の体制</span></h3>



<p>問い合わせ窓口、障害連絡、初期対応者、開発者の待機期間、保守への引き継ぎを、開発中から準備します。リリース前日に考えるには遅すぎます。</p>



<h2 class="wp-block-heading"><span id="toc31">PMが毎日している地味だが重要な仕事</span></h2>



<p>PMの成果は、完成した画面やプログラムのように目で見えません。</p>



<p>質問へ回答期限を付ける。</p>



<p>会議で決まらなかったことを明確にする。</p>



<p>担当者が休む前に引き継ぎを依頼する。</p>



<p>曖昧な要望を具体化する。</p>



<p>問題が小さいうちに関係者へ共有する。</p>



<p>不具合の優先順位を整理する。</p>



<p>依頼した設定が本当に反映されたか確認する。</p>



<p>顧客の言葉を開発者が判断できる形へ翻訳する。</p>



<p>開発者の技術的な懸念を顧客が理解できる言葉へ翻訳する。</p>



<p>誰も担当していない作業を見つける。</p>



<p>これらは、一つひとつを見ると小さな仕事です。しかし、この小さな仕事が抜けると、後で大きな問題になります。</p>



<p>優秀なPMがいるプロジェクトでは、重大な問題が何も起きていないように見えることがあります。そのため、「PMは何をしていたのか」と思われることさえあります。</p>



<p>実際には、問題が大きくなる前に見つけ、関係者を動かし、表面化しないように処理しているのです。</p>



<p>消防士が火を消す姿は目立ちますが、火災報知器を点検し、避難経路を確保し、火が出ないようにする仕事は目立ちません。PMの仕事も、それに似ています。</p>



<h2 class="wp-block-heading"><span id="toc32">「良いPM」は、強く引っ張る人とは限らない</span></h2>



<p>PMにはリーダーシップが必要だと言われます。その言葉から、大きな声で方針を示し、迷わず決断し、チームを引っ張る人物を想像するかもしれません。</p>



<p>しかし現場では、話を聞く力、分からないと言える力、問題を早く表へ出す力、意見の違う人同士の間に立つ力の方が重要になる場面があります。</p>



<p>技術者が懸念を言いやすい。顧客が変更の背景を説明しやすい。遅れが隠されない。分からないことが放置されない。失敗を報告しても、まず対策を考えられる。</p>



<p>このような空気を作れるPMのチームは、問題がなくなるわけではありません。しかし、問題を早く扱えるようになります。</p>



<p>逆に、PMが強く見せようとして何でも即答し、遅れを厳しく責め、反対意見を遮ると、表面上は統制が取れているように見えても、悪い情報が上がってこなくなります。</p>



<p>プロジェクトにとって最も危険なのは、問題があることではなく、問題が見えないことです。</p>



<h2 class="wp-block-heading"><span id="toc33">それでもPMの仕事には面白さがある</span></h2>



<p>ここまで読むと、PMは催促と調整と謝罪ばかりの、割に合わない仕事に見えるかもしれません。</p>



<p>実際、楽な仕事ではありません。自分が書いたコードのように、成果を直接示しづらいこともあります。うまく進めばチームの成果、失敗すればPMの管理不足と言われることもあります。</p>



<p>それでも、PMにしか見えない景色があります。</p>



<p>業務担当者が何に困っているのか。開発者がどこで苦労しているのか。インフラやセキュリティがなぜ慎重なのか。経営層が何を重視しているのか。予算、納期、品質、運用がどのようにつながっているのか。</p>



<p>個別の作業だけを見ていたときには分からなかった、プロジェクト全体の構造が見えるようになります。</p>



<p>また、対立していた関係者が同じ目的を理解し、難しい判断に納得し、チームが一つの成果を出した瞬間には、大きな達成感があります。</p>



<p>PMの価値は、誰よりも多く作業することではありません。それぞれ異なる立場の人が、同じ方向へ進める状態を作ることです。</p>



<h2 class="wp-block-heading"><span id="toc34">PMは予定を守らせる人ではなく、予定が崩れたときに前へ進める人</span></h2>



<p>初めてPMを担当すると、計画を立て、指示を出し、進捗を管理する仕事を想像します。</p>



<p>しかし、実際のプロジェクトでは計画どおりに進まないことの方が多くあります。</p>



<p>要件は変わります。担当者は休みます。回答は遅れます。会議で決めたことが覆ります。本番環境だけ動きません。不具合修正で別の不具合が出ます。納期、品質、費用のすべてを守るよう求められます。</p>



<p>PMの仕事は、この現実を力ずくで計画へ戻すことではありません。</p>



<p>何が起きているかを見えるようにする。</p>



<p>誰が判断すべきかを明確にする。</p>



<p>選択肢と影響を整理する。</p>



<p>決定事項を残す。</p>



<p>問題を早く共有する。</p>



<p>チームが動けない理由を取り除く。</p>



<p>そして、予定が崩れた後にも、プロジェクトを次の一歩へ進める。</p>



<p>これが、実際のPMに求められる仕事です。</p>



<p>初めて担当した人が「想像と違う」と感じるのは、能力が足りないからではありません。PMという仕事が、外から見るよりはるかに地味で、複雑で、人間くさいからです。</p>



<p>完璧な計画を作れるPMはいません。すべての問題を予測できるPMもいません。</p>



<p>良いPMとは、問題を起こさない人ではなく、問題を隠さず、関係者と一緒に扱い、現実的な次の手を作れる人です。</p>



<p>もし初めてのPM業務で、毎日「あの件はどうなりましたか」と聞き、会議の認識違いを直し、誰も拾わない作業を拾い、予定表を書き換えているなら、それはPMらしい仕事ができていないのではありません。</p>



<p>むしろ、まさにPMの仕事をしています。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.takeho.com/i6bpxjjwdshc9jvcgc0i1lnygyor9df2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AIエージェントに社員が置き換わる日――それでも企業は「組織」と呼べるのか</title>
		<link>https://blog.takeho.com/5lled7p1po7t7d0n90p6hvwoxudwv5aq/</link>
					<comments>https://blog.takeho.com/5lled7p1po7t7d0n90p6hvwoxudwv5aq/#respond</comments>
		
		<dc:creator><![CDATA[たけほ]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 04:39:00 +0000</pubDate>
				<category><![CDATA[現場IT]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[組織]]></category>
		<guid isPermaLink="false">https://blog.takeho.com/?p=1881</guid>

					<description><![CDATA[AIは、私たちの仕事と生活を大きく変えました。 以前であれば、分からないことは検索サイトで調べ、複数の記事を読み比べ、必要な情報を自分で拾い集める必要がありました。しかし今は、ChatGPTのようなAIに聞けば、短時間で [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>AIは、私たちの仕事と生活を大きく変えました。</p>



<p>以前であれば、分からないことは検索サイトで調べ、複数の記事を読み比べ、必要な情報を自分で拾い集める必要がありました。しかし今は、ChatGPTのようなAIに聞けば、短時間で要点が整理され、必要に応じて補足情報まで返ってきます。</p>



<p>文章作成、要約、調査、翻訳、アイデア出し、問い合わせ対応の整理など、これまで人間が時間をかけていた作業の多くが軽くなりました。これは間違いなく大きな進歩です。</p>



<p>一方で、便利さが進むほど、人間は考える力や人と向き合う力を少しずつ使わなくなるのではないか、という不安もあります。</p>



<p>さらにAIエージェントの登場により、AIは質問に答えるだけでなく、目的に向けて自律的に処理を進める存在になりつつあります。人間が担っていた仕事がAIに置き換わる未来は、もはや遠い話ではありません。</p>



<p>そのとき企業は、何をもって組織と呼ばれるのでしょうか。</p>



<p>この記事では、AIエージェントによる効率化の先にある、企業・組織の存在意義について考えていきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7"><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">AIは、仕事の入口を変えた</a></li><li><a href="#toc2" tabindex="0">便利さは、人間から「途中の苦労」を奪う</a></li><li><a href="#toc3" tabindex="0">AIエージェントは「作業者」になり始めている</a></li><li><a href="#toc4" tabindex="0">企業にとって、省人化は合理的である</a></li><li><a href="#toc5" tabindex="0">社員はコストか、組織の意味を運ぶ存在か</a></li><li><a href="#toc6" tabindex="0">組織とは、処理を回す装置なのか</a></li><li><a href="#toc7" tabindex="0">AIエージェントが進んだ未来を想像する</a></li><li><a href="#toc8" tabindex="0">組織が社員に伝えるべきこと</a></li><li><a href="#toc9" tabindex="0">利益最大化の先に何を置くのか</a></li><li><a href="#toc10" tabindex="0">人間は、AIより速くなる必要があるのか</a></li><li><a href="#toc11" tabindex="0">AI導入前に、組織が考えるべき問い</a></li><li><a href="#toc12" tabindex="0">AIエージェント導入で見落とされやすいもの</a></li><li><a href="#toc13" tabindex="0">顧客は本当に「速さ」だけを求めているのか</a></li><li><a href="#toc14" tabindex="0">組織の未来は、AIの性能だけでは決まらない</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">AIは、仕事の入口を変えた</span></h2>



<p>OpenAIの登場によって、多くの人にとってAIは特別な研究技術ではなく、日常的に使える道具になりました。</p>



<p>分からないことを調べる。文章を整える。内容を要約する。言い回しを考える。資料の構成を作る。専門的な内容の概要をつかむ。これらの作業は、以前よりもはるかに短い時間で行えるようになりました。</p>



<p>特に大きな変化は、情報の探し方です。</p>



<p>検索サイトは、情報が存在する場所を示してくれます。一方でAIは、情報を人間が理解しやすい形に整理してくれます。検索では、自分でキーワードを考え、複数のページを開き、どれが必要な情報かを判断する必要があります。しかしAIであれば、質問の意図をくみ取り、背景を補い、次に確認すべき点まで示してくれることがあります。</p>



<p>これは単なる時間短縮ではありません。</p>



<p>人間が何かを始めるときの「最初の負担」を軽くしてくれるという意味で、大きな価値があります。</p>



<p>たとえば仕事で顧客へ返信する場合、必要な情報は分かっていても、どう書けば角が立たないか、どこまで説明すればよいか、謝罪の度合いはどの程度が適切か、といった判断に時間がかかります。AIは、そうした文章のたたき台を作り、人間が調整しやすい形にしてくれます。</p>



<p>また、AIは聞いたことだけに答えるとは限りません。目的に対して不足している観点、注意点、別の選択肢まで補ってくれることがあります。こちらが気づいていなかった論点を提示してくれることもあります。</p>



<p>利用すればするほど、AIの使い方も分かってきます。何を聞けばよいか、どのように指示すればよいか、どの部分を人間が確認すべきかが見えてきます。AIは人間の仕事を奪うだけの存在ではなく、人間の作業を支え、思考の入口を広げる存在でもあります。</p>



<p>この便利さは、今後さらに当たり前になっていくでしょう。</p>



<h2 class="wp-block-heading"><span id="toc2">便利さは、人間から「途中の苦労」を奪う</span></h2>



<p>ただし、AIの便利さには注意すべき点もあります。</p>



<p>人間は、考える過程で成長します。すぐに答えが出ない問題に向き合い、調べ、悩み、比較し、自分なりの結論を出す。その過程で、判断力や説明力が鍛えられます。</p>



<p>しかしAIに聞けば、答えの形をしたものがすぐに返ってきます。</p>



<p>もちろん、それは便利です。すべてを自力で考える必要はありません。道具を使って効率化することは、仕事において当然のことです。しかし、考える前にAIへ聞くことが習慣になると、人間は「途中で悩む時間」を失っていきます。</p>



<p>悩む時間は非効率に見えます。けれど、その非効率の中でしか身につかない力もあります。</p>



<p>自分で言葉を探す力。情報の正しさを疑う力。相手に伝わるように説明する力。複数の選択肢を比べる力。あえて結論を急がずに考える力。</p>



<p>AIが整えた文章を見て「これでよい」と判断することは簡単です。しかし、自分自身がその内容を理解し、説明できているかは別の問題です。AIの回答を使っているうちに、自分の言葉で考える機会が減れば、表面上の仕事は速くなっても、内側の思考力は弱くなるかもしれません。</p>



<p>また、AIは人とのコミュニケーションにも影響します。</p>



<p>以前なら、分からないことは上司や同僚に聞いていました。相談する中で、自分の理解不足に気づいたり、相手の考え方を学んだり、社内の事情を知ることができました。そこには、単なる情報交換以上の意味がありました。</p>



<p>AIに聞けば、すぐに答えが返ってきます。相手の都合を気にする必要もありません。怒られることも、嫌な顔をされることもありません。これは非常に使いやすい反面、人と話して調整する力を使わなくなる可能性があります。</p>



<p>人間同士の会話は、AIとの会話より面倒です。誤解もあります。感情もあります。相手の立場もあります。言い方を間違えれば関係が悪くなることもあります。</p>



<p>しかし、その面倒さの中で、人はコミュニケーション能力を身につけます。</p>



<p>AIが常に丁寧に受け止めてくれる環境に慣れると、思い通りに反応しない人間との会話が、以前より負担に感じられるかもしれません。仕事に必要な調整力、交渉力、雑談力、相手の空気を読む力が弱くなる可能性もあります。</p>



<p>AIは非常に便利です。だからこそ、人間が何を使わなくなるのかを意識しなければなりません。</p>



<h2 class="wp-block-heading"><span id="toc3">AIエージェントは「作業者」になり始めている</span></h2>



<p>これまでのAIは、人間が質問し、それに対して答える存在でした。主導権は人間側にありました。</p>



<p>しかしAIエージェントは違います。</p>



<p>AIエージェントは、目的を与えられると、その目的を達成するために必要な手順を考え、情報を集め、処理を実行し、結果を返すことができます。単なる回答者ではなく、作業者に近い存在です。</p>



<p>たとえば、問い合わせ対応、データ入力、資料作成、営業リストの作成、社内FAQ、経理処理、マーケティング分析、レポート作成など、一定のルールに沿って進められる業務はAIエージェントと相性が良い領域です。</p>



<p>企業にとって、これは非常に魅力的です。</p>



<p>AIエージェントは疲れません。休憩も必要ありません。夜間でも処理できます。人間のように体調や感情に左右されることも少なく、作業品質を一定に保ちやすい。残業代、有給休暇、採用、教育、退職といった労務管理も不要です。</p>



<p>人件費を抑えながら、精度の高い処理を24時間続けられる可能性がある。これは組織にとって大きなメリットです。</p>



<p>もちろん、AIエージェントにも管理は必要です。誤った処理をしないか、情報の扱いに問題がないか、最終判断を誰が行うのかといった設計は欠かせません。それでも、人間が担っていた業務の一部がAIへ移っていく流れは避けられないでしょう。</p>



<p>ここで考えたいのは、置き換わるのが単なる作業だけなのか、という点です。</p>



<p>ある仕事には、表に見える処理と、裏側にある経験があります。</p>



<p>顧客対応であれば、問い合わせ内容を読むだけでなく、相手の不安を想像し、言葉を選び、過去の経緯を踏まえ、社内で確認しながら対応します。その過程で、担当者は顧客がどこで困るのかを学びます。どの説明が誤解を生むのかを覚えます。どの言葉が安心につながるのかを身につけます。</p>



<p>AIエージェントがその作業を代替すれば、処理は速くなるでしょう。しかし、その仕事を通じて人間が得ていた経験は、どこで育つのでしょうか。</p>



<p>効率化によって面倒な作業を減らすことは重要です。ただ、その面倒な作業の中に、人を育てる機会が含まれていた場合、組織は別の形で学習の場を作らなければなりません。</p>



<p>AIエージェントの導入は、単なる業務改善ではありません。人間が仕事を覚える仕組みそのものを変える可能性があります。</p>



<h2 class="wp-block-heading"><span id="toc4">企業にとって、省人化は合理的である</span></h2>



<p>AIエージェントの導入によって、企業は多くのメリットを得られます。</p>



<p>業務のスピードが上がる。処理の精度が安定する。人的ミスが減る。コストを削減できる。人手不足を補える。深夜や休日でも処理を継続できる。</p>



<p>これらは、企業活動において非常に大きな価値があります。</p>



<p>企業は利益を出さなければ存続できません。利益がなければ、社員に給与を支払うことも、サービスを改善することも、社会へ価値を提供し続けることもできません。無駄な作業を減らし、生産性を高めることは、企業として当然の努力です。</p>



<p>その意味で、AIエージェントによる効率化や利益最大化は間違いではありません。</p>



<p>むしろ、活用できる技術を使わずに、人間が単純作業に追われ続ける方が問題とも言えます。社員が疲弊する作業、創造性を必要としない作業、繰り返しの確認作業は、AIに任せた方がよい場面も多いはずです。</p>



<p>ただし、合理性だけで組織を設計していくと、別の問いが生まれます。</p>



<p>AIに任せられる業務をすべて任せたあと、人間は何をするのか。</p>



<p>AIより遅い作業者として残るのか。AIの監視役になるのか。例外処理だけを担当するのか。それとも、AIによって生まれた余白を使い、顧客理解、企画、判断、関係づくりといった人間にしか担いにくい領域へ進むのか。</p>



<p>この違いは、組織の未来を大きく分けます。</p>



<p>AIを人間の代替としてだけ見る組織では、人は徐々に不要な存在として扱われるかもしれません。一方で、AIを人間の能力を広げる道具として見る組織では、人はより高い価値を生む役割へ移ることができます。</p>



<p>どちらに進むかは、AIの性能だけで決まるわけではありません。</p>



<p>組織が、社員をどのような存在として見ているかで決まります。</p>



<h2 class="wp-block-heading"><span id="toc5">社員はコストか、組織の意味を運ぶ存在か</span></h2>



<p>会計上、人件費はコストです。給与、社会保険、採用費、教育費、福利厚生、労務管理。経営の数字だけを見れば、社員を減らし、AIエージェントで代替することは魅力的に映ります。</p>



<p>しかし、社員は本当にコストだけなのでしょうか。</p>



<p>社員は、顧客と接します。現場の違和感に気づきます。マニュアルでは拾いきれない事情を判断します。社内の空気を作ります。新人に仕事を教えます。失敗の経験を共有します。顧客からの感謝や不満を、組織の記憶として持ち帰ります。</p>



<p>これらは数字にしにくい価値です。</p>



<p>AIエージェントは正確な処理ができます。丁寧な文章も作れます。過去のデータから最適な回答を導くこともできます。しかし、組織の中で働く人間が持っている感覚や責任感、顧客と向き合った経験まですべて同じ形で置き換えられるわけではありません。</p>



<p>たとえば、顧客から強い不満が届いたとします。</p>



<p>AIは内容を分析し、適切な謝罪文や対応案を作ることができるでしょう。しかし、その不満がなぜ起きたのか、社内のどの習慣が原因なのか、今後同じことを起こさないために誰と話すべきかを考え、組織の中で動くのは人間の役割です。</p>



<p>もちろん、AIも改善案を出すことはできます。しかし、それを受け止めて実際の文化や行動に変えていくには、人間同士の関係が必要になります。</p>



<p>社員は、単に作業をこなす人ではありません。組織の考え方を日々の行動に変換し、社会との接点で表現する存在です。</p>



<p>もし社員をコストとしてだけ見れば、AIエージェントへの置き換えは自然な流れになります。しかし社員を、組織の価値観を外へ伝え、内側へ持ち帰る存在として見れば、単純な置き換えでは済まないはずです。</p>



<p>AIに任せる仕事は任せるべきです。けれど、人間が担っていた意味まで消してしまわないようにする必要があります。</p>



<h2 class="wp-block-heading"><span id="toc6">組織とは、処理を回す装置なのか</span></h2>



<p>ここで、組織とは何かを考える必要があります。</p>



<p>組織とは、人が集まり、共通の目的に向かって役割を分担する仕組みです。企業であれば、商品やサービスを提供し、顧客に価値を届け、その対価として利益を得ます。</p>



<p>しかし、組織は単なる業務処理の集合体ではありません。</p>



<p>もし処理だけが目的であれば、AIエージェントによって多くの業務が自動化された企業は、非常に優れた組織に見えるでしょう。速く、安く、正確で、休まず動く。人間同士の摩擦も少なく、労務管理の負担も小さい。</p>



<p>それは企業として強い姿かもしれません。</p>



<p>では、その企業は社会に対して何を語るのでしょうか。</p>



<p>自社は何のために存在しているのか。<br>誰にどのような価値を届けたいのか。<br>利益を得た先に、何を実現したいのか。<br>社員に何を求め、何を約束するのか。</p>



<p>AIエージェントは、目的を与えれば優秀に動きます。だからこそ、目的が曖昧な組織ほど危うくなります。</p>



<p>効率化を目的にAIを導入したつもりが、いつの間にか効率化そのものが組織の中心になる。利益を高めるためにAIを使っていたはずが、いつの間にか利益だけが判断基準になる。</p>



<p>その状態でも、売上は上がるかもしれません。顧客対応も速くなるかもしれません。会社としては成功しているように見えるかもしれません。</p>



<p>しかし、組織の中で働く人間が、自分たちの仕事に意味を感じられなくなったとき、その組織は何を失っているのでしょうか。</p>



<p>AI時代の組織には、これまで以上に明確な軸が必要です。</p>



<p>AIに何を任せるか。<br>人間が何を担うか。<br>顧客との関係をどう考えるか。<br>利益と信頼がぶつかったときに何を選ぶか。<br>社員をどのような存在として扱うか。</p>



<p>これらの判断が、組織の定義を作っていきます。</p>



<h2 class="wp-block-heading"><span id="toc7">AIエージェントが進んだ未来を想像する</span></h2>



<p>もし多くの業務がAIエージェントに置き換わったら、企業はどのような姿になるのでしょうか。</p>



<p>問い合わせ対応はAIが行う。営業活動もAIが見込み客を探し、提案文を作り、最適なタイミングで連絡する。経理処理もAIが確認する。採用もAIが応募者を分類する。マーケティングもAIが分析し、記事を書き、広告を調整する。社内の質問にもAIが答える。</p>



<p>人間は、少数の管理者や承認者だけになるかもしれません。</p>



<p>顧客から見れば、対応は速く、価格も下がり、サービスも安定する可能性があります。企業から見れば、人件費は下がり、利益率は高まり、競争力も上がるかもしれません。</p>



<p>一見すると理想的です。</p>



<p>けれど、その組織では、誰が顧客の声を聞いているのでしょうか。誰が現場の違和感を感じ取るのでしょうか。誰が失敗から学び、次の社員に伝えるのでしょうか。誰が会社の考え方を日々の行動として示すのでしょうか。</p>



<p>AIはデータを分析できます。顧客の声を分類できます。不満の傾向も読み取れます。しかし、顧客と向き合ったときの重さや、感謝されたときの実感、現場の沈黙に含まれる不安のようなものを、組織はどのように受け取るのでしょうか。</p>



<p>数字には出にくいけれど、組織を支えているものがあります。</p>



<p>ちょっとした雑談から生まれる改善案。誰かの困りごとに気づく感覚。過去の失敗を覚えている人の慎重さ。顧客との長い関係から生まれる判断。こうしたものは、効率化の対象として見れば無駄に見えることがあります。</p>



<p>しかし、その無駄に見える部分が、組織の信頼を支えている場合もあります。</p>



<p>AIエージェントが進んだ未来の企業は、非常に洗練された処理能力を持つでしょう。けれど、その企業が社会からどのように見られるかは、処理能力だけでは決まりません。</p>



<p>社会は、企業を単なる処理装置として見るわけではありません。</p>



<p>その企業が何を大切にしているのか。困ったときにどう対応するのか。顧客にどのような姿勢を見せるのか。社員をどのように扱うのか。そうした部分も含めて、企業は評価されます。</p>



<h2 class="wp-block-heading"><span id="toc8">組織が社員に伝えるべきこと</span></h2>



<p>AIエージェントを導入する組織は、社員に対して何を伝えるべきでしょうか。</p>



<p>「AIを使って生産性を上げましょう」だけでは不十分です。<br>「AIに負けないようにスキルを磨きましょう」だけでも足りません。<br>「単純作業はAIに任せ、人間は高度な仕事をしましょう」という言葉も、具体性がなければ不安を残します。</p>



<p>社員が知りたいのは、自分たちがこれから組織の中でどのような役割を持つのかです。</p>



<p>AIに仕事を奪われるのではないか。自分の経験は不要になるのではないか。会社は人を減らしたいだけではないか。そうした不安を抱える人は少なくないはずです。</p>



<p>だからこそ、組織はAI導入の目的を語る必要があります。</p>



<p>AIによって何を減らすのか。<br>AIによって何を増やすのか。<br>人間にどのような判断を任せるのか。<br>社員が成長する機会をどこに作るのか。<br>AIを使って、顧客への価値をどう高めるのか。</p>



<p>AIによって生まれた時間を、さらに多くの処理で埋めるだけなのか。それとも、顧客理解、サービス改善、社員教育、組織文化の形成に使うのか。</p>



<p>この違いは、社員の受け止め方を大きく変えます。</p>



<p>AIを導入しても、人間の役割が明確であれば、社員はAIを脅威だけでなく武器として捉えることができます。反対に、目的が曖昧なまま導入されると、AIは社員にとって自分の価値を奪う存在に見えてしまいます。</p>



<p>AI時代に必要なのは、技術の説明だけではありません。</p>



<p>組織としての意思表示です。</p>



<h2 class="wp-block-heading"><span id="toc9">利益最大化の先に何を置くのか</span></h2>



<p>企業が利益を追求することは当然です。AIエージェントによって業務を効率化し、利益を最大化することも間違いではありません。</p>



<p>ただし、利益は企業のすべてなのでしょうか。</p>



<p>利益は企業を続けるために必要です。しかし、利益を得た先に何を実現するのかがなければ、企業は単にお金を生む仕組みになってしまいます。</p>



<p>AIエージェントは、設定された目的に対して合理的に動きます。</p>



<p>「コストを下げる」ことを目的にすれば、その方向で最適化するでしょう。<br>「対応時間を短くする」ことを目的にすれば、速さを重視するでしょう。<br>「売上を最大化する」ことを目的にすれば、売上につながる行動を優先するでしょう。</p>



<p>だからこそ、何を目的として設定するかが重要です。</p>



<p>顧客の安心。長期的な信頼。社員の成長。社会への責任。品質へのこだわり。こうした要素を目的に含めなければ、AIはそれらを自然に守ってくれるわけではありません。</p>



<p>AIは、組織の価値観を映す鏡のようなものです。</p>



<p>効率だけを求める組織には、効率の答えを返します。利益だけを求める組織には、利益の答えを返します。顧客との信頼を重視する組織には、そのための選択肢を返します。</p>



<p>つまり、AIの導入によって問われるのは、AIの性能だけではありません。</p>



<p>組織が何を正しいと考えているかです。</p>



<p>短期的には利益が出るが、信頼を損なう可能性がある選択。効率は良いが、社員の成長機会を奪う選択。自動化できるが、人間が関わることで価値が増す選択。</p>



<p>こうした場面で何を選ぶかによって、その組織の本質が見えてきます。</p>



<h2 class="wp-block-heading"><span id="toc10">人間は、AIより速くなる必要があるのか</span></h2>



<p>AIが進化するほど、人間はAIと比較されるようになります。</p>



<p>AIの方が速い。AIの方が正確。AIの方が疲れない。AIの方がコストが低い。そう考えると、人間は不利に見えます。</p>



<p>しかし、人間はAIより速く処理するためだけに存在しているのでしょうか。</p>



<p>人間が担うべき価値は、単純な処理速度だけではありません。</p>



<p>相手の事情を想像する。正解が一つではない問題に向き合う。責任を持って判断する。組織の考え方を言葉にする。社会との関係を考える。顧客の不安を受け止める。数字に表れない違和感を拾う。</p>



<p>これらは、AIが不得意というよりも、人間が責任を持って引き受けるべき領域です。</p>



<p>AIは選択肢を提示できます。判断材料を整理できます。文章も作れます。しかし、最終的に何を選ぶか、どの選択に責任を持つかは、組織と人間の役割です。</p>



<p>AIが出した答えをそのまま使うのではなく、その答えが自社の価値観に合っているかを確認する。効率的な方法が、本当に顧客や社会にとって望ましいのかを考える。短期的な成果だけでなく、長期的な信頼を見失っていないかを判断する。</p>



<p>AI時代の人間に求められるのは、AIと同じ土俵で速さを競うことではありません。</p>



<p>AIを使いながら、何を目的にし、どこに責任を持つかを考えることです。</p>



<h2 class="wp-block-heading"><span id="toc11">AI導入前に、組織が考えるべき問い</span></h2>



<p>AIエージェントを導入する前に、組織は技術面や費用対効果だけでなく、いくつかの問いを持つ必要があります。</p>



<p>何を効率化したいのか。<br>その効率化によって、誰の負担を減らしたいのか。<br>空いた時間を何に使うのか。<br>人間に残すべき判断は何か。<br>社員の成長機会はどこで作るのか。<br>顧客との関係はどう変わるのか。<br>自社の理念や価値観と、AIの使い方は一致しているのか。</p>



<p>これらは、導入後に考えればよい問題ではありません。</p>



<p>AIエージェントは、導入した瞬間から業務の形を変えます。業務の形が変われば、人の役割も変わります。人の役割が変われば、組織文化も変わります。</p>



<p>「AIに任せられるから任せる」という判断は、分かりやすく合理的です。しかし、その業務が持っていた意味を確認しないまま置き換えると、気づかないうちに組織の学習機会や人間関係まで失われる可能性があります。</p>



<p>顧客対応をAIに任せるなら、人間は顧客の声をどこで学ぶのか。<br>資料作成をAIに任せるなら、社員は論点整理の力をどこで鍛えるのか。<br>社内相談をAIに任せるなら、部署間の関係性はどこで作られるのか。</p>



<p>AIに任せること自体が問題なのではありません。</p>



<p>任せたあとに、人間の成長や組織の意味をどのように残すかが重要です。</p>



<h2 class="wp-block-heading"><span id="toc12">AIエージェント導入で見落とされやすいもの</span></h2>



<p>AIエージェントを導入するとき、多くの企業はまず効果を見ます。</p>



<p>どれだけ時間が短縮できるか。何人分の作業を代替できるか。ミスはどれだけ減るか。コストはどれだけ下がるか。これらは導入判断において重要な指標です。</p>



<p>しかし、数字に表れにくい変化もあります。</p>



<p>たとえば、これまで担当者同士の会話で共有されていた小さな知識が、AIに処理を任せることで見えにくくなることがあります。顧客からの問い合わせを人間が読む機会が減れば、現場感覚も薄れます。社内で相談する回数が減れば、部署を越えた関係性も弱くなるかもしれません。</p>



<p>業務が効率化されることと、組織が強くなることは、必ずしも同じではありません。</p>



<p>処理速度は上がったのに、社員が顧客の実情を知らなくなる。ミスは減ったのに、誰も業務全体の意味を説明できなくなる。コストは下がったのに、会社らしさが薄れていく。</p>



<p>こうした変化は、すぐには問題として現れません。むしろ、短期的には成功に見えるでしょう。だからこそ注意が必要です。</p>



<p>AIエージェントを導入するなら、削減できる時間だけでなく、失われる接点にも目を向ける必要があります。人が関わっていたからこそ得られていた情報、人が悩んだからこそ蓄積された判断、人が失敗したからこそ残った教訓。それらをどう残すのか。</p>



<p>この設計がないまま自動化を進めると、組織は表面上は効率的でも、内側に経験が残りにくい構造になってしまいます。</p>



<p>もう一つ、忘れてはいけないのは、AIの導入によって社員の心理も変わるという点です。</p>



<p>会社がAIを導入するとき、社員はその目的を敏感に見ています。業務を楽にするためなのか。顧客への価値を高めるためなのか。それとも、単に人を減らすためなのか。経営側が明確に言葉にしなくても、社員は日々の運用から感じ取ります。</p>



<p>AIが導入された結果、空いた時間にさらに多くの仕事が詰め込まれるだけであれば、社員はAIを味方とは感じにくいでしょう。反対に、AIによって単純作業が減り、学習や改善、顧客との対話に時間を使えるようになれば、AIは自分の価値を高める道具になります。</p>



<p>同じAI導入でも、組織の設計によって受け止められ方は大きく変わります。</p>



<p>だからこそ、AIエージェントは技術部門だけのテーマではありません。経営、人事、現場、顧客対応、すべてに関わる組織設計のテーマです。</p>



<h2 class="wp-block-heading"><span id="toc13">顧客は本当に「速さ」だけを求めているのか</span></h2>



<p>AIエージェントの導入によって、顧客対応は速くなります。</p>



<p>質問に即時回答できる。夜間でも対応できる。担当者による品質差を減らせる。これは顧客にとっても大きな利点です。</p>



<p>ただ、顧客が常に速さだけを求めているとは限りません。</p>



<p>簡単な質問であれば、速く正確な回答が最も喜ばれるでしょう。しかし、困っているとき、不安を抱えているとき、何度もトラブルが続いているとき、顧客が求めているのは単なる回答ではない場合があります。</p>



<p>自分の状況を理解してほしい。これまでの経緯を踏まえてほしい。機械的な案内ではなく、責任ある対応をしてほしい。そう感じる場面があります。</p>



<p>AIは丁寧な文章を作れます。感情に配慮した表現もできます。しかし、顧客が見ているのは文章だけではありません。その企業が自分の問題にどう向き合っているかです。</p>



<p>AIを使うこと自体は問題ではありません。むしろ、AIによって一次対応を速くし、人間が本当に向き合うべき場面に集中できるなら、顧客体験は良くなります。</p>



<p>しかし、すべてをAIで完結させることだけを目指すと、顧客との関係は浅くなる可能性があります。</p>



<p>速さは価値です。けれど、信頼は速さだけでは作れません。</p>



<h2 class="wp-block-heading"><span id="toc14">組織の未来は、AIの性能だけでは決まらない</span></h2>



<p>AIエージェントは、これからさらに進化していくでしょう。</p>



<p>今は人間の確認が必要な業務でも、将来的にはより多くの処理を自律的に行えるようになるはずです。企業はAIを導入し、業務を効率化し、競争力を高めていく。この流れは止まらないと思います。</p>



<p>だからこそ、AIを恐れて使わないという選択だけでは不十分です。</p>



<p>AIを使うことは、企業にとって必要な選択です。効率化も、省人化も、利益最大化も、企業が生き残るためには重要です。</p>



<p>ただ、その先に何を置くのか。</p>



<p>効率化された組織の中心に、何が残るのか。<br>利益が最大化された先に、誰への価値があるのか。<br>人間の作業が減ったあと、社員は何を担うのか。<br>企業は社会に対して、何を存在意義として語るのか。</p>



<p>AIは、組織の問いに対して答えを出します。</p>



<p>効率化を問えば、効率化の答えを出すでしょう。利益最大化を問えば、利益最大化の答えを出すでしょう。顧客との信頼を問えば、そのための答えを出すかもしれません。社員の成長を問えば、また別の答えが返ってくるはずです。</p>



<p>つまり、AI時代に重要なのは、AIがどれほど優秀かだけではありません。</p>



<p>組織が、どのような問いを持っているかです。</p>



<p>AIエージェントは、企業を強くします。業務を速くし、コストを下げ、利益を高める力を持っています。</p>



<p>しかし、その力を何のために使うのかを決めるのは、人間であり、組織です。</p>



<p>AIによって社員の仕事が置き換わる未来は、企業にとって合理的な未来かもしれません。けれど、そこに人間が働く意味、社会に価値を届ける意思、組織としての責任が残っていなければ、その企業は何をもって組織と呼ばれるのでしょうか。</p>



<p>AIエージェントの導入は、単なる業務改善ではありません。</p>



<p>企業が、自分たちの存在意義を問い直すきっかけでもあります。</p>



<p>AIを導入するほど、組織は自分たちの考え方をごまかしにくくなります。何を自動化し、何を人間に残すのか。その選択の一つひとつが、会社の価値観として社員にも顧客にも伝わっていくからです。</p>



<p>便利な道具を持ったとき、その道具で何を削るのかだけでなく、何を育てるのかを考える。AI時代の組織には、その視点がこれまで以上に必要になります。</p>



<p></p>



<p><strong>あとがき</strong></p>



<p>AIエージェントによる効率化は、これから多くの企業にとって避けられないテーマになります。</p>



<p>人間が行っていた仕事の一部はAIに置き換わり、業務はより速く、正確に、低コストで進むようになるでしょう。それは企業にとって大きなメリットです。</p>



<p>しかし、AIに任せる仕事が増えるほど、人間は何を担うのか、組織は何のために存在するのかという問いが強くなります。</p>



<p>効率化は大切です。利益最大化も間違いではありません。</p>



<p>ただ、その先に何を残すのか。</p>



<p>AIを導入する組織には、その問いを持ち続けることが求められるのだと思います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.takeho.com/5lled7p1po7t7d0n90p6hvwoxudwv5aq/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
