Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

「ユーザーと同じようにスタッフのことを想うこと」――ディライトワークスにおけるプロジェクト・組織運営の極意【デブサミ2019】

【14-B-5】一エンジニアが伝えたい、プロジェクトや組織の運営を理想に近づけるための考え方

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/03/11 11:00

 ディライトワークスは、「Fate/Grand Order」といったスマートフォン向けのゲームを企画・開発・運営する企業だ。同社において技術部のマネージャーを務める宮下崇氏は、以前から社内のさまざまなプロジェクトのマネジメントを経験してきた。そんな宮下氏が心掛けるプロジェクト・組織マネジメントの極意とは何か? 本稿で紹介する。

ディライトワークス株式会社 技術部マネージャー 宮下崇氏
ディライトワークス株式会社 技術部マネージャー 宮下崇氏

仕様書やプログラムコードの「ユーザー」のことを常に思いやる

 宮下氏が心掛けるプロジェクト・組織マネジメントの極意を一言で言い表すと、「ユーザーを想うのと同じように、開発スタッフのことも想うこと」だという。

 例えば、開発プロジェクトにおいて意図通りの実装になっていないような問題が発生した場合に、その一因として仕様書の品質に起因することがあり、これを解決する上でも前記の心掛けが役立つという。

 「ソフトウェアの開発者は、常に『製品やサービスがユーザーにどう使ってもらえるか』を考えながら開発を進める。同様に仕様書を作成する際には、仕様書のユーザーである全プロジェクトメンバーにどう使ってもらえるかを強くイメージする必要がある」

 仕様書内の表記をきちんと統一し、プロジェクト内の共通言語や共通認識を根付かせることも、こうした取り組みのひとつだ。例えば、エラーを表示させるためのウィンドウのことを、仕様書内で「ウィンドウ」「ポップアップ」「ダイアログ」などとバラバラに表記すると、それを読むプロジェクトメンバーも、おのおので異なった解釈を行う可能性がある。その結果、開発者によって異なる実装を行ってしまい、プログラムコードの品質が著しく低下してしまう。こうしたリスクを回避するためにも、仕様書の記述は全プロジェクトメンバーにとって分かりやすく、かつ内容に一貫性が保たれている必要がある。

 また仕様書には必ず、「なぜそれを実現したいのか」を表す「目的」を明記しておくこと重要だ。その仕様の目的が不明確なままだと、仕様書を読んだ開発者ごとの判断にばらつきが生じて、設計者が意図した通りの実装にならないこともある。逆に目的が明確に記されていれば、開発者やデザイナーから「この目的を達成するには、こういうやり方の方がいいのでは?」といった提案を引き出せる可能性も出てくる。

 仕様書と同じく、プログラムコードの品質を高める上でも「ユーザーを想うのと同じように、開発スタッフのことも想うこと」が大事だという。

 「プログラムコードのユーザーは、プロジェクトの全エンジニア。従って、プログラムコードの作成者は製品やサービスのユーザーのことを想うのと同じように、プロジェクト内のほかのエンジニアのことを想いながらプログラムコードを作成する必要がある」

 コードレビューを行う際にも、レビューを行うエンジニアの立場に立ち、より正確で効率のいいレビューを行ってもらえるよう十分な情報を集めて提供する必要がある。単にコードを提供するだけでなく、仕様の情報や実装方法、影響範囲、場合によってはUIの画像情報なども併せて提供する。

 エンジニア同士のレビューだけでなく、テストを行うQA部隊とエンジニアとの間のやりとりにおいても、テストの目的やバグの要因、プログラムの変更内容、影響範囲といった詳細な情報を渡すことで、互いの認識の齟齬を避け、正確で効率的なテストが可能になる。もちろん、QA部隊からエンジニアに対してテスト結果や見つかったバグの情報をフィードバックする際も同様だ。

 「そのほかにも、チケット駆動開発を行っている現場なら、チケットを渡す相手のことを想って、必要な情報を分かりやすくチケットに記載する必要がある。このように、人に情報を伝えるタスクすべてにおいて、プロダクトのユーザーを想うのと同じように、開発プロジェクト内でもそれぞれのユーザーを想像し、互いの理解を深めてアウトプットの品質を高めることが重要だ。こうしてアウトプットの品質を高めていけば、開発全体の品質が向上し、ひいてはより良い品質でユーザーに届けることができる」

