最近よくこの話をすることが多かったので、ブログに書き残しておくことにしました。 

 

 

 

 

 

 

エンジニアとして開発の仕事をしていると、こういうことがよくあります。

 

 

開発途中の時期、プランナーから「◯◯」を作りたいと言われる

工数と残りのスケジュールを考えると厳しく、「工数的にキツいからできない」と伝える

プランナーから「いや、これどうしても入れないとキツいんでやって欲しい」と言われる

エンジニアが渋々承諾し、残業、休出などをしてなんとか作る

ギリギリのスケジュールで作ったため、実装時の考慮やテストが甘くなる

いざリリースしたらバグがいっぱい出る

 

 

多分開発をやったことのある方なら大体経験したことのある流れだと思います。

 

 

 

 

 

 

 

こういう時よくエンジニアにありがちなのが、

 

・本当はやらない方がいいと思ったんだけど、プランナーにやれって言われたから仕方なくやった

・やらない方がいいと言ったんだけど、プランナーにどうしてもやりたいって言われたから仕方なくやった

 

と言ってしまうこと。

悪い言い方をすると「人(この場合はプランナー)のせいにする」とういことです。

(もちろん実際にプランナーも悪いのですが)

 

ただこのやり取りには依頼を受けたエンジニア側にも問題はあると個人的には思っています。

 

 

 

 

 

 

 

 

 


本来こういう時にエンジニアが取るべき行動としては、

どうしてやらない方がいいと思っているのか?

ということをしっかり伝えることなのではないでしょうか?

 

・このスケジュールじゃギリギリでテストもちゃんと出来ないし、不具合につながる可能性がある

・今から変更するには影響範囲が大きくて新たなバグを生む可能性がある

 

とか色々理由はあると思います。

 

単純に工数が足りないということもあると思いますが、なぜやらない方がいいかというと結局プロダクトに悪影響が出るからです。

 

(ちなみに上では「不具合につながる可能性がある」と書きましたが、こういう状況の時はほぼ確実に不具合が起きます笑)

 

 

 

 

 

 

 

 

そしてプランナーの人はこれをしっかりとした内容で、高い温度感で伝えられたらどう考えるか?

 

・ああ、そんなリスクがあるならやらなくてもいいです。別の方法を考えます

・そしたらここを削ってこういうやり方ならどうですか?

 

別のもっとより良い発想が出てくるかもしれません。

逆にこれがしっかり伝わっていなくいと、「いや、どうしてもやりたいからキツくてもやって欲しい」となると思います。

最悪の場合、ただエンジニアが「面倒くさいからやりたくないと言っている」と捉えられることもあるかもしれません。

 

 

 

 

 

 

 

 

 

そしてエンジニアが「なぜやらない方がいいか」を説明するのと同じように、プランナー側も

なぜやりたいのか、やった方がいいのか

を伝えないといけません。

 

・この機能を作ることによってこれだけ便利になって、ユーザが楽しく遊べるから

・これがないと不便で、この機能が全然触られない可能性があるから

 

とこちらも色々理由があってやりたいと思っているはずです。

それがしっかりと伝わればエンジニアも

 

・そうか、それならちょっとスケジュールキツいけど作った方がいいな

・確かにこれを作らないのはヤバい。何とかして作ろう

 

となるかもしれません。

あるいは

 

・全部は作れないけど、ここまで作るのはどうですか?

・これは無理だけど、こっちの方法ならどうですか?

 

と提案をしてくれる人もいるかもしれません。

 

 

 

 

 

 

 

もちろんお互いにしっかり伝わった上でも、「リスクを考えるとやらない方がいい」と言う判断になることや、「そのくらいのリスクがあっても、必要なものなのでやりたい」となる場合はあると思います。

 

ただそれは双方が考えてることをしっかりと伝え合い、

理解して納得した上での決定

なので、お互いにスッキリした状態で気持ち良く仕事ができ、且つより良い状態のものにつながる可能性が高まるはずです。

 

逆にお互い伝わってない状態というのは、やることの意図、リスクとかを誰もしっかり理解しない上で進めていることにいるので、とても危険です。

 

それに上で書いたように、しっかりと理解していれば「じゃあこれならどうでしょう」と別のより安全でいい方法を考えることもできます。

 

何も伝わっていない状態ではその可能性を潰してしまうことにもなるので、非常にもったいないです。

 

 

 

 

 

 

 

あとはこういったやり取りをする際に、

