企画・デザイナーが技術を学ぶ「プロ研」レポート〜真のモノづくり人材へ〜

アプリボットでは、7〜11月の約4ヶ月間をかけて 「プログラミング研修(プロ研)」 という社内研修を行いました。企画職・デザイナー職を対象に、エンジニアが講師となりプログラミングの講義を実施し、より現場でのコミュニケーションや理解を深めるための知識、思考を身に付けるものです。

新たな試みとなったプロ研の目的や、実際の講義カリキュラムについて触れていきたいと思います。

■プロ研の目的

プロ研は、主に企画職・デザイナー職を対象に

“プログラミング的思考を身につけて、真のモノづくり人材へと進化すること”

を目的としています。

「エンジニアとの会話で知らない用語が頻繁に出てくる」

「オリエンのたびに仕様の漏れが見つかる…」

このような、エンジニア⇄非エンジニアでのコニュミケーションの行き違いは、互いにとって日々減らしていきたいものです。よりよいモノづくり環境をつくっていくため、エンジニアリングを学び、自分たちのプロダクト構成要素が理解できるようになるため、全社の取り組みとしてプロ研が始動しました。

■研修の概要

研修のゴールは、 “ゲームの構成要素を整理できるようになること”

実際の施策概要はこちら。

– 期間は4ヶ月

– 全8項目、全10回(1講義2H)の講義を実施

– 実際に体験することでより理解を深める目的で、

講義によるインプットだけではなくアウトプット課題を毎回用意

– 項目毎にメイン講師を選定、カリキュラムの念入りな詰め作業

施策全体として、「業務に活かせる実践的な知識」というよりも、「エンジニアリングの基礎を体系的に学んでもらう」という目的が強くありました。

(もちろん業務に活きてくれると尚良いので、現場での実例なども入れていました。)

■約1ヶ月をかけて、各講師エンジニアが準備

講師となってくれたエンジニアと運営は、講義毎に約1ヶ月の準備に取り組みました。

▼講義準備の流れ

①講義内容のすり合わせ

②初稿のすり合わせ→修正

③講義と課題のトライアル

④最終仕上げ

③講義と課題のトライアルが、プロ研では非常に重要です。企画職・デザイナー職の数名に向けてトライアル講義を実施し、難易度や、普段の業務でリアルに活かせるか?疑問に思っていることが解決されているか?など、念入りにすり合わせを行うことにより講義の精度上げに尽力しました。

■実際のカリキュラム

第1回:バックエンド/サーバー編

(講師:サーバーサイドエンジニア・北田)

ダウンロード (3).png

◆講義アジェンダ

– バックエンドとは?

– サーバーの役割について

– データベースについて

– インフラについて

– 機能開発について

(・設計〜実装、試験

・エンジニアが考えること)

◆この講義で説明すること

– サーバーサイドエンジニアは何をしているの?

– インフラエンジニアは何をしているの?

– API,DB,Webサーバー,AWS…何のこと?

– ゲーム開発において何を重要視しているか

◆課題

1. ネットワーク上での通信に関する規約があることで相互に理解できる決めごとを何というか

2. HTTP / HTTPS の違いはなにか

3. SSL / TLS とはなにか

4. Web APIとはなにか

5. Web APIを提供しているサイトを3つを挙げ、どのような利用ができるか調べてみよう

6. データベースの一つに障害が起きてしまった場合、代替システムがその機能を自動的に引き継ぎ、処理を続行する仕組みをなんというか

7. 「6.」の代替システムがその機能を自動的に引き継ぐということは、どのようなメリットがあるか

など記述式の課題。

第2回:クライアントサイドoverview編

(講師:クライアントエンジニア・矢野)

講師の矢野は元々企画職であり、現在Unityエンジニア(3D)という経歴があるため、 “企画職のときに知りたかったこと” を講義で話しました。

◆講義アジェンダ

– スマホの仕組み

– ゲームエンジンについて(メリット/デメリットなど)

