非エンジニアのメンバーと話していると、 なんだかもどかしい気持ちになることがあります。
なんか話が噛み合わないというか、すごく他責な言い方をすると 「もっと開発のこと理解してほしいなぁ」と感じてしまう時があるんですよね。例えば、難易度の高い修正をさらっとできそうな感じで話されたりとか、逆に超簡単なのに難しいと思って遠慮されてたとか。そういう認識の違いから来るもどかしさです。
最近、このもどかしさを解消するには エンジニアから非エンジニアに歩み寄る方がいいなぁと思い始めたので、考えをまとめてみます。
相手の立場に立って考え直す
このもどかしさ何とかならないかなぁと考えていた時に、 SHIROBAKO 17話『私どこにいるんでしょうか…』を見ました。
この回では、新人制作の佐藤さんがアニメーターの遠藤さんにちょっとキツいスケジュールの仕事をお願いし行くシーンがあります。
佐藤「宜しくお願いします」
遠藤「このカットだけ先に上げるの!?シーンでまとめて出したいんだよなぁ…」
佐藤「では、まとめて先に出していただけますか?」
遠藤「無茶だよ!宮森呼んで!!」
この会話は、まさにエンジニアと非エンジニアのやりとりで感じるもどかしさと似ています。これを見て、自分は 「佐藤さんの立場だったらアニメーターさんがどんな作業してどこに時間がかかるか全くわからないよなぁ」と思ったんですよね。
非エンジニアの立場でエンジニアと話をする時って、たぶんこんな感覚なんだろうなと思うとめちゃくちゃ申し訳なくなってきまして。やはり慣れ親しんだメンバー相手であろうと常に相手の立場に立って考える意識を持たないとなぁと思わせられたわけです。SHIROBAKOって本当にいいアニメですよね。
エンジニアは知らないことに囲まれる状況に慣れすぎ
けど考えてみたら、新卒の時は同じ感覚だった気がするんですよね。先輩の言ってることは8割方よくわからなかったです。
今でもよく覚えてるJavaのやりとりがあります。
おれ「このエラーわからないです」
先輩「え?あぁ ぬるぽだよ」
おれ「はい…(ぬるぽって何だ?)」
先輩「デバッグ簡単だよ。ここで落ちてるでしょ?」
おれ「はい…(デバッグって何だ?)」
先輩「このうちのどれかがnullです。どれだと思う?」
おれ「うーん… thisですかねぇ?」
先輩「 いや、thisがnullってことはないでしょw」
もう全然わかってないですね。こんなに何もわかってなかったのに、いつの間にかわかってない人の感覚を想像しにくくなっているわけです。
これはなぜかと考えてみると、 エンジニアは知らないことに囲まれる状況に慣れすぎてるからなんじゃないかなと思うんですよね。いい言い方をすると、問題解決能力がすごく高い。悪い言い方をすると、ググれカスが染み付いてしまっている感じ。
最初は先輩の言ってることがほとんどわからないですが、メモってググってしてるうちにいつの間にかわかるようになっていきます。エンジニアは手取り足取り教えてもらえることって少なくて、生き抜くためには自分で調べて試行錯誤を繰り返す必要があります。で、いつの間にかその状況が当たり前になって身体に染み付いていくんじゃないかと思うんですよ。実際他の人がどうかはわかりませんが、自分はそんな感じのイメージです。
これはエンジニアとしてはいいことなんですけど、 その感覚を他の人にも求めがちなんじゃないかなぁと感じることがあります。「それは自分でキャッチアップしようよ」とか、「最低限の知識は自分で身につけるべきでしょ」とか、つい思っちゃう。
でもその感覚はたぶん一般的ではないんですよね。もしかしたら問題解決の姿勢としては一般的なのかもしれませんが、少なくとも度合いの感覚は違う気がします。
知識のある方が歩み寄るべき
SHIROBAKOに話を戻すんですが、あの状況、もしアニメーターさんから色々説明してくれたらめちゃくちゃ助かるだろうなぁと思ったんですね。それが講座なのかその場で説明するのか方法は色々あると思うんですけど、やはり 知識のある方が歩み寄るべきなんじゃないかなぁと感じました。
いやいや、それは甘えでしょと言う人もいるかもしれないですが、チームとしてどっちが効率的なのかと考えると教えてあげた方がいいと思うんですよね。たしかに「エンジニアとやり取りするならそれくらい自分でキャッチアップすべきでしょ」みたいな考えも理解できるんですが、その感覚ってやはり主観が混じってしまうし、主観を押しつけられたらしんどいです。
教えるイニシャルコストともどかしさによるコミュニケーションロスやストレスを天秤にかけると、 教えるコストの方が圧倒的に安いんじゃないかなぁと思うわけです。
どう歩み寄るかを考える
そう考えると、どう歩み寄る(教える)かというところだけ考えればよくなります。
やはり一番いいのは実際に開発してもらうことなんですけど、ドットインストールなどでたいぶ取っ付きやすくなったとはいえ、普段の業務を抱えながらそこまでやってもらうのはあんまり現実的じゃないです。
例えば、nanapiさんでは非エンジニア向け勉強会をやってるみたいですね。すごく良さそうです。
弊社奇兵隊では、色んな数値を追う上でSQLは理解しておくと便利だよねという考えから、希望者にSQL講座を行うようにしています。と言ってもまだ始めたばかりで手探り状態なんですが、Slack上のやり取りを見てるとなんか良さげです。
例えば簡単なところからクイズ形式で問題を出したり。
キャッチアップが進んでるメンバーとはなかなかレベルの高いやりとりができていたり。
他のエンジニアのメンバーも横からアドバイスをくれたり。
非エンジニアへの歩み寄りの第一歩としては、SQLは取っ付きやすいのかもしれません。
自分がやりたいと思ってること
実際に技術に触れてもらうやり方以外に、なんとなくエンジニアの考えとか苦労の感覚を共有したいなぁと思っています。例えば、下記のTweetみたいな感じ。
IT系じゃない人は仕様変更の恐ろしさよく知らないと思いますけど、牛丼作っててさあ肉を丼に盛るぞっていう段階で「やっぱりピザが食べたい」って言われる感じです
— Kazuya Gokita (@kazoo04) 2014年11月27日
カップ焼きそばを作るには、ただ熱湯を注ぐだけでなく「買ってくる」、「ソースを入れる」など前後に様々な工程があり、パッケージには「熱湯3分」とだけ書いてあっても実際の納品までは10分弱かかる計算なのです。これが、エンジニアが納期を想定の倍以上見積もったほうがいい理由です。
— 🐿🐿🐿🐿🐿🐿🐿🐿🐿 (@x86_64) 2013年9月6日
これ、ものすごくわかりやすいんですよね。こういう例えを用いて、まずは何となく感覚を共有するのも大事じゃないかなぁと思うわけです。実は昨日一度『料理』に例えてブログに書いたんですけど、 どう考えてもわかりにくい例えになって消してしまったので、またリベンジしたいなと思っています。
エンジニアは怖くないと知ってもらう
エンジニアから積極的に歩み寄るメリットとして、 エンジニアは怖くないということを伝えられるというのもあるんじゃないかって気がします。
たぶんエンジニアって怖いと思われてると思うんですよね。何考えてるかわかりにくいですし。
例えばこのブログの記事。
http://bakecreativecake.tumblr.com/post/113218793301
では、お互い幸せなコミュニケーションの取り方ですが、 エンジニア側と
“いまは話しかけないで、集中したいの”
というサインを決めましょう!
エンジニアとしてはものすごく気持ちがわかるんですが、 よく考えたらこんな人に話しかけるの怖くないですか?自分なら怖いです。
でもこういうコミュニケーションの方が効率がいいのもたしかで。そうすると、他のところで怖くないことを知ってもらえるのも結構大事なことじゃないかなぁと思うわけです。エンジニアから非エンジニアに進んで歩み寄ることで、怖くないよってことがなんとなく伝わるんじゃないかなと思ったり。相手が何考えてるか少しでも伝わるのって大事ですよね。まぁこれに関しては普通に普段からコミュニケーションとっておくのがいいよねという単純な話かもしれません。
もちろん歩み寄るにしてもやり過ぎはよくなくて、何でも教えてもらうみたいな感じにはならないようにバランスを取る必要はあります。
理想としてはお互いに歩み寄れるのが一番幸せだと思うんですが、やはり専門分野はフォローがないと難しいですし、相手の立場に立ってこちらから歩み寄る姿勢を保ちつづけていきたいなぁと思う次第です。
20150509 追記です。
『非エンジニア』とか『歩み寄る』という表現が、差別的で上から目線っぽく感じて嫌な気持ちになったらごめんなさい。そんなつもりはなかったんですが、どうやら嫌な気分になった人もいるようで申し訳ないです。
あくまで、開発をメインにやってる人とそれ以外をメインにやっている人を便宜的に分けるために使っていました。けどたしかに開発メインでやっていない人からすると、嫌な気持ちになるかもなぁと反省してます。相手の立場に立つと言っておきながら全然ダメですね。精進します。