コンニチワ!PROJECT GROUP株式会社の栗本でございます。
今回はPG開発事業部の皆さんに集まって頂き、社内管理ツール『REVolution』の開発秘話について語り合ってもらいました!
実はこれまでPGでの開発業務は「事業部」としてではなく、現・開発事業部のリーダーである「田中 直樹」さんが、個人で設計から開発までを行ってきました。そんな状況から、満を持して開発事業部が設立。新たにエンジニアを採用し、初のチーム開発となったのが『REVolution』でした。
そんな『REVolution』の開発ですが、やはり色々な“初”が重なり、完成までに紆余曲折ありました。今回は開発事業部の皆さんに当時の状況について、和気あいあいと座談会形式で語り合ってもらった際の様子をお届けします。
開発事業部のメンバー紹介
田中 直樹(写真:左)
2015年にPGへ新卒入社。これまでに「ABTestBox」「ABSoulution」など、PGにおける業務基幹ツールを個人開発。現在は開発事業部のリーダーとして、開発業務だけでなくマネジメントも担当している。
五十嵐 光(写真:中央)
2020年にPGへ中途入社。前職ではSESエンジニアをしており、エンジニアリングの経験は豊富。PGでの初仕事はREVolutionの開発であった。
土屋 司(写真:右)
PG創業メンバーの一人。立ち上げ当初はエンジニア業務に従事するも、事業変遷に合わせて広告業務へシフト。しばらく開発業務とは離れていたが、開発事業部の発足とともにエンジニアとして復帰。
『REVolution』の開発経緯について
土屋:まずREVを開発するキッカケについて話さないとですね。
五十嵐:端的に言えば「集計関連の業務効率化」のためですね。もともとは社内のあらゆる数字を各方面から集めて、それらを手作業で集計・管理していた。これを「ツールで一元管理しよう」というのが開発のキッカケですね。
田中:「雑務を完全排除しよう」という話がコンセプトにありましたよね。集計は売上をはじめとする会社の様々な数字を取り扱うので、基本的には管理職の人たちがやるわけですけど、仕事内容としては雑務に変わりない。なので集計に必要なものをツールに集約して、管理職の人たちの手を空けるというのが目論見でしたね。
土屋:最終的には業務効率化だけでなく、「社内管理ツールとして機能も持たせよう」というところに着地しましたよね。
五十嵐:そうですね。具体的には「営業の顧客管理」「会社の収支管理」「各事業部の進捗状況の可視化」なんかも、機能に加える方向で話が固まりました。
『REVolution』の開発環境について
五十嵐:REVの開発環境としては、バックエンドがRails、フロントエンドがVue.jsとNuxt.jsだったわけですけど、それぞれ選定理由は何かあったんですか?
田中:バックエンドのRailsについては、僕がまだ一人で社内ツールを開発していた時にRailsを使っていたという背景があるのと、そもそも僕がRails使いなので「他の人にも教えられる」ということも選定理由になりましたね。
五十嵐:そうか、今までは田中さんが一人で開発をしていたわけだから、そもそもバックエンドとフロントエンドで開発環境を分けること自体が初だったんですよね。
田中:そうですそうです。フロントエンドには、JavaScript経験のある土屋さんが参加することは分かっていたので、馴染みやすいようにVue.jsとNuxt.jsを選びました。
土屋:久しぶりに開発業務に復帰する僕的にも、この開発環境はすごく助かりましたね。というのも直前まで広告業務をやっていたわけですけど、広告業務でもjQueryやJavaScriptは触る機会があったので、Vue.jsとNuxt.jsは実際に入りやすかったですし、良いリハビリになりました。
田中:今でこそ開発環境はみんなで話し合って決めますけど、当時は何もかも走り出しだったので全て僕の方で決めました。意図通りになって良かった良かった(笑)
『REVolution』の開発スケジュールについて
五十嵐:当初の開発計画に対して、実際にどれくらいの期間が掛かったんでしたっけ?
土屋:計画段階では確か1年と長めにスケジュールが引かれていました。実際の開発スケジュールについても正直ギリギリだった感じですよね。
田中:ですね。特に今回の開発ではエンジニア泣かせのPG文化がもろに出ましたらからね。
五十嵐:というと?
田中:僕が一人で開発をしていた時代からそうなんですけど、PGは制度や文化がコロコロ変わるという風習があるんですよ。社内管理ツールなんかはその影響をもろに受けるので、仕様変更の回数も増えるわけです。その対応に苦しんだというのが、今回の開発でも共通していますね。
五十嵐:なるほど...(笑)作っている時はさほど気になりませんでしたけど、言われてみればそうですね。
田中:長期的な計画を組んでも破綻してしまうのが常なので、PGでの開発においては「その都度で考えるスタイル」の方が良かったりはします。ただ将来的にはエンジニアが働きやすい環境は、僕たちが率先して作る必要があるとは思っています。
土屋:そうですね。まあ確かに環境要因もありましたけど、僕も開発業務に復帰したばかりで色々足を引っ張ったとは思いますよ。スキル面についても、やはり勉強しながら業務に付いていたというのが実際のところですからね。
五十嵐:僕もちょうど中途で入ってきたタイミングで、会社に慣れていないこともありましたし、Rubyの開発環境も初挑戦でしたからね。そういう意味では、僕も足を引っ張ったと思います。
田中:まあ、もとより五十嵐くんの現場フィット、土屋さんの復帰リハビリ、お二人のスキル習得も兼ねた長期開発スケジュールだったので時間が掛かることは想定内でした。むしろ、こうやってちゃんとスキルアップしてくれていることの方が大事ですね。
土屋:確かに。今だったら、当初計画の半分で同じものが作れると思いますからね。
『REVolution』の開発における課題点・反省点
土屋:個人の課題点は勿論あると思うんですけど、チームとしての課題点も結構ありましたよね。例えば、コードの記述ルールなんかはかなり曖昧でしたよね。
田中:それはありますね。結果的にコードの可読性だとか、REST APIのルールに全然則っていないような部分も結構あったりして、なかなか面白い状況になっていましたね(笑)まあ、リファクタリングは後回しで、とりあえず完成が最優先ではありましたからね。
五十嵐:バックエンドに関しては、僕しか読めないような状況でしたね...(笑)
田中:メンバーを増やし、せっかくチーム開発が出来るようになったのに、実際にはチームプレイではなく、属人化が進んでしまったというのは大きな課題ではありますね。
五十嵐:完全に個人開発の沿線上になっていましたよね。自由が利きすぎたというか。
田中:ですね。まあ、それがキッカケでコードレビューの時間を設けたり、そもそもバックエンドの開発環境をPythonのFastAPIに変えて管理体制を作ったりして、反省点はしっかり改善に活かせていますからね。
土屋:あと成果物に対する反省点もありましたね。例えば、ツールは完成したものの「この機能、誰も使ってないよね」みたいな状況が結構起きていたこととか。
五十嵐:それはありますね。これについては「実際にツールの運用フローを加味したうえで開発しないとダメ」ということに、今回の開発を通して気付かされました。
例えば、開発者目線から言えば「このデータを入れると、こっちに紐づくから入力させよう」と思いつつ、ユーザーからは「入力項目が多すぎる」とむしろ不満の声が出てしまう。正直、これまでUI/UXの部分についてはあまり意識していなかったんですけど、今ではかなり意識するようになりましたね。
土屋:やはり視点が開発者よりになりますよね。ユーザー目線で設計すべきと分かってはいるものの、いざ「ユーザー目線になれ」と言われても、なかなか難しかったりしますよね。ただ難しいなりに、社内ヒアリングをもっと入念に行うとか、振り返れば出来ることは結構ありましたよね...。
五十嵐:ですね。社内管理ツールなんかを開発する際は、社内中を駆け回って各メンバーの意見を聞いてまわるべきですからね。ただ僕が入社したばかりで、その辺をおざなりにしたことも悪い方向に作用したと思っています...。
田中:本来であれば、そういった点もフォローしてあげるのがチームの役割なんですけどね。結果的に反省点の多い開発にはなりましたけど、今後のチーム改善には大きく活かせる経験もありましたし、学びとしては得られたものが多かったと思います。
開発を通して欲しいと思った人材について
土屋:REVの開発を通して「こんな人材が欲しい」というのはありましたか?
五十嵐:僕はやっぱり上流工程がしっかり出来る人ですね。全体のスケジュール管理やタスク管理をはじめ、全体設計が出来るみたいな。それこそPM経験があるとか、大きなエンジニアチームをディレクションしてきた経験のある人が来てくれるとありがたいなと思いましたね。
土屋:確かに現状でもしっかりとした管理体制があるわけではないですからね。人が増えたらより、必要性が出てくるような気がします。田中さんはどうですか?
田中:僕的にはめちゃくちゃ技術力があるか、めちゃくちゃ管理能力があるかのどちらかに特化している人が欲しいですね。そうすれば僕が開発、あるいは管理を片手間にやることも無くなり、どちらかに集中できるようになると思うので。
やはりどちらかに集中できた方がチームへの貢献度もより高まると思うんですよ。例えば、僕が開発側に完全集中できれば、それだけ各々の開発状況が詳細に分かるようになるので、技術的なアドバイスだったり、ノウハウ共有の時間をもっと設けられるたりすると思うんですよ。
土屋:それは僕らとしてもありがたいですね。ちなみに新卒の場合は、どんな人が良いですか?
田中:新卒の方については、もちろん即戦力となるような技術力も買いますけど、それ以上に何でも興味を持ってやりたがってくれる人が良いですね。特に具体的な意見や希望を言ってくれる人は良いですね。
というのも開発環境だったり、技術選定というのは特に決まりが無いわけで、チームで相談して決めるのがうちの特徴じゃないですか。そういったフレキシブルな環境を貪欲に利用して、自身のスキルアップに繋げてくれる人は理想的だと思います。
五十嵐:そうですね。常に学び続けることはエンジニアの本質ですし、開発チームだけでなく、PROJECT GROUPという会社自体に合うと思います。
土屋:僕もこれ以上、五十嵐くんの時のように新人の方に追い抜かれないようにしないと...。
田中:土屋さんは、PGのマスコットキャラ的な存在だし、ある意味では誰も追い抜けないと思いますけどね(笑)
土屋:なんか嬉しいような、嬉しくないような(笑)
開発事業部は採用強化中です!エントリーをお待ちしております!
社員紹介シリーズ