🔲

新規システムのプロジェクトが一段落したので内容と反省点を書いてみる

に公開

TL;DR

新規プロジェクトに業務委託として参加して、開発・リリース・追加開発をしたので反省点などを書いていく。

開発するシステムの目的

バックオフィスの作業負荷軽減のため社内システムを構築して作業が円滑に進むようにしたい。

すでに作業負荷がパンクに近くなっており、このまま行くと完全にパンクが見えているため、2025年3月末リリースを死守して開発してほしいとのこと。

背景について同僚が詳しく書いた記事があるので、興味があれば下記を参照して下さい。
https://zenn.dev/levtech/articles/5fb5373fccec47

開発期間など

  • 2024年12月: 開発スタート
    • ※本来は2024年の6月くらいから開発する予定だったが、なぜかあと4ヶ月しかない状態でスタートとなった(^q^)
  • 2025年03月末: リリース
  • 2025年06月現在: 追加の機能開発や保守運用中

技術

  • Node.js v22
  • pnpm
  • TypeScript
  • Next.js 15.2.4
  • Hono 4.7.5
  • TiDB
  • NewRelic
  • Amazon ECS
  • TailAdmin(TailWindベースのサイト)

メンバー

  • プロジェクト管理者: 1名
  • スクラムの人: 1名
  • バックオフィスの方: 1名
  • 社員: 3名
  • 参加から1年半くらいの業務委託(僕): 1名
  • 新規参入の業務委託: 3名

良かった点

  • 結果なんとかリリースできた
  • 仕様を熟知しているバックオフィスの方がジョインしていたのでコミュニケーションによるロスが少なかった
  • メンバーも良い人が多く喧嘩なくいけた
  • ミドルウェアはTiDBしか使っていなかったので管理コストや学習コストが少なく済んだ

技術的な点

  • Honoはテストもしやすく、とてもいい感じだなとおもった
  • Next.jsは変な癖があったり、フロントとサーバの垣根が曖昧なのでセキュリティ的にも気になる感じだった
    • 完全にフロントだけで使えば良いので、そうしなかったのが悪いと言われればそれまでだが。。。
  • TiDBもMySQL互換と言いつつ違う部分もあるので注意は必要かな
    • Docker環境がLinuxでPlayGroundを立ち上げるもので結構重いのも気になります
  • AIが活躍した部分も多かった

反省点

  • 余裕を持って開発したいのであれば、もっと早めに開発をスタートさせたかった
  • 業務委託メンバーが3名追加になっているが、実力が未知数のメンバーを呼ぶのではなく実力が判明してるメンバーで組んだほうがよかった
    • 今回は結果として問題のあるメンバーがいなかったが、単にラッキーだっただけかと。
  • 技術選定からスタートとなったがプロトタイプなりなんなりがあってその中から選ぶとかできた方が良かったかなと
  • TailWindベースであれば何でもいいということで、TailAdminを選んだがフルスクリーンキャプチャーができないとか色々と完成度が低いなどあり失敗だったかなと(見た目はいい感じ)
  • TiDBのauto incrementが飛び番が発生する仕様で苦戦した
  • DDDっぽく作成していたけど、仕様変更などが多発して行動量が多くなりがちなDDDだと間に合わないということになって諦めた
  • 時間がなかったので全体的な統一感を諦める場所が多く出た
    • 結果としては速く開発ができたが。。。
  • スクラムをやってみたが、新規開発で新規メンバーも多いとカンバン方式のほうがよかったかもという話が出た
  • ほぼ残業がない会社だったがリリースまでは高稼働になった
  • フロントで宣言的に書けるような構造を作ったが、あまり受けが良くなく置き換えたいという話が出ている
    • 下記が主な原因
    • 流派の違い
    • 通常のReact実装から多少違ってくる
    • 現時点では複雑な画面に対応していない

次回あるとしたら

  • 新規開発がスタートするまえに、達人プログラマで言うところの曳光弾(えいこうだん)プロジェクトを作っておき、技術検証が済んでいる状態で始めたい
  • できれば既存でいるメンバーから新規開発をしたほうが実力や人柄も把握できていて変な失敗を無くせると思う
  • 高稼働時の実装の速さは稼働時間もあるが、夜間にMTGがないため中断もなく実装できるからでは?と思われるので、2週間高稼働で1週間休むとかできたらいいなと思う

まとめ

振り返ってみて、一番は会社の方針に沿ったプロトタイプ的なシステムをメンバーやチームで作っておけたらよかったなぁと。

色々と勉強にもなるので、若手育成にもなるはずで良いのでは?と思いました。

最後にチームメンバーのみなさま、おつかれさまでした。

レバテック開発部

Discussion