#はじめに
この記事は、Qiita芸人 Advent Calender8日目の記事です!
過去の経験談です。
自戒の意味も込めて書きたいと思います。
#スペック
エンジニア歴約3年
業務でのWEB開発の経験無し
C言語やC++で組み込み系や業務系の開発を2年、JavaでAndroidアプリを半年ほど。
プロジェクト参画前、PHPは事前に「独習PHP」を一通りやったくらいしか触った経験がなかった。
#当時の開発時の状況や前提についてざっくり説明
・PHPのバージョン: 5.0系
・推奨ブラウザ: IE8
・エディタ: サクラエディタ
・VPN接続
・開発環境と本番環境が一緒
・バージョン管理: 無し
・別の会社からコードの保守権限を受け取り開発の中身や知見を知ってる人が他にいない
・一人プロジェクト(一応スケジュール管理だけするなんちゃってPMがいた)
#自分がやったこと
###開発環境を整える
・Git導入
・VSCode導入
###ソースコードを一通り読んで作りをざっくり理解する
・ModelBean、ViewBeanって"bean"を多用してたので恐らく前任者がJavaをメインでやってたのかなといった作りになってた。
・MVCの概念で作られてた。
・HTMLにPHP埋め込みはなかった。(これのおかげで仕組みを理解するのは難しくなかった)
・コメントが丁寧
###シーケンス図を書く
PlantUMLでざっくりシーケンス図を書きました。
###要件確認(RD)
やりたいことはまあなんとなくわかった。
###設計(SS)
正直、中のソースコードをまだ理解しきれてなかった段階での設計だったので考慮漏れが多数発生したグダグダな設計だった。
→ここから地獄は始まる・・・
###クソコードを製造(PG)
基本的に自分はコーディングする時、機能実現を優先するのだが思ってる以上に設計がグダグダだったので探り探りのコーディングになってしまった・・・
自分が一番システムについて理解しているという現状なので聞ける人もおらず、そのまま開発は進む。。。
開発の段階で結構手戻りとか設計漏れが発生し、コーディングを必死にやりつつ少しずつ先に進みはするものの刻々と時間は過ぎ、納期が近づいてくる・・・
具体的にどんなコードを書いてたのかは別記事で紹介しようと思ってます。
PHP Advent Calenderの14日目の記事で公開予定。。。
https://qiita.com/advent-calendar/2019/php
###コードレビュー無しでテスト工程へ・・・
これが一番やばかった・・・
自分は納期もあるし、後半の時点で既に開発の時間の締め切りが近づいてて余裕がなかったため、コードをちゃんと書けてる自信がないのでレビューをして欲しかった。
お願いした時のやりとり
わい「コードレビューして欲しいです、お願いできませんか?」
PM「いや俺、C#しか書けないしPHPは分からんわ」
わい「(⌒,_ゝ⌒)」
###テスト(PT)
Excelに画面スクショする例のやつです。
テスト仕様書は作る時間がなかったので設計書をそれ用にして色塗りしました。
ちなみに障害は40件以上出しました。
ほぼバリデーション系とかのエラーがほとんどでしたが設計時点での考慮漏れも複数ありました。
割と心が折れそうになった瞬間でした・・・
###テスト(IT)
このテストでは、ほぼ障害が出ませんでした。。。
正直これにはかなりホッとしました。
PTで網羅できてたからだと信じたい・・・
###引き継ぎ
この辺でVSCodeの使い方とかGitの使い方をExcelでまとめたりしてPMの人に色々引き継ぎをしました。。。
一応ちゃんと引き継ぎをしたつもりですが、正直この先そのPMの人が何とかかんとかこのプロジェクトを進めていくのかなぁと思うとプロジェクトを抜ける申し訳なさと罪悪感を感じました。
###終わりに
ギリギリ納品完了まではいれなかったのですが一応リリース作業は終わっていて大変でボロボロのプロジェクトだったけど不思議と達成感はありました。
きっとあの後、担当する人には負担をかけるなぁと思ってしまいましたがこの反省を生かしてゴミコードを生産しないように気をつけたいと思います。