仕様書の行間にある「痛み」:なぜ私たちは『正解』のコードでユーザーを怒らせるのか?
1. 完璧なコードが生む「孤独なエラー」
みんな、こんな経験ない?
徹夜して、SOLID原則を完璧に守り、MVVMパターンも美しく実装し、単体テストもカバレッジ100%。C#の非同期処理(async/await)もバッチリで、UIスレッドをブロックすることなくヌルヌル動くWPFアプリケーション。「これぞエンジニアリングの極致!」と自画自賛しながらリリースした自信作。
それなのに、ユーザー(あるいはクライアント)からの反応がこれ。
「使いにくい」「なんか違う」「これじゃない」
正直、昔の僕はこう思ってた。「は? 仕様書通りじゃん。要件定義書に書いてある機能は全部実装したよ? 使いにくいのは、君たちのリテラシーの問題じゃない?」って。
でも、海外に出て働いてみて、その考えが完全に間違っていたことに気づかされたんだ。特にここ、異国の地では「空気を読む」なんて文化は通用しないし、仕様書なんて日本ほど緻密じゃないことが多い。「行間を読む」スキルが、日本にいた時とは比べ物にならないほど求められる。
僕たちが作っているのは、コンパイラを喜ばせるためのコードじゃない。生身の人間が、日々の仕事や生活の中で使うツールなんだよね。
この「起」の章では、まず私たちが陥りがちな「技術偏重の罠」と、そこから脱却するための第一歩である「共感(Empathy)」の重要性について、僕の海外での失敗談や気づきを交えて掘り下げていきたいと思う。
2. 「要件定義書」はただのスタート地点にすぎない
海外、特に欧米圏の現場に来て驚いたのは、要件定義(Requirements)の粒度の荒さと、ダイナミックな変化のスピード感だ。
「ここ、WPFのDataGridでフィルタリングできるようにして」
たった一行のチケット。日本のSIerなら「詳細設計書は? フィルタの条件は? OR条件? AND条件? UIのデザインは?」って詰めるところだけど、こっちでは「とりあえず動くもん作って見せてよ」ってスタンスが多い。
ここで「仕様が決まってないので動けません」と言うエンジニアは、残念ながらここでは評価されない。逆に、「ユーザーは何のためにフィルタリングしたいの?」と想像力を働かせられるエンジニアが重宝される。
ここで登場するのが**「Beyond requirements documents(要件定義書の向こう側)」**という視点だ。
要件定義書っていうのは、あくまで「今の時点で言語化できた要望」のリストに過ぎない。そこには、ユーザー自身すら気づいていない「本当のニーズ(潜在的欲求)」や、現場で彼らが感じている「痛み(Pain Points)」までは書かれていないことが多いんだ。
例えば、ある業務アプリの改修で「入力フォームのタブオーダー(Tabキーでの移動順序)を修正してほしい」という地味な依頼があったとする。
技術的にはプロパティをちょいちょいと変えるだけで3分で終わる。でも、そこで「なぜ今、この依頼が来たのか?」を考えるのが「共感」の始まりだ。
実際に現場を見に行ってみると(あるいはビデオ通話で画面共有してもらうと)、彼らは電話対応をしながら片手で必死に入力していて、マウスに持ち替える時間すら惜しんでいるのかもしれない。あるいは、既存の順序が直感的じゃなくて、毎日何百回も小さなストレスを感じているのかもしれない。
もしそうなら、ただタブオーダーを変えるだけじゃなく、「ショートカットキーで保存できるようにする」とか「よく使う項目を自動入力する」といった提案ができるかもしれない。これが「仕様書の向こう側」を見るということ。
C#やWPFの技術力は、あくまで**「その優しさを形にするための道具」**でしかないんだよ。
3. 海外で働くエンジニアにとっての「Empathy(共感)」
「Empathy」という言葉、最近テック業界でもよく聞くようになったよね。デザイン思考(Design Thinking)の文脈なんかでよく出てくる。でも、これって単なるバズワードじゃなくて、特に海外で働く日本人エンジニアにとっては最強のサバイバルスキルになり得るんだ。
なぜか?
僕たちノンネイティブにとって、英語でのコミュニケーションは常にハンデがある。流暢な議論や、微妙なニュアンスを含んだジョークの応酬では、ネイティブには勝てない。
でも、「相手の立場に立って考える」「ユーザーの痛みを想像する」という共感力には、国境も言語の壁もない。
むしろ、言葉が不自由だからこそ、相手の表情や操作の迷い、ため息、そういった非言語的なシグナルに敏感になれることがある。
「あ、この人、この画面でいつも一瞬止まるな」
「この機能の話をする時、ちょっと顔が曇るな」
そういった微細な違和感をキャッチして、「もしかして、ここの操作フロー、直感的じゃないですか?」とカタコトの英語でも図解しながら提案してみる。すると、「そうなの! まさにそれが言いたかったの!」と、一気に信頼関係が築けることがある。これこそがUser Stories 2.0への入り口だ。
ステークホルダーやエンドユーザーから深い洞察(Deep Insights)を引き出すテクニックは、流暢な英語力よりも、**「あなたの困りごとを解決したい」という姿勢(Empathy)**から生まれる。
4. ロジックの迷宮と感情の出口
僕たちエンジニアは、基本的にロジカルな生き物だ。「AだからBになる」「効率化のためにCを導入する」。それは正しい。でも、人間はロジックだけでは動かない。
WPFで画面設計をしていると、MVVMパターンに固執するあまり、ViewModelの構造に合わせてViewを作っちゃうこと、ない?
「データ構造的にここはリストだから、ListBoxで表示するのが正解」
確かにバックエンドのロジックとしては正解かもしれない。でも、ユーザーにとってそのデータは「リスト」として認識されているのか? それとも「カード」なのか? あるいは「地図上のピン」なのか?
ロジックで組み上げたシステムが、ユーザーのメンタルモデル(頭の中にあるイメージ)と乖離している時、ユーザーは「使いにくい」と感じる。そしてそのストレスは、じわじわとプロダクトの価値を下げていく。
**The “Aha!” moment(アハ体験)**は、このロジックと感情がカチッとハマった時に訪れる。
「あ、これこれ! こういうふうに動いてほしかったんだよ!」とユーザーが目を輝かせる瞬間。これこそが、エンジニアとしての本当の喜びだし、僕たちが目指すべきゴールだ。
このブログシリーズでは、僕が実際に海外の現場で体験した「ユーザー共感」にまつわる失敗と成功、そして具体的にどうやって「共感」を技術に落とし込んでいくのかを紹介していくつもりだ。
次回の「承」パートでは、より具体的なテクニック論に入っていく。
仕様書には書かれない「ユーザーの本音」を引き出すためのヒアリング術や、User Storiesを単なる機能リストで終わらせないためのフレームワークについて、C#er視点での具体例(WPFのプロトタイピング活用法など)も交えて深掘りしていくよ。
ただコードを書くだけの「コーダー」から、ユーザーの人生を少しだけ良くする「真のエンジニア」へ。
この旅は、思ったよりエキサイティングだぞ。
準備はいい? それじゃあ、まずは自分の書いたコードの向こう側にいる「誰か」を想像することから始めよう。
User Stories 2.0:深層心理をハックする「探偵」としてのエンジニア
1. 「Excelにエクスポートしたい」の真実を暴け
現場で一番よくある、そして一番危険なリクエスト。それが「このデータをExcelにエクスポートできるようにして」です。
昔の僕なら、「了解です。CSV書き出し機能、ライブラリ『CsvHelper』使って1日で実装します」と即答していたでしょう。
でも、これこそが罠なんです。
海外の現場、特にビジネスサイドの人間は、エンジニアに対して「具体的な解決策(Solution)」を投げかけてくることが多いです。でも、彼らは技術のプロじゃない。彼らが提示する解決策は、往々にして「彼らが知っている範囲内での最適解」に過ぎないんです。
ここで発動させるべきスキルが**「Whyの深掘り(The 5 Whys)」**です。
「OK、Excel機能ね。でも、エクスポートした後にそのデータで何をするつもり?」と聞いてみる。
すると、「毎月の集計レポートを作るために、ピボットテーブルで地域別の売上を出したいんだ」と言うかもしれない。
ここで思考停止してはいけません。「なるほど、集計ね」じゃなくて、さらに突っ込む。
「それって、毎日やるの? 毎週?」
「毎日だよ。毎朝30分かけて手作業でやってる。マジで面倒なんだ」
ここで真実が見えます。彼らが本当に欲しかったのは「Excelエクスポート機能」じゃない。**「毎朝の30分の手作業からの解放」であり、「地域別売上の可視化」**なんです。
もしここで、WPFの強力なデータバインディングとDataGridのグルーピング機能、あるいはLiveChartsのようなライブラリを使って、アプリ内でリアルタイムに「地域別売上グラフ」が表示されるダッシュボードを作ってあげたらどうなるか?
「Excelなんかいらなかったんや…!」
これが**「Beyond requirements documents(要件定義書の向こう側)」**です。
言われた通りのものを作るのは二流。相手が「本当にやりたかったこと」を叶えるのが一流のエンジニア。特に言葉の壁がある海外では、この「提案」が「こいつ、分かってるな」という絶大な信頼に変わります。
2. User Stories 2.0:テンプレート思考からの脱却
アジャイル開発やスクラムをやっていると、「ユーザーストーリー」を書くことがありますよね。
よくあるテンプレートはこうです。
- As a user (ユーザーとして)
- I want to export data to Excel (データをExcelに出力したい)
- So that I can create reports (レポートを作成できるようにするため)
これ、形骸化してませんか? 「So that」の部分が適当になっていませんか?
僕が提唱したいUser Stories 2.0は、ここにもっと「感情」と「文脈」を乗せる手法です。
例えば、こう書き換えます。
- Context (状況): 月末の締め処理に追われ、プレッシャーを感じている経理担当のサラが、
- Pain Point (痛み): 複数の画面を行き来してデータをコピペするというミスが起きやすい作業にストレスを感じており、
- Solution (解決策): ワンクリックで信頼できる集計結果が得られる機能を求めている。
- Gain (得られる未来): それによって、彼女は残業せずに子供を迎えに行けるようになる。
ここまで解像度を上げると、実装へのモチベーションが変わりませんか?
「ミスが起きやすい」なら、バリデーションを強めにしようとか、確認ダイアログを出そうとか、UI設計の勘所が自然と見えてきます。
「ワンクリックで」なら、深い階層のメニューに入れるんじゃなくて、ダッシュボードの一等地にデカいボタンを置くべきだと分かります。
仕様書を「機能のリスト」から「ユーザーの物語」に変換する。これが、共感を行動に移すための第一歩です。
3. WPFエンジニアの特権:XAMLによる「高速フィードバック」
ここで少し技術的な話をしましょう。僕たちC# WPFエンジニアには、他の技術スタックにはない強力な武器があります。
それは**「XAML」と「ホットリロード(Hot Reload)」**、そして強力なデザイナーツールです。
Webフロントエンドも進化していますが、デスクトップアプリの「重厚感」や「複雑な操作性」を表現するにおいて、WPFの表現力は依然として強力です。
海外の現場で英語の議論が紛糾した時、僕はよく会議中にVisual Studioを開きます。
「あー、言いたいのはこういうこと?」
その場でXAMLをいじって、ボタンの色を変えたり、レイアウトをグリッドからスタックパネルに変えてみたりする。
「No, No, もっとこう、左側にリストがあって…」
「OK、GridのColumnDefinitionをいじるね。こう?」
「Yes! Exactly!」
言葉で1時間議論するより、動くモックアップ(プロトタイプ)を1分見せる方が、何倍も情報量が多いんです。
これを僕は**「Prototyping as a Second Language (第二言語としてのプロトタイピング)」**と呼んでいます。
完璧なMVVMである必要はありません。Code Behind(コードビハインド)にガリガリ書いてもいい。なんならダミーデータでいい。
重要なのは、「ユーザーのメンタルモデルを可視化して、認識のズレを埋めること」。
この「動く画面を見せながらのヒアリング」は、User Stories 2.0を構築するための最強のテクニックです。
ユーザーは完成品を見るまで、自分が何を欲しいか分かっていないことがほとんどです。プロトタイプを見せることで初めて、「あ、実はここの項目、いらないかも」といった本音がポロポロ出てきます。
4. ステークホルダーとの「共犯関係」を作る
「要件定義」というと、なんだか「客 vs エンジニア」の戦いみたいになりがちです。「仕様変更は敵だ!」みたいな。
でも、Empathyに基づいた開発では、ステークホルダー(利害関係者)を巻き込んで**「一緒に正解を探すチーム」**にしてしまうのがコツです。
僕はよく、開発初期段階でこんなアプローチをします。
「まだ全然未完成でバグだらけだけど、方向性が合ってるかだけ確認してくれない?」
と言って、作りかけのアプリを触らせてしまう。これを「Quick & Dirty(早くて汚い)」アプローチと言います。
日本だと「完成してないものを見せるなんて失礼だ」という文化があるかもしれませんが、海外(特に欧米)では**「早期のフィードバック」**が何よりも歓迎されます。
「ここは使いにくい」「ここはいいね」と意見を言ってもらうことで、彼らは「自分もこのソフトウェア作りに関わっている」という当事者意識(Ownership)を持つようになります。
こうなるとしめたものです。
彼らはもはや「仕様を押し付けてくる敵」ではなく、「一緒に良いプロダクトを作ろうとする仲間(共犯者)」になります。
後でバグが出ても、「あそこは複雑だったからな、一緒に直そう」と味方になってくれることさえあります。
5. 「沈黙」と「観察」の力
最後に、一番地味だけど強力なテクニックを紹介します。
それは**「黙って見る(Shadowing)」**こと。
ユーザーインタビューやミーティングでは、みんな「良いこと」を言おうとします。
「このシステムは使いやすいです」「特に問題ありません」
でも、実際の操作現場に行ってみると、彼らは付箋だらけのモニターを見ていたり、電卓を叩いていたり、画面のロード中にスマホをいじってイライラしていたりします。
言葉は嘘をつきますが、行動は嘘をつきません。
もし可能なら(セキュリティ的に許されるなら)、ユーザーが実際に現行システムを使っている様子を、後ろから30分だけでいいので観察させてもらいましょう。
「あれ? 今、なんでこの画面を一回閉じて、もう一回開いたの?」
「あー、これね。一度閉じないと更新が反映されないバグがあって…慣れちゃってるから無意識にやってたわ」
これです! これこそが**「潜在的なニーズ(Unmet Needs)」**です。
ユーザー自身が「慣れ」によって諦めてしまっている不便さ。これを見つけ出し、解決してあげた時こそ、ユーザーは感動します。
「君は、私が言わなかったことまで直してくれた!」
この感動こそが、エンジニアとしての評価を爆上げし、次の仕事に繋がる最大の要因になります。
The “Aha!” Moment:大炎上プロジェクトを救った「汚いホワイトボード」の真実
1. 悪夢は「完璧なリリース」の翌日に始まった
あれは、ある物流企業の倉庫管理システム(WMS)を、レガシーなVB.netから最新のC# WPF/.NET Coreへリプレースするプロジェクトでした。
僕たちは自信満々でした。
- アーキテクチャ: 堅牢なClean Architectureを採用。
- UI/UX: マテリアルデザインを取り入れた、モダンで広々とした美しい画面。
- パフォーマンス: 非同期処理を駆使し、以前は5秒かかっていた検索が0.5秒で終わる爆速仕様。
「これで現場の作業効率は劇的に上がるはずだ」
チーム全員がそう確信してリリースを迎えました。シャンパンを開ける準備すらしていました。
しかし、翌日届いたのは称賛ではなく、現場マネージャーからの激怒のメールでした。
「仕事にならない。前のシステムに戻してくれ。今すぐにだ!」
僕たちは凍りつきました。「バグ? パフォーマンス低下?」
ログを見てもエラーはゼロ。速度も出ている。
「現場の人間は新しい変化を嫌うもんだよ(Resistance to change)」と、チームメイトは肩をすくめましたが、僕は納得できませんでした。
単なる「慣れ」の問題で、ここまで強く拒絶されるはずがない。
何かが決定的にズレている。僕は許可をもらい、片道3時間かけて現場の倉庫へ向かいました。
2. 美しいUIが殺した「現場のリズム」
現場に着いて、オペレーターのジョー(仮名)の後ろに立ち、彼の作業を観察(Shadowing)しました。
そこで僕が見たのは、衝撃的な光景でした。
ジョーは、僕たちが作った「美しく余白のあるモダンな画面」を見て、イライラしながらマウスホイールを回しまくっていました。
「おい、あの情報はどこに行った?」
「いちいちクリックしないと詳細が見れないのか?」
旧システムは、Windows 95時代のような、文字がびっしり詰まった「醜い」画面でした。フォントは小さく、余白なんて1ミリもない。デザイナーが見たら卒倒するような画面です。
でも、ジョーたちベテランにとって、それは**「神の視点(Cockpit View)」**だったのです。
彼らは一瞬の視線移動だけで、画面の端から端まで、数百件の在庫状況を把握していました。スクロールもクリックも不要。
僕たちが良かれと思って導入した「マテリアルデザインの余白(Whitespace)」や「情報の整理(カード形式)」は、彼らにとって**「一覧性の欠如」であり、「視線の移動コストの増大」**でしかなかったのです。
「綺麗だけど、スカスカで何も見えないんだよ!」
ジョーの言葉が胸に刺さりました。
僕たちは「人間工学に基づいた見やすいUI」を作ったつもりでしたが、それは「一般消費者向け」の正解であって、「プロフェッショナルな業務ツール」の正解ではなかったのです。
3. 真の敵はシステムの外にいた
さらに観察を続けると、もっと奇妙なことに気づきました。
ジョーはPC画面を見ながら、手元の**「汚れた巨大なホワイトボード」**に頻繁にマグネットを動かしていました。
システム上で「配送完了」の処理をした後、わざわざ立ち上がって、ホワイトボード上の「トラックA」のマグネットを「完了エリア」に移動させているのです。
「ジョー、なんで二度手間なことをするの? システム上でステータスは変わってるよ?」と聞きました。
彼はこう答えました。
「このボードを見ないと、全体の『流れ』が見えないんだ。システムはただの記録係だろ? 次に何が来るか、どこが詰まっているか、このボードなら一発でわかるからな」
その瞬間、僕の脳内で雷が落ちました。The “Aha!” momentです。
彼らにとって、システムは「現実を管理するツール」ではなく、単なる「事後報告のための帳簿」に成り下がっていたのです。
彼らが本当に信頼し、業務の司令塔にしているのは、この**「アナログなホワイトボード」**だったのです。
僕たちが作るべきだったのは、在庫リストの管理画面じゃない。
この**「ホワイトボード体験」そのものをデジタル化**することだったんだ!
4. 逆転の発想:ロジックを捨てて「感覚」を実装せよ
オフィスに戻った僕は、チームに提案しました。
「リスト表示はやめよう。マテリアルデザインも捨てよう。WPFのCanvasを使って、あのホワイトボードをそのまま画面上に再現するんだ」
チームからは猛反対されました。
「データグリッドの方が保守性が高い」
「Canvasへの絶対配置なんて、レスポンシブ対応どうするんだ」
「それはエンジニアリング的に美しくない」
確かにロジックとしては彼らが正しい。でも、ユーザーの「痛み」を知ってしまった僕は引けませんでした。
「いいから、3日だけ時間をくれ。プロトタイプを作る」
僕は週末を潰して、C#とXAMLでプロトタイプを作りました。
ItemsControlのPanelTemplateをCanvasに差し替え、Drag & Dropでアイテム(荷物)を自由に動かせるようにしました。
データバインディングの力を使って、アイテムの色や形状がリアルタイムに変わるようにしました。
そして何よりこだわったのは、「あえて情報を詰め込むこと」。余白を削り、彼らが慣れ親しんだ「情報の密度」を再現しました。
技術的には泥臭い実装です。MVVM的にはViewにロジックが漏れ出している部分もありました。でも、動くものはできました。
5. 「魔法」が起きた瞬間
週明け、再び現場に行って、ジョーにそのプロトタイプを見せました。
タブレット端末に表示された「デジタル・ホワイトボード」。
彼は怪訝な顔で画面に触れ、トラックのアイコンを指でスライドさせました。
アイコンが滑らかに動き、ドロップした瞬間に隣のチャートが自動で更新されました。
「……!」
ジョーの手が止まりました。そして、何度も何度もドラッグ&ドロップを繰り返しました。
「おい、これ……動くぞ!」
彼は振り返って、同僚たちを呼びました。
「見ろよ! 俺たちのボードがここに入ってる! しかも、マグネットを動かすだけで売上が勝手に計算されてるぞ!」
その瞬間、現場の空気が一変しました。
「これなら座ったまま全体が見渡せる!」
「次のトラックの到着予定も、ボードの端っこに表示できるか?」
「文字の色、もっと派手にしてくれ! 緊急度がわかるように!」
次々と飛んでくる要望。それはかつての「怒号」ではなく、「期待」と「興奮」の声でした。
彼らは初めて、このシステムを「自分たちの道具」として認識したのです。
結果として、この「ホワイトボード機能」はキラーコンテンツとなり、プロジェクトは大成功を収めました。
皮肉なことに、最もコード量が少なく、最も「枯れた技術(CanvasとDragDrop)」で作った画面が、最新鋭のアーキテクチャで組んだ画面よりも圧倒的に価値を生んだのです。
6. エンジニアが得た本当の教訓
この経験から僕が学んだこと。
それは、**「共感なき技術革新は、ただの暴力になり得る」**ということです。
僕たちは「良かれと思って」彼らの慣れ親しんだリズム(高密度な情報)を奪い、「正しいデザイン」を押し付けていました。
ユーザーが求めていたのは、「綺麗なUI」ではなく、「業務を支配できているという全能感(Control)」と「安心感(Confidence)」だったのです。
The “Aha!” momentは、PCの前で唸っていても訪れません。
それは、ユーザーの隣で汗をかき、彼らの視線の先にある「汚れたホワイトボード」や「付箋」に気づいた時に初めて降りてきます。
C#やWPFの技術力は、その気づきを形にするための「魔法の杖」です。
でも、どこに向けて魔法を放つべきか教えてくれるのは、いつだって「生身の人間(ユーザー)」なのです。
AI時代に残る「最後の聖域」:共感(Empathy)があなたを唯一無二のエンジニアにする
1. コードを書く機械になるな(Don’t be a coding machine)
シリーズを通して伝えたかった最大のメッセージはこれに尽きます。
「仕様書通りに動くコードを書くだけなら、君の代わりはいくらでもいる」
特に今、GitHub CopilotやChatGPTのようなAIツールが進化し、C#のボイラープレートコードやWPFのXAMLテンプレートなんて、一瞬で生成できるようになりました。
「正確なコードを書く」というスキルの価値は、残念ながら(あるいは喜ばしいことに)暴落し続けています。
でも、あの倉庫のジョーが求めていた「ホワイトボードのような安心感」や、「業務のリズムを崩さない操作性」といった**文脈(Context)**を、AIは自力で理解できるでしょうか?
今のところ、それは不可能です。なぜなら、AIには「痛み」を感じる身体がないから。
現場のオペレーターが感じる「毎日の小さなイライラ」や「言葉にできないこだわり」に共鳴し、それをシステムという形に翻訳できるのは、同じ痛みを知る人間(エンジニア)だけです。
技術力は「How(どう作るか)」を解決する強力な武器ですが、**「Why(なぜ作るか、何を作るべきか)」を定義するのは、常にあなたの共感力(Empathy)**なのです。
2. 「品質」の定義をアップデートせよ
日本で働いていた頃、僕は「品質(Quality)」=「バグがないこと、仕様通りであること」だと信じて疑いませんでした。
でも、海外に出て、あのホワイトボード事件を経て、僕の中での「品質」の定義は完全に書き換わりました。
真の品質とは、「ユーザーの人生(業務)がどれだけ楽になったか」の総量である。
どれだけスパゲッティコードでも(もちろんリファクタリングはすべきですが)、ユーザーが「これのおかげで毎日定時で帰れるようになったよ!」と笑ってくれるなら、それは高品質なソフトウェアです。
逆に、どれだけ美しいアーキテクチャでも、ユーザーに「使いにくいから前のやり方に戻すわ」と言われたら、そのソフトウェアの価値はゼロ、いやマイナスです。
C#やWPFといった技術は、ユーザーを幸せにするための「手段」であって「目的」ではありません。
この優先順位を間違えないこと。これが、海外のシビアな成果主義社会で生き残るための鉄則です。
3. 海外を目指す君へ:英語力よりも大切な「心の翻訳」
これから海外で働きたいと思っているエンジニアの皆さん。
「英語ができないから…」と二の足を踏んでいませんか?
断言します。TOEICの点数なんて、現場では飾りにすぎません。
僕も最初はカタコトでした。文法なんてめちゃくちゃでした。
それでも信頼を得られたのは、つたない英語で**「あなたの困りごとを解決したいんだ(I want to help you)」**という姿勢を見せ続けたからです。
「Empathy」は世界共通言語です。
相手の画面を覗き込み、「ここは使いにくい?(Is this hard to use?)」と聞く。
XAMLでササッと作ったプロトタイプを見せて、「これならどう?(How about this?)」と提案する。
その必死な姿と、相手を思いやる心があれば、文法のミスなんて誰も気にしません。
むしろ、流暢な英語で言い訳を並べるエンジニアより、つたない英語でもユーザーのために汗をかくエンジニアの方が、100倍愛されます。
言葉の壁を超えるのは、語学力ではなく**「想像力」と「行動力」**です。
4. 明日から始める「共感駆動開発」アクションプラン
最後に、このブログを読んだあなたが、明日からすぐに実践できるアクションプランを提示して終わります。
- STEP 1:モニターから離れろ1日1回、コードを書く手を止めて、自分の作った機能を使うユーザー(あるいはチームメンバー)と雑談してください。「最近、使い勝手どう?」の一言が、次のイノベーションの種になります。
- STEP 2:プロトタイプ中毒になれ議論が停滞したら、すぐに動くものを作る癖をつけてください。WPFならBlendやXAML、WebならFigmaでもいい。「論より証拠(Show, don’t tell)」は、世界中どこでも通じる最強の説得術です。
- STEP 3:自分の「感情」を大切にしろ自分が使って「なんか気持ち悪い」「イラッとする」と感じる部分は、ユーザーにとっても絶対にストレスです。その直感を無視せず、ロジックで蓋をせず、改善の原動力にしてください。
最後のメッセージ
僕たちは、ソフトウェアを作っているようでいて、実は**「体験」を作っています。
もっと言えば、ユーザーの「時間」や「感情」**を預かっています。
C# WPFエンジニアとして、技術を磨くのは当たり前。
でも、その技術の先にいる「人」を忘れないでください。
「Empathy in Action」
共感を動詞にする。想いをコードに乗せる。
それができた時、あなたは単なる「ITエンジニア」を超えて、国境を超えて必要とされる**「真のプロフェッショナル」**になれるはずです。
さあ、次のコミットには、ロジックと一緒に少しだけ「優しさ」を混ぜてみませんか?
世界は、そんなあなたのコードを待っています。
Good luck on your journey!
シリーズ完結
最後まで読んでいただき、ありがとうございました!
このブログが、あなたのエンジニアライフに少しでも「気づき」を与えられたなら、これ以上の喜びはありません。
もし、海外就職や技術的な悩み、あるいは「こんな時どうする?」という相談があれば、いつでもコメント欄で教えてください。
僕もまだまだ道半ば。一緒に成長していきましょう。
筆者プロフィール:
海外在住のC# (WPF) エンジニア。日本でのSIer勤務を経て、一念発起して海外へ移住。
技術書よりも心理学書を愛読し、「人間くさいシステム開発」をモットーに日々奮闘中。
好きなLINQメソッドは .Aggregate()(積み重ねが大事だから)。

コメント