新サービス開発でフロントエンドとバックエンドの開発組織をわけた理由
2000年に設立されて以来、中小企業を強くするというミッションのもと、「楽楽精算」「メールディーラー」など、バックオフィス業務やフロントオフィス業務を支援するさまざまなクラウドサービスを開発、提供しているラクス。そんな同社が今年10月にリリースしたのが、クラウド型勤怠管理サービス「楽楽勤怠」である。その名の通り、出退勤や残業、有給休暇の取得などの勤怠情報を一元管理し、給与計算に必要なデータをワンクリックで出力するなど、中小企業の勤怠管理の効率化を実現するクラウドサービスだ。
ラクスが以前から提供しているクラウドサービスでは、サーバーサイドのエンジニアがHTML、CSSなどのフロントエンド部分の開発も担当してきたという。だが、フロントエンド部分の技術の進化スピードが速く、キャッチアップしきれないことに加え、サーバーサイドのエンジニアではデザイナーが望むデザインをそのままサービスに落とし込むことが難しいといった課題が大きくなってきた。そこでこれらの課題を解決するため、楽楽勤怠を開発するにあたり、ラクスではフロントエンドとバックエンドをシステム的にも組織的にも完全にわけて開発する体制を採用することにチャレンジしている。
この新しい開発体制に合わせ、同社初のフロントエンドエンジニアとして、今年1月に入社したのが、北嶋初音氏だ。北嶋氏は新卒でWeb系ITベンチャーに入社。そこでWebエンジニアとしてフロントエンドとバックエンド双方を経験。「現在は楽楽勤怠のフロントエンドの開発に従事するだけではなく、フロントエンド組織のベース作りを担当しています」(北嶋氏)
楽楽勤怠は2019年12月に開発が始まり、今年10月にリリースされた。リリースに至るまでの開発フローについて北嶋氏は次のように説明する。「まずプロダクトマネジャーが要件仕様書を作成します。それに基づいてUIデザイナーがデザインを、バックエンドエンジニアがAPI仕様書を作成。それらができると、フロントエンドエンジニアは要件仕様書、デザイン、API仕様書を見て画面を実装し、バックエンドエンジニアはAPIを実装する。フロントエンドエンジニアとバックエンドエンジニアが並行して開発するフローになっています」(北嶋氏)
フロントエンドとバックエンドを完全にわけて開発するため、採用している技術もそれぞれ異なる。「バックエンドはSpring Framework、フロントエンドはVue.jsというフレームワークを採用しています」
教えてくれたのは、北嶋氏同様今年1月にラクスに入社し、現在バックエンド開発チームでバックエンドの開発とCI周りを担当している山口裕也氏である。前職のSIerではバックエンドの開発とインフラ部分を担当していたという。
疎結合で開発するメリット、苦労したポイント
このように疎結合で開発するとソフトウェアの設計や技術選定などにおいて、自由度が高まるというメリットがある。得られるメリットはそれだけではない。
「フロントエンドを担当するエンジニアはデザインの再現や画面の表示・動作に注力できます。一方のバックエンドを担当するエンジニアはWeb APIの設計に専念できます。フロントエンドとバックエンドの開発を並行して行えることで、開発スピードが上がったことも良かった点です」と北嶋氏はその効果を語る。
その一方で、フロントエンドエンジニアが要件仕様書、デザイン、API仕様書のすべてをチェックする必要があり、変更に気づけないときがあることや、デザインだけでは細かい挙動は読み取れないこと、実装者以外に動作の正当性がわからないことなど、体制をわけたことによるデメリットを感じた面もあったという。
そのほかにも、コミュニケーションの量と質が鍵を握る体制のため、リモートでは勝手が違って最初は大変だったという。「一番大変だったのは、自宅勤務に切り替わったタイミングでスマートフォン対応の開発が始まったこと。初めは対面でやり取りできないことで苦労しました」と明かす。
開発が早く進められるよう、北嶋氏はすでにPC版で実装していたコンポーネントを再利用する設計を心がけるとともに、実装の方向性を間違えないように、密にコミュニケーションを取ることを意識した。
「チャットだけに頼らずZoomで気軽に会話できるような取り組みもしました。私たちフロントエンドエンジニアの役割はデザイナーが求めるUIを、できるだけそのまま画面の実装に落とし込むこと。本当にこの動きで使い勝手が良いのか、ちゃんと仕様に合っているかなどを常に考えながら実装するので、どうしてもデザイナーとのやり取りは多くなります。デザイナーの話していることがより理解できるよう、もっとデザインの勉強をしていきたいと考えています」(北嶋氏)
一方、山口氏が苦労したのは、楽楽勤怠を開発するために必要となるドメイン知識の習得だったという。「勤怠管理は法律が絡んできます。それを理解しながら、機能に落とし込むのが難しかったですね」(山口氏)。
例えばビジネスサイドから「こんな機能をつけてほしい」と要望があった際に、その機能を法律に沿うように実現するにはどうしたらよいかを開発側で判断することも必要になる。特に、その役割を担うのがバックエンドエンジニアだからだ。
組織を拡大し、フロントエンドエンジニアの専任組織を整備
クラウドサービスはリリースして終わりではない。機能拡張はもちろん、より使い勝手が上がるようサービスの改善が行われるなど、これからがサービス成長の本番だ。
「今後構想している機能を開発するには、今の人数では足りません。その拡充を図ると共に、パフォーマンスチェックなどテスト周りは人的作業に頼っている部分があるので、そこを自動化するなど改善していきたいと思います」と山口氏。
一方の北嶋氏は「リリース後、フロントエンドチームで振り返りをしたら、改良したい点がいくつか見つかりました。新規機能の開発をスピーディーに行い、その問題点の解決に取り組みたいと思います」と語る。
また、北嶋氏はサービス開発だけではなく、社内初のフロントエンドエンジニアとして、組織拡大にも取り組んでいる。「採用の強化をしていきたいと思っています。当社にフロントエンジニアの組織があることを業界に認知してもらうため、勉強会を開催して登壇しました。技術ブログ「RAKUS Developers Blog」への投稿も考えています」(北嶋氏)
それと同時に、開発しやすい環境を整備していくことにもチャレンジしている。「プロダクトマネージャーやデザイナーの要望に柔軟に応えられる開発環境を作っていきたいですね。今までの設計だと、仕様やデザインの変更は、実装に大きな影響を与えるので先送りすることもあったのですが、これからはVueのコンポーネントをうまく使って、実装に影響が少ない設計にしていきたい。そして、人が増え、開発環境が整備されれば、他サービスのフロントエンドの改善にも着手したいですね」(北嶋氏)
ラクスで新サービスの開発に携わる面白さについて「無の状態から考えられて、話し合って決めていけるのが一番の醍醐味。疑問に思ったことはすぐに相談し、あるべき姿を考えることができています」と山口氏。一方、北嶋氏は「リリースしたとはいえ、楽楽勤怠はこれからのサービス。まだまだ改善のタスクもあれば新機能の開発もある。フロントエンドの組織も作らないといけない。やることは盛りだくさん。サービスを開発したい人はもちろんですが、今なら組織作りにチャレンジしたい人も楽しめる環境だと思います」と語る。
クラウドサービスの開発体制や使用技術に興味がある人、新サービスの開発に従事したい人、フロントエンド、バックエンドの開発に専念して力をつけていきたい人は、一度ラクスにアクセスしてみてはいかがだろう。