フルサイクルエンジニアとして採用、その仕事とは?
大学では画像処理を研究し、2歳児の父親でもある竹下氏は、株式会社ゆめみの正社員となって約8カ月。株式会社ゆめみの最終面接で「バックエンドとフロントエンドならどっちがやりたいか」と聞かれ、「どっちでもいい」と答えた結果、受け取った内定通知に記されていたのは「職種:フルサイクルエンジニア」だった。ググって調べても情報が見つからず、「珍しい職種」と楽観的に受け取っていたという。
そして、半年後に「コーポレートエンジニアリングと相性がいいから」と、アルバイトの依頼を受けた竹下氏は、「社内SEという感じ?」と思いながら快諾。2021年1月より、内定者アルバイトとして働くことになった。
現在、竹下氏は「フルサイクルエンジニア」を「SLCP(Software Life Cycle Process)の全てを担うエンジニア」と定義し、課題発見に始まり、「要件定義」「設計」「実装(テスト)」「リリース」「ヒアリング調査」と、開発・改善サイクルを回す仕事として認識している。
なお、フルスタックエンジニアという言葉もあるが、竹下氏は「フルサイクルエンジニアに内包されるもの」として分類しているという。フルサイクルエンジニアが担う開発・改善サイクルの「開発」フェーズにおいてバックエンド、フロントエンド、インフラやスマホ対応まであらゆる技術分野を担うのが「フルスタックエンジニア」というわけだ。
会社のために新たにモノを作る「コーポレートエンジニアリング」
そんなふうに「フルサイクルエンジニア」を理解していた矢先、2021年10月、ゆめみ社内で職位ごとの年収目安と必要なスキルを細かく明文化した「アプリケーション・エンジニア職位ガイドライン」が発表され、はてなブログで物議を醸すことになった。
「フルサイクルエンジニア」に記載されたのは、竹下氏の認識とほぼ相違なかったものの、「グロースハック、コーポレートエンジニアリング、プロトタイピングなどで活躍が期待される」という記述に、アルバイト依頼時の「コーポレートエンジニアリングと相性がいいから」という言葉を想起したという。
そもそも「コーポレートエンジニアリング」とは何か。一般に「組織の問題解決のためのシステムを内製で開発・運用すること」とされているが、情シスに所属する社内SEの違いを知ると、理解しやすくなるだろう。つまり、既にあるものを使って会社を豊かにするのが社内SEだとすれば、いまだないものを作り出して、会社を豊かにするのがコーポレートエンジニアというわけだ。
例えば、「組織にSlackを導入する」「社員の貸与PCのセットアップをする」「社内用VPNを構築する」は、社内SEの仕事であり、「Slack APIを使って勤怠管理システムを作る」「組織にあったチケット管理Webアプリを作る」はコーポレートエンジニアの仕事となる。
つまり、社内SEは、SaaSの導入や業務用機器の管理、社内業務におけるヘルプデスクなどを担う。よって、さほどコードを書かない。一方、コーポレートエンジニアは複数のSaaSを連携させた独自システムの開発や、組織に最適化したツールの開発などを担い、コードを多く書くことが多い。もちろん、どちらの業務も同一部署が担当する会社もあるが、ゆめみの場合は、コーポレートエンジニアリングチームと社内SEが所属する情シスチームの両方が存在し、業務も分担している。
竹下氏はコーポレートエンジニアの可能性について、「近年はどの会社でもDXが大きなテーマになっており、積極的にIT導入を推進している。組織の課題を内側から分析し、スピード感をもって改善サイクルを回しながら基盤を実装するのが理想であり、当然ながら組織に最適化された基盤の実装は内製するのが最適。そうなれば、コーポレートエンジニアの需要は急増するはず」と語った。
入社後、社内プロダクトの運営者に
そして2021年1月、フルサイクルエンジニアとしてゆめみに参加した竹下氏は、コーポレートエンジニアリングチームに参画することとなる。しかし、チームメンバーは1人で、年末には退職予定、年始から竹下氏が1人になることが決まっていた。退職後しばらくは業務委託としてサポートを受けられることになっていたとはいえ、かなり驚いたという。
そして、引き継いだ社内プロダクトは、「社員管理システム」「稼働管理システム」「勤怠管理システム」「感謝やフィードバックを伝えるシステム」「モックAPIを簡単に用意できるシステム」の5つ。
技術スタックとしては、Laravel(PHP)やVue.js、Docker、EC2が必要だった。しかしながら、当時の竹下氏はLaravelについてはこれまで他社でのアルバイトで少し書いたことがある程度で、Vue.jsはゆめみの採用試験のための勉強しただけ、Dockerは触ったことすらなく、EC2もほとんど経験がない状態。しかし上下関係がないことや、アルバイトとしてタスクを振ってくる人がいないことをいいことに、自分でやることを見つけて自分で行動するしかないと腹をくくったという。
そして、アルバイト期間中に行ったこととして、次の4つを実践した。
1. 既存プロダクトのキャッチアップ
コードを読む、ドキュメントを読む、知っている人に聞くという地道な作業を行った。いわば、お金をもらいながら勉強できるという恵まれた時間だったという。
2. 既存プロダクトの問い合わせに対する一次対応
Slackなどでバグの報告や機能追加依頼が来た時に、とりあえず一次対応を行い、できないものは前任者につなぐということを行っていた。
3. 既存プロダクトのお手入れ
一次対応した中で、バクの調査や修正、機能追加など、できることにはトライしてみた。
4. SlackAPIの勉強
ゆめみは日本で一番Slackを使っている会社ということもあり、社内プロダクトがSlackと密に関わっていることが多かった。そこでSlackAPIのドキュメントを読んだり、実際にBotを作ったりしていた。
ゆめみ×コーポレートエンジニアで圧倒的に成長できる
正式に正社員になった後も、特に変わらず窓口対応をしてプロダクトを改善し、自分で新機能を作ったり、皆の反応を観察したりの日々。竹下氏は、現在の状況について「新卒で責任ある仕事を任せてもらえて充実している」と評した。そして、竹下氏は「特に、フルサイクルエンジニアとして、コーポレートエンジニアリングを担うことが、当社で最大の成長環境にある」と話す。
そもそもコードを大量に書くために、広い知識をまんべんなくカバーできる技術力が上がるのが当然だとして、プロダクト開発の知見や、現状を分析してプロダクトに落とし込む力、それに付随して問題解決能力、窓口対応時のコミュニケーション力、さらにはフィードバックを素早くプロダクトに反映する力などが底上げされたという。
それが実現できたのは、コーポレートという特殊な環境があるからだ。コーポレートエンジニアリングチームがサービスを作れば、社員であるユーザーが使用し、フィードバックを行うというサイクル。そのサービスの提供者とユーザーの距離が近く、PDCAサイクルが高速で回せるからだという。
竹下氏は「普通の自社開発、受託開発ではありえないスピードだと思う。そうした環境は、コーポレートエンジニアリングでしか得られない」と語り、さらにゆめみの社内横断的に技術支援をする組織「テックリードチーム」について触れ、「コードレビューやペアプロで、直接高度な技術支援を受けることが可能という恵まれた環境にある」と評した。つまり、フルサイクルエンジニアとして、コーポレートエンジニアリングの仕事をし、さらにテックリードによる技術支援が受けられるという「圧倒的成長環境」にあるというわけだ。
竹下氏は「ゆめみでコーポレートエンジニアになれば、技術力にとどまらず、エンジニアとしての力が底上げされる。あなたもゆめみでコーポレートエンジニア、フルサイクルエンジニアにならないか?」と呼びかけ、セッションを終えた。