In Out In

主にAndroidの技術のはなし

「この機能があったら」という願望は社内では発言しないほうが良いと思う話

暑い

梅雨も明け、夏を感じ始めると夏バテとともに仕事でもイライラすることが増えてくる。

エンジニアとのコミュニケーションには気を使って欲しい

既存の不具合や改善点を議論する時、ふと非エンジニアが思いついたアイデアや、開発スケジュール上で実装が控えている新機能や改善点を引き合いに出される時がある。

 

「あーこの機能が入ってれば◯◯の問題は解決できるのに」

とか

「この◯◯を実現したいので早くこの機能入れましょう!」

といった感じだ。

 

エンジニアとのこういったコミュニケーションは負の感情しか生まないのでやめたほうがいいと思う。Slack上で見るだけで一瞬とてもイライラしてしまう。

 

なぜイライラするのか考えてみた

自分のイライラの感情の中には下に列挙したような要素が入り混じっているのかなと感じた。

  • それを実装するのはエンジニアだということ

  • 整理された開発スケジュールを無視して発言されていること

  • ユーザー視点の意見ではなく個人の満足を求めて発言されていることが多いと感じること

  • たいていが余計な一言

 

実装するのはあくまでエンジニア

この前提はどうしても覆らない。そしてリソース量は社内によって変わるだろうが、そのリソースの中でどれだけ品質を高く、最短で機能を実現していくかを考えていくことがプロダクトオーナー(ベンチャーでは経営者が担当することもあり得る)の役割であり、エンジニアの最優先タスクとなる。普段の業務でサボっているなら別だが、大抵はスプリントに追われ、ユーザーやプロダクトオーナーからの要件を日々実装しているはずだ。そんな中でその構造化された開発体制を無視して権力や発言力の高い非エンジニアが割って入ってくるのは自分勝手ですごく気になる。

 

開発スケジュールを無視した発言である

エンジニアはなんのために開発スケジュールを作るのか。大きく2点あると思う。1つは限られたリソースを有効に使うため(自分を守るともとれる)。もう1つは非エンジニアとの要件に関するコミュニケーションを円滑に行うためである。

一度要件を分解して実装を考えないとエンジニアもどれくらいの時間がかかりそうかを見積もるのは難しく、非エンジニアならさらに難しいことだと思う。そこから発生する認識のズレはコミュニケーションを取っていく上で大きな壁になる。そこをクリアにしていくのが開発スケジュールだと思っている。今回物申したい件ではこの開発スケジュールが無視されている。なんのために開発スケジュールを日々整理し、スプリントMTGで全社に共有し、全社MTGなどで共有し、日々のイシュー管理をしているのかわからなくなってしまう。

 ユーザー視点の意見ではなく個人の満足を求めて発言

これは全てに当てはまるわけではないと思うし、完全に個人の見解だが、まずそもそも、その機能があったとして、ユーザーが抱える問題を解決できるかはわからない。その機能があれば便利になる、何かが円滑に進む、そういったことはあるかもしれない。ただその機能がなくてもユーザーはサービスを使ってくれることが多い。単発で思いつく機能の価値なんてそのレベル。

少し話は逸れるが、「この機能があったら」という願望があればあるほど経営者やプロダクトオーナーへの信頼は失われていくと思っている。なぜかというと、その願望を実際に開発スケジュールに組み込んでエンジニアリソースを活用して機能をリリースするまでが彼らの役割だからだ。願望を言うだけなら子どもでもできる。何よりその願望をエンジニアに直接投げられても、すでに開発スケジュールは埋まっているから、エンジニアとしては、「残業して早くこの機能作ってくれ」「おれが欲しいから片手間で実装頼んだ」みたいな解釈と取れるよなということがよくある。

大人しく待つことが信頼に繋がることもあると思う

まずは開発スケジュールの相談から始めて、余裕のあるリソースはあるか、リリースを優先順位的にずらせるものはあるかをセットで考えてもらいたい。その上で議論をしよう。そしてそこで直近の実装が難しいとなったら大人しく実装完了を待っててくれ。