前年度に引き続き、進化が止まらないAIに振り回され続けた2025年も残すところあと僅か、毎度おなじみ年末に1年の活動報告を書いているツナかふぇです。
フリーランスエンジニアとしては活動6年目を迎えるも、AIの台頭によってコーディングしている時間が極端に減った代わりに、要件と仕様の詰めに頭を使うことが多かった今年度、1月~12月の振り返りをしていこうと思います。
昨年にさんざん頭を悩ませたBさんの引継ぎプロジェクトのリリース計画がいよいよ現実味を帯び、最終調整に入ります。(昨年度の話はぜひ冒頭のリンクからご覧ください)
バックエンドをJava、フロントエンドをReact18、インフラはAWSのECS+Fargateという構築、非常に得るものの多いプロジェクトでした。
同時に、1人が1つのプロジェクトを全面的に背負っていた場合、その人が逃げてしまった後始末の苦しみを過去一味わったプロジェクトでもありました。
本経験を持って、アーキテクト、実装思想などは必ずプロジェクトのwikiとReadMeに書くことを決めました。そしてそれは、今年のAIの波に乗る為の非常に大きな足掛かりとなりました。それらは今年の後期で、GitHubCopilotのinstructionsファイルに反映されていくことになります。
2月のリリース&初動はひとまず順調、幾ばくかのHotFixを対応した後、私にプロジェクト移籍の話が降ってきます。既にキックオフは済んでいるが、人手が足りないのでぜひ入ってほしいとのこと。
内容はNext.js+Typescript(フロント&BFF) + PHP(バックエンド) + DynamoDBという、なんとも今時な構成。Reactの知見をそのまま利用できるNext.jsに前から興味があったこともあり、フロント周辺の開発&技術選定をお願いするということで、私は二つ返事で承諾。二月の後半からは別のチームに移籍となり、キャッチアップに勤しみながら2月を終えます。
そしていきなり事件が発生。なんとNext.jsの開発回りを任されていたを触っていた前任者が、突如退職届を出します。結果、まだキャッチアップ中だった私に、フロント周辺の責務がすべてのしかかってきます。しかもリリースは8月とのこと。昨年度に続きまた事後処理かよぉ?!
昨年度の事を思い出し頭を抱えながら引継ぎを行い…結論から言うと、私は前任者から引き継いだコードを、1か月で9割書き換えました。前任者もNext.jsについては経験が浅く、コードの中身はお世辞にも単一責任原則やカプセル化の原則に沿っているとは言えませんでした。
前プロジェクトの知見を活かし、zodやReactHookFormといったフロントバリデーションの導入、SSR・CSRコンポーネントの共通化、API呼び出し入り口の共通化と、幅広くリファクタリングを行いました。APIが分離されており、他チームの持ち物となっていたことは不幸中の幸いと言っていいでしょう。
フロントの作りは中々に良くなりましたが、この月はとにかく仕様変更が頻繁に入りました。DXチームの要望が週毎に追加になったり、突如として仕様変更が入ったり、チーム内のDXチームへのヘイトが募っていきます。Digital TransformationじゃなくてDigital Genocideの間違いないんじゃないのか? と。仕様を確定しきる力のないチームがDXを謳っているのには、乾いた笑いを浮かべるほかありませんでした。
リリースは8月だと言っているのに、あまりにも仕様変更要望が多すぎる為、最終的には部署間の頭同士で会議が開かれ、強制的にDXの要望を遮断してリリース準備をすることに。なんとかリリースの段取りが決まり始めるころには、大分心が疲弊していました。
リリース先は前プロジェクトと同様にECS+Fargate環境です。勝手知ったる何とやら、GitHubActions+CloudFormationで環境構築とCDはすぐに完了。フェーズ1が終了します。今プロジェクトはフェーズが3段階に分かれており、今回はそのフェーズ1。まだまだ開発は続いてきます。そして、DXからの要望受付も再開され、彼らとテキスト上でプロレスする日々が続きます。
DXというのは開発スケジュールの一環にあるはずの(要件定義・仕様確定)の言い換えにすぎません。ここだけを別の部署に切り出すのは、経営者がシステム開発に疎いからでしょうか? 切り出す意味を全く感じません。今からでも全員開発チームに移籍してこい! と思っています。
フェーズ1がひと段落した事で、いよいよ本プロジェクトにもAI化の波が押し寄せてきます。具体的には以下をマークダウンファイルに統一し、AIに食わせるための環境を整えました。
この三か月を経て、私が実際にコーディングする機会はグンと減りました。なんというか、コーディングの分野ではAIレビュー係とでも言う存在になりつつあり、創造の楽しみが減りました。確かにコーディングはかなり早くなりましたが、反面、DXとの衝突ストレスをコーディングで癒していた私にとっては、効率と引き換えに『ただの調整役』へと押し込められた今の状況は、どうにも釈然としません。
AIの躍進に伴い、コードより人との折衝に疲労する一年でした。『AIにできることはAIに』を徹底すると、いったい何人の人間がお払い箱になってしまうのだろう…と考えさせられる1年でした。
来年も皆さんに、よき技術の場が与えられますように。