- TypeScript+React+Protocol buffer+Storybookを用いたScalebaseのダッシュボード画面の新機能開発及び新UIの開発
- 顧客要望をユースケースに落とし込む等の要件定義
業務の特徴
①フロー効率を重視した、役割を横断した開発
顧客への素早い価値提供を目指す上で、リソース効率よりもフロー効率を重視した方がいい局面がきた場合、バックエンド・フロントエンド関係なく役割を横断した開発を行っています。
例えば、バックエンドのエンジニアがフロントエンドの開発を行うこともあります。
② 堅牢でユーザビリティの高いシステム開発
サブスクリプションビジネスを取り扱うシステムでは、堅牢性はもちろんのこと、ユーザビリティを考慮したレスポンス速度や、システムをダウンタイムなく、安定的に運用することが求められます。
③複雑な概念を集約した契約管理ダッシュボード
サブスクリプションビジネスの契約を管理するにあたり、製品カタログや顧客、契約といった様々な概念が存在し、かつそれらが複雑にリレーションを構築します。
これらの構造を理解したうえで、顧客やセールス、デザイナーやフロントエンドエンジニアとコミュニケーションを取りながら、適切にドメインモデリングを行い、ダッシュボードの表現にあわせたAPIの設計・実装をしていきます。
④多数の外部サービスとの接続
Salesforceをはじめとする多数のSaaSや、請求書発行サービス、決済代行サービス、その他サービスとのAPI連携行います。
それぞれ認証方法や情報の構造、制約が異なるなかで、スピーディーに接続していくために、柔軟なクライアントAPIの設計が必要になります。
⑤DDD(Domain Driven Design)を用いたプロダクト開発
上述したように、非常に多くの概念を扱い、それらの振る舞いが存在するサービスになるため、弊社では創業以来DDDを採用した開発を実施していきます。
ユビキタス言語を用いることで、セールスとのコミュニケーションを円滑に進めることも一つの目的です。
開発環境
- バックエンド: Scala, Akka
- フロントエンド: TypeScript, React (with Hooks)
- Salesforce管理パッケージ: Lightning Web Component, Apex, Salesforce DX
- インフラ: Kubernetes, AWS
- データ分析: Apache Spark (Amazon EMR), BigQuery, Looker
開発手法
- スクラム開発
- プランニングポーカーでのストーリーポイント、ファンクションポイント法を使った見積
- DDD(Domain Driven Design)の実践
- モブプログラミング
- ペアワイズ法、デシジョンテーブルを使ったテスト
利用技術
- CSS
- HTML
- JavaScript
- React.js
- TypeScript