## 1. プロジェクト概要
* 手動で運用している業務タスクを自動化し、作業工数を削減する。
* 運用者が運用・保守しやすいように顧客情報はスプレッドシートで管理できるようにした。
* Windows OS・リモートPC での作業のため、 **PyInstaller で exe 化**して使えるようにした。
### チーム構成 ( 計: 6名 )
* PM: 1名
* 運用者: 1名
* 運用者上長: 1名
* 開発: 2名
* 開発調整・ヘルプ : 1名
### 担当した役割
* 要件定義から 技術選定・開発・運用保守
* ドキュメント作成
## 2. 使用技術や開発環境等
* Python3.9, pytest
* GCP
* Gmail API
* Sheets API
* GAS
* VSCode, PyCharm, GitBash, GitHub
## 3. 取り組んだ課題
### 要件定義から、運用者の求めている課題を引き出すヒヤリング力
**▼ データのフォーマット規則**
運用者からサンプルデータを提示してもらうが、実際に運用している顧客フォーマット規則と違った。スクリプトを組むが出戻りが発生。改善対応として、こちらから本番に近いデータに修正し、運用者に承認もらった上でスクリプトを修正。
**▼ 自動化すべき項目**
顧客ごとに **Excel データのフォーマットが違って**、自動化する旨みがなかった点。
「どの工程を自動化して、この部分は〇〇の理由で自動化が難しいです。」と運用者と相談して対応しました。
### 1ヶ月の見積もりだったが、2週間伸びた
見積もりを立てたが、期間が伸び他のプロジェクトの進捗にも影響したこと。
原因は、追加要望が発生し「これじゃ終わらないじゃん。。」って動きになってしまったこと。
対応として、「今回の1次リリースはここまで実装しますー」っ折り合いをつけた。
## 4. 技術的なアプローチや工夫した点
### credentials.json ファイル扱い
リモートPC で運用するタスクだったため、 **credentials.json** などの承認データファイルを配置できない課題だった。
対応として、
1. API 側で受けとる認証情報箇所を **Override** して **ファイル読み込み**から、**JOSN形式**に変換
2. exe 化することで、認証情報をリモートPC 上で盗まれにくいように
### 見積もり相談・調整
見積もり通りに納品できない状況になり上長に相談。お客様に状況説明し、2週間の開発期間延長の了承をいただいた。
当初の計画通りに納品できることは前提だが、変化する状況に対して柔軟対応することも必要だと実感した。
## 5. 取り組みの成果
* 運用者から **3割の工数削減**になったと喜んで頂けた
* 要件定義から関わることができ、開発までに必要な**全工程のイメージがついた**
* 技術記事 [【GCP】 Python + Gmail API + Sheets API で 「Gmail 送信」を試してみた](https://zenn.dev/kazusa_nakagawa/articles/article7_google_api)