<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Engineering Manager · 仁才徳</title>
    <link>https://jared.lynskey.co.nz/ja/tags/engineering-manager/</link>
    <description>ソフトウェアエンジニアリングと開発組織のリーダーシップについて。評価、採用とチームの拡大、CI/CD、DevOps モニタリング、エージェンティック AI。ソウルより。</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <copyright>© 2026 仁才徳</copyright>
    <lastBuildDate>Sat, 07 Nov 2026 00:00:00 +1300</lastBuildDate>
    <atom:link href="https://jared.lynskey.co.nz/ja/tags/engineering-manager/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>韓国でソフトウェアエンジニアとして働くこと：仕事の半分は눈치（ヌンチ）</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2026/2026-10-22-software-engineer-in-korea/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2026/2026-10-22-software-engineer-in-korea/</guid>
      <pubDate>Thu, 22 Oct 2026 00:00:00 +1300</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>korea</category>
      <category>Seoul</category>
      <category>career</category>
      <category>Nunchi</category>
      <category>communication</category>
      <category>culture</category>
      <category>Engineering Manager</category>
      <category>Hiring</category>
      <category>leadership</category>
      <category>startups</category>
      <category>Freelance</category>
      <category>new zealand</category>
      <description>2019年からソウルで働くニュージーランド人が語る、韓国でソフトウェアエンジニアとして働くということ。エンジニアリングはどこでも通用しますが、仕事の半分は눈치（ヌンチ）、誰も口にしない場の意図を読む力です。눈치とは何か、「optics」がなぜ違うのか、開発チームのどこに現れるか、読まれる側のマネージャーになって何が変わったか、そして韓国行きを考える人に伝えたいこと。</description>
      <content:encoded><![CDATA[<p>私は2019年から韓国でソフトウェアの仕事をしています。研究企業で1年、スタートアップ2社、エンジニアリングマネージャーとして20か月、そして2025年10月からはフリーランスです。エンジニアリングはどこでも通用します。Webのバックエンドは、どの国からデプロイされたかなんて気にしません。誰も教えてくれないのは、仕事の残り半分が눈치（ヌンチ、nunchi）だということです。言葉にされなくても場が何を求めているかを読み取ることを指す韓国語で、日本語の「空気を読む」にかなり近いものです。誰も教えてくれない理由は単純で、それをわざわざ口に出した時点で눈치ではなくなってしまうからです。</p>
<p>私はソウルに住むニュージーランド人です。この記事では、内側から見た韓国の開発現場、採用の場の両側から見えたもの、そして韓国で働こうと考えている人に伝えたいことを書きます。</p>

<h2 class="relative group">ここに至るまで
    <div id="ここに至るまで" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%93%e3%81%93%e3%81%ab%e8%87%b3%e3%82%8b%e3%81%be%e3%81%a7" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>入口は修士課程でした。ニュージーランドのワイカト大学で学士を取り、通信会社でネットワーク運用の仕事を1年した後、2017年3月から2019年2月まで慶熙大学校でコンピュータサイエンスの修士課程に在籍しました。研究室は毎学期、国内のコンピュータ系学会であるKSCとKCCに参加していました。2018年に平昌で開かれたKSCでは、韓国の大手IT企業がいくつもスポンサーに名を連ね、就職活動中の学生向けの採用ブースもありました。韓国の大学院にいる留学生なら知っておいて損はありません。</p>
<p>それからの経歴はこうです。</p>
<table>
	<thead>
			<tr>
					<th style="text-align: left">期間</th>
					<th style="text-align: left">役割</th>
					<th style="text-align: left">会社</th>
					<th style="text-align: left">仕事の内容</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td style="text-align: left">2019年6月 – 2020年6月</td>
					<td style="text-align: left">研究主任</td>
					<td style="text-align: left">コンピュータビジョンの研究企業</td>
					<td style="text-align: left">ゲームエンジン内での学習データ生成、再生可能エネルギー監視用のUI</td>
			</tr>
			<tr>
					<td style="text-align: left">2020年6月 – 2022年9月</td>
					<td style="text-align: left">フルスタック開発者</td>
					<td style="text-align: left">カスタマーサポートSaaSのスタートアップ</td>
					<td style="text-align: left">サポートプラットフォームそのものと、そのクラウドインフラとCI/CD</td>
			</tr>
			<tr>
					<td style="text-align: left">2022年9月 – 2024年2月</td>
					<td style="text-align: left">フルスタック開発者、リード代行</td>
					<td style="text-align: left">クリエイタープラットフォームのスタートアップ</td>
					<td style="text-align: left">クリエイター向けプラットフォームとコミュニティアプリ。バックエンドはPython、Rust、Java</td>
			</tr>
			<tr>
					<td style="text-align: left">2024年2月 – 2025年10月</td>
					<td style="text-align: left">エンジニアリングマネージャー</td>
					<td style="text-align: left">ソウルのソフトウェア企業</td>
					<td style="text-align: left">エンジニアチームのマネジメントと、スコープ決めからリリースまでのデリバリー</td>
			</tr>
			<tr>
					<td style="text-align: left">2025年10月 – 現在</td>
					<td style="text-align: left">DevOps / MLOpsエンジニア</td>
					<td style="text-align: left">フリーランス</td>
					<td style="text-align: left">オンプレミスのインフラ：高可用性PostgreSQLとLLMのサービング</td>
			</tr>
	</tbody>
</table>
<p>エンジニアリングは馴染みのある半分でした。ソフトウェアを出荷する仕事の大部分が実は運用だと学んだのはカスタマーサポートのスタートアップでしたし、クリエイタープラットフォームのバックエンドは今の私なら選ばないくらい多くのスタックの上で動いていました。韓国ならではの違いは端のほうにあります。Naverは気にかけるべき検索エンジンです。Kiwi Alumniの新しいWebサイトを公開したときも、SEOはGoogleとNaverの両方に合わせました。韓国のプラットフォームは想像もつかない名前でクロールしてきます（Naverのクローラーは「Yeti」、KakaoTalkのリンクプレビューは「kakaotalk-scrap」というものが取りに来ます）。そして韓国のネットバンキングは、今でも独自のセキュリティソフトをパソコンに入れるよう求めてきます。</p>
<p>でも、どれも難しいところではありません。</p>

<h2 class="relative group">눈치とは何か、なぜ「optics」ではないのか
    <div id="눈치とは何かなぜopticsではないのか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%eb%88%88%ec%b9%98%e3%81%a8%e3%81%af%e4%bd%95%e3%81%8b%e3%81%aa%e3%81%9coptics%e3%81%a7%e3%81%af%e3%81%aa%e3%81%84%e3%81%ae%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>눈치は、相手が何を考え、何を望み、何を期待しているかを、言葉ではなく状況から感じ取る感覚です。눈は「目」の意味で、2019年の著書『The Power of Nunchi』で英語圏に눈치を広めたユーニ・ホン（Euny Hong）は、この言葉を「eye-measure（目で測ること）」と訳しています。日常の言い回しにもよく出てきます。「눈치가 빠르다（눈치が速い）」人は場をすぐに読めます。「눈치가 없다（눈치がない）」人はまったく読めず、これは褒め言葉ではありません。そして「눈치를 보다（눈치を見る）」は、周りの、たいていは目上の人の反応をうかがい続けて、嫌われない側に自分を合わせることです。</p>
<p>英語圏の人がここで持ち出す言葉は「optics」ですが、私はそれは違うと思っています。opticsは、実態がどうであれ外からどう見えるかの話です。「人員削減の発表と同じ週にボーナスを発表するのはopticsが悪い」という使い方ですね。見た目の問題で、管理するのは見られている側です。눈치はたいてい逆を向いています。自分が他人にどう見えるかではなく、自分が他人をどれだけよく見ているかの話です。両者が重なるのは「눈치를 보다」だけで、周りを観察しながら、周りに自分がどう見えるかを調整すること。韓国の職場について書かれた海外の記事に出てくるのは、まさにこのバージョンです。</p>
<p>そうした記事に出てくる例はだいたい同じです。チームリーダーより先に帰らない、年次休暇（연차）を実際に取るときの눈치、회식（チームの飲み会）からいつ帰っていいかを見極める、目上の人に反論するなら会議中にするか後でこっそりするかを決める。それぞれをどう受け止めるにせよ、形は共通しています。全員が従っていて、誰も口にしないルールだということです。日本の職場を知っている人なら、思い当たる節があるかもしれません。</p>
<p>そしてこれは言語とは別の問題です。韓国語は言葉の中にあり、눈치は言葉を取り巻くすべての中にあります。</p>

<h2 class="relative group">開発チームのどこに現れるか
    <div id="開発チームのどこに現れるか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%96%8b%e7%99%ba%e3%83%81%e3%83%bc%e3%83%a0%e3%81%ae%e3%81%a9%e3%81%93%e3%81%ab%e7%8f%be%e3%82%8c%e3%82%8b%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>開発チームは、まさにその形で回っています。初めてマネージャーになって数か月後、<a href="https://jared.lynskey.co.nz/ja/posts/2024/2024-05-05-team-norms/" >チームノームについての記事</a>を書きました。書き出しはこうです。私が対処した摩擦のほとんどは技術的な問題ではなかった。コードレビューはどれくらいで返すべきか、「完了」とは正確に何を指すのか、2回メンションするのは失礼か。人によって暗黙の前提が違っていただけだ。当時はその言葉を使いませんでしたが、あのリストは一行残らず、눈치が読み取る対象です。チームが口に出さずに合意しているルールで、新しく来た人は見て覚えるしかありません。</p>
<p>同じ記事で私は、新メンバーがノームをオンボーディングで明示的に教わるのではなく「言い伝えとして」覚えていくことや、グローバルなチームが自分たちの基準を全員の基準だと思い込むことに文句を言っています。눈치が何で動いているかを表すのに、私が見つけた一番いい英語はfolklore、言い伝えです。チームで外国人が自分だけなら、ずれている基準は自分のほうで、その言い伝えはどこにも書かれていません。</p>
<p>一番コストがかかるのはスタンドアップです。2023年に、<a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-09-23-reactive-vs-proactive-communication/" >自分がリードしていたプロジェクトが遅れていたのに</a>誰かに聞かれるのを待っていた話を書きました。ようやく誰かが聞いてきたのは3週間後で、その頃にはもう大惨事でした。눈치がよくても、これは解決しません。場を読めば誰も聞きたくない話が何かは分かりますが、それでも言えとは教えてくれないからです。私が身につけた習慣は、待つことの正反対です。聞かれる前に、先に、文字で伝える。「思ったより時間がかかっています。5日ではなく8〜10日の見込みです。スコープを削りますか、それとも締め切りを延ばしますか？」</p>

<h2 class="relative group">自分が読まれる側になったとき
    <div id="自分が読まれる側になったとき" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%87%aa%e5%88%86%e3%81%8c%e8%aa%ad%e3%81%be%e3%82%8c%e3%82%8b%e5%81%b4%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e3%81%a8%e3%81%8d" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>2024年2月、ソウルのソフトウェア企業でエンジニアリングチームを任されて、눈치の向きがひっくり返りました。開発者のときは私が場を読む側でした。マネージャーになると、私自身が場になりました。会議で言ったこと、言わなかったこと、返信の速さ、何時に帰るか。すべてが周りから読まれるものになったのです。</p>
<p>プロジェクトリード時代に書いたことの多くは、マネージャーになるとより強く当てはまります。何が壊れているかを安心して言えない雰囲気なら、<a href="https://jared.lynskey.co.nz/ja/posts/2024/2024-01-02-engineeringmanager/" >知るのはマネージャーが最後になります</a>。<a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-09-25-transperency/" >情報を長く抱えすぎると</a>周りはそれを察し、自分が残した沈黙を噂が埋めます。会議で5人が自分の答えを待っているとき<a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-10-13-i-dont-know/" >「分かりません」は失敗のように感じますが</a>、だからこそ言う価値があります。そして、私が何度も立ち返る一文。人は自分の意図を読めない、読めるのは言葉だけだ。눈치で回っているチームでは、それでも読もうとします。表情から、こちらが飛ばしたことから、帰る時間から。だからこそ、推測させる材料を減らすべきなのです。</p>
<p>私が頼りにしたのは地味なことばかりでした。全員との1on1。スプリントではなくその人自身の話をして、ほとんどの仕事をしてくれるシンプルな質問をします。「仕事を進めるうえで、私やチームにできることはありますか？」</p>
<p>誰でも見られる場所に書いた、3つから多くても5つの短いチームノーム。マネージャーがノームを破ったらどうなるかも含めて。8人いる場では絶対に発言しない人を待たずに、こちらから聞きに行くこと。そして二度と話題に上らない「検討します」の代わりに、正直な「できません、理由はこうです」。曖昧な答えは、読まなければならない空気をひとつ増やすだけですから。入社して1か月ほど経った頃の<a href="https://jared.lynskey.co.nz/ja/posts/2024/2024-03-03-product-team-outing/" >プロダクトチームの社外ワークショップ</a>は、カフェでお互いの価値観とチームノームを話し合うところから始まりました。会社が눈치に対して出せる答えとして、これほど直接的なものはなかなかありません。普段なら口にされないことを、午前中まるごと使って声に出したのですから。</p>

<h2 class="relative group">外国人として採用されるということ
    <div id="外国人として採用されるということ" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%a4%96%e5%9b%bd%e4%ba%ba%e3%81%a8%e3%81%97%e3%81%a6%e6%8e%a1%e7%94%a8%e3%81%95%e3%82%8c%e3%82%8b%e3%81%a8%e3%81%84%e3%81%86%e3%81%93%e3%81%a8" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>韓国での採用についてのプレイブックは持っていません。私にあるのは採用マネージャー側の経験で、そこから出てくるアドバイスは、契約にサインする前に会社に対して눈치を働かせよう、ということです。</p>
<p>マネージャーとして採用していたとき、私が一番採りたかった開発者は求人サイトにはいませんでした。<a href="https://jared.lynskey.co.nz/ja/posts/2024/2024-07-01-internships/" >以前にも書いたとおり</a>、創業者はすでに一緒に働いたことのある人を採りたがるものです。だから一番いい入口は、採用される前に自分の働きぶりを見てもらえる場です。小さな会社のインターンは、いつの間にか内定に変わることがよくあります。ハッカソンなら週末まるごと見てもらえます。2023年、私は4人チームでLunit Global主催のSeoul Tech Impact Hackathonに優勝しました。作ったのは、韓国では住所を持たない屋台を探すためのアプリです。</p>
<p>そして<a href="https://jared.lynskey.co.nz/ja/posts/2024/2024-07-12-coffee-chats/" >コーヒーチャット</a>です。リラックスした会話での振る舞いのほうが、準備された面接よりも一緒に働く姿をずっとよく教えてくれると書きましたが、これは双方向です。候補者にとっては、中に入る前にチームを読める唯一の機会です。候補者の立場なら、私はこう聞きます。今チームが直面している一番大きな課題は何か、なぜ入社して、何が理由で今も残っているのか、そしてここで働いて驚くかもしれないことは何か。最後の質問は、눈치を前もって教えてほしいと丁寧に頼む方法です。離職率や会社の方向性について答えをはぐらかされたら、それだけで十分に分かることがあります。</p>

<h2 class="relative group">外国人開発者を採用するなら
    <div id="外国人開発者を採用するなら" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%a4%96%e5%9b%bd%e4%ba%ba%e9%96%8b%e7%99%ba%e8%80%85%e3%82%92%e6%8e%a1%e7%94%a8%e3%81%99%e3%82%8b%e3%81%aa%e3%82%89" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>韓国でチームを運営していて、海外出身の開発者を採用するなら、一番役に立つのはあのチームノームの記事に書いた一言です。暗黙のものを明示的にすること。新しく来た人に、チームのルールを言い伝えとして覚えさせないでください。最初の週に伝えてください。レビューはどれくらいで返すのが普通か、「完了」とは何を指すのか、2回メンションするのは失礼か、みんな実際に何時に帰っているのか、年次休暇を取るときに申請書以外に気にすることがあるのか。最後の2つが典型的な눈치の質問で、チームの中にいる人は言おうとすら思わないものです。</p>
<p>その次は、読まなければならないものを減らす地味な習慣です。聞かれる前に伝える。金曜日に関係者へ3行のメール（今週出したもの、次にやること、気になっていること）を送るのに10分もかかりません。会議で静かな人を待たずに、直接聞く。「できません」も含めて、理由を添えた本当の答えを返す。そしてすべての候補者を同じ質問、同じ評価基準で面接する。これは私も身につけるのに時間がかかりましたが、人を公平に比べる唯一の方法です。そうしないと、最後に話した人を高く評価してしまいます。それに、チームの暗黙のルールを知らない候補者も、知っている候補者とまったく同じ質問を受けることになります。</p>

<h2 class="relative group">ここにあるニュージーランドのコミュニティ
    <div id="ここにあるニュージーランドのコミュニティ" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%93%e3%81%93%e3%81%ab%e3%81%82%e3%82%8b%e3%83%8b%e3%83%a5%e3%83%bc%e3%82%b8%e3%83%bc%e3%83%a9%e3%83%b3%e3%83%89%e3%81%ae%e3%82%b3%e3%83%9f%e3%83%a5%e3%83%8b%e3%83%86%e3%82%a3" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>2018年、まだ学生だった頃にKiwi Chamberのリーダーシップ朝食会で写真を撮り、その後で、両国の関係を深めるイベントでボランティアをするのが本当に楽しいと書きました。2020年1月からは、Kiwi Alumniの会長を務めています。韓国に住むニュージーランド人と、ニュージーランドで学んで今は韓国で暮らし働いている人たちのコミュニティです。ボランティアの役職で、仕事のほとんどは人に関わることです。イベントを企画し、駐韓ニュージーランド大使館や教育機関との関係を築き、新しいロゴや会員が必要な情報をちゃんと見つけられるWebサイトといった地味な仕事もします。2023年には大使館と一緒に<a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-09-22-kiwi-alumni-my-role/" >Kiwi Alumni Night</a>を開き、KTVでも取り上げられました。</p>
<p>その夜の後に書いた一文が、この記事の主題に一番近いものです。韓国とニュージーランドの両方で暮らしたことのある人は、両方の文化を経験しているからこそ、その違いの橋渡しの仕方を知っている。働くために韓国に来るなら、どこの出身であれ、そういう人を見つけてください。その場の空気が何を言っていたのかを、はっきりした言葉で教えてくれる人たちです。</p>

<h2 class="relative group">ソウルでフリーランスとして
    <div id="ソウルでフリーランスとして" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%bd%e3%82%a6%e3%83%ab%e3%81%a7%e3%83%95%e3%83%aa%e3%83%bc%e3%83%a9%e3%83%b3%e3%82%b9%e3%81%a8%e3%81%97%e3%81%a6" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>マネージャーの仕事を離れ、2025年10月にフリーランスになりました。実際には契約ベースのDevOps・MLOpsの仕事で、ほとんどがオンプレミスです。PostgreSQLの高可用性クラスターを組み、続けて同じハードウェア上にLLMのサービング基盤を載せました。やってみると、配管工事より品質管理のほうが多くなりました。トレースやマルチターンの会話を見ながら、モデルの出力がどこでずれるかを探す仕事です。2026年2月からは、自分のマーケットプレイス兼コミュニティアプリも別に作っています。</p>
<p>フリーランスになっても눈치から逃れられるわけではありません。読む対象が変わるだけです。どこのチームに入っても、私が最初に見るのはモニタリングです。READMEよりもチームについて多くを語ってくれるからです。システムに向けた눈치と言えます。チームがやっていると言っていることではなく、実際にやっていることを読むのです。</p>

<h2 class="relative group">韓国行きを考えている人へ
    <div id="韓国行きを考えている人へ" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%9f%93%e5%9b%bd%e8%a1%8c%e3%81%8d%e3%82%92%e8%80%83%e3%81%88%e3%81%a6%e3%81%84%e3%82%8b%e4%ba%ba%e3%81%b8" aria-label="アンカー">#</a>
    </span>
    
</h2>
<ol>
<li>採用される前に働きぶりを見てもらえる入口から入ってください。私の場合は修士課程でした。ハッカソン、小さな会社でのインターン、韓国にある自分の国のコミュニティも同じ役割を果たします。両方の国で暮らしたことのある人に出会えるのもコミュニティです。</li>
<li>小さな会社を候補から外さないでください。私のキャリアのほとんどは小さな会社でした。10人規模の会社には退屈な仕事を押し付ける相手がいませんし、自分が作ったものが実際に世に出ます。</li>
<li>入る前にチームを読んでください。コーヒーチャットを使い、ここで働いて驚くことは何かを聞き、離職率についてはぐらかされたら真剣に受け止めてください。</li>
<li>聞かれるのを待たないでください。遅れそうな見積もり、リスクのある変更、誰かが待っている決定。先に、文字で伝えてください。</li>
<li>書かれていないルールを声に出して聞いてください。レビューはどれくらいで返ってくるのか、「完了」とは何か、2回メンションするのは失礼か。誰も書いていないなら、自分が書きますと申し出てください。</li>
<li>自分のスタックを取り巻くスタックを学んでください。韓国では、NaverとKakaoがGoogleの習慣ではカバーできない形で重要になります。</li>
</ol>
<p>エンジニアリングは、来る前に準備できる半分です。눈치は働きながら覚える半分で、私が知っている一番早い覚え方は、言われていない部分を声に出してほしいと頼むこと、そして自分の分を先に言うことです。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2026/2026-10-22-software-engineer-in-korea/featured.jpg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>コーヒーチャットとは？面接との違い、服装、聞くべき質問</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2024/2024-07-12-coffee-chats/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2024/2024-07-12-coffee-chats/</guid>
      <pubDate>Fri, 12 Jul 2024 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Engineering Manager</category>
      <category>Team</category>
      <category>People</category>
      <category>Team Size</category>
      <category>Scaling</category>
      <category>Efficiency</category>
      <category>Talent Scouting</category>
      <category>Coffee Chat</category>
      <category>Recruitment</category>
      <category>Hiring</category>
      <category>Culture Fit</category>
      <category>Networking</category>
      <description>コーヒーチャットとは、カフェやビデオ通話で30〜45分ほど気軽に話し、もっと深く話す価値があるかをお互いに確かめる場です。面接ではありません。開発者と出会ういちばんの方法になった理由、私なりの進め方と聞くべき質問、誘われた側として臨むときの服装と話題、そしてよくある台無しにする方法をまとめました。</description>
      <content:encoded><![CDATA[<p>本当に採用したい開発者は、求人サイトにはまずいません。目の前のプロダクト作りに没頭していて、今の職場にそこそこ満足していて、リクルーターからのメッセージには（当然ながら）警戒心を持っています。今年からエンジニアリングマネジメントの側に回って、そういう人たちと出会うために一番頼りにしているのは、拍子抜けするほど単純な手段です。コーヒー1杯。</p>
<p>コーヒーチャットは30〜45分の気軽な会話です。カフェでもビデオ通話でも構いません。ホワイトボードなし、面接官のパネルなし、ひっかけ問題なし。こちらは何をなぜ作っているかを話し、相手はいま何をしていて次に何を望むかを話す。それだけで、もっと深い話をする意味があるかどうかが双方にわかります。採用は選抜の問題というよりマッチングの問題で、マッチングに必要な情報を交換する手段として、これより速いものを知りません。</p>

<h4 class="relative group">なぜ続けているのか
    <div id="なぜ続けているのか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%aa%e3%81%9c%e7%b6%9a%e3%81%91%e3%81%a6%e3%81%84%e3%82%8b%e3%81%ae%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>このチャットを「採用活動」だと考えるのは、もうやめました。ただの会話です。そして、そのうちのいくつかが、忘れた頃に採用につながります。相手の状況が変わった18ヶ月後に、ということもあります。良い採用を安定して生むパイプラインは、求人広告ではなく、こういう関係の積み重ねでできています。</p>
<p>職務記述書の問題も解決してくれます。JDはどうしても一般的な書き方になります。コーヒーを挟めば、候補者は本当に知りたいことを聞けます。最初の6ヶ月で何ができれば成功なのか。誰と働くことになるのか。チームがいま抱えている一番厄介な技術課題は何か。正直な答えを聞いた人は、自分に合うかどうかを自分で正しく判断してくれます。</p>
<p>それから、チャットは文化を「説明」する代わりに「見せて」くれます。準備してきたか、本気で興味を持っているか、相手の時間を尊重しているか。どんな採用ページよりも雄弁です。これは逆方向にも働きます。肩の力が抜けた会話での振る舞いは、練習済みの面接よりずっと多くのことを教えてくれます。</p>
<p>特に効くのは、転職活動をしていない人に声をかけるとき、正式な選考の前に、紹介の下地をつくっておくとき、そしてキャリアの転機（現場のエンジニアからマネジメントへ、スタートアップから大企業へ、あるいはその逆）を迷っている人と話すとき。人材の取り合いになっている市場では、欲しい人のほとんどがこのどれかに当てはまります。</p>

<h4 class="relative group">私の進め方
    <div id="私の進め方" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a7%81%e3%81%ae%e9%80%b2%e3%82%81%e6%96%b9" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>最初のメッセージがすべてを決めます。テンプレのアウトリーチは削除されて終わりです。下調べをして、意図を正直に書きます。</p>
<p><em>「こんにちは、サラさん。QConでの分散システムのご講演と、イベントソーシングについてのブログ記事を拝見しました。[会社]でも、決済インフラをスケールさせる中で同じような課題に取り組んでいます。30分ほどコーヒーチャットでお話しできないでしょうか？面接ではありません。サラさんのお考えを伺いつつ、私たちの取り組みもご紹介できればと思っています。」</em></p>
<p>これが機能するのは、具体的で、意図を隠さず、時間をくださいと頼むだけでなく「面白い問題について話す機会」という価値を差し出しているからです。あとは相手の手間を減らすこと。候補日時をいくつか出し、相手に便利な場所（オンラインならダウンロード不要のビデオツール）を選び、詳細を書いたカレンダー招待を送って、相手に何も推測させないことです。</p>
<p>会話そのものは、ゆるい型があれば十分です。最初の数分は本物の雑談と、なぜ声をかけたのかの説明。次に相手の話。いまの仕事、楽しいこと、うんざりしていること、次に望むもの。ここでは話すより聞くのが仕事です。それから自分たちの話。ミッションと、チームが実際に抱えている課題を、大変な部分も含めて話します。候補者は率直さを尊重しますし、売り込みの匂いには敏感です。一番価値があるのは終盤のオープンな時間で、「どういう条件が揃ったら転職を考えますか」を一緒に探ります。最後は次のステップを明確に。「また連絡を取り合いましょう」だけでも構いません。</p>
<p>チャットの後は、24時間以内に、会話の中の具体的な何かに触れた短いお礼を送ります。約束したもの（紹介でもリンクでも）は素早く渡します。文化が本当に表れるのは、この地味な後始末です。</p>
<p>継続的にやるなら、話した相手を簡単なスプレッドシートで管理して、募集がなくてもたまに連絡してみてください。マネージャー専用の活動にする必要もありません。エンジニアが自分のネットワークのすごい人とコーヒーを飲む——良いリファラルはたいていそこから始まります。</p>

<h4 class="relative group">時間を割く価値のある質問
    <div id="時間を割く価値のある質問" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%99%82%e9%96%93%e3%82%92%e5%89%b2%e3%81%8f%e4%be%a1%e5%80%a4%e3%81%ae%e3%81%82%e3%82%8b%e8%b3%aa%e5%95%8f" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>私がよく聞くもの：</p>
<ul>
<li>「最近取り組んだ中で一番面白かった問題は何ですか？」</li>
<li>「次の職場では何が変わってほしいですか？」</li>
<li>「どんな学び方が合っていますか？プロとしてどう成長していきたいですか？」</li>
<li>「フィットするかどうか判断するために、聞いておきたいことはありますか？」</li>
</ul>
<p>自分が候補者側だったら聞くもの：</p>
<ul>
<li>「チームがいま直面している一番大きな課題は何ですか？」</li>
<li>「このロールの成功はどう測られますか？」</li>
<li>「昇進への道筋はどうなっていますか？」</li>
<li>「なぜこの会社に入ったんですか？なぜ残っているんですか？」</li>
<li>「ここで働くことについて、私が聞いたら意外に思うことはありますか？」</li>
</ul>

<h4 class="relative group">コーヒーチャットに誘われたら
    <div id="コーヒーチャットに誘われたら" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%b3%e3%83%bc%e3%83%92%e3%83%bc%e3%83%81%e3%83%a3%e3%83%83%e3%83%88%e3%81%ab%e8%aa%98%e3%82%8f%e3%82%8c%e3%81%9f%e3%82%89" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>「コーヒーチャットとは」と調べている人の多くは、私とはテーブルの反対側にいるはずです。誰かにコーヒーチャットに誘われて、どんな場なのかを知っておきたい。そういう方に向けて、誘う側の立場から言えることを書いておきます。</p>
<p>まず、面接ではありません。誰も点数をつけていませんし、試験もないので、受け答えを準備しておく必要はありません。とはいえ第一印象であることに変わりはないので、友だちの友だちに会う感覚ではなく、将来の同僚に会うつもりで臨んでください。面接との違いは、遠慮なく好奇心を出していいことです。答えるのと同じくらい質問することが、むしろ期待されています。</p>
<p>服装は、その会社で普段働くときに着るような格好で大丈夫です。わからなければ、オフィスカジュアルにしておけばまず間違いありません。ビデオ通話なら、カメラはオンにして静かな部屋を確保しましょう。何を着るかより、そちらのほうがずっと大事です。</p>
<p>準備は30分もあれば足ります。その会社が何を作っているのか、相手が書いたものや作ったものに目を通しておきましょう。いま何をしていて、次に何をしたいのかを2分で話せるようにしておくこと。この質問は必ず来ます。自分からの質問も2つか3つ用意しておきましょう。とっかかりとしては、上のリストで十分です。</p>
<p>話題は、自分の仕事のこと、その仕事の何が楽しいのか、相手の仕事のどこに興味があるのか。給与の話は、相手から出ない限り後回しにしましょう。具体的なポジションを想定しているのか、もしそうなら選考はどう進むのかを聞くのは、まったく問題ありません。</p>
<p>支払いは、ふつう誘った側が持ちます。自分も払うと申し出るのはいいですが、押し問答にはしないこと。そして1日以内に、実際に話した内容に触れた短いお礼を送れば、それだけでほとんどの人より一歩先を行っています。</p>
<p>自分からコーヒーチャットをお願いしたいなら、遠慮せず頼んでみてください。メッセージは短く、なぜその人なのかを書いて、引き受けやすくしておくこと。たとえば「チームで取り組まれている新しい検索機能のお話を、ずっと興味深く拝見しています。私はプラットフォームエンジニアリングの方向に進みたいと考えているのですが、この数週間のどこかで30分ほど、コーヒーかオンラインでお話を伺えないでしょうか。日時はそちらのご都合に合わせます」という具合です。ここまで具体的なお願いなら、たいていの人は引き受けてくれます。</p>

<h4 class="relative group">台無しにする方法
    <div id="台無しにする方法" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8f%b0%e7%84%a1%e3%81%97%e3%81%ab%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>一番速いのは、こっそり面接に変えることです。技術スキルを試したり行動面接の質問を滑り込ませたりした瞬間、暗黙の約束は壊れます。それは正式な選考に取っておきましょう。次に多いのが売り込みすぎ。長く定着してくれるのは、大変な部分まで見えたうえで入ってきた人です。準備せずに現れるのも、終わった後に音信不通になるのも、静かにダメージを与えます。1回のチャットの印象が、その人が自分のネットワークにあなたの会社をどう語るかを決めるからです。</p>
<p>こちら側から見た危険信号は、何にも好奇心を示さない候補者、完全に取引めいた会話、過去の職場を全部同じ恨み口調で語る人。候補者側もリストを持っておくべきです。仕事の意義を説明できない担当者、離職率や会社の方向性についてのはぐらかし、あなたを理解するより売り込むことに熱心な相手。</p>
<p>すべてのチャットがどこかにつながるわけではありません。むしろ、ほとんどはつながりません。それでいいんです。大事なのは、次に重要なポジションを埋めるとき、白紙の求人広告からではなく、積み上がった本物の会話から始められること。職務記述書ではなく、コーヒーのお誘いを送りましょう。</p>

<h4 class="relative group">さらに読む
    <div id="さらに読む" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%95%e3%82%89%e3%81%ab%e8%aa%ad%e3%82%80" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p><strong>このサイトの関連記事：</strong></p>
<ul>
<li><a href="https://jared.lynskey.co.nz/ja/posts/2024/2024-12-19-star-interviews/" >開発者採用の面接でSTARメソッドを使う</a> - チャットが正式な面接プロセスに進んだときのために</li>
<li><a href="https://jared.lynskey.co.nz/ja/posts/2024/2024-02-10-prioritizing-onboarding/" >新任エンジニアリングマネージャーとして、まず取り組んでいる3つのこと</a> - チームをうまく回すものは何か。マッチングで見るべきものでもあります</li>
<li><a href="https://jared.lynskey.co.nz/ja/posts/2024/2024-07-01-internships/" >スタートアップでインターンすべき理由</a> - スタートアップ行きを迷っている人と話すときの背景として</li>
</ul>
<p><strong>外部リソース：</strong></p>
<ul>
<li><a href="https://review.firstround.com/articles/hiring-engineers/"  target="_blank" rel="noreferrer">First Round Review：エンジニア採用</a> - 経験豊富なオペレーターによるスタートアップ採用ガイド</li>
<li><a href="https://larahogan.me/blog/first-one-on-one-questions/"  target="_blank" rel="noreferrer">Lara Hoganの「最初の1on1のための質問」</a> - 1on1向けですが、コーヒーチャットでも見事に機能します</li>
<li><a href="https://www.kalzumeus.com/2012/01/23/salary-negotiation/"  target="_blank" rel="noreferrer">Patrick McKenzieの給与交渉について</a> - 候補者側の視点を知るために</li>
<li><a href="https://whothebook.com/" target="_blank" rel="noreferrer">Who: 採用のAメソッド</a> - Geoff SmartとRandy Streetによる体系的な採用フレームワーク</li>
<li><a href="https://hbr.org/topic/subject/hiring-and-recruitment"  target="_blank" rel="noreferrer">Harvard Business Review: 採用</a> - 人材獲得についての研究に基づいた記事</li>
</ul>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2024/2024-07-12-coffee-chats/featured.jpg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>エンジニアのパフォーマンスレビューの進め方：テンプレートとフィードバック例つき</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2024/2024-04-27-performance-reviews/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2024/2024-04-27-performance-reviews/</guid>
      <pubDate>Sat, 27 Apr 2024 00:30:03 +0000</pubDate>
      <dc:creator>Me</dc:creator>
      <category>Engineering Manager</category>
      <category>Performance Reviews</category>
      <category>KPI</category>
      <category>Feedback</category>
      <category>Software Engineering</category>
      <category>Leadership</category>
      <description>ソフトウェアエンジニアのパフォーマンスレビューを、私がどう進めているかをまとめました。双方が期待すべきこと、面談のアジェンダ、その人に合ったKPIの決め方に加えて、そのまま使えるレビューのテンプレート、自己評価の質問、行動に移せるくらい具体的なフィードバックの例も載せています。</description>
      <content:encoded><![CDATA[<p>ソフトウェアエンジニアにとって役に立つパフォーマンスレビューは、判決ではなく双方向の会話です。エンジニアは自己評価を、マネージャーは具体的な事例を持ち寄り、合意した測定可能な目標を2つか3つと、それを書き残した記録を手にして終わる。この記事では、私の進め方と実際に埋めているテンプレート、そして具体的なフィードバックが曖昧なものとどう違うのかを、並べて紹介します。</p>
<p>今年からエンジニアリングチームを任されるようになって、パフォーマンスレビューは「受けるもの」から「自分が回すもの」になりました。この記事は自分の頭の整理も兼ねているので、正解というより「試行錯誤中の人のメモ」として読んでください。</p>

<h2 class="relative group">そもそもレビューをやる意味
    <div id="そもそもレビューをやる意味" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%9d%e3%82%82%e3%81%9d%e3%82%82%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc%e3%82%92%e3%82%84%e3%82%8b%e6%84%8f%e5%91%b3" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>どの職級であれ、目的は突き詰めると2つです。学び続けられるようにすること。そして、役割の期待を超えて働いている人が、きちんと報われるようにすることです。</p>
<p>「レビューをやる時間もリソースもない」と言う小さな会社は少なくありません。そういう会社は結局、在籍年数だけを頼りに「そろそろシニアかな」を決めることになります。これは間違いだと思っています。年数が怠惰な指標だから、というだけではありません。レビューをやめると、会社と社員の双方向のチャンネルが消えて、働く関係そのものが痩せていくからです。</p>
<p>これは両方向に効きます。本人は「会社のために一番いいやり方」と信じて働いていても、習慣ややり方、コミュニケーションのスタイルが良くない方向にズレていくことがあります。フィードバックがなければ、誰もそれに気づけません。逆に、構造化された場で社員の声を聞かない会社は、社員が会社をどう思っているかを知らないまま、心地よく過ごすことになります。</p>

<h2 class="relative group">お互い、何を期待して臨むべきか
    <div id="お互い何を期待して臨むべきか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%8a%e4%ba%92%e3%81%84%e4%bd%95%e3%82%92%e6%9c%9f%e5%be%85%e3%81%97%e3%81%a6%e8%87%a8%e3%82%80%e3%81%b9%e3%81%8d%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>社員側の期待は複雑ではありません。自分の仕事がチームの目標とどう繋がっているか、何がうまくいっていて、どこを直せばいいか。それも「もっとコミュニケーションを」ではなく、具体的に。貢献はきちんと認めてほしいし、キャリアや研修の話も本気でしたい。そして、社内政治ではなく仕事そのものに基づいた、公平なプロセスであってほしい。</p>
<p>マネージャー側の私が期待するのは、まず自己評価を持ってきてもらうことです。何がうまくいって何がダメだったか、本人の見立てを聞きたい。弁護士の冒頭陳述ではなく、フィードバックへの開かれた姿勢がほしい。今後の目標について本音の議論をしたいし、チームの中で自分がどうフィットしていると感じているかも率直に聞きたいのです。レビューは私自身の計画の時間でもあります。チーム構成、昇進の候補、誰にどんな成長機会が必要か。</p>

<h2 class="relative group">同じ型がすべてのエンジニアに合うわけではない
    <div id="同じ型がすべてのエンジニアに合うわけではない" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%90%8c%e3%81%98%e5%9e%8b%e3%81%8c%e3%81%99%e3%81%b9%e3%81%a6%e3%81%ae%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%81%ab%e5%90%88%e3%81%86%e3%82%8f%e3%81%91%e3%81%a7%e3%81%af%e3%81%aa%e3%81%84" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>エンジニアリングチームには、文化的背景も経験年数も専門も違う人が集まっています。同じ台本のレビューが全員に効くはずがありません。「平等に扱う」と「公平に扱う」は別物で、やり方は本人のニーズ、キャリアステージ、貢献に合わせて柔軟に変える必要があります。土台になるのは、各エンジニアの役割と責任が明確で、報酬とちゃんと釣り合っていることです。</p>
<p>一番こじれやすいのは、肩書きと給料です。タイトルに納得していない人や、昇進の準備ができていると感じている人に、曖昧な励ましは毒にしかなりません。効くのは具体です。次のランクの基準になる具体的なチャレンジやプロジェクト目標に合意して、昇進を「雰囲気」ではなく客観的な基準にする。報酬も同じで、給料が低いと感じている人や責任を広げたい人には、次のレビューまでに何を達成すれば変更を正当化できるのか、測定可能なターゲットをプランに書き込む。そして次のレビューでは、双方ともその約束に正直に向き合う。</p>
<p>改善のフィードバックにも同じことが言えます。特定のギャップを狙った特定の研修、ワークショップ、プロジェクトなら役に立ちます。「スキルを伸ばし続けてね」は役に立ちません。</p>

<h2 class="relative group">基準づくりは最初の面談から始まる
    <div id="基準づくりは最初の面談から始まる" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%9f%ba%e6%ba%96%e3%81%a5%e3%81%8f%e3%82%8a%e3%81%af%e6%9c%80%e5%88%9d%e3%81%ae%e9%9d%a2%e8%ab%87%e3%81%8b%e3%82%89%e5%a7%8b%e3%81%be%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>新しいメンバーとの最初のレビュー面談は、ほぼベースライン設定の時間です。役割が実際に何を含むのか、それがチームと会社の目標にどう繋がるのかを一緒に確認する。パフォーマンスを判断する測定可能なアウトカムに合意する。短期と長期の目標を置く。カルチャーと期待される振る舞い、フィードバックがいつどう届くか、使える研修やメンター制度、その席から見えるキャリアパスについて話すのもこのタイミングです。どれも刺激的ではありませんが、これをやっておくと後のレビューが全部楽になります。</p>

<h2 class="relative group">2回目以降のアジェンダ
    <div id="2回目以降のアジェンダ" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2%e5%9b%9e%e7%9b%ae%e4%bb%a5%e9%99%8d%e3%81%ae%e3%82%a2%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%80" aria-label="アンカー">#</a>
    </span>
    
</h2>
<ol>
<li>雑談。ばかばかしく聞こえますが、これで場の緊張が抜けて、その後の会話が正直になります。</li>
<li>アジェンダの確認。どちらも話題に不意打ちされないように。</li>
<li>前回のレビューからの成長。進歩は明示的に言葉にします。本人は案外気づいていないので。</li>
<li>現在のパフォーマンス。強みから。</li>
<li>改善点。それぞれに具体的で現実的なターゲットを付けて。</li>
<li>キャリアプラン。今の仕事がそこにちゃんと向かっているかも含めて。</li>
<li>次のレビューまでのターゲット、目標、アクションアイテム。</li>
</ol>

<h2 class="relative group">KPIは「その人用」でなければ機能しない
    <div id="kpiはその人用でなければ機能しない" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#kpi%e3%81%af%e3%81%9d%e3%81%ae%e4%ba%ba%e7%94%a8%e3%81%a7%e3%81%aa%e3%81%91%e3%82%8c%e3%81%b0%e6%a9%9f%e8%83%bd%e3%81%97%e3%81%aa%e3%81%84" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>プロダクトチームのエンジニアのKPIは、チームの目標と本人の両方に合っている必要があります。フロントエンド、バックエンド、フルスタックで役割は違いますし、ジュニアとシニアの違いはもっと大きい。コミット数はジュニア開発者について何かを語るかもしれませんが、主なアウトプットがアーキテクチャの意思決定であるシニアエンジニアについては何も語りません。だからKPIはテンプレートのコピーではなく、会話の中で決めるものです。</p>
<p>私が見ている領域はこのあたりです。</p>
<ul>
<li>コードの品質：エラー率、規約の遵守、バグ修正が必要になる頻度</li>
<li>プロジェクトのデリバリー：マイルストーンと期限の達成</li>
<li>イノベーションと問題解決：効率改善、難しい問題を実際に解決できたか</li>
<li>コラボレーション：ピアレビュー、チームの目標や議論への貢献</li>
<li>自己成長：学習目標の達成、資格、新しく身につけた技術</li>
<li>顧客へのインパクト：ユーザーからのフィードバック、リリースした機能の利用状況</li>
</ul>
<p>測定可能な指標という意味では、最近ユニットテストに注目しています。InfoQの<a href="https://www.infoq.com/articles/unit-tests-performance-review/"  target="_blank" rel="noreferrer">この記事</a>は、ユニットテストをパフォーマンスレビューに組み込む方法を扱っていて、実装の仕組みと、チーム文化への影響の両方に触れています。コードの健全性を定性・定量の両面から測ろうという主張で、エンジニアを行数に還元しないKPIを探しているなら一読の価値があります。</p>
<p>何を選ぶにせよ、レビューか1:1で一緒に合意して、役割やプロジェクトや技術の変化に合わせて見直すこと。誰も合意していないKPIは、人を叩くための棒でしかありません。</p>

<h2 class="relative group">私が使っているテンプレート
    <div id="私が使っているテンプレート" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a7%81%e3%81%8c%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%84%e3%82%8b%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>ドキュメントは1人につき1つにして、レビューのたびにセクションを足していきます。そうすれば履歴が1か所にまとまります。骨組みはこうです。</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="gu">## パフォーマンスレビュー：[名前]、[期間]
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gs">**役割とレベル：**</span> [肩書きと、このチームでそのレベルが意味すること]
</span></span><span class="line"><span class="cl"><span class="gs">**前回のレビューで決めた目標：**</span> [前回のセクションからコピー]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### 自己評価（エンジニア本人が事前に記入）
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> うまくいったこと。例を1つか2つ添えて
</span></span><span class="line"><span class="cl"><span class="k">-</span> うまくいかなかったこと。次はどうするか
</span></span><span class="line"><span class="cl"><span class="k">-</span> 1年後に何をしていたいか
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### 前回の目標の進捗
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> [目標]：達成 / 一部達成 / 未達成。根拠も添えて
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### 強み（具体例つき）
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> [何を、いつやって、何が変わったか]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### 改善点（それぞれにターゲットを）
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> [行動やスキル] → [日付]までに[「良くなった」と言える状態]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### キャリアとレベル
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> 次のレベルに対して今どこにいて、何が足りないか
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### 次のレビューまでの目標
</span></span></span><span class="line"><span class="cl"><span class="k">1.</span> [測定可能な目標]
</span></span><span class="line"><span class="cl"><span class="k">2.</span> [測定可能な目標]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### 合意したアクション
</span></span></span><span class="line"><span class="cl">- [誰が]、[いつまでに]、[何を]する</span></span></code></pre></div></div>
<p>自己評価は面談の1〜2日前に出してもらいます。面談中に書いてもらうことはしません。先に読んでおくと、会話が変わるからです。こちらが切り出そうと思っていたことを、半分くらいは本人がもう自分で書いているので、面談の時間はそれをどうするかに使えます。</p>

<h2 class="relative group">自己評価のための質問
    <div id="自己評価のための質問" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%87%aa%e5%b7%b1%e8%a9%95%e4%be%a1%e3%81%ae%e3%81%9f%e3%82%81%e3%81%ae%e8%b3%aa%e5%95%8f" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>事前に送っている質問がこちらです。わざとオープンな聞き方にしてあります。何をしたかだけでなく、本人が自分の仕事をどう見ているかが、答えから見えるようにするためです。</p>
<ul>
<li>前回のレビュー以降で、一番誇りに思っている仕事は何ですか？なぜそれを選びましたか？</li>
<li>どこで行き詰まりましたか？何があれば、もっと早く抜け出せたと思いますか？</li>
<li>チームメイトやレビュアーからもらったフィードバックで、心に残っているものはありますか？</li>
<li>前回の目標のうち、達成できたと思うものはどれですか？取り下げたい、または変えたいものはどれですか？</li>
<li>次に何を学びたいですか？今の仕事に、その機会はありますか？</li>
<li>マネージャーとして、私が変えるべきことは何ですか？</li>
</ul>
<p>最後の質問が、一番気まずい沈黙と、一番役に立つ答えを引き出します。</p>

<h2 class="relative group">具体的なフィードバックとはどういうものか
    <div id="具体的なフィードバックとはどういうものか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%85%b7%e4%bd%93%e7%9a%84%e3%81%aa%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%83%90%e3%83%83%e3%82%af%e3%81%a8%e3%81%af%e3%81%a9%e3%81%86%e3%81%84%e3%81%86%e3%82%82%e3%81%ae%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>ダメなレビューのフィードバックは、たいてい厳しいのではなく、曖昧なのです。私が書くようにしているフィードバックの例で、違いを並べてみます。</p>
<table>
	<thead>
			<tr>
					<th>曖昧</th>
					<th>具体的</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>「もっとコミュニケーションを」</td>
					<td>「決済基盤の移行では、遅れに気づいたのは2週間前だったのに、表に出たのはスプリントレビューでした。次からは、遅れが見えたその日のうちにチームのチャンネルで知らせてください。」</td>
			</tr>
			<tr>
					<td>「今期はよく頑張ってくれました」</td>
					<td>「キャッシュの選択肢をまとめてくれたドキュメントのおかげで、3回はかかりそうだった会議が1回で決まりました。決めるのに1日以上かかりそうなことは、これからもあの形でまとめてください。」</td>
			</tr>
			<tr>
					<td>「もっとシニアらしく」</td>
					<td>「次のレベルでは、機能の設計を最初から最後まで自分で持つことを期待しています。検索機能の作り直しでは設計レビューをリードして、トレードオフを添えた案を2つ持ってきてください。」</td>
			</tr>
			<tr>
					<td>「コードの品質に課題があります」</td>
					<td>「直近10件のPRのうち3件で、エッジケースの漏れによる追加の修正が必要になりました。レビューを依頼する前に失敗パスのテストを書くようにして、来期にもう一度この割合を見てみましょう。」</td>
			</tr>
	</tbody>
</table>
<p>具体的なほうは、どれも出来事を特定し、それが何を変えたかを言い、本人が次にできることを指しています。書くのに時間はかかります。だからこそ私は、前の晩に思い出そうとするのではなく、四半期を通して事例を集めておくようにしています。</p>

<h2 class="relative group">書き残す
    <div id="書き残す" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%9b%b8%e3%81%8d%e6%ae%8b%e3%81%99" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>面談が終わったら、サマリーを書きます。話した要点、挙がった課題、アクションアイテム、双方が合意した目標。官僚的に聞こえますが、この記録があるからこそ、半年後の「そんな約束はしていない」という会話を防げます。文書化された課題は蒸発せずに追跡され、アクションアイテムは次のレビューの冒頭アジェンダになり、紙に書かれた目標は真剣に扱われるようになります。</p>
<p>結局のところ、システムの全体はこれだけです。初日から期待値を明確にし、KPIはその人に合わせて作り、すべて記録し、アクションアイテムは必ずフォローする。双方向の会話と測定可能なアウトカムのないレビューはただの形式的な作業で、エンジニアはカレンダーの招待が届いた時点でその匂いを嗅ぎ取ります。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2024/2024-04-27-performance-reviews/featured.jpg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>エンジニアからエンジニアリングマネージャーへ：実際に何が変わるのか</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2024/2024-01-02-engineeringmanager/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2024/2024-01-02-engineeringmanager/</guid>
      <pubDate>Tue, 02 Jan 2024 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>engineering manager</category>
      <category>career</category>
      <category>leadership</category>
      <category>team management</category>
      <description>ソフトウェアエンジニアからエンジニアリングマネージャーへの転身は、昇進ではなくキャリアチェンジです。2つの仕事が日々どう違うのか、大事になるスキル、そして肩書きがつく前にできる準備をまとめました。</description>
      <content:encoded><![CDATA[<p><strong>昇進ではなく、キャリアチェンジ</strong></p>
<p>実は近いうちに、自分自身がこの転身をすることになりました。それもあって、ここしばらくは経験者に話を聞いたり、手に入る本を読んだりしています。今のところ一番はっきりした学びはこれです。エンジニアからエンジニアリングマネージャーになるのはステップアップではなく、まったく別の仕事への横移動だということ。自分のアウトプットはコードではなくなり、チームが生み出すものすべてになります。誰もがそう言うのに、誰もがその大きさを見誤るらしいのです。</p>
<p><strong>実際に何が変わるのか</strong></p>
<p>技術的な問題を自分の手で解く仕事から、人にまつわる問題を解く仕事に変わります。カレンダーは1on1と計画ミーティングとチーム間調整で埋まり、採用もパフォーマンスレビューも自分の机にやってきます。仕事の中心は、チームが仕事に集中するために必要なもの、つまり背景情報と明確な優先順位、そして余計なノイズの少なさを確保することになります。</p>
<p>厄介なのは、アーキテクチャの議論についていけて、まともな技術判断を下せるだけの技術力は保ちながら、「コードを書くのは自分ではない」と受け入れなければならない点です。両方やろうとしたマネージャーを何人か見てきましたが、たいてい両方とも中途半端になっていました。</p>
<p><strong>エンジニアとエンジニアリングマネージャーを並べてみる</strong></p>
<table>
	<thead>
			<tr>
					<th></th>
					<th>ソフトウェアエンジニア</th>
					<th>エンジニアリングマネージャー</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>アウトプット</td>
					<td>コード、設計、レビュー</td>
					<td>チームがリリースするもの、そしてチームそのもの</td>
			</tr>
			<tr>
					<td>評価されるもの</td>
					<td>自分の仕事の質とインパクト</td>
					<td>デリバリー、メンバーの定着、そして一人ひとりの成長</td>
			</tr>
			<tr>
					<td>典型的な1日</td>
					<td>集中して作業する時間、プルリクエスト、設計の議論</td>
					<td>1on1、計画、採用、メンバーの行き詰まりの解消</td>
			</tr>
			<tr>
					<td>フィードバックループ</td>
					<td>数時間〜数日。テストが通る、機能がリリースされる</td>
					<td>数か月。採用した人が活躍する、誰かが昇進する</td>
			</tr>
			<tr>
					<td>手を動かす技術的な仕事</td>
					<td>週の大半</td>
					<td>レビューとアーキテクチャの判断。クリティカルパスに入ることはめったにない</td>
			</tr>
	</tbody>
</table>
<p>経験者からいちばんよく釘を刺されるのが、このフィードバックループの行です。エンジニアなら、ほぼ毎日なにかしら小さな手応えがあります。マネージャーにも手応えはちゃんとあるのですが、届くのが遅い。自分の判断が正しかったのかどうか、しばらくわからないままでいることに慣れる必要があります。</p>
<p><strong>大事になりそうなスキル</strong></p>
<p>仕事の大半はコミュニケーションです。チームとプロダクトと経営層のあいだの通訳になり、この3者が同じ話をしているかを確かめるだけで、驚くほどの時間が過ぎていきます。どんなプロセスより効くのは信頼です。「ここが壊れています」と安心して言ってもらえない限り、問題を一番最後に知るのは自分になります。カレンダーは油断すると本当に予定で埋め尽くされてしまうので、考える時間とチームのための時間を守るのは終わりのない戦いです。そして、会社が何を達成しようとしているのかを理解していなければ、チームをまともな方向に向けることもできません。</p>
<p><strong>肩書きが来る前の準備</strong></p>
<p>繰り返し聞いたアドバイスで、自分でも保証できるのがこれです。肩書きをもらう前からリードを始めること。プロジェクトを回す、誰かのメンターになる、何かを立ち上げる。私自身、この1年ほどプロジェクトリードとしてやってきましたが、その経験がどんな本よりも効いています。とはいえ本も役に立ちます。Camille Fournierの &ldquo;<a href="https://www.oreilly.co.jp/books/9784873118482/" target="_blank" rel="noreferrer">The Manager&rsquo;s Path</a>&rdquo; はみんなが薦める一冊で、読んでみて理由がわかりました。技術力も磨き続けてください。アーキテクチャ論争はなくなりませんから。そして、すでに転身を経験したメンターを見つけること。後から見れば当たり前に思える失敗を、事前に避けさせてくれます。</p>
<p><strong>トレードオフ</strong></p>
<p>ものづくりの方向性への影響力は増えますが、自分の手で作ることはほとんどなくなります。それが気持ちいい日もあれば、コードが恋しくてたまらない日もあるはずです。経験者は口を揃えて「それが普通」と言います。半年後にまた聞いてください。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2024/2024-01-02-engineeringmanager/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>優れたマネージャーほど「わかりません」と言う理由と、上手な伝え方</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2023/2023-10-13-i-dont-know/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2023/2023-10-13-i-dont-know/</guid>
      <pubDate>Fri, 13 Oct 2023 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Engineering Manager</category>
      <category>Leadership</category>
      <category>Communication</category>
      <category>Management</category>
      <description>「わかりません」と言うのは失礼でも力不足でもありません。仕事で信頼を失わずに「わからない」を伝える言い方の例と、次の行動を必ず添えるべき理由をまとめました。</description>
      <content:encoded><![CDATA[<p>これまで一緒に働いてきた中で「この人はすごい」と思ったマネージャーには、共通するクセがありました。知らないことを聞かれたとき、ごまかさずに「わかりません」と言うことです。曖昧にはぐらかすこともなく、ただ一言、「わからないので、調べましょう」。</p>
<p>最近このことをよく考えるのは、自分自身がプロジェクトをリードする立場になって、ごまかしたくなる誘惑を実感しているからです。会議で質問されて、5人が答えを待っている場面での「わかりません」は、負けを認めるような気分になります。でも実際は逆で、たいていの場合それが一番強い一手です。ただし、次に何をするか、つまり誰に聞くのか、いつ答えを持ってくるのかを添えることが条件です。</p>

<h3 class="relative group">ごまかしは必ずバレる
    <div id="ごまかしは必ずバレる" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%94%e3%81%be%e3%81%8b%e3%81%97%e3%81%af%e5%bf%85%e3%81%9a%e3%83%90%e3%83%ac%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>ソフトウェアの世界は変化が速すぎて、全部を頭に入れておける人はいません。そしてエンジニアは、知ったかぶりを驚くほど敏感に見抜きます。一度でも「知っているふり」を見破られると、チームはそれ以降、こちらの本当の答えまで割り引いて聞くようになります。逆に、知らないことを認めて、その穴をきちんと埋めに行くマネージャーの言葉は信頼されます。本物の答えかどうか、みんなちゃんと聞き分けているのです。</p>

<h3 class="relative group">「わかりません」は答えではなく出発点
    <div id="わかりませんは答えではなく出発点" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%8f%e3%81%8b%e3%82%8a%e3%81%be%e3%81%9b%e3%82%93%e3%81%af%e7%ad%94%e3%81%88%e3%81%a7%e3%81%af%e3%81%aa%e3%81%8f%e5%87%ba%e7%99%ba%e7%82%b9" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>大事なのはその後です。「わかりません」で終わったら、ただの投げっぱなしです。いいマネージャーは、そこからより良い質問を組み立てます。「今使っているものと比べてどうか」「この前提が外れたら何が壊れるか」。そして、その質問を適切な人にぶつけます。どのチームにも、データベースに住んでいるような人や、フロントエンドの厄介なエッジケースを全部知っている人がいるものです。全部を自分で知っている必要はありません。誰が知っているかを把握して、実際に聞きに行けばいいのです。</p>

<h3 class="relative group">仕事で「わかりません」を上手に伝える言い方
    <div id="仕事でわかりませんを上手に伝える言い方" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bb%95%e4%ba%8b%e3%81%a7%e3%82%8f%e3%81%8b%e3%82%8a%e3%81%be%e3%81%9b%e3%82%93%e3%82%92%e4%b8%8a%e6%89%8b%e3%81%ab%e4%bc%9d%e3%81%88%e3%82%8b%e8%a8%80%e3%81%84%e6%96%b9" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>私が心がけているのは、「わかりません」で文を終わらせないことです。実際に口に出して使える言い方をいくつか挙げます。</p>
<ul>
<li>「今の時点ではわかりません。木曜までに確認してお返事します」</li>
<li>「そこは私より佐藤さんのほうが詳しいので、聞いてみましょう」</li>
<li>「確証はないのですが、おそらくXだと思います。決める前にYだけ確認させてください」</li>
<li>「手元に数字がないので、会議のあとでチャンネルに共有しますね」</li>
<li>「申し訳ありません、私ではわかりかねますので、担当の者に確認してご連絡いたします」（社外やお客さま向け）</li>
</ul>
<p>「勉強不足ですみません」と謝るところから入る必要もありません。「わかりません」は失礼なのでは、と気にする人もいますが、次の行動が添えてあれば失礼にはなりません。相手が本当に困るのは、何も前に進まない「さあ……」か、自信満々に答えたのに後で間違いだとわかる回答のほうです。面接でも同じで、知らないことは知らないと言ったうえで、どうやって調べるかを話せば、当てずっぽうの答えよりずっと多くが伝わります。</p>

<h3 class="relative group">意思決定の質が上がる
    <div id="意思決定の質が上がる" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%84%8f%e6%80%9d%e6%b1%ba%e5%ae%9a%e3%81%ae%e8%b3%aa%e3%81%8c%e4%b8%8a%e3%81%8c%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>ソフトウェアの意思決定は後々まで残ります。だからこそ、「ここは確信がある」「ここは推測だ」と正直に区別する価値があります。わからない部分を先に認めておけば、決めた後ではなく決める前に足りない情報を集められますし、反対意見のある人も声を上げやすくなります。それこそ、一番聞くべき声です。決めたら理由を説明する。間違っていたら、それも認める。マネージャーが自分の失敗を認められないチームほど、正直さが早く失われていく場所はありません。</p>
<p>難しい話ではありません。質問をして、自分より詳しい人の話を聞いて（自分より詳しい人は必ずいます）、推測で話すときは推測だと言う。それだけです。「わかりませんが、調べてみましょう」という一言は、ごまかして切り抜けたどんな答えよりも、私の信用を積み上げてくれました。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-10-13-i-dont-know/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>Gitのグラフ表示（ターミナル・VS Code）で、マイクロマネジメントせずに進捗を追う</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2023/2023-06-02-project-progress-git-graph/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2023/2023-06-02-project-progress-git-graph/</guid>
      <pubDate>Fri, 02 Jun 2023 11:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Git</category>
      <category>Git Graph</category>
      <category>VS Code</category>
      <category>Project Management</category>
      <category>Engineering Manager</category>
      <description>git log --graphのコマンドとエイリアス、2つのブランチの比較、VS CodeのGit Graph拡張と標準のグラフ表示。そのうえで、チームを監視せずに進捗を追う使い方を紹介します。</description>
      <content:encoded><![CDATA[<p>Gitのグラフをいちばん手軽に見るならターミナルです。<code>git log --graph --oneline --all --decorate</code> を実行すると、すべてのブランチが線で描かれ、1行に1コミット、ブランチ名やタグ名もコミットの横に表示されます。VS Codeなら、ソース管理ビューに標準で入っている「Source Control Graph」を使うか、Git Graph拡張を入れれば、もっと大きくてクリックできるグラフが見られます。どちらも記事の最後で詳しく説明します。</p>
<p>「進捗どうですか？」と聞かれて嬉しい人はいません。とはいえ、仕事でプロジェクトを率いる立場としては、進捗を知らないわけにもいきません。私の妥協点がGitグラフです。誰かに聞く前に、まずグラフを見る。たいていの場合、答えはすでにそこにあります。コミットの動き、ブランチ、マージがひと目で分かり、そのために誰も会議に出る必要がありません。</p>

<h3 class="relative group">グラフから実際に何が読めるか
    <div id="グラフから実際に何が読めるか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%b0%e3%83%a9%e3%83%95%e3%81%8b%e3%82%89%e5%ae%9f%e9%9a%9b%e3%81%ab%e4%bd%95%e3%81%8c%e8%aa%ad%e3%82%81%e3%82%8b%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p><figure><span class="mc-img" style="--lqip:url('data:image/webp;base64,UklGRqoAAABXRUJQVlA4IJ4AAAAQBgCdASogABgAPw1yrE0mIyIhKAqoxiGJ5QC3uywCxQFpuHEPXSkTd6B0z2RWZa4T7Y8RfsruOsAA/vd8+2CpyheBOdEz3RjVNYlC9RtFoqjOvb/UUWB572vAmnOtzv/AnG5mtp9GYAzXQce5Jk69dXACVLuYiXixGTwngnNtwm/gJSEGWEDi7N2CT1vDSW68w98W/Qmb3QPw7xAAAA==')"><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="auto"
    alt="Git Graphs"
    width="2560"
    height="1920"
    src="https://jared.lynskey.co.nz/img/posts/gitgraphs/image_hu_4be8d7d2144dd617.webp"
    srcset="https://jared.lynskey.co.nz/img/posts/gitgraphs/image_hu_4be8d7d2144dd617.webp 800w, https://jared.lynskey.co.nz/img/posts/gitgraphs/image_hu_b6056380eece4a86.webp 1280w"
    sizes="(min-width: 768px) 50vw, 65vw"
    data-zoom-src="https://jared.lynskey.co.nz/img/posts/gitgraphs/image_hu_1c52b3c34db54258.webp"></span></figure>
</p>
<p>じっくり見たことがない方のために説明すると、ノードひとつがコミット、枝分かれした線がブランチで、全体がプロジェクトの時系列になっています。このレイアウトには驚くほど情報が詰まっています。</p>
<ul>
<li>一瞥するだけで、アクティブなブランチの数とコミットの頻度が分かります。</li>
<li>急に静かになったブランチや、何週間もマージされていないブランチは、たいてい誰かが詰まっているサインです。この早期警告には価値があります。</li>
<li>マージの頻度はチームのコラボレーションの形を映します。マージが頻繁なら作業がきちんと統合されている証拠で、長生きしすぎたブランチは、孤立した作業になっている可能性が高いです。</li>
</ul>

<h3 class="relative group">中断は減り、会話は良くなる
    <div id="中断は減り会話は良くなる" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%ad%e6%96%ad%e3%81%af%e6%b8%9b%e3%82%8a%e4%bc%9a%e8%a9%b1%e3%81%af%e8%89%af%e3%81%8f%e3%81%aa%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>分かりやすいメリットは、誰の作業も中断せずに状況を把握できることです。それ以上に効くのは、いざ会話が必要になったときです。推測ではなく、グラフから話を始められます。「このブランチ、火曜日から動いてないけど、何か詰まってる？」は、「進捗どうですか？」よりずっとましな切り出し方です。</p>
<p>ルーチンを明示しておくのも効きます。私の場合は、ほぼ毎朝さっと眺めて、週に一度じっくり見る。チームもそのリズムを知っているので、誰も驚きません。</p>

<h3 class="relative group">監視ツールにしないこと
    <div id="監視ツールにしないこと" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%9b%a3%e8%a6%96%e3%83%84%e3%83%bc%e3%83%ab%e3%81%ab%e3%81%97%e3%81%aa%e3%81%84%e3%81%93%e3%81%a8" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>ここは自分にも言い聞かせ続けている部分です。コミット数は価値ではありません。よく考えられたコミット1つが、騒がしいコミット50個に勝つこともあります。すべてのコミットが見えるからといって、すべての判断に口を出していいわけではない。チームを信頼して、パターンが本当に怪しいときだけ介入する。そしてグラフを会話に持ち込むときは、フィードバックの出発点として使うこと。検察側の証拠にしてはいけません。</p>

<h3 class="relative group">ターミナルでグラフを表示する
    <div id="ターミナルでグラフを表示する" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%bf%e3%83%bc%e3%83%9f%e3%83%8a%e3%83%ab%e3%81%a7%e3%82%b0%e3%83%a9%e3%83%95%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>必要なのはGitだけです。</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git log --graph --oneline --all --decorate</span></span></code></pre></div></div>
<p>それぞれのオプションの意味は次のとおりです。</p>
<ul>
<li><code>--graph</code>：左側にブランチとマージの線を描きます。</li>
<li><code>--oneline</code>：1コミットを1行で、短いハッシュとメッセージの1行目だけ表示します。</li>
<li><code>--all</code>：今いるブランチだけでなく、リモートを含むすべてのブランチとタグを表示します。</li>
<li><code>--decorate</code>：ブランチ名やタグ名を、それが指すコミットの横に表示します。最近のGitは出力先がターミナルなら何もしなくても表示しますが、このオプションを付けておけば、パイプで別のコマンドに渡したときも消えません。</li>
</ul>
<p>毎朝これを打つのは面倒なので、エイリアスにしておきます。</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git config --global alias.graph <span class="s2">&#34;log --graph --oneline --all --decorate&#34;</span>
</span></span><span class="line"><span class="cl">git graph</span></span></code></pre></div></div>
<p>長く続いているリポジトリだと、グラフ全体はいつまでもスクロールが終わりません。絞り込む方法をいくつか挙げます。</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git graph --since<span class="o">=</span><span class="s2">&#34;2 weeks ago&#34;</span>    <span class="c1"># 直近2週間だけ</span>
</span></span><span class="line"><span class="cl">git graph -20                      <span class="c1"># 直近20コミットだけ</span>
</span></span><span class="line"><span class="cl">git log --graph --oneline main..feature                <span class="c1"># featureにあってmainにまだないもの</span>
</span></span><span class="line"><span class="cl">git log --graph --oneline --left-right main...feature  <span class="c1"># 両側を &lt; と &gt; で区別して表示</span></span></span></code></pre></div></div>
<p>最後の2つは2つのブランチの比較です。エイリアスではなく素の <code>git log</code> を使っているのは、<code>--all</code> が入っていると他のブランチまで全部戻ってきてしまうからです。ドット2つは「<code>feature</code> にあって <code>main</code> にないもの」を表示します。ドット3つに <code>--left-right</code> を付けると、お互いに相手にないものを両側とも表示するので、長生きしているブランチがどれだけ離れてしまったかをすぐ確認できます。</p>

<h3 class="relative group">VS Codeでグラフを表示する
    <div id="vs-codeでグラフを表示する" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#vs-code%e3%81%a7%e3%82%b0%e3%83%a9%e3%83%95%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>VS Codeにはグラフが標準で入っています。ソース管理ビュー（Ctrl+Shift+G）を開くと、そのパネルの中に「Source Control Graph」のセクションがあります。バージョン1.93（2024年8月）からの機能です。初期状態では今のブランチとそのリモートを表示し、グラフのタイトルバーにあるブランチ選択で他のブランチを追加できます。さっと眺めるだけなら、これで十分です。</p>
<p>すべてのブランチを一度に見たいなら、mhutchie氏のGit Graph拡張を入れます（拡張機能ビューで「Git Graph」を検索）。開き方は、ステータスバーの「Git Graph」、ソース管理ビュー上部のGit Graphアイコン、またはコマンドパレットの <em>Git Graph: View Git Graph (git log)</em> のいずれかです。コミットをクリックすると変更されたファイルが見られ、あるコミットをクリックしてから別のコミットをCtrl/Cmd+クリックすると2つを比較できます。ただ、この拡張は2021年からリリースが止まっているので、標準のグラフも知っておいて損はありません。</p>
<p>Git Graphのボタンが出てこない場合は、拡張機能がリポジトリを見つけられていない可能性が高いです。初期設定では開いたフォルダそのものしか探さず、サブフォルダまでは見に行きません。リポジトリのフォルダを直接開くか、設定で <code>git-graph.maxDepthOfRepoSearch</code> の値を上げてください。</p>

<h3 class="relative group">その他のツール
    <div id="その他のツール" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%9d%e3%81%ae%e4%bb%96%e3%81%ae%e3%83%84%e3%83%bc%e3%83%ab" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>たいていのGitツールには、どこかにグラフがあります。<code>gitk --all</code> はGit自身の履歴ブラウザです。GitHub、GitLab、Bitbucketには、リポジトリページに「ネットワーク」や「グラフ」のビューがあります。デスクトップクライアントでも、SourceTree（Atlassianの無料ツール）、GitKraken、Tower、WindowsならTortoiseGitに、どれもグラフ表示があります。</p>
<p>どれを選んでも、目的は同じです。進捗を理解すること。コミットを数えることではありません。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-06-02-project-progress-git-graph/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
  </channel>
</rss>
