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