Upgrade to Pro — share decks privately, control downloads, hide ads and more …

短納期でも進化をあきらめなかった新規プロダクト開発/20230208_matsuura_kawakami

 短納期でも進化をあきらめなかった新規プロダクト開発/20230208_matsuura_kawakami

2022年12月現在、約25,000社の方に申込頂いている『楽楽電子保存』サービスですが、初期開発に与えられた猶予は弊社のプロダクト開発史の中で最短となる「半年」という、非常にタイトなスケジュールの中で完遂させる必要がありました。

・短期間でサービスインまで導いたマネジメント
・中長期的なサービス運用を見据えたゼロベースでのアーキテクチャー選定
を中心に、初期開発で特に力を入れた取り組みと今後の展望をご紹介させていただきます。

Rakus_Dev

March 08, 2023
Tweet

More Decks by Rakus_Dev

Other Decks in Technology

Transcript

  1. © 2023 Rakus Co.,Ltd
    短納期でも進化をあきらめか
    った新規プロダクト開発
    楽楽明細開発 松浦 孝治
    川上 正博

    View full-size slide

  2. #RAKUSTechCon
    松浦 孝治
    (Product Manager)
    プロダクトマネージャを担当。
    楽楽明細、楽楽電子保存のプロダクトに
    上流からかかわり、製品企画とエンジニ
    アの橋渡しをしている。
    仕事のテーマは
    ・価値を早く提供する
    ・少し先の未来を見る
    ・前に進める
    SIer数社を経験し、SES、請負開発、自
    社サービス開発に携わる。
    2020年ラクスへ入社。
    『楽楽明細』の開発を中心に、フルスタッ
    クエンジニアとしてフロントエンド、バック
    エンドともに担当。
    川上 正博
    (Lead Engineer)

    View full-size slide

  3. #RAKUSTechCon
    サービス紹介(楽楽明細)

    View full-size slide

  4. #RAKUSTechCon
    サービス紹介(楽楽電子保存)

    View full-size slide

  5. #RAKUSTechCon
    楽楽電子保存システム開発スケジュール
    2021年 2022年
    6月 7月 8月 9月 10月 11月 12月 1月
    工程
    イベン

    要件定義 概要設計/基盤作成 詳細設計~単体テスト リリース
    結合テスト
    申込運用検討
    インフラ設計
    ★要望提示
    ★実現方式確定
    ★サイジング
    ★開発外作業リスト作成
    ★全体疎通試験
    ★リリースリハ
    ★リリース
    電子帳簿保存法改正に伴って、半年後には楽楽明細で発行した電子
    請求書を電子データのまま保存する必要があり・・・。
    当時の様子

    View full-size slide

  6. #RAKUSTechCon
    楽楽電子保存開発で達成したかったこと
    ●顧客に納期必達で価値を届けること。
    -電子帳簿保存法改正されるタイミングまでにはリリースさせる。
    テスト期間を削って品質を落とすこともNG。
    ●初期リリース後の開発力維持。
    -リリース後に運用負担を強いることで、エンハンスの開発力を落としたくなかった。
    何も考えずに、明細踏襲はNG。

    View full-size slide

  7. #RAKUSTechCon
    要件定義の早期決着
    開発主導で、要件定義を先導!
    ●機能を極限までに絞る。
    ・議論する人を少人数に絞る。(意見を発散させない。)
    ・コアなゴールを決める。(目的をぶらさない。)
    ●実現方式も並行して、検討する。
    ・サーバ構成、インフラと大方針を合わせておく。
    ・ユーザの利用イメージ、実現方式を即時検討。
    機能要望提示から半月でシステムのスコープ・方針が決定!

    View full-size slide

  8. #RAKUSTechCon
    得意分野を生かした体制づくり
    開発
    製品企画
    (PMM)
    CS
    インフラ
    情シス
    事業管理
    Tech Lead
    Team
    AP基盤
    業務開発
    PDM:上流メイン。PMMと密に(WHATに責任)
    PM:全ステークホルダの進捗管理
    開発に集中できる環境作り。
    PdM
    PM

    View full-size slide

  9. #RAKUSTechCon
    楽楽電子保存の開発
    必要な事
    ●電帳法対応
    ・法施行前にサービス開始している必要がある
    ・なので、開発期間は約半年
    ●独立した新規サービスとして
    ・最初は楽楽明細の周辺システム的な位置づけ
    ・楽楽明細の一部ではない(そのうち拡張する)

    View full-size slide

  10. #RAKUSTechCon
    色々な都合で
    楽楽明細チームが開発担当する
    楽楽電子保存の開発
    新規サービスとしての開発
    楽楽明細開発チーム

    View full-size slide

  11. #RAKUSTechCon
    同じアーキテクチャでは辛そう
    新規サービスとしての開発
    楽楽電子保存の開発

    View full-size slide

  12. #RAKUSTechCon
    同じアーキテクチャでは辛そう
    なぜ?
    ・ベースが古いから
    ・生産性
    ・運用やメンテナンスコスト
    ・ユーザビリティ
    新規サービスとしての開発
    楽楽電子保存の開発

    View full-size slide

  13. #RAKUSTechCon
    楽楽明細開発チームが持っているスキルをベースに、
    新規サービスとして、アーキテクチャ含め1から検討する
    楽楽電子保存の開発
    新規サービスとしての開発

    View full-size slide

  14. #RAKUSTechCon
    楽楽明細もベースが古いとはいえ、部分的に「進化」している
    →局所的に積極的なリファクタリングや新技術導入
    ・古いから
    ・生産性
    ・運用コスト
    ・ユーザビリティ
    楽楽電子保存の開発
    やってきたことを活かす
    New
    New
    New

    View full-size slide

  15. #RAKUSTechCon
    とはいえ、楽楽明細も部分的に「進化」している
    →局所的に積極的なリファクタリングや新技術導入
    →電子保存に取り入れていく
    楽楽電子保存の開発
    やってきたことを活かす
    New
    New
    New
    イマイチだから
    取り入れるか検討

    View full-size slide

  16. #RAKUSTechCon
    試してみたけどイマイチだったりするものもある
    →ダメな点、懸念点、改善点が明らかにされている
    →他を選択するorより良くして取り入れる
    楽楽電子保存の開発
    やってきたことを活かす
    New
    New
    New
    イマイチだから
    取り入れるか検討

    View full-size slide

  17. #RAKUSTechCon
    ❏ こういった「部分的な進化」はどうやって生まれるか?
    楽楽電子保存の開発
    やってきたことを活かす
    New
    New
    New

    View full-size slide

  18. #RAKUSTechCon
    ❏ こういった「部分的な進化」はどうやって生まれるか?
    →多くはエンジニアから運用・開発時に挙がった改善案
    ● 新機能開発時に試してみたい
    ● 運用コスト削減のために取り組んでみた
    細かいものは個々のエンジニアで実施できるが、
    そうもいかないものもある
    1人じゃ終わらないボリューム、既存の動作に影響があるetc…
    →ビジネスサイドとも合意をとって取り組む
    →開発の戦略として組み込んでいく
    楽楽電子保存の開発
    やってきたことを活かす

    View full-size slide

  19. #RAKUSTechCon
    ❏ こういった「部分的な進化」はどうやって生まれるか?
    楽楽明細での日常的な開発・運用作業で
    細かい進化をしていたから、楽楽電子保存に活かせた
    →短納期でもある程度の進化が出来た
    ● 良くできる部分がないか?と日頃から考えて行動した結果。
    ● 地道な調査・検証が必要になる事も多い。
    失敗したりも当然ある・・。それはそれで次に繋がるので何もしないよりは良し
    ● 派手ではないこういった作業が、進化に繋がっている
    楽楽電子保存の開発
    やってきたことを活かす

    View full-size slide

  20. #RAKUSTechCon
    楽楽電子保存の開発
    やってきたことを活かす
    ● DDDの導入
    ● JavaScript -> TypeScript
    ● React(関数コンポーネント + Hooks全面採用)
    ● pool型のテナント管理
    etc...

    View full-size slide

  21. #RAKUSTechCon
    楽楽電子保存の開発
    やってきたことを活かす
    ● DDDの導入 -> オニオンアーキテクチャ的に

    View full-size slide

  22. #RAKUSTechCon
    楽楽電子保存の開発
    やってきたことを活かす
    フロントエンド
    ● JavaScript -> TypeScript
    ○ 生JavaScript + JQuery部分も含めてTypeScript化していた
    ○ 昨年のRAKUS Tech Conference
    ● React(関数コンポーネント + Hooks全面採用)
    ○ FEチームが新規発足で若手ばかりだった
    (リーダ以外新卒1~2年目)
    ■ 一新することのハードルが低かった

    View full-size slide

  23. #RAKUSTechCon
    楽楽電子保存の開発
    やってきたことを活かす
    ● Pool型のテナント管理
    ○ 参考:Saas Storage Storategies
    ○ JJUG 2022 Springの資料
    ● 一つのスキーマを複数テナントで共有
    ○ テナントデータへのアクセスは
    Row Level Securityで制御する

    View full-size slide

  24. #RAKUSTechCon
    リリース1年経過して・・・課題と今後の展望
    ● ありがちな「後でやろう」問題
    ○ 納期が短いため後回しにした改善等が出来ていない
    ● 法対応が大前提だったので、メトリクスの管理ができていない
    ○ 需要予測と利用実態の差異とか
    ● ベースとなった楽楽明細側の刷新
    ○ 電子保存で新たに取り入れたものを逆輸入する

    View full-size slide

  25. #RAKUSTechCon
    ● 良いと思ったことをチームで取り入れる文化を大切に。
    ○ 新しいだけではない、メリットにつなげる。
    ■ エンジニアのアイデアを吸い上げて戦略化していく。
    ■ 課題見える化の仕組みを推進する。
    ○ 常に理想を追い求める。
    ■ システム特性に合わせた、0ベースでの設計を推進する。
    ■ サービス運用中に、定期的に課題の抽出を継続していく。
    まとめ

    View full-size slide

  26. #RAKUSTechCon
    ご清聴ありがとうございました。

    View full-size slide