案件終了から次の案件まで1週間ほど空き時間ができたため自社内の自社でのビデオシステム開発に従事。
いくつかの課題が見えたため、改善を行った。
## 環境構築方法の改善
つまづきポイントが多く、ドキュメント通りに構築しても半日 ~ 1日程度かかる状態だった。
- Railsプロジェクト内のViewにReactが使われている状態だったのだが、パッケージ管理でnpmとyarnが使われていた
- RailsはLocal上で起動、Postgre SQLはDocke Compose上で立ち上げる
そのため、Docker Compose上に構築。
現在の方法でも起動できるようにしたいという要望もあったため、それにも対応。
## コードの読みやすさと保守性を改善
- コードの書き方が統一されていない
- デグレがよく起こる
バックエンド側はRubocopとRspecが導入されていましたが、フロントエンドは何もなかったためESLint, Jestを導入。
そしてCIを使った自動テストを導入。
導入コストの低さからGithub Actionsを採用し、Push時にBuild, Lint, Rubocop, Jest, Rspecをチェック。
工夫したこととして、Github ActionsではCIの実行速度を早くするため、node_modulesやgemをキャッシュするよう対応。
## その他
他にも、
- Github上のissueが管理されておらず誰が何をやっているのか、どれが終わっているのかがわからなかったため、タスクの整理
(自社のビデオチャットシステムでは、案件が空いている人が入るという運用上、経験が浅い方が多い背景があります)
- アサインやタグを使用し、誰が何をやっているのか可視化
- コミュニケーションミスが多発していたため、毎朝朝会を開催
- 昨日やったこと、今日やること、困っていることを共有
- 意思決定時にissueやPRに残すよう共有
- issueやPRにテンプレートを導入
ちなみに私もビデオチャットプロジェクト開発にアサインしたからにはwebRTC周りの技術に着手したかったですが、期間(1週間)とプロジェクトの運用自体の改善を期待されていたため、断念しました。。
個人で粛々と学習しております。
https://codesandbox.io/s/web-video-2n3ix