traPortfolio
- # 長期開発
- # チーム開発
- # Vue
- # TypeScript
- # Go
概要
traP部員が部内での活動や、その制作物を外部にアピールできるプラットフォーム
担当分野
- 現在の担当
- ・要件定義
- ・フロントエンド実装・レビュー
- ・開発環境整備
- 過去の担当
- ・全体リーダー
- ・フロントエンドリーダー
- ・開発日程・工数管理
- ・フロントエンドリポジトリの管理
- ・v1リリースに向けたデプロイ作業
意識したこと
意識したこと
期限を切った開発
私がこのプロジェクトに加入したのは 2023 年 7 月のことでしたが、このプロジェクトはおおよそ 2020 年から始まり、開発が長期化していました。この背景には、リリースまでのロードマップが定まっていなかったことが挙げられると考えました。そこで、私がフロントエンドリーダーになったときにはまずは期限を定め、それに向かって開発を行うことでリリースを確実に行えるようにしました。
今回は「春ハッカソンで部員が開発したものを外部公開できるようにする」という明確な目標地点を定めることで、設定した期限にも意味をもたせるようにしました。
Minimum Viable Product (MVP)
先述の通り期限を切った開発を行うようにしましたが、先に定めた目標「春ハッカソンで部員が開発したものを外部公開できるようにする」を満たすためにはどのような要件が必要かをこのとき一旦整理しました。ここで必須でないと判断したものは v2 の要件とし、v1 の計画を必要最低限なものに削ぎ落としました。
また、この要件を一度たたき台として作った後、チームメンバーに共有し、それをもとに開発を行うようにしました。
サークル内外での積極的な発信
期限を切った開発を行うと決めた際、まずはその期限でリリースすることをサークル内で宣言をしました。これは、サークル内など比較的厳しくない環境下においても期限を形骸化させないという理由がありました。
他にも、開発チームを活発化させる狙いもありました。私が 4 月にフロントエンドのリーダーを引き継いだ際、定期的にコントリビュートを行っているメンバーはフロントエンドとバックエンドをあわせても 5 人程度でした。ただ、リリースについての情報を部内で積極的に発信したり、開発の雰囲気について言及することによって自分たちの開発に興味を持ってもらえるようにしました。その結果、現在では 5 人が追加メンバーとして加入し、開発が更に活発になりました。
メンバーの育成と開発環境の積極的な整備
大学サークルという性質上、メンバーの入れ替わりも企業よりも多く、開発体制を維持するのが大きな課題となっています。現に、現在のフロントエンド開発メンバーは自分と同じかそれよりも下の学年しかいません。そこで、メンバーの育成に積極的に取り組んでいます。具体的にはオンボーディングや、その後のペアプログラミングなどです。詳細は以下に挙げているブログ記事で書いています。
また、メンバーが開発に集中できるよう環境の整備も重点的に取り組んでいます。Pull Request ごとにレビューをする際、これまでは Vite をローカルで動かしていましたがこれを ArgoCD を用いてやりやすくしたり、UI デザインのテストをしやすくするために msw を用いたモックで手元でデータを自在に書き換えられるようにしたりしました。こちらも ArgoCD についてはブログ記事を執筆しています。
リンク集
- 作品リンク
- ブログ
- リリース記事: https://trap.jp/post/2262/
- URL: https://trap.jp/post/2304/
- リリース裏話 (意識したこと): https://trap.jp/post/2305/
- URL: https://trap.jp/post/2367/
- URL: https://trap.jp/post/2419/
- ソースコード
- 外部向け公開ページリポジトリ: https://github.com/traPtitech/traPortfolio-UI
- 内部向け管理ページリポジトリ: https://github.com/traPtitech/traPortfolio-Dashboard
- バックエンドリポジトリ: https://github.com/traPtitech/traPortfolio