見出し画像

バックエンドエンジニアが語るScalebase開発の魅力

こんにちは。アルプnote編集部です。
本日は、アルプのエンジニアとして主にバックエンドを担当している久代さんに、Scalebaseの開発についてお話を聞きました。

ーーー自己紹介をお願いします
アルプでエンジニアをしています久代と申します。

画像1

ーーー簡単に経歴を教えてください
アルプには2021年6月に入社しました。

アルプはScalaMatsuriの開発担当取締役の竹尾さんのモジュラモノリスの発表で知りました。当時モジュラモノリスというのは初めて知った単語でした。DDDを勉強すると、コンテキストを境界づけるというのは必ず立ち向かう問題です。これを実際にモジュラモノリスという形でシステムに落とし込むことにチャレンジしているのが興味深く、面白いことをやっている会社だなと思いました。その後スカウトいただき、入社することになりました。

前職は労務系SaaSの開発をしていました。勤怠管理やワークフローなどの複雑な労務をソフトウェアに落とし込むために設計が重要でした。アルプの開発でも複雑な仕様と向き合うことが多く、設計が重要となるのでそこは共通点があると思います。

ーーーアルプの現在の開発体制を教えてください
2021年9月時点では、社員27名、エンジニアが15名います。その中で主にバックエンドを担当しているのは8名になります。バックエンドの中でも設計を担当しているメンバーはモデラーと呼ばれていて、仕様書からどのようにソフトウェアに落とし込むかを設計しています。

ーーー普段はどのように開発を進めていますか?
以下のようなフローで機能開発を進めています。

画像2

PRD作成

Scalebaseのロードマップとして実現すべき機能、ビジネス職メンバー(以下 Biz)がお客様とのコミュニケーションであがった要望などを元にPRD(Product Requirements Document、製品要求仕様書)に落とし込みます。

PRDは、なぜその機能が必要か、誰のどのような問題を解決するのか、機能要件などが書かれています。PRDの作成後に機能開発に関わるメンバー全員が集まるフィーチャーグルーミングという場があります。
Biz、エンジニアが集まってPRDの読み合わせをすることで、お客様の要望や開発する上での不明点をクリアにし、認識のズレが少なくなるようにしています。

ユースケースシナリオの作成

PRDの読み合わせ後はエンジニアがユースケースを作成します。仕様について悩む部分があれば適宜Bizとコミュニケーションを取って要件をクリアにしていきます。

テストについて

ユースケースを元にエンジニアが実装前に※デシジョンテーブルを作成します。実装後にQA環境に対してデシジョンテーブルのテストケースのチェックを行っています。(※入力データや入力条件の組み合わせに対する出力や結果を表にまとめたもの。)

テストに関しては他にもUnitテストやPostmanを使ったE2Eテストなどを行っています。その中でもUnitテストを特に重視していて、大半のケースはUnitテストで拾えることが理想だと考えています。現状の課題としては、場所によって正常系しか書かれていないところもあるので、バグの発生を抑えるような質の高いUnitテストを拡充していくことを意識しています。

割れ窓を起票して負債を解消していく

また、機能開発以外には割れ窓タスクがあります。割れ窓タスクは具体的には、ここにバリデーションを追加したいというような内部品質を高めるものだったり、軽微な不具合などの修正です。

週に1度、リリースプランニングというものがあり、来週のリリースの確認やリリース担当を決めています。その中で今週あがった割れ窓タスクについても要件が整理されます。整理された割れ窓タスクについては、主にパートナー(業務委託)の方に対応してもらっています。優先度が高い場合は社員が対応したり、月に1度改善デーというものがあり全エンジニアが機能開発の手を止めて割れ窓タスクに着手する日があります。

画像3

ーーーアルプならではの面白さについて教えてください
開発面としては、設計の議論が活発なのが特徴だと思います。機能を作っていく中でも、周りのエンジニアと密にコミュニケーションを取るので、設計の相談なども気軽にしやすいです。設計について対外での発表をしているくらい経験を積んでいる方が多く、理想形を語りつつ落とし所をうまく探れていると感じています。
また、著名なアドバイザーの方に相談できる機会が定期的にあります。我々が足りていない視点や本質的に大事なことを教えていただけるので、恵まれた環境で開発ができていると感じています。

Scalebaseのお客様には、これまでの自分の人生で当事者として向き合ってきた課題を解決しようとしている会社さんもいます。そういった自分の人生の中で重要視していた事業を支えているということがワクワクしますし、やりがいを感じています。

ーーー今感じている課題があれば教えてください
「Scalebaseというプロダクトの難しさ」ですね。特に直近は更なる機能拡充に向けて、これまで培ってきたドメインモデルのアップデートのようなものが求められています。
具体的には、これまでは表面的に「クラスが大きくなってきているから分けたいね」という議論をしていたのに対し、最近は「クラスの表現している概念の捉え方から変えていきたいよね」と言ったように、より概念の本質に踏み込んだ議論が増えてきています。
開発担当取締役の竹尾さんが投げかけている言葉に「難しいと心中したいです!」という話があるのですが、そのくらいの気持ちで課題感と立ち向かっていきたいなと考えています。

ーーーアルプのメンバーとして働くために大事なことは何ですか?
アルプにおいて一番大事なのはラストマンシップだと思っています。技術以外のところも含めて向き合っていけるかどうか、例えば機能開発で言えばその機能をゼロからQAまで責任持ってお客様に届けるために必要なことはなんでもやっていくというところが重要です。

例えば仕様で曖昧なところがあればBizのメンバーにコミュニケーションを取ったり、知識不足があればインプットをしたりなど、足りないところを積極的に補っていくような動きができる方であれば活躍できる職場だと思います。

また、お客様のことを考えて本当に価値があるものを提供しようという気持ちを持って開発することが大事だと思っています。

ーーー終わりに
アルプではエンジニアを積極的に募集しています。今回の記事を見てご興味を持ちましたら、是非以下からご応募をお願いします!


この記事が気に入ったらサポートをしてみませんか?