お互い歩み寄ってしっかり相手の話を聞くこと

も大事ですね。

 

いくらしっかり伝えようとしても、相手が聞く耳を持たなかったり、理解する姿勢がなければ成り立たないので。

人間どうしても自分の意見、職種の意見を正と考えてしまうところがあるので、これは意識しておかないと意外とできないものです。

 

そしてこの姿勢でコミュニケーションを積み重ねていけば、双方の理解も深まるし、相手への信頼やリスペクトも生まれてくると思います。

 

 

 

 

 

 

 

 

 

それと言い方も気をつけましょう。

ぶっきらぼうに「無理です、できません」とか「いや、やりたいんですけど」みたいに言ったらみんな人間なので、どうしてもカッとなってしまいます笑

冷静に、しっかりと考えていることを伝える意識が大事ですね。

 

 

 

 

 

 

 

 

今回はエンジニアとプランナーを例に話していますが、他の職種間でもよく起こりうることです。

 

これはなかなか難しい問題で、

伝える気がないわけではないのにただ説明が苦手で上手く伝わってない

キツい状況で冷静さを欠いて説明が雑になってしまった

ということもあるでしょう。

 

それでも、意識してしっかりと伝えようと考えているだけでも違いが出てくるはずです。

 

 

 

 

 

 

 

 

 

で、今回なにを一番伝えたかったかというと、しっかり人とコミュニケーションを取って、

腹落ちして納得した上で仕事をしましょう

ということです。

(今回の例で言うと、エンジニアとプランナー双方納得して開発する、ということですね)


ただ理由も話さずに「やってください!」「無理です!」みたいなやり取りをして、納得せずに「なんでこんなことやらなきゃならないんだ」と思って仕事をしていても、絶対にいい成果は出ません。

 

もし説明がなかったり、話しても納得していない時は「このリスクを負ってまでやりたい理由はなに?」「こんなに必要なものなのにやらない方がいい理由はなに?」とかしっかり相手の考えを聞き出しましょう。

 

各人がこういうコミュニケーションをしっかり取れているか否かで、

チームとしての結束が徐々に強まって行くか、

逆に溝が深まっていってしまうか、

いずれ大きな差が生まれて来ると、僕は思っています。

2017年が始まりましたね。
僕がエンジニアになったのが2007年の12月半ばだったので、今月からエンジニア10年目に入ります。

 

最初は全くの別業種から転職し、会社で少し研修しただけのスタート。
苦しんだ時期もあったし、辞めようと思った時もありました。

 

それでも今では大きい会社に転職し、ありがたいことに責任ある立場を任せてもらっています。

 

 

 

 

 

 

では自分が今なぜここまで辿り着けたか?

 

 

と振り返った時、やっぱり1〜2年目の頃に死ぬ気で努力していたのが良かったのかなと思います。
驕るわけではないですが、エンジニアになりたての頃は死ぬ気で努力したと言える自負があるくらいには努力していました。
特に1年目とかは、遊んだ記憶が全くない。

 

 

 

 

 

 

 

そんなことを考えていたのもあり、最近若手のエンジニアと話してると

 

こいつまだまだ甘いな〜

 

って思うことがよくあります笑
もちろん全員ではないですが。

 

自分が特別能力が高いと思ってるいわけではないですが、正直その若手たちが10年目を迎える頃に今の自分と同じスキルを身に付けられている気がしないです。

 


そして

 

一生追いつかれる気がしない

 

 

 

 

 

 

 

 

 

 

なので今回は僕が1〜2年目の頃の生活を少し書いてみたいと思います。

 

 

 

 

 

 

 

 

 

 

 

その頃はプログラムというものをその時初めて触ったような状態だったし、給料も安かったしでとにかく必死でした。

 

なのでとにかく時間を無駄にしないようにという意識で、ひたすら技術書を読んだり、ソースを書いたりして勉強していました。

 

 

●通勤中
まずは通勤時間の電車の中。
その当時片道1時間半くらい電車に乗っていたので、貴重な勉強時間としてひたすら技術書を読んでました
たとえ満員電車であろうと、スペースを見つけてそこで本を読んだり、狭いスペースでも読みやすいように本を裁断して持ち歩いたりして。

 

 

●昼休み
昼休みも勉強。
前半30分は食べて、後半30分は技術書を読むみたいな使い方。

 

 

