# 作業概要
## アプリ開発での作業
- 基本設計
- 詳細設計レビュー
- ソースレビュー
- 結合試験項目書レビュー
- 総合試験実施
- リリース手順書作成
- リリース作業
## API開発での作業
- 基本設計
- 詳細設計
- 開発
- 単体試験実施
- 結合試験実施
# 説明
## アプリ開発
顧客と開発委託先の間に立ち、主に基本設計と総合試験を担当。
プロジェクトには途中参加だったため、不明点が多かったが相談をしやすいプロパー社員に相談のうえ、他のメンバーを集めて会話して確認を繰り返した。
そのプロパーのかたとの会話時は、自分から業務外の話を少しだけするようにしてなるべく早く打ち解けられるように意識した。
基本設計書だけでは開発委託先に実装イメージが伝わらないことがあったため、必要に応じてサンプルプログラムを書いて添付してイメージしやすいよう心掛けた。
開発作業は委託先が担当だったため自分でソースを書くことがなかったが、アプリの動作環境はお客様が用意したサーバのみで、すぐに動作確認ができなかった。
また、他システムのAPIとの関係もあって確認したいデータパターンが見つけられないことが多かった。
そのため、ローカルで動作可能な環境をVagrantとVirtualBoxで作成して、中にDBとAPIのモックを用意してお客様環境に置かない状態で動作確認ができるようにした。
ビルド手順について、手順書記載のコマンドを参照しないと方法がわからず、環境ごとの指定方法の記載もなかったため、内容がわからなくてもビルドできるようSVNからソースをチェックアウトして、番号を指定すれば環境別の資材が作成できるバッチを作成した。
試験ではアプリのログをエビデンスとして残す際、TeraTermのログ出力機能を使用していたが、1つのターミナルで1つのログしか参照できないため、ログ収集シェルスクリプトを作成した。
シェルの開始時に複数のログファイルの内容をtailで読み込み、シェルの終了時にそれまで読み込んでいた複数のログの内容を標準出力に出して、エビデンスのExcelに貼付しやすいようにした。
性能試験ではJMeterの設定ファイルを作成して実施した。
## API開発
Apigeeを使用したAPI-GWの開発作業を担当。
仕様書の作成から実装、試験までを担当。
Apigee内で使用できるPolicyを組み合わせて流量制限の設定など行う仕組み。
Apigeeから呼び出すAPIのパラメータチェック、リクエストパラメータ作成、レスポンスデータの処理はJavaScriptで記述。
当初引継ぎ予定だったメンバーの離脱により途中から代わりに作業を行った。
引継ぎ資料としては、顧客の実装ガイドラインなどの既存ドキュメント、Apigeeのチュートリアルなどがあり、知識のあるメンバーへの質問も行いながら内容を理解した。
それでも設計書に表れていないルールを把握するため、Apigeeのコンソール上で既存の他プロジェクトの実装も閲覧し、複数のAPI Proxyの実装をまたいで内容を把握することで、実装ルール上確実に押さえておくべき部分を理解しようとした。
## その他作業
運用作業としてユーザ登録作業を担当していたが、既存のツールは「①Excelへのコピペ②各ユーザ別にランダムな文字列を作成③jarファイルによりランダムな文字列をハッシュ化」とする手順であったため、作業内容が煩雑だった。
そのため、CSVファイルを読み込むことでinsert文のSQLファイルを作成するツールをSpringBatchで作成し、登録作業の手順を短縮した。
また、アプリでGoogle Analyticsを使用していたが、その設定追加作業を担当し、Google AnalyticsとGoogle Tag Managerの設定追加、HTMLファイルの編集作業を行った。
設計書として存在したのが設定内容を記載したファイルのみであったため、よりGoogle Analyticsの内容を理解する目的でGoogle Analytics公式の動画教材の閲覧や、書籍を購入し読むことで理解しようとした。