Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新卒目線で感じたAIレビュー機能開発の学びと課題

Avatar for kuracchi kuracchi
November 15, 2025
160

 新卒目線で感じたAIレビュー機能開発の学びと課題

Avatar for kuracchi

kuracchi

November 15, 2025
Tweet

Transcript

  1. • コードの理解やドメイン知識が少ない • チームにジョインして2ヶ月 • プロダクトコードの理解が浅い • 何がわからないのかを言語化する苦労 • 技術レベルが高かったり、ドメイン知識が必要な議論に着いていけない

    • 分からないから参加出来ないが、何が分からないかも上手く言語化ができない 課題:実装開始時はわからないことだらけ 14 学び①:認識のズレを防ぐ具体化
  2. • サーバーサイドの実装 • 〇〇package配下に△△Serviceの実装 • Publicメソッドはget()とset()を定義 • □□Controllerで△△Service.get()を呼び出す • クライアントサイドの実装

    • 「アプリ設定をレビュー」ボタンを〇〇.jsに実装 • レビュー依頼のrequestメソッドを実装 • ボタンのUIを実装 壁打ちの効果: • 実装前に方向性を確認できた • 自分の理解の曖昧な部分が明確になった 解決策:実装方針をチームメンバーに壁打ちしてもらう 16 学び①:認識のズレを防ぐ具体化
  3. 各設定のMarkdown生成をシンプルにするため、Markdown構築用のBuilderクラスを用意 前提:AIに渡すアプリ設定データを構築するためにMarkdownBuilderを実装 20 • 見出し作成 (header): 指定されたレベルの見出しを追加 • HeaderLevelでプレフィックス(#の数)を制御 •

    テキスト追加 (text): 通常のテキストを追加 • 箇条書き (uli): インデント付きの箇条書き項目を追加 • IndentLevelでインデント量を制御 • 改行 (newline): 明示的に改行を挿入 • ビルド (build): Markdownテキストを文字列として返す 学び②:設計で意識した責務分離と拡張性
  4. 責務分離の考え方とその効果 • 関心事に基づいて整理する • 単にコードを分割するのではなく、「何をする処理なのか」という関心毎で分ける • 抽象度のレベルを揃える • 全体構造では「何をしているか」を示し、詳細は別の場所に隠蔽する •

    変更の影響範囲を限定する • 1つの責務が明確になると、変更時に外の部分への影響を最小限に抑えられる 何を学んだのか 33 学び②:設計で意識した責務分離と拡張性
  5. • タスクの優先順位調整 • 何を基準に判断したか • 限られた時間での判断 • チーム全体として納得した状態で取り組むためのコミュニケーション • 新卒でも意見を気軽に伝えられる機会がある

    • 何を基準に取捨選択したのかは常にチーム全体に共有 解決策:タスクの優先順位を調整し、取り組むことを絞る 41 学び④:意思決定とコミュニケーション
  6. チームで認識を合わせながら機能の取捨選択をして開発を進めること • 意思決定プロセス • 新卒でも意見を言える環境 • 技術的な制約を踏まえた提案の仕方 • やらないことを決める判断 •

    理想の実現と工数のトレードオフ • 限られた時間での現実的な判断 何を学んだのか 42 学び④:意思決定とコミュニケーション
  7. • ユーザー視点を持つ • ユーザーが普段どのような状態で働いているのかを深く想像する • 認識を統一できる • 曖昧さを残さず、具体例を使って早期に認識のズレを解消する • コミュニケーションを円滑にできる

    • チーム内外で情報を透明にし、信頼関係を築きながらプロジェクトを進める ユーザーが満足するプロダクトを作れるエンジニアを目指す 46 今後の目標