104
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

実装2週間・要件定義4ヶ月。AI時代の開発で痛感した「上流工程の価値」

Last updated at Posted at 2025-12-09

実装2週間・要件定義4ヶ月。AI時代の開発で痛感した「上流工程の価値」

はじめに

この記事では、AWS × dbt × Snowflake を用いたデータ基盤構築プロジェクトで、
要件定義〜設計に4ヶ月、実装はわずか2週間 という、
「いやバランスおかしくない?」という経験から得た学びをまとめています。

技術的なTipsよりも、
上流工程の価値・設計の大切さ・AI時代のエンジニアとして必要な力
といった“働き方”にフォーカスした内容です。

実装フェーズはAI(ChatGPT / Codex)が爆速で進めてくれた一方で、
上流工程はというと……
「ちょっと会話しませんか?」と言っていたはずが、気づけば4ヶ月経っていました。

その経験を通して、
「プロジェクトって、コードを書く前にほぼ決まってるんだな」
という当たり前だけど重要な事実を痛感しました。


1. プロジェクトの概要

今回のプロジェクトでは、AWS・dbt・Snowflake をベースにしたデータ基盤の設計・実装を担当しました。

役割としては、

  • 要件定義
  • 基本設計
  • 詳細設計
  • 実装(コード生成はAIを併用)
  • UT作成
  • ジョブ実行・構成管理

まで一気通貫で関わりました。

ここでは技術の細部よりも、
「なぜ実装よりも上流工程に時間がかかったのか」
という気づきを中心にお話しします。


2. 上流工程が想像以上に難しかった理由

今回のプロジェクトでは、要件定義〜設計に4ヶ月以上を費やし、
実装は2週間で終了しました。

数字だけ見ると、
「実装サボってた?」と言われそうですが、
むしろ逆で、上流がハードモードすぎた のが正直なところでした。


● 認識のズレ:一度決まった方針が覆ることがある

週次の会議ごとに前提が変わったり、
関係者によって解釈が違ったりする。

象徴的だったのは、
スケジュールの都合で見送りになっていた OTF採用の方針が再度ひっくり返った瞬間

「え、また戻るの? さっき諦めたばかりでは?」
とPCの前で静かにツッコミましたが、
上流工程ではこういう“前提の揺れ”は日常茶飯事です。


● 情報のズレ:資料はあるのに“真実”がない

資料はあるけれど、どれが最新かわからない。
むしろ、古い資料の方が正しい という逆転現象まで起きていました。

まさに
「地図はあるのに、どれも現在地を指していない」
という状態。

参画後はまず資料の構造化・最新化を行い、
「とりあえずここを見れば正しい」という場所を作るところから始めました。

上流工程では 「正しい情報がどこにあるか?」 を整えるだけでも、プロジェクトは前に進みます。


● 距離のズレ:複数チーム間の心理的・物理的距離

業務・アーキ・インフラ・運用など複数チームが関われば、
意思決定のラグや認識ズレが発生するのは避けられません。

必要な時期には最密チームと毎日ショートミーティングを実施し、
“距離を縮める工夫” をして乗り越えました。


● 気づいたこと

要件定義・設計フェーズの難しさは、コード以上に
認識・情報・距離を整える「コミュニケーションの量」で決まる。

その重要性を改めて痛感しました。


3. 設計書で最も意識したのは「誰のためのドキュメントか?」

● 基本設計:顧客の認識を揃えることが目的

基本設計では、抽象度を上げつつ、顧客が本当に知りたい

  • なにができるのか
  • どんなメリットがあるのか
  • 運用はどう変わるのか

を重視しました。

技術の細部まで踏み込むより、
「これで進めて問題ないですか?」
を確認するフェーズという意識でした。


● 詳細設計:「この情報だけで実装できるか?」

開発者が迷わないように、

  • 前提条件
  • 例外ケース
  • 処理の流れ(図+文章)
  • 具体的な入出力例

を徹底的に明確化しました。

常に
「自分が実装者なら、これで作れるか?」
と問いかけながら書き進めました。

これは後述の “AI実装” にも非常に効きました。


4. ChatGPTが最も活躍したのは“実装フェーズ”

今回のプロジェクトで一番感動したのは、
UT(単体テスト)実装の効率化 でした。

従来の感覚では、

  • 実装:1
  • UT:3

くらいの工数でしたが、今回は
体感1/10くらい になりました。


● コメントで意図を伝える → AIが爆速でテストを書く

AIに渡す前に関数を1責務に分割し、
コメントブロックで「この関数で何をしたいか」だけ明確にしておく。

こうするとChatGPTはまるで

「わかってますよ、こういうのが欲しいんですよね?」

と言わんばかりにUTを生成してくれます。

逆に曖昧な要件を渡すと、

「全部盛りにしておきました!!」

みたいな巨大 main 関数が爆誕するので注意です。


● テストコードの改修がほぼゼロに

仕様変更やリファクタが入っても、
差分だけ伝えればAIがUTも一緒に直してくれました。

実装 → AIがUT修正 → 次へ進む

この流れは、純粋に「未来だな」と感じました。


5. 自分の強みは「曖昧さを整理して、前に進めること」

今回のプロジェクトで強く感じたのは、
自分は “カオスを整理して前へ進める” 役割が得意だということ。

  • 要件の整理
  • 不明点の言語化
  • チーム間の橋渡し
  • 議論がループしている部分の構造化

こうした地味だけど重要な部分で、
プロジェクトを確実に前へ動かせる瞬間が何度もありました。

技術力とは別の価値があることを、改めて実感しました。


6. おわりに:上流工程には、間違いなく“価値”がある

今回の経験で強く思ったのは、
上流工程はエンジニアの市場価値を押し上げるフェーズ だということ。

要件を整理し、認識を揃え、曖昧さをなくし、
実装可能な形にまで落とし込む。

実装はAIが加速してくれる。
だからこそ、

「実装の前の考える時間」こそが、人間の価値になる。

もちろん上流工程は難しいです。
「これ本当に終わるの?」と思った日もあります。

でも、その難しさの向こう側に、
実装では味わえない面白さがありました。

この記事が、
誰かが上流に挑戦するきっかけになれば嬉しいです。

104
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
104
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?