はじめに
こんにちは!22卒内定者としてインターンシップをしている松原です。
今回の記事では「Creative Monster License」を構成する講座の一つである、『カクシン エンジニア研修』の内容を抜粋してご紹介します。
Creative Monsters Licenseについてはこちら
https://www.wantedly.com/companies/kakusin/post_articles/332236
他職種の記事を読む
・UXアーキテクト(ディレクター)
・3Dクリエイター
・デザイナー
カクシンでエンジニアとして働く魅力のひとつは、ただ提示された仕様を実装するだけではなく、技術選定はもちろん、企画や新規サービスコンサルティングなどエンジニアという職域を超えた動き方ができることです。
そんなカクシンで働くエンジニアチームはどんな仕事をしていて、どんなことを考えているのか?
本講座を通して学んだことをシェアさせていただきます。
講師はこちら!
『カクシン エンジニア研修』もくじ
- エンジニアとは?
- 何をする人たちなのか?
- カクシンのエンジニアの業務範囲
- カクシンのエンジニアたちが日々意識していること
- 編集後記:『エンジニア研修』で学んだこと
エンジニアとは?
1. 何をする人たちなのか?
エンジニアとは「技術を駆使して、ものを創ったり、問題を解決したりする職種」のことを指します。航空機を作る「航空機エンジニア」などもエンジニアと呼ばれます。
その中でもカクシンのエンジニアは「ITに関する技術を駆使する、ITエンジニア」です。
ITエンジニアからさらに、システムエンジニアやインフラエンジニア、Webエンジニア、ゲームエンジニアなど細かく分かれています。
カクシンでは、「Web」「ネイティブアプリ」「センサーや最先端端末を使用した体験型デジタルコンテンツ」などを制作しているため、上記のシステムエンジニア・Webエンジニアなどが該当します。
Webエンジニアの中でもさらにマークアップエンジニア・フロントエンドエンジニア・サーバーサイドエンジニアなどに分かれています。
またカクシンには、iOSアプリ開発をしているモバイルアプリエンジニア、Unityを用いて体験型コンテンツやコミュニケーションプラットフォーム開発をしているUnityエンジニアも在籍しています。
📌Point
・「エンジニア」の中にも多様なプロフェッショナルが存在する
・カクシンのエンジニアは大きくシステムエンジニア・Webエンジニア・モバイルアプリエンジニア・Unityエンジニアが在籍している
2. カクシンのエンジニアの業務範囲
カクシンでは上流工程からエンジニアが参加しながら進めるプロジェクトも多く存在します。
エンジニアといえば、コードを書くことを第一にイメージしてしまうかもしれませんが、様々な工程を重ねた後、最終的にキーボードを打ちコードを書く作業に入ります。
特にカクシンでは、クライアントやプロデューサー、UXアーキテクト(※)がイメージしたものを形にしていくだけではなく、企画やディスカッションの段階で技術目線での発想が加わることは非常に価値があると考えています。
また、実際の開発フェーズに入ったときにも、企画の文脈や本来の目的を理解しているかどうかでアウトプットの質は格段に変化します。
仕様に疑問を感じた際に、文脈や本来の目的を理解していれば、それに対応したアウトプットを生み出すことができるからです。
本質的な価値提供をしたいと考えるカクシンだからこそ、意識しているポイントかもしれません。
全てのプロジェクトが企画のブレストから参加するようにはなっていませんが、エンジニアはコードを書くまでに以下のようなことをしています。
特に要件確認のフェーズではカクシンのエンジニアだからこそ、踏み込んでいる領域があります。
(※)UXアーキテクト
一般的に「ディレクター」と呼ばれる職種で、カクシンの体験設計のスペシャリスト。
①要件確認
通常のエンジニアは「要件確認」や「要件定義」と聞くと、システム要件だけを思い浮かべる人が多いのではないでしょうか。
カクシンでは、エンジニアも一緒に「ビジネス要件」「業務要件」など、プロジェクトの全体像を把握した上で「システム要件」を定め、要件定義をしていきます。
上述しているように、本来の目的を理解した上で、システム要件に落としていくことが重要であると考えているからです。
その上で、システム要件を整理する際には、クライアントが求めていることはもちろん、技術的な面で何をやろうとしているのかを明確化し、必須要件と希望要件にまとめます。
必須要件とはその案件において必ず必要になるもので、希望要件は必須ではないものの案件に取り入れることでクオリティアップが狙えるものを指します。
企画段階から入れない場合や、クライアントと直接コミュニケーションを取ることが難しい場合には、プロデューサー・UXアーキテクトとともにビジネス要件や業務要件を整理した上でシステム要件に落とし込んで行くことが重要です。
②仕様検討
仕様とは案件を達成するやり方を指します。
例えば、「カレーライスを食べたい」という要件があった場合、カレーのレシピを考えることが仕様を考えることになります。
③工数計算
要件と仕様を整理してまとめることで、初めてどれくらいの時間と工数が必要になるかを考えることができます。
工数を計算するためには、案件を達成するために必要な技術を選び、その技術を試し、そこでどれくらいの想定外の事態が起こりうるかを予測することも必要です。
④簡単なスケジュールを出す
ある程度工数を予測することができれば、簡単なスケジュールを算出します。
簡単なスケジュールの算出とはマイルストーンを設定することを指します。マイルストーンとはある大きな目標を達成するための中間目標です。この工程まで来て初めて具体的な金額や工数を算出することができるようになるのです。
簡単なスケジュールを出すことで、クライアントが求めている要件をその仕様で達成できるのか、期日に間に合うのかを把握することができます。もし、期日に間に合わないと分かった場合は調整を行うことが必要になります。
クライアントからより多くの予算と時間を確保してもらうことがベストですが、大体の場合はそうはいきません。必須要件の内、いくつかの事柄を希望要件に変更することを提案して、コストと工数を抑えたり、フェーズを分けて開発をするなどの工夫が必要となります。
⑤作り方の詳細を考える
必須要件を満たしつつ希望要件についても考えながら、どういう手順を踏めばシステムを作りやすいか、運用しやすいかを考えます。
期間やコスト、使用できるツールやプロジェクトメンバーなど様々な観点から検討を重ねベストな方法を模索することが求められます。
⑥プロジェクトメンバーと連携する
作り方を決めたら、その作り方で良いのかを他のメンバーと連携して検討します。
外部パートナーに入ってもらう必要が出てきた場合や新しいツールを導入する必要がある場合は、プロデューサーと相談しながら人員を探したり、導入予算を捻出してもらうことが必要です。
⑦詳細なスケジュールを出す
準備が整えば詳細なスケジュール(Work Breakdown Structure, 略してWBS)を出していきます。
WBSは大まかな区切りを示していたマイルストーンとは異なり、完成までに必要なすべてのタスクを網羅している必要があります。WBSを作るうえでのコツとして、「これくらいでできそう」という想定時間から1.5倍~2倍の時間を設けることです。
余裕を持たせたタイムスケジュールを組むことで想定外の事態に対応することができます。
ここまでの7つの工程をクリアして、やっとエンジニアはコードを書き始めることができます。さらにその後はテストと修正を重ね、やっとローンチすることができるのです。
この前工程の精度をどれだけ高められるかによって、アウトプットの質は大きく変わります。もちろんこれらはエンジニアだけで進めるのではなく、UXアーキテクトやプロデューサー、クライアントと情報交換しながら進めていくため、コミュニケーション能力も求められます。
📌Point
・カクシンのエンジニアは「ビジネス要件」と「業務要件」から「システム要件」を導き出す
・コードを書く前工程の精度を上げることでアウトプットの質が変わる
・他のプロジェクトメンバーやクライアントとコミュニケーションも重要
カクシンのエンジニアたちが日々意識していること
ここまでで、カクシンのエンジニアたちがどのような仕事をしているかイメージがついたでしょうか?
ここからは、カクシンのエンジニアたちが仕事をする上で日々意識していることを紹介します。エンジニアに限らず、モノづくりをする人たちにとって共通して意識しておくと良いことが含まれています。
KAKUSIN Engineer Mind
カクシンのエンジニアマインドは、技術観点でのTechnical Mindとそのプロジェクトにおいてエンジニア代表という意識を持つといった視点のProfessional Mindの2つに分けて考えています。
Technical Mind
1. ビジネス価値のある技術は積極的に習得するように努める
技術革新が進む中で、時代に応じてビジネス価値のある技術は常に変化しています。
自分が慣れ親しんだものに固執せずに、ビジネス価値の高い技術は積極的に習得することで、自身の市場価値とプロダクトの価値を上げることにつながります。
2. 価値があるかわからないが、ワクワクする ( 好きな ) 技術を追求する
1では自分以外の価値観を吸収することが求められますが、一方で価値があるかわからないが自分がワクワクする技術を追求することも大事であると考えています。
そこに新しい発見があったり、なぜワクワクするのかを深掘りしていくとそこにビジネス価値を見出すことができるかもしれないと考えているからです。
3.プロジェクト毎に最良の技術は何かを考え続け、思考停止に陥らないよう努める
似たようなものを作る場合でも、プロジェクトの目的が違えば、それに適切な技術も異なってくることがあります。
何が最良であるかを考え続けることが、プロジェクト成功につながります。
4.技術がわからない人に、わかるように説明するのもまた技術である、と捉える
さまざまな職種やバックグラウンドのメンバーと開発を進めるため、当然技術がわからない人に説明をする場面も生じます。
だからこそ、「わからない人にわかるように説明できる」ことも技術のうちの一つであると考えています。
Professional Mind
1.徹底したユーザー中心思考で、最良のアウトプットは何かを考える
本質的な価値提供をするためには、何よりもユーザーの視点で価値が最大化されるアウトプットを考えるべきであると考えています。
2.仕様に違和感を感じた場合それを飲み込まず、そのプロジェクトのエンジニア代表という
意識を持ち、 本当にユーザーが求めているものは何かを考え、発言をする
言われたものを作るだけではなく、プロジェクトに責任を持ち、開発し運用する当事者として見たときに、仕様に違和感があった場合には、発言を恐れないように心掛けています。
3.知らないことがあることを喜び、恐れずに学ぶ。
「知らない」ということはまだまだ伸び代があるということ。
現状に満足せず、常に学ぶ意欲を持ち続けることを重視しています。
4.技術は食べるための道具ではない。見たことのない未来につれていってくれるパートナーである。と捉える
お金を稼ぐための手段ではなく、それを使うことで見たことのない未来を見せてくれるパートナーであると考えています。
カクシンのエンジニアメンバーも常に全てできているわけではないですが、このマインドを共通認識として持ち、より良いアウトプットを生み出せるように日々邁進しています。
編集後記:『エンジニア研修』で学んだこと
僕は大学では文系の学部で勉強していることもあり、エンジニアに関する知識を全くと言っていいほど持っていませんでした。本講座を通じてそもそもエンジニアとはどんな職種なのか、どのように案件に関わるのか、具体的にどのようにして成果物を作り上げていくのかを知ることができ、様々な気付きを得ることができました。また、カクシンのエンジニアならではの考え方である「KAKUSIN Engineer Mind」には高い目標とそれを達成するために必要な姿勢や仕事への取り組み方、思いが込められていると感じました。
僕は現在インターン生ですが、近い将来エンジニアと一緒に仕事に取り組む場面が増えていくと思います。この研修から学んだことを活かし、エンジニアの方に「松原となら一緒に働きたい」と思ってもらえるような人材になり、共により良いサービス・モノづくりをしていきたいです!
Creative Monsters Licenseについてはこちら
他職種の記事を読む
カクシンでは新たなCreative Monsterの仲間を探しています!
エンジニアへの応募はこちらから!