# 期間
- 2021/6~12 (7ヶ月間)
# チーム構成
- PM:1名
- エンジニア:3名
# 案件について
## 案件内容
フレームワークを一新。
・Monaca => Ionic
・Angular.js => Angular(Typescript)
## 課題
- 効率的な仕組みの構築
- 新規PJ かつ 長期案件のため、初期段階でどれだけ効率的な仕組みを作り上げられるかをチームの重点課題としていた。
- コミュニケーション
- 基本的にSkypeでコミュニケーションを行う文化があり、後からの検索性が低いという課題があった。
## 打ち手・使用した技術
- 「効率的な仕組みの構築」に対して
- Prettier & ESLint & HTMLHint & Stylelint の導入と設定
- コミットメッセージのテンプレート設定
- Notion 導入
- 記載ルール策定
(ex. エラーログはテキストで残す => 後にエラーメッセージで検索ができるように)
- タスク管理などのDB作成とそのビュー設定など
- エミュレータや実機で立ち上げた際のLiveReload機能の有効化(既存PJでエラーが解消できず使えない状態だった)
- VScode拡張機能の情報共有
- (他にも工数、チーム内のナレッジの少なさなどから導入には至らなかったがJestなどのテストフレームワークを導入する提案も行い、調査した。)
- 「コミュニケーション」に対して
- slack + Asana に移行
- slack
- スレッドによる見返しやすさ、検索性の高さを重視
- Asana
- タスク管理ツール兼コミュニケーションツールとして活用
- 各タスクについてのやり取りは後から読み返しやすくなるよう、タスク内のチャット機能で行うようチームで徹底するようルール化
## 成果
- 下記などにより、全体として前倒しでスケジュールが進行した
- コーディングルールに関するレビューの廃止(Linter&Formatterに任せる)
- コミットメッセージの統一化
- Notionにより情報の一元化、テキスト化の習慣づけ
- 開発に有用なツール(LiveReload, VScode拡張機能)の利用による工数削減
- slack + Asanaをコミュニケーションツールとしたことによる情報検索性の効率化
## その他学んだ内容
Angular.js => Angular(Typescript)になったため、既存のJavascriptコードからTypescriptコードに変換していく対応も行った。
Javascriptと対比しながらTypescriptへの理解を深めたり、Utility Typesを用いた型定義、Observerによる非同期処理などを実装しTypescript・Angularの理解を深めた。