Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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