前提
この記事は2022年4月の記事です
条件
言語:PHP、JS、SQL(MySQL)、Bootstrap
ソース管理:Git(GitHub)
インフラ:AWS←上司がやってくれた
業界歴:1年と1ヶ月
納品物:予約システム
案件の状況
納期:1ヶ月半
開発チーム:2人
実施したこと:インフラ構築以外の全て
良かったこと
インフラ以外を全て経験できた
お客さんとの打ち合わせから入り要件定義、設計、開発、テストまでを体験できた事。
すべての工程を自分が主軸となって進めていけたのは大きな経験でした。
要件定義や設計などの上流工程の名前は知っていたものの、やってみて初めて大変さが分かりました。
- どのように進めていくのか(工数管理)
- 要件のすり合わせ
- 設計
納期は守れた
稼働時間はエグいことになったけど(炎上)、期限通りに納品できました。
実力ないと時間でカバーするしかないので、早く実力付けないといけませんね。
反省点
ドキュメントは残しておくべき
今回の案件では納品物が、モックと完成したシステムの2つという中々ふざけた内容の案件となっていました。
(僕の中では仕様書や設計書を納品するのが当たり前と思っていたので衝撃でした...。
納期が短く工数も足りていないという事で、作成したドキュメントは自分しか分からない内容となっていました。)
開発の途中でお客さんや担当営業者からデザイン変更や機能追加などが度々起こってしまい、仕様変更の度に要件とは違うことを証明することが出来なかったです。
要件定義が終了した時点でドキュメントを残しておくべきでした。
IT全般の知識必要
お客さんとの均衡の際にITの幅広い一般常識が必要でした。
- 要件を満たすためにはどういう機能が必要なのか(不必要なのか)
- セキュリティは問題ないか
- 一般的なWebシステムとの比較
お客さんから「これは出来るの?」と聞かれた際に「〇〇は✗✗なので△△です。」というような目的に沿った説明をすることが出来ませんでした。
経験が少ないとかは関係なく、Web屋を名乗っている以上プロとしての知見を持たなければいけませんねぇ。
ただ、自分の中で確信が持てないことに対しては「調査した上でお返事致します。」と出来る事を前提に話を進めなかった事は良かったポイントです。
設計は激むず
設計はやっぱり難しい。あんなの経験ないと無理だよ。
- DB設計
- クラス設計 等
最適なデザインパターンや他人のコードなどから学ぶしかないなというのが率直な反省です。
先は長いなぁ。
大事なのはデータ
上司からのコードレビューからデータ保護のバリデーションが1つだけ抜けている部分がありました。
Webアプリケーションではデザインや実行速度など大切なことは沢山あるのですが、何よりもデータが一番の核だと考えます。
核となるデータに穴があったのが結構ショックでした。(見つけてくれた上司には感謝)
データ保護は大切に。。。
総括
色々苦しい事は有りましたが、リリースまでをやらせてくれたことに感謝します。
沢山学べました。
リリース後は溜まっていくデータを見るだけでとても嬉しい気持ちになれました。
またその反面、事故が起きていないかと怖い気持ちにもなってしまいました。
良いことも悪いことも経験できた案件よ。ありがとう。