「認識のズレ」を減らすためにエンジニアができること
エンジニアとして仕事をしていると、
「そんな仕様だと思っていなかった」
「そこまで対応する認識ではなかった」
「こちらではこういう意味だと思っていた」
といった場面に出会うことがあります。
誰かが間違っているというよりも、同じ言葉や説明を聞いていても、人によって受け取り方が違うことが原因になっている場合があります。
こうした「認識のズレ」は、小さいうちに気づけば簡単に修正できます。
しかし、気づかないまま開発を進めてしまうと、大きな手戻りにつながることもあります。
今回は、エンジニアが仕事を進める中で、認識のズレを減らすためにできることについて考えてみます。
目次
「分かったつもり」が一番怖い
仕様説明や打ち合わせの中で、
「大体分かったので大丈夫です」
と、そのまま作業を始めてしまうことがあります。
もちろん、細かい内容まで毎回確認する必要はありません。
しかし、
「自分では理解したつもりだったが、相手が想定していた内容とは違っていた」
ということは意外と起こります。
特に、
「通常通り」
「いつもの形で」
「簡単に」
「いい感じに」
といった表現は、人によってイメージが異なります。
そのため、少しでも曖昧だと感じる部分があれば、その場で具体的に確認しておくことが大切です。
作業を始める前に「ゴール」を確認する
認識のズレを減らすためには、
最終的にどうなれば完了なのか
を確認しておくことが重要です。
たとえば、
「検索機能を追加してください」
という依頼があったとします。
一言で検索機能と言っても、
・完全一致なのか部分一致なのか
・複数条件で検索できるのか
・大文字・小文字を区別するのか
・検索結果が0件の場合はどう表示するのか
・検索条件を保持するのか
など、考えることはたくさんあります。
依頼した側と実装する側で、それぞれ別の完成形を想像している可能性もあります。
そのため、
「この条件で検索して、このように結果が表示されれば完了という認識で合っていますか?」
と確認しておけば、完成後の手戻りを減らすことができます。
自分の言葉で言い換えて確認する
相手から説明を受けたあとに、
「分かりました」
だけで終わらせず、
「つまり、〇〇という認識で合っていますか?」
と自分の言葉で言い換える方法も有効です。
たとえば、
「このボタンを押したらデータを削除する」
という説明を受けた場合でも、
「データベースから完全に削除するのではなく、画面上で非表示にするという認識で合っていますか?」
と確認すると、より具体的になります。
自分の理解を言葉にすることで、もし認識が違っていれば、その場で修正してもらうことができます。
曖昧な言葉は具体化する
仕事の中では、便利だけれど曖昧な言葉がよく使われます。
たとえば、
「早めに」
「できるだけ」
「通常通り」
「問題ない範囲で」
「少し修正する」
といった表現です。
こうした言葉は、話しているときには自然に伝わったように感じます。
しかし、
「早めとは今日中なのか、今週中なのか」
「少し修正とは、どこまで変更してよいのか」
という部分は、人によって認識が違います。
そのため、可能であれば、
「明日の午前中まで」
「この画面だけを変更する」
「既存の処理には手を加えない」
というように、具体的な条件に置き換えることが大切です。
口頭だけで終わらせない
打ち合わせや会話で決まった内容は、できるだけ文章として残しておくと安心です。
たとえば、
「本日の打ち合わせ内容ですが、〇〇の仕様で対応する認識です」
とチャットやメールで簡単に残しておくだけでも違います。
文章にすることで、
「自分がどのように理解しているか」
を相手に確認してもらうことができます。
また、後から、
「この仕様はどう決まったのか」
と確認したい場合にも役立ちます。
すべてを詳細なドキュメントにする必要はありません。
重要な部分だけでも記録しておくことで、認識のズレを防ぎやすくなります。
途中でも確認する
最初に認識を合わせたからといって、そのまま最後まで進めればよいとは限りません。
実装を進めている途中で、
「この仕様の場合、ここはどうなるのだろう」
という新しい疑問が出てくることがあります。
そのときに、
「たぶんこうだろう」
と自分だけで判断して進めると、後で認識が違っていたことが分かる可能性があります。
特に影響が大きそうな部分については、途中でも確認することが大切です。
場合によっては、完成してから確認するよりも、途中の画面や簡単な動作を見てもらう方が早いこともあります。
早い段階で確認すれば、修正する範囲も小さくできます。
「なぜ必要なのか」まで確認する
仕様そのものだけでなく、
なぜその機能が必要なのか
を確認することも重要です。
たとえば、
「一覧画面にボタンを追加してほしい」
という依頼があったとします。
言われた通りにボタンを追加することはできます。
しかし、目的を確認すると、
「毎回別画面を開くのが大変なので、作業を短縮したい」
という背景があるかもしれません。
目的が分かれば、
「それならボタンを追加するより、一覧上で直接操作できる方が使いやすいのではないか」
といった別の提案ができる場合もあります。
仕様だけを見るのではなく、その背景まで理解することで、相手が本当に求めているものに近づきやすくなります。
エンジニア同士でも認識はズレる
認識のズレというと、エンジニアと顧客の間で起きるイメージがあるかもしれません。
しかし、エンジニア同士でも普通に発生します。
たとえば、
「この処理を修正しておいてください」
と言われたときに、
一人は、
「エラーが出ている部分だけ直せばよい」
と考え、
もう一人は、
「関連する処理も含めて修正してほしい」
と考えている可能性があります。
技術的な知識が共通していても、作業範囲や優先順位、完成形まで同じとは限りません。
そのため、エンジニア同士だから説明を省いてよいとは限らないと思います。
質問することは手戻りを減らすための作業
確認や質問を何度もすると、
「細かいことを聞きすぎではないか」
と感じることもあるかもしれません。
しかし、必要な確認をせずに作業を進めて、完成後に大きく修正する方が時間がかかることもあります。
もちろん、何でも質問すればよいわけではありません。
自分で確認できる内容は調べたうえで、
「ここは判断によって実装内容が変わる」
という部分を確認することが大切です。
質問する時間は、作業を止める時間ではなく、
手戻りを減らすための時間
と考えることもできます。
認識合わせは相手のためだけではない
認識合わせというと、
「相手に自分の考えを理解してもらうこと」
と思われることがあります。
しかし実際には、自分自身の理解を整理するためにも役立ちます。
相手に説明しようとすると、
「ここはまだ理解できていない」
「この条件の場合はどうなるのだろう」
と気づくことがあります。
つまり、認識合わせをすることで、自分の中にある曖昧な部分も見つけることができます。
まとめ
エンジニアの仕事では、技術的に正しいものを作ることだけでなく、
相手が求めているものを正しく理解すること
ことも重要です。
認識のズレを減らすためには、
・作業前にゴールを確認する
・自分の言葉で言い換える
・曖昧な表現を具体化する
・決まった内容を文章に残す
・必要であれば途中でも確認する
・仕様だけでなく目的も理解する
といったことが役立ちます。
認識のズレを完全になくすことは難しいかもしれません。
だからこそ、ズレが起きる可能性があることを前提に、早い段階で確認することが大切だと思います。
少しの確認にかかる数分が、後から発生する数時間の手戻りを防ぐこともあります。
エンジニアにとって「確認する力」や「認識を合わせる力」も、コードを書く力と同じように、仕事をスムーズに進めるための重要なスキルの一つなのではないでしょうか。



