「ユーザーを想うのと同じように、開発スタッフのことも想うこと」が重要
「ユーザーを想うのと同じように、開発スタッフのことも想うこと」が重要

開発スタッフが有意義な時間を過ごせる組織をいかに作り上げるか

 プロジェクトだけでなく組織全体をマネジメントする上でも、宮下氏は同じく「ユーザーを想うのと同じように、開発スタッフのことも想うこと」を重視しているという。その際、マネージャーとして第一に心掛けるのが、「開発スタッフに有意義な時間を提供する」ことだと同氏は言う。

 「ゲームの開発とは、一言でいえば『ユーザーがゲームをプレイする時間』を設計すること。その時間が有意義だとユーザーが感じれば、また同じ時間を過ごしたいと思ってもらえるし、ほかの人にも共有したくなる。同じく組織も、メンバーがその組織の中で働く時間を有意義だと感じれば、継続的に組織の一員として働いてもらえるし、ほかの人に勧めることもある」

 ではどうすれば組織に所属する開発スタッフに、そこで過ごす時間を有意義だと感じてもらえるのか。宮下氏が最も重視するのが、「エンジニアがその組織において自身の市場価値を高められ、成長していけるか」だという。開発スタッフ一人ひとりがこうした実感を持ちながら組織の中の時間を過ごしていけば、働くことがそれぞれの成長につながり、ひいては組織全体の成長にもつながる。

 こうした実感を開発スタッフに感じてもらえるよう、ディライトワークスではさまざまな施策を講じている。例えばグーグル・クラウド・ジャパンやアマゾン ウェブ サービス ジャパン、日本オラクルなどから講師を招き、最新の製品や技術についての勉強会を社内で開催している。また社外のイベントや研修への参加も積極的に推奨しており、海外のイベントや研修へ参加する際にも会社が費用を負担している。こうして最新情報のインプットに努める一方で、同社のエンジニアが社外の技術系イベントに登壇し、技術コミュニティに対してナレッジやノウハウをアウトプットして還元する取り組みも推奨している。

 また、エンジニア個々人が自身の興味やモチベーションに沿ってスキルを伸ばせるよう、本人の成長ビジョンとプロジェクト側のスキル要件との調整に常に配慮し、なるべくエンジニア本人の希望に沿ったプロジェクトアサインができるよう心掛けているという。また毎月の労働時間の最大20%を、プロジェクト外の業務に充てられる制度も設けている。

 さらには、開発業務に没頭するあまり周囲とのコミュニケーションが不足しがちにならないよう、2週間に1回は必ずエンジニアと上長の間で1on1ミーティングを実施するとともに、プロジェクトやチーム内のメンバー同士のコミュニケーション円滑化を図るために月に1回の懇親会やランチミーティングも開催している。

 また多くの若いエンジニアにとって、スキルの高いエンジニアと同じ職場で切磋琢磨できることは、自身の成長にとって大きなプラス要素となる。そこで、成長の意欲が高いエンジニアにとってより魅力的な職場にすべく、さまざまなルートを通じて優秀なエンジニアの採用に力を入れている。一般的な求人だけでなく、ダイレクトリクルーティングやリファラル採用などを通じて、若いエンジニアの手本となるような優秀なエンジニアの採用を進めているという。

 「組織のユーザーに当たるのは開発スタッフ。従って組織の運営においても、製品やサービスのユーザーを想うのと同じように、開発スタッフのことを想い、開発スタッフが有意義だと思えるような時間を提供する。そのことがひいては組織の拡大や成長につながり、企業全体の成長にもつながる。さらに言えば、そのような組織や会社が増えれば、業界全体の成長にもつながる」

 こうした考えに基づいたマネジメントをぜひ試してほしい――そんなメッセージを込め、宮下氏はセッションを締めくくった。

「ユーザーを想うのと同じように、開発スタッフのことも想うこと」が、組織の拡大や成長、業界全体の成長につながる
「ユーザーを想うのと同じように、開発スタッフのことも想うこと」が、組織の拡大や成長、業界全体の成長につながる

お問い合わせ

 ディライトワークス株式会社

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5