レコチョクは11月9日、エンジニア向けの勉強会「RecoChoku Tech Night」(Tech Night)で、「4社合同-エンジニアの『失敗から学ぼう』」を開催した。ゲーム、農業、不動産、音楽などのジャンルに携わるエンジニアが自らの“失敗談”とその解決方法を話した。
Tech Nightは、2016年1月から不定期で開催しているエンジニア向けのイベント。レコチョクのCTO室が中心になって運営しており、「VR×音楽」や「AWS re:Invent+海外音楽IT」などのテーマを設け、エンジニア同士の情報交換の場として提供している。事前申し込みが必要だが、無料で参加できる。
第5回目となった4社合同-エンジニアの「失敗から学ぼう」- では、ドリコム、ファームノート、LIFULL、レコチョクの4社のエンジニアが登壇。それぞれが自らの体験に基づいた失敗談を披露したほか、質疑応答やパネルディスカッションが行われた。
オープニングに登場したのは、レコチョクCTO室の山内和樹氏。エンジニア歴15年のベテランだ。レコチョクには次世代のサービスや音楽マーケット創造に向けた研究開発機関「レコチョク・ラボ」があり、そこでVRコンテンツ制作やAI研究などを手がけている。
山内氏はVRコンテンツ制作時の失敗談として、新しい映像コンテンツ制作現場ならではのエピソードを披露した。VRは360度の撮影が求められるため、通常の撮影以上に映り込みに注意が必要だ。山内氏は撮影前に反射のチェックをしたものの、ホコリが付着しているのに気づいた。しかし、ホコリを拭く姿まで映りこんでしまうため、そのままにしておくことしかできず、その結果光の反射が起こってしまったとのこと。
同様に、音楽フェスのステージでVR撮影時に、横からステージを楽しんでいるほかのアーティストの映り込みを避けるため、「立入禁止」の札を出したが、フェス現場の盛り上がりの中では、意味を持たなくなったとのこと。
山内氏は「自分なりに対策をしたからOKという気分になっていたが、現場ごとに状況は異なる。慣れない現場、特にライブ会場などでは先人に教えを請うことが大事。未知の現場では、自分のルールは通用しない。知っている人に声を積極的にかけること」と、コミュニケーションの大切さを訴えた。
次に失敗談を明かしてくれたのはドリコムのゲームオペレーション統括部ゲームオペレーション2部開発1グループの三上拓也氏。入社3年目で、スクラムマスターやプロジェクトのエンジニアリーダーなどを務める。
ソーシャルゲームの現場では、イベントやキャラクターなど、さまざまなデータやリソースが頻繁にリリースされている。そのためイベントが開始されると動かなくなる、キャラクターが表示されないといった不具合が生じることもあるという。
「起こしたくはないけれど、たまに不具合は起こってしまう。ではどうすれば不具合を減らせるのか。すべてを目視でチェックするなど職人技に頼る方法もあるが、これだと担当者が変わるとチェック機能も失われてしまう。自動で不備を検知できる環境作りが大事」と、勘と経験だけに頼らない、システム作りを推奨した。
また、三上氏は、複数のユーザーデータを1つに統合する変更の担当になった時、既存のレコードは削除し、アーカイブ用のテーブルへ別途インサートすることで、処理待ちが発生してしまった実例を紹介。その時に「ログを残しておけば十分なこともある。本当にアーカイブする必要があるのかを考えるべき。その時々に応じた臨機応変な対応が必要になる。ミドルウェア周りの知識も大切なため少しずつ勉強している」とコメントした。
最後に「失敗は起こしてしまうもの。失敗してもサポートやリカバリをしてくれる先輩エンジニアがいるため、作業ができることも事実。失敗から学ぶこともあり、失敗後どうステップアップにつなげられるかが大事」と自らの経験談を話した。
不動産・住宅情報の総合サービス「LIFULL HOME'S」で知られる、LIFULLからは、エンジニア歴10年以上のLIFULL HOME'S事業本部 技術開発部 基盤開発ユニット プラットフォームグループの鈴木健太郎氏が登場した。「失敗と向き合う姿勢を正す話」をテーマに、「失敗を定義する」「失敗に対する振る舞い」「失敗の活かし方」について話した。
鈴木氏は「失敗には、賞賛すべき失敗とそうでないものがあり、それを区別すること、立ち戻れる基点を作ることが必要」と話す。有事の際には立ち戻れる基点を明確にしておくことで、その後の動き方の指標になるという。
失敗の責任についても触れ「責任は全員で持つ。自分ごとでやること。個人に責任を負わせると、グループ内で心理的安全性が下がってしまう。組織できちんと対応することが再発防止につながる」と強調した。
原因追求については「ログが真実。すべてをひもとくものはログ。システムに1つ機能を追加するのであれば、ログを整備したほうがいい」とした。
レコチョクからは、エンジニア2年目の事業システム部 ミュージック・アーキテクトグループの江藤光氏も登場した。大学時代に起こした、周囲を巻き込む大きな失敗体験を話し、その時、自身の振る舞いが周囲にどんな影響を与えるのかを事前に十分考えることの重要性を学んだとのこと。また、教授から「失敗のダメージは年々上がるから若い内に失敗をしておくべき」とのアドバイスを受けたという。
レコチョクのエンジニアになってからは、主に社内ツールを担当。「最悪の結果になっても影響は社内に留まっていた。しかし、条件を抽出してユーザーにメッセージを送る機能を作ってほしいというオーダーがあり、あらゆるテストパターンを実行。これでもかとテストを重ねてリリースしたのに、動かないという事態に陥った」ことがあったという。
「原因はAjaxのデコード忘れ。それでも気付けない時は気付けないもの。自分のやったことをすべて疑う必要がある」と見落としがちな“あるある”の失敗について話した。
また江藤氏は、α版を使って作った社内管理ツールの話も紹介。「α版は不安定だからあまりおすすめしないと先輩から言われたにもかかわらず、使ってしまった。完成した数カ月後に次のα版が届き、そのバージョンでは全て使うことができなかった。作り直しは自分の責任。だめだったら捨てる勇気が大事」と、実体験から得た教訓を披露した。
最後にファームノートからデバイス開発 マネージャーの阿部剛大氏が登場した。ファームノートは酪農・畜産向けクラウドサービスに特化したITベンチャー。クラウド牛群管理システムを提供している。阿部氏は「世の中は思い込みでできている」をテーマに、仕事に対する姿勢について話した。
「フルスタックエンジニアは、ネットワーク、システム、サーバ、データベースなどを1人で行うこと、と思われているが、ファームノートのエンジニアは、それらの仕事に加え、牛への取り付け、センサの設計、実験、データ分析、ゲートウェイ開発などさらに多くの仕事を手がけている。これが真のフルスタックエンジニア」と、仕事の幅広さを説明した。
阿部氏は、学生時代からウェブエンジニアになりたかったとのこと。しかし、卒業後就職した会社ではHadoopエンジニアを務めた。「ウェブエンジニアだという思い込みがあった時期は、なかなか仕事がうまく回らなかったように感じていた。しかしウェブエンジニアだという思い込みを捨てた途端、仕事が楽しくなってきた。この経験から、自分を決めきらないで、いろんなことをやることが大事だとわかった」と話す。
「思い込みがあることで可能性を狭めてしまうことがある。ウェブエンジニアという思い込みを持ちながら仕事をしていた時間が自分の失敗。今はデバイス開発をしているが、牛に装着するタグの材質から、データを取る時に生じるノイズをどうやって除去できるかまで、通常のエンジニアでは体験できないような仕事をしている。自分は○○エンジニアだという思い込みをなくして、いろんなことに興味を持つことが大事」と締めた。
レコチョクでは、開催の目的を「社会人として働いていれば誰にでも失敗はつきもの。エンジニアとしての失敗は会社や業種を超えて共有できることも多いはず。失敗から、こんなことを学んだ、こんなところに生かすことができた、といった経験を共有することで、次の失敗を避けることができたり、新しい気づきにつながれば」と語っている。
次回のRecoChoku Tech Nightは、12月12日に「AWS re:Invent+海外音楽IT」をテーマに開催する。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」