関数型言語で法律をプロダクト化?!CTO黒川が語る、AGE technologies 開発チームの姿
こんにちは、AGE technologiesの採用広報担当です。
現在弊社では相続で発生した自宅や土地などの不動産の名義変更手続きサービス『そうぞくドットコム不動産』、相続で発生した銀行口座の払戻しサービス『そうぞくドットコム預貯金』をメインで提供しています。
それらサービス開発の要となるのが、開発チームのメンバーです。
今回はCTO黒川にインタビューを行い、開発チームの実態、魅力について語ってもらいました!
ー 開発チームとして大切にしているミッションはなんですか?
最高のシステム基盤とUXを提供することです。この2つの観点で、Development事業部は企業の成長にクリティカルなミッションを負っています。
当社はtoC向けの相続手続きサービスをきっかけに、エンタープライズ向けのシステム提供と、相続した財産の活用を目指しています。その世界を実現するには、まず手続き体験が最高でなくてはいけません。
Development事業部は、複雑な現実世界を適切に抽象化し、フィードバックを迅速に取り込むことができるシステムを構築するために、最高のシステム基盤とUXを提供するというミッションを自分たちに課しています。
ー どのようなチーム/メンバー構成で運営していますか?
2022年11月1日時点で、6名の正社員と7名の業務委託で構成されています。
デザイナー、ディレクター、エンジニアという各職種は正社員に1名ずつ所属しており、業務委託では副業やフリーランスのエンジニアの皆さんに協力いただいています。
ー それぞれのチームメンバーの役割を教えて下さい。
下記の役割分担で課題を解決しています。
- CTO: システム開発における最終責任、アーキテクチャ改善、設計指針の決定
- ディレクター: Development事業部が関わるすべてのPJの要件整理やスケジュール管理、リリース可否判断
- デザイナー: 社内のすべてのデザイン資産の管理、改善
- エンジニア: 社内のすべてのシステム資産の管理、改善
ー 開発はどのようなプロセスで進めていますか?
複数事業部が関わる課題や、解決までに時間がかかる課題はPJ化しています。そうでないタスクは、単にタスクとして日々消化しています。
PJはbacklogというツールでチケットの集合として管理しています。要件が未確定なうちは正社員のディレクター・エンジニア・デザイナーが集まって分析を進めます。必要に応じて法律家の先生や社内のオペレーターなど、ドメイン知識を持っている同僚にヒアリングも行います。
要件が固まり機能一覧を書き出せたら、デザインと開発を開始します。複数人のエンジニアが関わる場合は、副業の方も交えながら1~4週間のスプリントを回し、開発体験を最適化していきます。
QAは、まだ専任のチームメンバーがいないため全員で確認し合っています。また他事業部の同僚を招いてリリース前確認を行ったりなど、様々な視点で品質改善の機会を作っています。
ー 最近着手した開発プロジェクトを教えてください。
これまで社内に限定して提供していた手続き管理システムをリファクタし、既存のエンタープライズ事業者のみなさまに活用いただけるようなSaaSとして提供する準備を進めています。
このプロジェクトは、事業成長のためにクリティカルに重要ですが、開発チームにとってはそれ以上の意味を持ちます。業務知識の式年遷宮です。
そうぞくドットコムは、サービスインしてから2年半以上が経ちました。その過程で私たちは、様々な新しいドメイン知識を獲得してきました。それらはお客様のご要望であったり、手続きに協力いただく役所様のご要望であったりと様々ですが、どれも自社でサービスを運営しているからこそ得られる、貴重な一次情報です。
しかし私たちがせっかく獲得したドメイン知識が、まだ現在のシステムには取り込み切れていません。なぜなら既存システムのアーキテクチャは、開発速度を最優先したものだったからです。
そこで現在開発しているSaaSプロダクトでは、私たちがサービス運営者として貯めてきた知見をすべて詰め込んだ、より現実世界にマッチしたシステムを開発しています。
ー どのような言語を使用していますか?
私たちのシステムでは、Clojure(クロージャー)というAltJava兼AltJSを利用しています。Clojureは日本ではマイナーな言語ですが、USスタートアップやJavaベースのシステム資産を持つ大企業では、すでに数多く本番運用されている言語です。
このプログラミング言語に触れる経験は、チームメンバーのキャリアにいくつかの点で影響を与えてくれます。
- 他のモダンな言語やライブラリが追い求めている、冪等で状態の少ない開発体験について、深い洞察が得られる
- 巨大なフレームワークに乗るのではなく、小さなライブラリを組み合わせて最適なアーキテクチャを検討する経験
- GitHubのソースコードや英語のドキュメントを読み解く経験
ー なぜその言語を使用しているのですか?
私たちが取り組む、データの形式が複雑でバリエーションに富む事業領域にマッチしているからです。
Clojureは、実践的な関数型プログラミング言語です。Haskellほど数学的ではなく、現実世界に「状態」や「副作用」があることは認めています。かつ、その取り扱いを通常の処理から分離することでほとんどの処理から状態と副作用を分離しています。
Clojureが提供してくれる関数ベースの開発体験は、複雑なデータの変換を簡単にしてくれる点で私たちの事業領域にマッチしています。
ー 今後、それらの技術選定が変わることはありえますか?
民法上の権利や不動産登記に関するコアロジックはClojureで開発・メンテナンスされており、上記の理由からリライトの予定はありません。
一方でどんな事業領域にも存在するロジック(認可、顧客管理、イベント処理など)は好きな言語で書けば良かろうと考えています。実際、今活躍してくれているチームメンバーがもともと利用していたプログラミング言語はPHPであったりPythonであったりと様々です。その時々で適切な議論をしていければと思っています。
ー 現在の開発チームとしての課題を教えて下さい。
直接的には、プロダクトラインナップ拡充のためにビジネスが求める開発スピードが不足していることが課題だと考えています。ただしこの課題の本質は、単にコードを書く速度や人員がチームに不足しているというだけではありません。今日ジョインしたチームメンバーが、他のチームメンバーと同じようにドメインに対して深い理解を持ち、同じ言葉で会話できる仕組みが不足していると考えています。
ー どのように課題を解決していく予定ですか?
現在、ドメインに対する共通言語を構築する試みを、ディレクションと開発、双方が歩み寄って進めています。ディレクションの観点からは用語辞典や仕様の明確なチケットの提供を、開発の観点からは、コードベースで実際に使われている変数名や関数名から辞書を生成できないか試行錯誤しています。
これはデザインでも試みています。当社も王道に従って、Figmaとコードベースで同じ命名のデザインシステムを実装しています。
私たちは上記の取り組みを通して、これまで以上に早く拡大できるチームを構築していきます。
ー 今後の長期的な開発チームのミッションを決まっている範囲で教えて下さい。
私はクリエイティブに対する全社の水準を上げる、そして高く保つことが、Development事業部の北極星だと考えています。クリエイティブには当然、システム、デザイン、プロジェクトマネジメントのすべてが含まれます。
目指す状態であり続けられるかを調べるリトマス試験紙が、日々のPJです。
ー CTOとして、どのような開発チームを目指していく予定ですか?
私の人生の目標は、ラブリーなチームを作ることです。だから私が作るDevelopment事業部は、ラブリーであってほしいと考えています。
目指すところは「HRTな組織」や「心理的安全性の下がらないチーム」という言葉に近いのですが、その実現手法として日々のささやかな感謝の積み重ねを大切にすることを、より重視していきたいと考えています。
ー 開発チームで働く魅力を教えて下さい。
現在の組織規模は、サービス全体を見渡すことができる最後の時期でしょう。課題の特定から解決策の選定、運用改善に至るまで、重要な意思決定に関わる機会を獲得できます。かつ、開発チームではカジュアルなコミュニケーションが自然に実践されています。職種が異なっても孤独な思いはさせない、というポリシーで過ごしているので、安心して活躍いただくことができます。
業務PCや作業環境等の福利厚生に関しては、正直に申し上げて未成熟な部分はあります。しかし特に機種を指定せず、予算内で好きな製品を貸与できる点は、今ならではの特色かもしれません。
また、現在Development事業部には年齢、性別、ライフステージ、居住地などがバラバラのチームメンバーが揃っています。互いの専門性や個性に自然に敬意を払えるチームで働くことができる点も、今のDevelopment事業部の魅力だと考えています。
ー どのような方がマッチしそうですか?
真顔であなたの目を見て「ラブリーなチームを作りたいんです」と言ってくる坊主頭のCTOを面白がってくれる方なら、きっと楽しく働けると思います。
ー 応募者になにか一言ください!
私たちと一緒に、日本の歴史の一部になりましょう。
戸籍制度も不動産登記制度も、明治維新以来、日本中の賢い人たちがメンテナンスしてきてくれた歴史ある制度です。率直に言って、歴史の分だけ歪さもあります。しかしそれは、未来を生きる私たちが解決すべき課題です。
過去に敬意を払いつつも、テクノロジーを活用した最適解を探す営みは、とても楽しいものです。あなたの隣で働ける日を、楽しみに待っています。