1. 【プロジェクト概要】
社内で複数のサイトを運営している中、既存のものとは異なるアプローチのWebサイトを新規に立ち上げて集客する事業が開始。
2. 【チーム情報】
開発チームとしてはリーダーと私を含めた他3名の計4名がアサイン。それぞれが特定の技術分野を実装するのではなく、フロントやバックの垣根を超えて業務にあたりましたが、要件や納期の都合で手が足りない部分は外注して柔軟に対応しました。
3. 【担当業務】
その中で私自身が担当したのは、AWSでのLinuxサーバー構築やRDSとルーティング、LaravelとJSでのフロントやフォームの作成など、幅広い分野で携わることができました。
1例ですがRDSの在庫データを取得してフロントエンドでの在庫切れ表示やバリデーション処理などを行いました。
4. 【要件定義】
* 【課題概要】
要件定義から携わる中で、既存のシステムでは要件を達成できないことに気付きました。下記のようなJSONで既存サイトと社内システムを連携していますが、この構成では1回の申込で1つのパターンしか申込ができない仕組みになっています。
```
{
"Name": "Test",
"Device": "XXX-100",
"Color": "White",
"Count": 1,
"Option": {
"A": true,
"B": false
}
}
```
異なった組み合わせで複数の端末を1回の申し込みで達成する、といった要件があるため、フォームのデザインや内部構造、下記のようなJSONを投入した際のPOST側の設定を考える必要がありました。
```
{
"Name": "Test",
"Device": [
{
"Name": "XXX-100",
"Color": "White",
"Option": {
"A": true,
"B": false
}
},
{
"Name": "XXX-200",
"Color": "Black",
"Option": {
"A": false,
"B": false
}
}
]
}
```
* 【仕様提案と結果】
まず自身の案を2パターン開発メンバーに共有し関係者と協議しました。
1. ECサイトのカート機能を実装する
2. フォーム内で2台目以降の端末を選択できるようにする
私的には1を推していたのですが、社内システムの仕様で大規模な改修が必要だと判明したため、工数と納期の都合上2の案で進めることになりました。
しかし課題になったのは特にデザイン上の問題でした。私自身デザインに疎かったこともあり、実装上可能なことやメンテナンス性を重視しがちでした。しかしデザイン側の思惑もあるもので、社内デザイナーと関係者も交えて何度か協議し、最終的には実装とデザイン共に納得のいくものができました。
5. 【リリース】
その他クレジットカード決済サービスを当初予定していたものから変更するなど、多々課題はありましたが、開発メンバーだけでなく社内外の方達と協業することで、無事にリリースすることができました。
以上のことから、私はエンジニアリングに特化するのではなく、周囲と協力して物事を進める力が付いたと考えております。