– クライアントサイドエンジニアの仕事と設計の重要性

– 実用的な話

(処理落ち、メモリ落ち、テクスチャの容量、テクスチャの圧縮、フォントについて…etc)

◆課題

d2f48b47-7eb7-da6b-7a2e-0a3ee1ef432d.png

第3/4/5/6回:Unityプログラミング編

(講師:クライアントエンジニア・久保、

クライアントエンジニア・粟村)

ダウンロード (4).png

◆講義アジェンダ

– UnityとC#について

– C#:using、アクセス修飾子、class

– C#:代入、変数、if文、for文

– (番外編)工数見積もりについて

– C#:関数、MonoBehaviourと継承

◆課題

90e64ab0-4570-0db0-53db-fb1b06c47b62.png

第6回は、講師が質問に随時答えながら一緒に課題を解く時間に。

第7回:データ構造とアルゴリズム編

(講師:クライアントエンジニア・向井)

◆講義アジェンダ

– アルゴリズムとは?なぜ重要か?

– 数当てゲームで学ぶ線形探索と二分探索、アルゴリズム分析

– ソートアルゴリズム

◆課題

ee940ffc-3bfa-a567-fe11-261ad47c565c.png

第8回:システムオペレーション組織について編

(講師:システムオペレーションエンジニア・西村)

第7回の講義では、意外と知らない「システムオペレーションチーム(以下シスオペ)って、何をしてるの?」について講義を行いました。

シスオペは、サービスに属さず横断して社内の 全アプリ を見ています。

◆主なシスオペの業務

6fddeeb6-d911-f320-15b1-bc8d3a0b5a5e.png

シスオペは、各チームがアプリ開発に専念できるようにするために、サーバーインフラの面倒を見る、 “アプリの開発支援チーム” として、重要なチームなのです!

第9回:構造化編

(講師:クライアントエンジニア・神保)

神保は、プロ研の運営として他講師陣をサポートしながら自身の講義も行いました。

本講義では、

「ちょっとした仕様変更のつもりがかなり工数がかかると言われた」

「マスタ変更したら予想しないところでバグが出た」

「モックから本開発の変わったときになんで作り直すの?」

といった、意外と理解できていないであろう部分を踏まえて解説しました。

◆講義アジェンダ

– 構造化

(・構造化とは

・良い構造、悪い構造

・構造化のための道具)

– 構造化の具体例

– ゲームにおける構造化の例

第10回:開発フローoverview編

(講師:プロジェクト責任者兼エンジニア・幸津川)

◆講義アジェンダ

– 開発手法とフェーズ

(プロトタイプ, α版, β版等のそれぞれのフェーズでやるべきこと)

– 機能開発フロー

(仕様、デザイン、エンジニアリング、アセット製作、組込、テストのフローの工夫)

– 開発をスムーズに進めるためのワークフロー

(効率よく開発するためのツールや手段、自動化やルールやレギュレーションについて)

◆課題

8bbea638-b3c3-24ad-2a02-b96ca1fb0380.png

■受講者の声

「自分のレベルを図る1つの目安になった。」

「仕様書に関して、「まずは相談ベースで全然OK!一緒にいいものを作っていきたい」というスタンスで仕事をしているというエンジニアのマインドを聞けたことにより、非エンジニアの受講者達も働き方が変わると思いました。」

「現場でワークしている実例を交えた話しを聞けたので、自分の知識は正しいんだな、別の見方もあったか、と再確認できました。」

実際に受講した社員たちからは、全講義終了後このような声があがりました。

■おわりに

毎講義、60名ほどの受講者がプロ研に出席。

社内の連絡ツールグループで質問をすると、随時、講師ではないエンジニアが質問に答えてくれるようなサポートも導入したことにより、有意義な講義になりました。

このプロ研での経験活かし、今後より良いプロダクトを作っていければと思います。

また、今後もこういったモノづくりのレベルを会社全体として上げるための施策を、引き続き実施していこうと考えています。