●帰宅後
家に帰ってからももちろん勉強。
毎日2時間くらいは時間を取って技術書を読んだりソースを書いたり
家だと集中できないから、近所のマックに入り浸ったりしつつ。

毎日欠かさずやっていました。

 

 

●休日
土曜日は毎週知り合いの会社で開催されていた勉強会へ。
自習形式の勉強会で、朝から夜まで普段の仕事より長い時間ずっと勉強していました。

ノートPCを持ち込んで言語の勉強がメイン。

 

もちろん日曜日や祝日も朝から勉強。
まず朝は近所のファミレスに行って、朝食を摂りつつ昼まで勉強
昼食を摂り、午後は少し休憩した後また夜まで勉強

 

 

●その他

ポケットリファレンスを常に持ち歩いて、いつでも読めるようにしていました。

弁当屋で注文した待ち時間にすぐ取り出して読んだりとかできるように。

 

あとは一時通勤中の歩いてる時間すらもったいなくて、英語のCDを歩きながら聴いたりしてた時期もありました(微妙だったのですぐやめましたが)。

 

 

 

 

 

 

 

 

 

以上のように、とにかく仕事と食事の時間以外はほとんど勉強しているような生活でした。
(知り合いにも「いかに時間を無駄にしないかを生きがいにしてるよな」と言われたことがあります笑)

 

 

 

 

 

 

これだけやったからと言って1年目から活躍出来ていたわけではなく、実際「成果出してるな〜」って実感し始めたのは4年目に入ってからです。


ただやっぱり今エンジニアとしてやれているのは、こうやって色々な本を読んだりして積み重ねてきた知識があるから


蓄えている知識を持って考えながら仕事に臨んでいた分、ただ普通に言われた業務をこなすよりも得られるものがはるかに大きかったと思います。

 

 

 

それに後輩から技術的なことで相談される内容にも、昔本で読んだから知っていることも結構多いです。

(そういう時に「こいつ勉強してねーな」って思ったりもします)

 

 

 

 

 

 

 

 

 

 

 

 

で、なにが言いたいかというと

 

若手はとにかく勉強した方がいい

 

ということ。
もちろん自分で努力してるという自負がある人はいいです。


でも「勉強しなきゃな〜」って思いながらなんとなく時が過ぎてしまっている人は気をつけた方がいい。


ここに書いてあるのはあくまで僕の体験談ですが、今まで一緒に仕事してきたデキるエンジニアの人たちは少なからず昔から勉強してきていました

 

 

 

 

やり方は人それぞれでいいですが、エンジニアとして上のレベルに行きたい人は、何年か経って「努力してきた」と少なくとも自分で思えるくらいには勉強しておきましょう。

 

まずは技術書を読む習慣を付けることをおすすめします

これまで5年ほどソーシャルゲームの開発に携わってきて、こういうことを言うエンジニアによく出会います。

「もっと世の中の役に立つ物を作りたい。だからゲームは嫌だ」

ここで言う「役に立つ物」とは人の生活や仕事を便利にする物、みたいな意味でしょう。
今仕事で使っているようなソフトやツール、サービスなんかはそれに該当するものがいっぱいあります。
僕も前は同じようなことを考えていました。


ただ、果たして本当にゲームは役に立たない物なのか?
僕はそんなことはないと思います。
なぜなら世の中にはゲームを一番の楽しみに生活している人がいっぱいいるし、それに何十万というお金を注ぎ込む人もいるからです。
その人達にとっては生きる楽しみだったり、日頃のストレスを発散する物だったり、何かしら生きる上で必要な一つの役割を担っています。


ゲームは時間やお金をかける代わりに、楽しさや快感と言った体験を提供しているのです。
決してただひたすら課金をさせるために作っているわけではない。
(金を搾取している感じが嫌だ、とかもよく言われる)


これはゲームに限らず、エンターテイメント、娯楽と言った物は全てそうです。
これだけ欲している人が世の中にいっぱいいるのに、むしろ役に立っていないと言えるでしょうか?
確かに何かが便利になったりするわけではないですが、人々の生活を豊かにするという意味で、確実に役に立っていると思います。


「世の中の役に立つ」というのには色々な形があると思います。
だからゲームを作っている人たちは自分の仕事に誇りを持っていいし、「ゲームは役に立たない」と思っている人も改めて考えて欲しい。
そして作る側は自分たちは「楽しさや快感と言った体験を提供している」ということを忘れずに、常に面白い物を作ることを心がけましょう。