見出し画像

LEADPADの大きな機能を開発するときにどのように設計しているのか?

Rocketsは営業活動を支援するサービス「LEADPAD」を開発しています。
この記事ではLEADPADをどのように設計しているのかを、営業ワークフロー機能の設計を例に説明します。
この記事は営業ワークフローの設計、開発、運用からの学びが多く、共有したいと思ったので書きました。

営業ワークフロー機能とはなにか?

LEADPADには営業ワークフローという機能があります。
営業ワークフローは見込み顧客に対するアプローチを自動化する仕組みです。

営業ワークフローを使うことによって、電話やメールなどのタスク管理やメール配信などを自動化することができます。

開発当初、企業にアプローチする機能は存在したのですが、顧客とのコミュニケーションのなかで、見込み顧客へのアプローチの必要性を感じたので、その手段として、営業ワークフローの開発を開始しました。

Rocketsでは大きな機能を作る場合、どのように開発しているのか?

Rocketsでは概要を決定したあとにUIを作成します。
UIはデザイナーがFigmaに作成します。

Figmaにおける営業ワークフローのデザイン

設計は概要とUIをもとに行います。
大きな機能を作る場合はモデルと処理とTodoリストを同時に設計するようにしています。
設計資料はGitHub Issuesに書いています。

GitHubにおける設計資料

RocketsではサーバサイドにRailsを利用しています。
保守性の高いシステムを作るためには、Railsでの開発では特に、モデルの設計が重要です。
モデルが複雑な場合はmiroを使って可視化しています。

miroにおけるモデルの設計

モデルと処理は少しずつ作成し、日次や週次のミーティングでチームからフィードバックをもらって改善しています。
モデルと処理とTodoリストが決まったら、Todoごとに実装していきます。
作っていく中で設計が間違っていたら都度見直しを行います。
実装はプルリクエストがなるべく小さくなるようにしています。
フロントエンドとサーバーサイドの実装を分ける場合もあります。

保守性の高いシステムを開発するために

現実の営業活動は様々なタイミングで様々なアプローチを行うので複雑です。
現実の営業活動の複雑さがあるので、どうしてもソフトウェアも複雑になりがちです。
しかし、私達はシステムの保守性を高く保つためにできるだけ単純にしたいと考えています。
システムを単純にするために、できるだけ設計を丁寧に行い、議論をして、日々改善を加えています。

さいごに

営業ワークフローのリリースもあり、お陰様でLEADPADは成長フェーズに入っています。
RocketsではLEADPADを一緒に開発してくれる仲間を探しています。
この記事を読んでLEADPADの開発に興味を持っていただいた方や保守性の高いシステムの開発に興味のある方、設計のスキルを向上させたいと考えている方は、ぜひ一度カジュアルにお話できればと思います。

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