Konifar's WIP

親方!空からどらえもんが!

エンジニアの「できない」という言葉の裏側

「ここ、こんな感じにできませんかね?」と言われたエンジニアが、「うーん、それはちょっと厳しいですね。できないです」と返すみたいなやりとりは結構見かけます。

この「できますか?」⇒「できない」というやりとりなんですが、「できない」という言葉にはいくつか裏が考えられます。言葉足らずだっただけでちょっとした調整をすればできるよね、というケースもあるので、「できない」という言葉の裏側をまとめておこうと思います。

先に補足しておくと、「エンジニアの人の言葉が足りなすぎるでしょ」という意見ももちろんあると思います。こういうコミュニケーションは、お互いの信頼度によっても変わってくるので難しいところです。お互いが相手に伝わるように意識すべきだと思うんですが、 エンジニアから「できない」と言われた時にどういう意味で言ってるのか想像しやすくなればいいなという思いで書いておきます。

ちなみに、「(できるけどやりたくないから)できないです」というケースもあると思いますが、今回は除外して考えます。

現時点の機能ではできない

「このボタンのクリック数を調べたいんですけど、できますか?」みたいな質問の場合、「それは (今は)できないです。 (開発してリリースすればできるけど)」という回答になることがあります。

要は現時点ではできないという話で、不可能という意味ではないんですね。「できないのか…諦めよう」となってしまうのはもったいないので、「それは、今リリースされているものではできないという意味ですか?」と突っ込んでみた方がいいかもしれません。

時間がなくてできない

「このデザイン、こっちに変更できますか?」みたいな質問の場合、「それは (締切考えると)できないです。 (締切伸ばすか他の開発の優先度変えたらできるかもしれないけど)」という回答になることがあります。

開発には必ず締切があり、時にはカツカツで余裕がないこともあります。そんな時に突発な依頼が来ると「できない」と拒否してしまう人もいますが、調整すればできるということもあります。時間を調整したり他の人をアサインすればできるのか確認してみた方がいいかもしれません。

簡単にはできない

「画像の表示速度をもっと早くできませんか?」みたいな質問の場合、「それは (やり方はあるけど簡単には)できないです。 (2週間くらい工数もらえればWebP対応とか画像サイズ調整とかできるけど)」という回答になることがあります。

開発の難易度が高かったり、今の作りだとちょっと対応するのに時間がかかるというケースです。こういう場合、たいてい工数か期日の認識にズレがあります。「今すぐって話じゃないんですけど」、「2週間くらい時間使っていいとしたらどうですか?」のように言ってみると反応が違うかもしれません。

今の自分のスキルだとできない

「好みの投稿をオススメしたりできませんか?」みたいな質問の場合、「それは (今の自分のスキルだと対応)できないです。 (勉強するか詳しい人連れて来れればできるけど)」という回答になることがあります。

『簡単にはできない』と被るんですが、時間をかけるか人がいればできるというケースです。人にもよると思うんですが、自分の場合は新しい領域に挑戦するチャンスでもあるのでワクワクします。不安なのはいつまでに実現したいのか不明というところなので、「欲を言うと今月中に実現出来たら嬉しい、最長で半年後にはないと困る」みたいな話をしてもらえると答えやすいんじゃないかなと思います。

別の問題が発生するので今はできない

「ここにこういう情報も表示できませんか?」みたいな質問の場合、「それは (今の作り上、パフォーマンスが劣化して表示が遅くなるので)できないです。 (作りを変更すればできなくないけど影響範囲が大きすぎる)」という回答になることがあります。

やりたいことは理解できるしできなくはないんですが、それをやると別の問題が発生するようなケースです。トレードオフを考慮した結果できないという話なんですが、抜本的に改善すればできるということもあります。ただ、そういう改善は影響範囲が大きいのですぐにはできないことが多いです。

これはコードの中身を知っているエンジニアじゃないと説明できないので、なぜ今できないのか、やるとしたらどれくらいかかりそうなのかをエンジニアの方から説明をする必要があるんじゃないかなと思います。

やらない方がいいのでできない

「こういう検索条件つけられませんか?」みたいな質問の場合、「それは (機能の方向性として間違ってると思うので)できないです。 (こっちの検索でカバーできそうだけど、どういう経緯で出てきた話なんだろうか)」という回答になることがあります。

受託開発だとあまり当てはまらないかもしれないですが、そもそもなぜやるのかわからなくて拒否してしまうというケースです。こういう場合は、なぜそういう要望が出てきたのか、本質的には何をしたいのかを伝えてみると良いです。意図を理解すれば納得できることかもしれませんし、それよりこういう機能の方がいいんじゃないかという議論になるかもしれません。

こういう質問の裏には改善のヒントが隠れていることが多いので、個人的にはよく話を聞いて開発に活かすのがいいんじゃないかなぁと思っています。


あくまで自分の考えなんですが、「できない」と言うのはかっこよくはないのであんまり言いたくないです。ですが、仕事でやる以上時間やお金の制約もあるし、下手に「絶対にできる」と言いにくい場面もあります。

ただ、「できない」という言葉の裏側を書き出してみると、どれもほとんどできなくはないんですよね。できる可能性がよくわからなかったり、できるまでの時間が未知数だったりするだけです。要は、 『できるはできるけど、乗り越えるべき問題がある』という話で、絶対不可能ということはあまりないんじゃないかと思います。もちろん本当にできないということもありますが。

もしエンジニアから「できない」と言われた場合、 「できなくはないけど乗り越えるべき問題が多いんだなぁ」と考えた上で、どう解決していくべきか一緒に考えていくのがいいのかもしれません。