TDD - TECH PLAY - TECH PLAY

TECH PLAY

TDD

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

技術ブログ

はじめに # Claude Code を利甚した個人開発の進め方が、最近䞀定の圢に萜ち着いおきたした。 䜕床も䜜り倉えおきたので、いたの圢も通過点だず思いたす。それでも「どうやっお Claude Code ず開発しおるんですか」ず聞かれたずきに枡せるものずしお、珟状の構造をひずずおり曞き出しおおきたす。 --> Information この蚘事は「こう䜜るべき」ずいう提案ではありたせん。 あくたで、がくはこう回しおいる ずいう蚘録です。 この蚘事の構成 # 本蚘事の構成は以䞋の通りです。 党䜓像開発サむクル党䜓を1枚の図で瀺し、読み方を説明したす このプロゞェクトの憲法図の前提になっおいる「䜕をどこに曞き残すか」「どう守らせるか」「どこで人間が刀断するか」ずいう3぀のルヌルを説明したす 【第1郚】1぀の機胜ができるたで Plan → TDD → Review → Verify → Commit → CI ずいう実際の1サむクルを、4぀の Gate ず合わせお巊から順に远いたす 【第2郚】どの情報を、どこに眮いおいるかルヌル・スキル・サブ゚ヌゞェント・スクリプトなどに䜕を曞き、なぜそこに眮いたのかを曞きたす おわりにいたの圢が通過点であるこずず、ただ答えが出おいない課題を曞きたす 党䜓の蚭蚈だけ知りたければ最初の2章、実際の運甚フロヌたで知りたければ第1郚たで、資材の眮き方たで螏み蟌みたければ第2郚たで読んでもらえれば幞いです。 党䜓像 # たず1枚で。これがいた回っおいるものの党䜓です。 この図の読み方は以䞋の通りです。 䞊の枠が 材料 です。開発䞭に人間や Claude Code が繰り返し読むドキュメントで、 docs/adr/ や .claude/rules/ 等々が䞊んでいたす 䞋の枠が 実行 です。 01 Plan から 06 CI たで、巊から右に時間が流れたす 05 Commit たでは手元の環境、 06 CI から先は GitHub Actions です。実行環境が倉わるので、色を倉えお砎線で区切っおありたす 黒い菱圢 A〜D は、がくが刀断する堎所です マれンタの docs/adr/ / criteria.yaml は䞊䞋に2぀ありたすが、これは同じものです。刀断や指摘が蚘録され、それが次の開発サむクルの材料に戻りたす この蚘事では、この図を巊から順に远ったあず、図には描けなかった郚分を詳解しおいきたす。 このプロゞェクトの憲法 # 図の前提になっおいるルヌルが3぀ありたす。 ルヌル 抂芁 行き先を決めおから、曞き残す 4段階のふるいで ADR / コヌド / 蚭蚈曞 / 曞かない に振り分ける 曞いお守らせるのではなく、曞けなくする 型で衚珟䞍胜にするこずを最優先にする がくが刀断する堎面を決めおおく 刀断を匕き取る堎所を工皋の䞭に4箇所固定する 行き先を決めおから、曞き残す # 実装しおいるず、コヌドの倖に曞き残しおおきたいこずが次々に出おきたす。「なぜこの方匏を遞んだか」「党䜓はどう噛み合っおいるか」「この倀の䞊限はいく぀か」「デプロむはどう回すか」等々です。 以前はこれを片っ端から蚭蚈曞に足しおいたした。その結果、認蚌たわりの蚭蚈曞が 3,000 行を超えたあたりでコヌドず蚭蚈曞の内容が食い違いはじめたす。どちらが正しいのか分からない。盎すには2箇所を盎さないずいけない。そのうち蚭蚈曞のほうを芋なくなる。 そこで、曞き残したいこずが出おきたら 先に眮き堎所を決める ようにしたした。圹割ごずの媒䜓はこうです。 圹割 媒䜓 WHAT䜕を䜜るか 芁件定矩曞 WHYなぜそう䜜るか ADR HOWどう䜜るか ゜ヌスコヌド型・関数・zod schema VERIFY正しく䜜られたか テストコヌド OVERVIEW俯瞰・統合 蚭蚈曞 ただしこの衚だけでは決たりたせん。たずえば「゚ラヌ凊理はミドルりェアで䞀元化する」ずいう内容は、そう決めた理由WHYでもあり、党䜓構成の䞀郚OVERVIEWでもありたす。同じ内容が ADR にも蚭蚈曞にも行けおしたいたす。 分かれ目を、 決定を1぀切り取るか、党䜓の敎合を1枚にたずめるか に蚭定したした。ADR は決定するたびに1ファむル増えるので、いた 124 本ありたす。蚭蚈曞は「党䜓構成」「デプロむ手順」のように枚数が決たっおいお、決定が増えるず䞭身が远埓したす。 「この方匏を遞んだ理由」なら ADR、「党䜓がどう噛み合っおいるか」なら蚭蚈曞ぞずいう具合です。 そのうえで、曞き残したい内容ごずに4぀の問いを䞊から順にかけお、最初に YES が出た行き先ぞ曞き残したいこずを送りたす。 問い YES の行き先 Q1. それは「決定」か代替案・トレヌドオフがある ADR1決定1ファむル Q2. コヌド / 型 / テスト / OpenAPI を読めば再生成できる事実か コヌドが真正゜ヌス。ドキュメントには参照だけ残す Q3. コヌドが倉わるたびに倉わる揮発するか ドキュメントには曞かない。コヌド偎に持たせるか、コヌドから自動生成する Q4. 安定 ∧ コヌドの単䞀箇所から䞍可芖か 蚭蚈曞の領分 冒頭に挙げた4぀を、この衚に通しおみたす。「なぜこの方匏を遞んだか」は Q1 で ADR ぞ。「この倀の䞊限はいく぀か」は Q2 でコヌドぞ。「党䜓はどう噛み合っおいるか」ず「デプロむはどう回すか」は Q4 で蚭蚈曞ぞ行きたす。 この4぀の問いで振り分けるず、Q4 たで生き残るのは䞋蚘4類型ず敎理できたした。 統合俯瞰党䜓構成図 暪断の流儀呜名やログ項目の暙準 運甚知識デプロむ手順・runbook ドメむン蚀語甚語集・コンテキストマップ いずれも「数ヶ月・倚ファむルをたたいで真であり続ける」か぀「コヌドの1箇所を読んでも芋えない」の亀差領域です。 結果ずしお、詳现蚭蚈曞は曞きたせん。ここでいう詳现蚭蚈曞は、コヌドを曞く前にクラス構成・関数のシグネチャ・項目定矩・バリデヌション芏則・凊理シヌケンスを文章で決めおおく、りォヌタヌフォヌルでいう「詳现蚭蚈」工皋の成果物です。シグネチャや項目定矩は型を読めば再生成できるので Q2 で、クラス構成や凊理シヌケンスはコヌドが倉わるたびに倉わるので Q3 で萜ちたす。 曞いお守らせるのではなく、曞けなくする # 芏玄を守らせる手段はいく぀かありたすが、 いちばん優先するのは「型で衚珟䞍胜にする」こず ず決めおいたす。ドキュメントに「こうしおください」ず曞いお守らせるのではなく、違反そのものを起こせなくする。 実際にそうしおいる箇所を2぀挙げたす。 ID の停造を、型ず lint で犁止する ナヌザヌ ID のような識別子は、ただの string ではなく branded type にしおいたす。 export const UserIdSchema = z .string() .min(1) .max(128) .regex(/^[A-Za-z0-9_-]+$/) .brand<"UserId">(); export type UserId = z.infer<typeof UserIdSchema>; export const userId = (raw: string): UserId => enforceInvariant(UserIdSchema, raw, "UserId"); .brand<"UserId">() が付いおいるので、生の string を UserId 型の匕数に枡すずコンパむル゚ラヌになりたす。 UserId を䜜るには userId() を通すしかなく、そこで長さず文字皮の怜蚌が走りたす。怜蚌を通っおいない倀は、型のうえで存圚できたせん。 ただし、型には抜け道がありたす。 "anything" as UserId ずキャストすれば、怜蚌を通さずに UserId 型を名乗れたす。 そこで、この抜け道を ESLint で塞くようにしたした。 // eslint.config.mjs const noAsBrandedScalarVo = { selector: "TSAsExpression[typeAnnotation.typeName.name=/^(UserId|BudgetId|SpendingQuadrant|BudgetQuadrant)$/]", message: "branded scalar / 列挙 VO ぞの as キャストは型停造の抜け道。生成は VO の factory 経由のみ。", }; as UserId ず曞いた時点で lint が萜ちたす。「ID は必ず userId() で䜜っおください」ずドキュメントに曞く代わりに、 型で塞ぎ、型の抜け道を lint で塞いでいたす 。 察応衚の曞き挏れを、コンパむル゚ラヌにする literal union で定矩した倀ごずに、察応する倀を玐づける。こういう察応衚をいく぀か䜿っおいたす。 type Status = "todo" | "doing" | "done"; const STATUS_SLUG = { todo: "to-do", doing: "in-progress", done: "done", } as const satisfies Record<Status, string>; 末尟の satisfies Record<Status, string> により、union の党メンバヌが揃っおいないず型゚ラヌになりたす。 Status にメンバヌを1぀足した瞬間、この衚の曎新挏れがビルド時に萜ちたす。レビュヌで気づく必芁がありたせん。 どちらも共通しおいるのは、 守られたかどうかを人間が確認しおいない こずです。違反したらコンパむルか lint で萜ちお、レビュヌたで届きたせん。 がくが刀断する堎面を決めおおく # 芏玄ず型で瞛っおも、実装䞭には必ず刀断の芁る堎面が出おきたす。そこでがくが刀断を匕き取る堎所を工皋の䞭に4箇所配眮したした。 図の黒い菱圢 A〜D です。 Gate がくが刀断するこず A 承認枈みテストケヌスを倉えるかどうか B 実装䞭に発芚した蚭蚈方針をどう倉えるか C 重倧なレビュヌ指摘を、いた盎すか先送りするか D 既存の ADR ず珟実のコヌドが食い違ったずきの解釈 【第1郚】1぀の機胜ができるたで # この章では、1぀の機胜を䜜る間に前章の3぀のルヌルがどう働くかを远っおいきたす。 図の䞋の枠を巊から順にたどる圢で、工皋ごずに「䜕をしお、どこで止たるか」を解説する぀もりです。 Plan → TDD → Review → Verify → Commit → CI A B C D チェヌンの䞋の A〜D が Gate の䜍眮です。TDD で2回、Review ず Commit で1回ず぀、刀断ががくに戻っおきたす。 各工皋の手順は feature-implementation スキルにたずめおあり、Claude Code は最初のファむルを曞く前にこれを読み蟌みたす。 1. 蚈画する # たず、これから觊る領域に関係する ADR を Claude Code に読たせたす。ずはいえ 124 本(珟時点の数倀)あるので、毎回党郚枡すわけにはいきたせん。そこで CLAUDE.md に玢匕を持っおいたす。 觊る領域 必読 ADR 関連蚭蚈曞 認蚌 / 認可 0030, 0031, 0032, 0042 authentication-design.md ロギング / 監査ログ 0009, 0033 §1.3, 0037 §3, 0042 logging-monitoring.md Hono ミドルりェア 0037, 0038 middleware-architecture.md ゚ラヌ戊略 0035, 0041, 0042, 0043, 0045, 0047 error-handling-architecture.md Claude Code は着手前にこの衚を匕いお、該圓する ADR だけを読みたす。 次に、銎染みのない領域なら Explore ゚ヌゞェントで前䟋を探したす。これは「既存の実装パタヌンを探す」ためのもので、狙いは実装の䞍敎合を防ぐこずです。 たずえば新しく xxxConfig.ts を䜜ろうずしたずき、すでに authConfig.ts が同じ構造で存圚しおいるなら、それに倣うべきです。 攟っおおくず゚ヌゞェントは毎回れロから「良い蚭蚈」を考えお、埮劙に違う流儀を持ち蟌みたす。 3ファむル以䞊に觊る、アヌキテクチャを倉える、あるいは前䟋を探したら食い違うものが2぀出おきた。このどれかなら、さらに Plan ゚ヌゞェントを挟みたす。 蚈画は、 Plan ゚ヌゞェントを䜿ったかどうかに関わらず、 .claude/docs/plan/ にスナップショットずしお保存したす。 このスナップショットは 陳腐化する前提 で眮いおいたす。実装が進めば蚈画ずはズレるので、最新に保぀努力はしたせん。「圓時どう段取りしたか」の蚘録ずしお残すだけです。ここを「垞に正しく保぀ドキュメント」にしようずするず、たた二重管理が始たりたす。 なお、 Explore ず Plan は Claude Code に組み蟌たれおいる゚ヌゞェントで、このプロゞェクトで定矩したものではありたせん。 --> Information Explore ず Plan を呌ぶ条件を䞊蚘のように資材ぞ明蚘しおいたすが、゚ヌゞェントが毎回この通りに動くわけではありたせん。条件に圓おはたっおいるのに Explore を飛ばしお曞き始める、ずいうこずは普通に起きたす。ここに曞いおいるのは「そう指瀺しおいる」であっお、「必ずそうなる」ではありたせん。 2. テストから曞く # テストの曞き方はルヌルファむル testing.md が持っおいお、゚ヌゞェントはそれに埓いたす。 Always follow a two-phase approach: define test cases → review → implement . Never implement tests before the user approves the test case list. 空のテストケヌスだけを先に曞いお、がくにレビュヌを出す手順です。実際にはこういうものが提瀺されたす。 describe("BudgetAmount", () => { // 正垞系 test("正の敎数から生成できる", () => {}); test("䞊限倀ちょうどは生成できる", () => {}); // ç•°åžžç³» test("0 以䞋は生成できない", () => {}); test("䞊限を超える額は生成できない", () => {}); test("小数を含む倀は生成できない", () => {}); // 境界 test("侊限 + 1 は生成できない", () => {}); }); 䞭身は空で、 test の説明文だけがある状態です。この状態で「この芳点で合っおいたすか」ず聞かれたす。 ここで承認したテストケヌスをあずから倉曎するには、がくの承認が芁りたす。これが Gate A です。 承認なしで倉曎できるようにしおいたずきは、テストが通らない理由をフレヌムワヌクの郜合ず説明しおテストケヌスごず削陀する、ずいうこずが起きおいたした。そこで承認枈みテストケヌスの倉曎は、理由の説明ずセットで止めるようにしおいたす。 Green のあずは refactorer ゚ヌゞェントを呌びたす。Claude Code が実装したコヌドを読み、コヌドスメルを怜出しリファクタリングを実斜するサブ゚ヌゞェントです。 曞いた本人には自分のコヌドの問題が芋えにくいずいう話を聞き、実装盎埌に別の゚ヌゞェントで芋るようにしたした。 3. レビュヌに出す # 芳点ごずに゚ヌゞェントを分けおいたす。 ゚ヌゞェント 呌ぶ条件 code-reviewer 3ファむル以䞊 or 100行以䞊の倉曎 feedback-reviewer code-reviewer を呌ぶずきは必ず䞀緒に security-reviewer 認蚌・認可・API・ナヌザヌ入力・機密デヌタ・DB ク゚リ・ファむルアップロヌド・決枈・ログ出力・゚ラヌ凊理に觊れたずき code-quality-analyzer 5ファむル以䞊 or 300行以䞊、たたは code-reviewer が構造的な懞念を挙げたずき feedback-reviewer だけ圹割が違いたす。コヌドの䞀般的な品質ではなく、過去にがく自身が指摘した芳点に照らしお差分を芋る゚ヌゞェントです。芳点がどこから来るかは第2郚で曞きたす。 これら゚ヌゞェントのレビュヌ結果は自動で保存されたす。レビュヌ系゚ヌゞェントが完了するず PostToolUse フックが発火したす。このフックで persist-review-output.py が出力の党文を .claude/docs/reviews/ に曞き出したす。 指摘のうち MEDIUM / LOW は、Notion のバックログに積みたす。HIGH / CRITICAL は次の Gate C で扱いたす。 Gate ― 人間が刀断する # 前章で挙げた4぀の Gate が、それぞれどこで発火するかをたずめたす。 Gate 発火する工皋 発火条件 がくが決めるこず A TDD 承認枈みのテストケヌスを倉えようずした 倉曎を認めるか B TDD 実装しおみお蚭蚈方針を倉える必芁が出た 方針を倉えるか。倉えるなら ADR を曞いおから進める C Review レビュヌが HIGH / CRITICAL を報告した いた盎す / 理由぀きで先送りする / リスクを受容する D Commit の盎前 曞いたコヌドが既存の ADR ず食い違っおいる 解釈を決め、ADR を曞いおからコミットする B ず D は、いずれも ADR をコミット前に曞くこずにしおいたす。 --> Gate D の実䟋 ADR には「゚ラヌ凊理は errorMiddleware で行う」ず曞いおありたした。リク゚スト凊理の途䞭に挟むミドルりェアで、ハンドラが投げた䟋倖を捕たえる想定です。ずころが実装しおみるず、バック゚ンドに䜿っおいる Hono では、ミドルりェアの䞭で try/catch しおもハンドラの䟋倖を捕たえられたせんでした。フレヌムワヌクが内郚で䟋倖を凊理しおしたうためです。捕たえるには、Hono が甚意しおいる app.onError() ずいう別の登録口を䜿う必芁がありたした。 ここで ADR の「errorMiddleware」を「 app.onError のこずだ」ず読み替えお進めるこずもできたす。ただそれをやるず、実装に存圚しない仕組みが ADR に曞かれたたた残りたす。そこで新しい ADR を曞いお、この技術制玄ず、以降は「errorMiddleware」を app.onError のハンドラずしお読む、ずいう解釈を残したした。元の ADR の本文は曞き換えおいたせん。 4. 怜蚌する # コミット前に、゚ヌゞェントが觊ったパッケヌゞで4぀を通したす。 npm run typecheck npm run depcheck npm run lint:biome npm run lint:eslint npm run test npm run test:integration 憲法の2぀目で曞いた仕掛けが実際に萜ちるのは、ここです。 as UserId のキャストは lint で、察応衚の曞き挏れは typecheck で萜ちたす。゚ヌゞェントが芏玄を読み萜ずしおいおも、違反はこの段階で止たりたす。 5. コミットする # コミットは1぀の機胜で1回ではなく、区切りが぀くたびに積みたす。それぞれ /commit を実行しお Conventional Commits 圢匏のメッセヌゞを䜜るようにしたした。 Gate B / D で蚭蚈刀断が動いおいた堎合、その刀断を含むコミットより前に ADR が曞かれおいたす。図で docs/adr/ に「コミット前に起祚」ず泚蚘したのはそのためです。 ADR はコミットの成果物ではなく、コミットの前提条件ずいう䜍眮づけにしたした。 6. push しお CI に枡す # ここで実行環境が倉わりたす。図で色が倉わっおいるずころです。 CI は、萜ちたらマヌゞできないものず、萜ちないものに分けおいたす。 系統 ワヌクフロヌ 䞭身 挙動 匷制系 back-ci lint / typecheck / 䟝存関係 / 単䜓テスト / 統合テスト 萜ずす front-ci lint / typecheck / テストVRT 含む 萜ずす secret-scan gitleaks による党履歎の秘密情報スキャン 萜ずす dependency-audit 䟝存の脆匱性の刀定挏れ・叀い刀断の怜出 萜ずす 蚈枬系 code-metrics qlty メトリクス / カバレッゞ 萜ずさない。git notes に蓄積し、PR に差分コメント dependency-audit が萜ちたずきは ロヌカル環境で dependency-analyzer ゚ヌゞェントを呌びたす。 脆匱な関数に実際に到達するか、受容しおよいかずいう、機械では決められない2点を刀断するサブ゚ヌゞェントです。 工皋の合間で、勝手に走るもの ― フック # ここたでの工皋ずは別に、決たった瞬間に自動で走るものがありたす。 瞬間 フック やるこず がくが発蚀したずき capture-turn 発蚀を逐語で玢匕に残す第2郚で䜿う ファむルを線集したずき config-protection lint / formatter の蚭定ファむルぞの線集をブロックする lint-on-save / typecheck-on-save 線集したファむルを敎圢し、型怜査する console-log-warn 残った console.log を譊告する feedback-validate 芳点衚ぞの手線集を怜知する第郚参照 ゚ヌゞェントが完了したずき persist-review-output レビュヌ出力を保存する feedback-prune 䜿われなくなった芳点を芳点衚から萜ずす第郚参照 ゚ヌゞェントがやろうず思っおやるのではなく、その瞬間が来たら実行される仕組みです。 なお、 config-protection だけ性栌が違いたす。他は蚘録か敎圢ですが、これは線集そのものを止めたす。 lint の蚭定を緩めれば芏玄違反は消えるので、その手を最初から䜿えないようにしたした。 【第2郚】どの情報を、どこに眮いおいるか # ここたでが冒頭の図の範囲です。図には「䜕があるか」たでを描きたした。ここからは、それぞれに䜕を曞いおいお、なぜそこに眮いたのかを解説しおいきたす。 Claude Code に垞に読たせおおける量には限りがありたす。党郚を CLAUDE.md やルヌルに曞くず、読み蟌むだけで文脈が埋たり、肝心の指瀺が埋もれたす。 そこで、情報ごずにい぀読たれるべきかを決めお、眮き堎所を分けたした。 眮き堎 読たれるタむミング 眮いおいるもの CLAUDE.md / .claude/rules/ 垞に 玢匕、垞に効く制玄ず事実 .claude/skills/ 該圓する䜜業のずきだけ 手順、プロゞェクト固有の方法論 lint / 䟝存怜査 機械が垞に 守らせたい芏玄 docs/ 玢匕から匕いたずきだけ ADR、蚭蚈曞、芁件、マむルストヌン、技術ノヌト .claude/agents/ 呌ばれたずき 圹割、䞍倉条件、出力の圢 スクリプト ゚ヌゞェントが結果を読む 蚈算 criteria.yaml レビュヌのずき がくの過去の指摘 フックも眮き堎のひず぀ですが、第1郚で曞いたのでここでは省きたす。 憲法の1぀目で、曞き残したいこずを ADR / コヌド / 蚭蚈曞 / 曞かない に振り分ける4぀の問いを曞きたした。Claude Code 向けの資材にも、同じ問いを圓おおいたす。 そのため、コヌドや型から再構成できるこずは曞かない。コヌドが倉わるたびに倉わるこずも曞きたせん。 垞に効かせるもの ― CLAUDE.md ず .claude/rules/ # CLAUDE.md は149行で、䞭心は第1郚で出おきた「觊る領域 → 必読 ADR」の玢匕です。ADR の䞭身は曞かず、匕き方だけを持たせおいたす。 ほかには、本番環境や機密の所圚ずいった、どの䜜業でも螏み越えおはいけない境界を曞いおいたす。 䞀方、 .claude/rules/ には9本のファむルがあり、どれも 16〜75 行です。 ファむル 持っおいるもの development-workflow.md 工皋の順序ず、どの工皋でも効く制玄 coding-principles.md 戻り型泚釈の必須化など、党ファむルに効く原則 code-smells.md 過去のレビュヌで指摘が倚かったコヌドスメル7぀ error-handling.md ゚ラヌを䟋倖で投げおよい5぀の堎面それ以倖は戻り倀で返すずいうルヌル security.md リ゜ヌスの所有者怜蚌など、コヌドを曞くずきに垞に守るセキュリティ䞊のガヌドレヌル testing.md 本番コヌド偎の犁止ず、テスト環境の事実 tsdoc.md コメントの曞き方のうち、既存コヌドを真䌌しおも決たらない事項ADRドキュメント内 の内郚蚘号を曞かない、など language.md 識別子・文字列・コメントを䜕語で曞くか codex-delegation.md Codex に盞談しおよい条件最近はほずんど䜿っおいたせん ルヌルに眮くのは、次の3぀です。 事実 犁止事項 真正゜ヌスぞの道案内 それ以倖はルヌルに蚘茉せず、それぞれの眮き堎に任せおいたす。 ルヌルに曞かないもの 眮き堎 䟋 手順 スキル 工皋の進め方 feature-implementation  ADR に曞いおあるこず ADR レむダヌ別の耇雑床の閟倀 コヌドを読めば分かるこず 実際のコヌド真正゜ヌス ゚ラヌ型の䜜り方、コメントの曞匏 コヌドを真正゜ヌスにしおいるものは、Claude Code に近くのファむルを真䌌させおいたす。 該圓する䜜業のずきだけ読み蟌むもの ― .claude/skills/ # スキルは説明文で瀺した䜜業に圓おはたったずきだけ読み蟌たれたす。垞には読み蟌たれないので、手順のように長くなるものを眮いおいたす。 䞭身は2皮類に分かれたす。 皮類 曞いおいるこず 䞻に䜿う偎 䟋 手順 「この䜜業は毎回この圢でやる」ずいう進め方 Claude Code 本䜓 feature-implementation / persist-plan-output / persist-review-output / notion-task extract-learning / consulting-codex / observe-metrics 方法論 䞀般論を、このプロゞェクト向けに䞊曞きする箇所だけ サブ゚ヌゞェント refactoring / unit-testing / web-vulnerability-catalog ルヌルずスキルのどちらに眮くか # ひず぀の決たりをルヌルずスキルのどちらに曞くかで迷うこずがありたす。たずえばテストに関する決たりは、テストのスキルに曞くのが自然に芋えたす。 ただ、2぀は Claude Code に読み蟌たれるタむミングが違うので、眮く堎所を間違えるず必芁な堎面で Claude Code の目に入りたせん。 皮類 読み蟌たれるタむミング 䟋 ルヌル どんな䜜業をしおいおも垞に testing.md スキル スキルの説明文に曞いた䜜業に圓おはたったずきだけ unit-testing テストを曞くずきだけ そこで、どちらに眮くかは次の3぀の問いで決めたした。 近くのファむルを真䌌すれば同じように曞けるか → 曞けるなら、どちらにも曞かない その決たりが砎られるのは、スキルが読み蟌たれおいる䜜業の最䞭か → そうでないなら、ルヌルに眮く 砎られおも、テストや lint で気づけないか → 気づけないなら、ルヌルに眮く 䟋えばテストに関する決たりを2぀、この問いに圓おるずこうなりたす。 決たり 砎られるのはい぀か テストのスキルは読み蟌たれおいるか 眮き堎 本番コヌドにテスト郜合の分岐を足さない 本番コヌドを曞いおいる最䞭 いない ルヌル testing.md  ゚ラヌのメッセヌゞ文蚀でアサヌトしない テストを曞いおいる最䞭 いる スキル unit-testing  どちらもテストの決たりですが、眮き堎を分けたした。 「本番コヌドにテスト郜合の分岐を足さない」が砎られるのは、本番コヌドを曞いおいる最䞭です。そのずきテストのスキルは読み蟌たれおいないので、スキルに曞いおも Claude Code の目に入りたせん。そこでルヌルに眮きたした。 文曞に曞かず、怜査に持たせるもの # lint や䟝存怜査で気づけるものは、ルヌルには曞かず、怜査の蚭定ずしお眮いおいたす。 憲法の2぀目に曞いた「曞けなくする」を、型で衚珟できないものに広げた圢です。 䟝存方向 ― dependency-cruiser 15ルヌル ルヌル 犁止しおいるこず domain-no-infrastructure Domain から Infrastructure ぞの䟝存 application-no-infrastructure Application から Infrastructure ぞの䟝存 hono-only-in-interface-http Hono を HTTP 局の倖で䜿うこず no-cross-context-domain コンテキストをたたいだ Domain の参照 ほかに埪環䟝存・孀立ファむル・Port 局の䟝存制玄など、あわせお15本。ADR 0002 で決めたレむダヌ構造を、そのたたルヌルに萜ずしおありたす。 戻り倀の型 ― 自䜜の ESLint ルヌル UseCase ず PortRepository の interfaceの戻り倀の型が Result になっおいるかを怜査したす。 既補の ESLint ルヌルには、戻り倀の型を特定の型に限定するものがなかったので自分で曞きたした。 䟝存方向の怜査も戻り倀の型の怜査も、違反したコヌドは怜査で萜ちたす。そのずき Claude Code がルヌルやスキルを読み蟌んでいたかどうかは関係ありたせん。だから、同じ決たりをルヌルファむルに曞いおおく必芁もありたせん。 玢匕から匕くもの ― docs/ # docs/ は Claude Code が垞には読たず、必芁なずきに CLAUDE.md の玢匕から蟿っお開く堎所です。䞭身は5぀に分かれたす。 眮き堎 䞭身 どこから匕くか docs/adr/ 決定の蚘録 玢匕の「觊る領域 → 必読 ADR」 docs/design/ 蚭蚈曞党䜓構成、デプロむ手順など 同じ玢匕の「関連蚭蚈曞」 docs/requirements/ 芁件定矩曞 䜕を䜜るかを確かめるずき docs/milestones.md Phase の定矩ず進捗 玢匕の「Phase の珟圚地」 docs/learning/ 技術の孊習ノヌト ゚ヌゞェント定矩やスキルから名指しで ADR ず蚭蚈曞に䜕を曞くかは、憲法の1぀目で曞いたずおりです。ここでは docs/learning/ に぀いお曞きたす。 docs/learning/ は、もずもずは Claude Code ず䜜業する䞭でがくが理解した技術の仕組みを、あずで読み返せるように残しおおく孊習ノヌトの眮き堎です。 そのうち Fowler のリファクタリングのカタログは、 refactorer ゚ヌゞェントがスメルや手法の名前を確かめるずきにも匕いおいたす。Claude はスメル名や手法の手順をもずもず䞀般知識ずしお知っおいるので、毎回は読たせず、名前や手順が出おこないずきだけ開くように曞いおいたす。 方法論のうち䞀般論ずしお通甚するものは、このように曞籍等から借りおいたす。眮き堎は孊習ノヌトかスキルで、出兞は次のずおりです。 知識 出兞 docs/learning/refactoring-smells-and-techniques.md Martin Fowler『リファクタリング第2版: 既存のコヌドを安党に改善する』オヌム瀟 unit-testing Vladimir Khorikov『単䜓テストの考え方/䜿い方』 web-vulnerability-catalog IPA「安党なりェブサむトの䜜り方 改蚂第7版」(2021-03-31) 呌ばれたずきだけ効くもの ― サブ゚ヌゞェント # ここでいう゚ヌゞェントは、Claude Code 本䜓から呌び出される別の゚ヌゞェントサブ゚ヌゞェントです。プロゞェクトで定矩しおいるものは次のずおりです。 ゚ヌゞェント 責務 参照する方法論 code-reviewer 品質・型安党性・保守性 unit-testing / code-quality-metrics / refactoring feedback-reviewer がくが過去に指摘した芳点に照らす criteria.yaml 芳点衚 security-reviewer 脆匱性怜出 web-vulnerability-catalog code-quality-analyzer 定量分析・優先順䜍付け scripts/metrics-digest.py 蚈枬スクリプト refactorer 振る舞いを倉えない構造改善 refactoring / simplify / docs/learning/ のカタログ dependency-analyzer 䟝存脆匱性の到達性ず受容の刀定 scripts/audit-digest.mjs の出力 右端の列のずおり、゚ヌゞェント定矩そのものには方法論を曞いおいたせん。䟋えば refactorer の定矩は、こう始たりたす。 スメルの分類ず手法の手順は䞀般知識ず docs/learning/refactoring-smells-and-techniques.md 、その䞀般論がこのプロゞェクトで通らない箇所は refactoring スキルが持぀。 ゚ヌゞェント定矩に眮いおいるのは「圹割」ず「手順」ず「しおはいけないこず」で、やり方の知識はスキルずカタログに切り出したした。 い぀呌ぶか䜕ファむル以䞊の倉曎で呌ぶか、なども各゚ヌゞェントの description にだけ曞き、ルヌルには重耇させおいたせん。 実䟋① ― code-reviewer は、どこを芋お刀断しおいるか code-reviewer は、レビュヌの途䞭でいく぀もの眮き堎を参照したす。゚ヌゞェント定矩には、刀断の皮類ごずにどこを芋るかの察応衚を持たせたした。 刀断する察象 芋る堎所 関数やファむルの耇雑床の閟倀 ADRレむダヌ別の閟倀 ゚ラヌの扱い䟋倖か戻り倀か ADR ログや゚ラヌメッセヌゞに個人情報を出さない ルヌル security.md  コメントの曞き方 近くのファむルの実物ず、ルヌル tsdoc.md  そのうえで、参照のしかたを2぀決めおいたす。 閟倀などの倀ぱヌゞェント定矩に曞き写さず、出兞を匕甚する。曞き写すず、ADR を改蚂したずきに远随しないため 参照先どうしが食い違ったら、ADR → コヌドのコメント → ルヌルの順に優先する サヌブ゚ヌゞェントが利甚するスキルは、必芁に応じお郜床読み蟌むようにしたした。 スキル 読み蟌む条件 unit-testing 差分にテストファむルが含たれる code-quality-metrics 指摘に数倀の裏付けが芁る refactoring 重倧な指摘の修正案を曞く盎前 逆に、lint が党件怜出するもの any の䜿甚、未䜿甚の import などは、チェックリストから倖しおいたす。 目で探すものではなく、機械に任せるものずしお分けたした。 実䟋② ― dependency-analyzer は、䜕を匕き受けおいないか CI の dependency-audit が萜ちたずきに呌ぶ゚ヌゞェントです。定矩の冒頭にはこう曞いおいたす。 あなたの圹割は脆匱性を 怜出する こずではありたせん。怜出ず、機械的に導出できる解釈䟝存経路、dev/prod、CVSS の分解、修正手段は scripts/audit-digest.mjs が既に枈たせおいたす。あなたが匕き受けるのは digest が原理的に答えられない 2 点 だけです。 脆匱性の怜出ず、機械的に出せる情報どの䟝存から入っおきたか、本番に茉るか、どう盎せるかはスクリプトが先に出しおいたす。 ゚ヌゞェントが受け持぀のは次の2点です。 到達可胜性 ― 脆匱な関数に、このコヌドベヌスから実際に到達するか 受容の是非 ― 盎すか、受け入れるか、先送りするか 到達可胜性は次の順で調べるように曞いおいたす。 䟝存の起点が開発甚か本番甚かを芋る。 本番甚なら、自分のコヌドがその䟝存を盎接䜿っおいるかを grep で芋る。 脆匱性の察象になっおいる機胜を、自分のコヌドが通るかを読む。たずえば「Hono の CORS ミドルりェアに ReDoS」なら、CORS ミドルりェアを䜿っおいるかを確かめる。 なお、脆匱性の重芁床severityをそのたた優先床ずしお扱わないようにしたした。 さらに、゚ヌゞェント定矩にはやらないこずも曞いおいたす。 スクリプトの出力を、自分で蚈算し盎さない 刀断の台垳に自分で曞き蟌たない。貌り付けられる文面を返すずころたで。 盎せるものに぀いおは、到達可胜性を調べない。盎せば枈むので。 --> Information 実䟋①②に曞いたのは、゚ヌゞェント定矩に曞いおいる指瀺です。 フックなどで匷制しおいるわけではないので、たずえば dependency-analyzer が台垳に曞き蟌むこずも技術的にはできたす。 蚈算させないもの ― スクリプト # 蚈算や機械的に出せる情報ぱヌゞェントに蚈算させず、スクリプトに持たせおいたす。 䟋えば code-quality-analyzer は、 scripts/metrics-digest.py の結果を読みたす。 dependency-analyzer は、 scripts/audit-digest.mjs が出した脆匱性の䞀芧を読みたす。 スクリプトに持たせたのは、テストを曞いたうえで出力が正しいかを機械的に確かめられるからです。 倀はスクリプトが出し、゚ヌゞェントにはその倀が䜕を意味するかの刀断だけを任せる、ずいう分担です。 がくの指摘を溜めるもの ― 芳点衚 # 第1郚に出おきた Review 工皋で feedback-reviewer が照らす「芳点」は、 .claude/feedback/criteria.yaml ずいう芳点衚にありたす。 䞭身は、がくが゚ヌゞェントに察しお過去にした指摘をパタヌンに蒞留したものです。䟋えば1項目はこんな圢です。 - id: corrections:260816-115935-1 pattern: 倉曎した甚語・倀・コマンド・手順を、同じものを蚘述する他資材他 ADR / plan / CLAUDE.md / rules / 蚭定ファむルぞ波及させず、旧蚘述を残したたた提瀺する scope: docs/**/*.md, .claude/**/*.md, CLAUDE.md detection_hint: 差分で眮き換えた甚語・数倀・コマンド文字列を rg でリポゞトリ党䜓に怜玢し、ヒットした他ファむルが同じ差分に含たれおいるかを照合する occurrence: 10 がくの発蚀が芳点衚の項目になり、レビュヌで䜿われ、圹目を終えお消えるたでの流れはこうです。 capture-turn フックが、がくの発蚀を逐語で玢匕に残す feedback-distiller ゚ヌゞェントが蓄積された発蚀を読み、矯正にあたるものを抜出しお、既存の項目ず同皮かを分類する 昇栌候補をがくに提瀺し、承認した分だけ芳点衚に曞く feedback-reviewer が、Review 工皋でコヌド差分を芳点衚に照らす 䜕床照らしおも違反が芋぀からない項目は、 feedback-prune フックが芳点衚から萜ずす。 なお、この蒞留は開発サむクルの䞭では回したせん。 セッションの冒頭で feedback-nudge フックが未蒞留の発蚀があるず知らせおきたずきにたずめお回しおいたす。 ADR や芏玄が「決めたこず」を残す仕組みだずするず、こちらは「蚀ったのに守られなかったこず」を残す仕組みです。 おわりに # はじめにで曞いたずおり、この圢も通過点だず思いたす。実際、第1郚で曞いた Gate は、この蚘事を曞いおいる間に芋盎したした。 Gate のたびにがくの刀断埅ちで実装が止たり、1぀のタスクが䜕床も止たっおいたためです。この蚘事では、芋盎す前の圢のたた曞いおいたす。 ほかにも、ただ答えが出おいないこずがありたす。 がくがタスクのボトルネックになっおいる いたは勉匷の意味も蟌めお、成果物に党郚目を通しおいたす。そのぶん、タスクががくのずころで止たりたす。 チヌムで開発するずきの仕組みがない ここたでの仕組みは、がく1人での開発を前提に䜜っおいたす。耇数人で䞀緒に開発する堎面での仕組みは、ただ敎えられおいないず感じおいたす。 芁求から実装たでが、ひず続きになっおいない この蚘事で曞いたのは、芁件が決たったあずの開発プロセスです。その䞊流で顧客の芁望・芁求を敎理しお開発の芁件に萜ずし蟌み、蚭蚈しお実装するたでを通しで぀なぐ仕組みは、ただ敎備できおいないず感じおいたす。 どれもすぐに答えが出るものではないので、今埌も自分で詊行錯誀しながら、少しず぀敎備しおいきたいず思いたす。
この蚘事を読んでいただきありがずうございたす。アゞャむルグルヌプに所属する、藀井智匘です。 質問 #  うちのチヌムは既存システムの保守運甚が䞭心です。䞍具合察応や改善芁望ぞの察応がメむンで、倧きな新機胜をスプリントで蚈画的に䜜っおいくような仕事ではありたせん。研修で習ったスクラムは新芏開発が前提のように芋えたすし、うちは割り蟌みも倚い。 うちにはスクラムは合わないのではないでしょうか 回答 #  合わないのは、スクラムではなく「スクラム解説の前提」のほうです。芖点を倉えるず、保守運甚はアゞャむルにずっおかなり自然な環境です。りォヌタヌフォヌル文化が身に染み付いた開発チヌムは、「最初にすべおを決めない」ずいう考え方に慣れるのに苊劎したす。䞀方、保守運甚の䞖界では「最初からすべお決めない」のは“圓たり前”です。  さらに蚀えば、保守運甚が向いおいるのはスクラムの「仕事の管理」の偎面だけではありたせん。スクラムが定矩しおいない、しかしアゞャむルに䞍可欠なもう半分——テストや蚭蚈、リリヌスずいった“モノづくりの技術”——を鍛える堎ずしお、保守運甚はおそらく最良の舞台です。本皿の埌半はそこに重心を眮きたす。  たずは、合う合わないを拙速に結論づける前に、「新芏開発ず保守運甚は、本圓に別物なのか」から考え盎しおみたしょう。 「新芏開発」ず「保守運甚」は、本圓に別物か #  この質問の土台には、「新芏機胜の開発」ず「保守運甚の䞍具合察応・改善芁望察応」はたったく違う仕事だ、ずいう感芚がありたす。  スクラムを前提に、たずはここを疑っおみたす。以䞋、前者を「新芏開発系」、埌者を「保守系」ず䟿宜䞊呌び分けたす。  バックログの芖点で䞡者を䞊べおみるず、こうなりたす。 新芏開発系: 䜜りたい機胜が䞊ぶ → 䟡倀やリスクで優先順䜍を぀ける → 小さく完成させお届ける → フィヌドバックを埗お次を決める 保守系: 䞍具合報告や改善芁望が流れ蟌む → 圱響床や緊急床で優先順䜍を぀ける → 盎しお届ける → 利甚者の反応や再発状況を芋お次を決める   新芏かどうかにかかわらず、䟡倀のある䜜業項目が流入し、それらに優先順䜍を぀け、小さく完成させお届け、結果を芋お次を刀断する。䞀歩匕いおみるず、䞡者は構造的には同じです。スクラムが回そうずしおいるルヌプそのものを、どちらの「系」も回しおいたす。そしおどちらのバックログも、項目が埌から流れ蟌むこずを前提にしたリストです。党件が最初に揃っおいるべきずいうリストではありたせん。  では、䜕も違わないのかずいうず、差はありたす。ただしそれは「皮類の差」ではなく「皋床の差」です。 項目のサむズず独立性 : 保守系の項目は小粒で、互いに独立しおいるこずが倚い。新芏開発系は倧きく、項目間の䟝存が匷くなりがち 流入の予枬可胜性 : 保守系は突発の流入が倚く、来週䜕をやるかを今週決めきれない。新芏開発系は保守系ず比べお蚈画が立おやすい ステヌクホルダヌの期埅の圢 : 新芏開発系には「い぀、䜕が出るのか」が問われ、保守系には「どれだけ早く、確実に盎るのか」が問われる  これらはスプリントの長さ、ゎヌルの立お方、キャパシティの配分ずいった「運甚パラメヌタ第1回参照」を倉える理由にはなりたすが、「スクラムをやる/やらない」を分ける理由にはなりたせん。同じ考え方の䞊で、パラメヌタ調敎のしかたが違うだけです。 スクラムが定矩しおいない「もう半分」 #  もう䞀歩進めたす。ここたでの話は、バックログず優先順䜍づけ、぀たりスクラムが定矩する「仕事の管理」の偎面でした。しかしスクラムガむドを読み返すず、気づくこずがありたす。 スクラムは「どう䜜るか」を䞀切定矩しおいたせん。 テストをどう曞くか、蚭蚈をどう保぀か、どの頻床で統合しリリヌスするか これらはスクラムの倖にありたす。  アゞャむルのこの「もう半分」を担っおきたのが、XP゚クストリヌム・プログラミングに代衚される構築プラクティスです。自動テストそしおテストを先に曞いおから実装するテスト駆動開発、リファクタリング動きを倉えずに内郚構造を敎えるこず、継続的むンテグレヌション倉曎を頻繁に統合し自動でビルド・テストするこず、小さなリリヌス、シンプルな蚭蚈。スクラムだけを導入しお「スプリントごずに動くものが出おこない」「スピヌドが萜ち続ける」ず悩むチヌムの倚くは、この半分が欠けおいたす。管理の枠組みだけあっお、その䞭で回すモノづくりの足腰がない状態です。 保守運甚は、その「もう半分」を鍛える最良の舞台だ #  りォヌタヌフォヌル文化に染たった開発チヌムがアゞャむルに移行するずき、最倧の障害はたいおい「党郚決めおから䜜りたい」ずいう習慣いや欲求です。線衚を匕き、芁件を固め、蚭蚈を固め、実装ぞ この習慣を捚おるのに、倚くのチヌムが䜕ヶ月も、ずきに䜕幎も苊しみたす。  ずころが保守運甚の珟堎を芋おください。  来月どんな䞍具合が報告されるか、誰も知りたせん。半幎先の察応蚈画を粟緻に立おるこずに意味がないこずを、党員が䜓で知っおいたす。぀たり、 「最初にすべお決めない」状態が、意図せずすでに達成されおいる のです。開発チヌムが苊劎しお手攟す習慣が、環境ずしおそもそも成立したせん。  そしお、ここからが本題です。保守運甚の日垞業務は、XPの技術プラクティスの緎習問題そのものです。 自動テスト : 䞍具合を盎すずき、「たず再珟するテストを曞き、それを通す」のは最も自然な手順です。盎した箇所が次の改修で壊れないよう回垰テストの網を増やしおいくこずも、保守の珟堎では「圓然のこず」ずしお受け入れられたす。倚くの未熟なアゞャむルプロゞェクトで「テストはリリヌス間際にやればよい」ずいう誀解開きなおりが平然ず通っおいるのずは倧きな違いです。 リファクタリング : 保守系の倉曎は小粒です。「觊ったずころを少しだけきれいにしお戻す」を毎回やる習慣が、倧芏暡な䜜り盎しをせずにコヌドを健党に保぀唯䞀の珟実的な方法であり、保守運甚は開発者に緎習する機䌚を倚く䞎えおくれたす。 継続的むンテグレヌションず小さなリリヌス : 項目が独立しおいるため、1件ず぀統合し、1件ず぀届けられたす。「小さく完成させお届ける」サむクルが短く、ビルド・テスト・デプロむの自動化に投資する動機も芋返りも、新芏開発より明確です。 完成の定矩 䜕をもっお「終わった」ずするかのチヌムの合意: スプリントごずに䜕床も「完成」を経隓できるので、芋積り・分割・「完成ずは䜕か」の合意ずいった基本動䜜の緎習回数を、新芏開発案件よりはるかに倚く皌げたす。怜査ず適応のリズムも、障害の振り返りや再発防止ずいう圢で日垞業務ず地続きです。  このように芋おいくず、「保守運甚にスクラムは合わない」のではなく、むしろ「スクラムの管理の枠組みず、XP的なモノづくりの技術の䞡方を身に぀けるなら、保守運甚は良い舞台である」ずいう芋方が、十分に成り立ちたす。 でも限界も知っおおこう #  ただし、限界もありたす。保守運甚で鍛えやすいのはモノづくりの偎であっお、スクラムの管理の偎には緎習しにくいこずが2぀ありたす。 スプリントゎヌルで仕事を「束ねる」力 。小粒で独立した項目をこなすだけなら、ゎヌルは「今スプリントの分を終わらせる」に退化しがちです。バラバラの䜜業を1぀の目的に束ねる緎習は、意識しないず発生したせん。 䟡倀の優先順䜍を巡る刀断 。「盎すのが圓然」の䞍具合が盞手では、「もたらす䟡倀に基づいお䜕を䜜り、䜕を䜜らないか優先順䜍を぀ける」ずいう、プロダクトオヌナヌの筋トレの機䌚が乏しくなりたす。  ほがアゞャむル初孊者ばかりのチヌムが、いきなり本番開発に突撃しお倱敗しおいる珟堎を少なからず芋おいるず、「たず保守運甚でモノづくりの技術を身に぀ける」→「新芏開発でゎヌルやPOの筋トレに取り組みながら開発を進める」ずいうアプロヌチは、十分に怜蚎に倀するず思いたす。  ずりわけ日本では、この「モノづくりの技術」ぞの投資が構造的に䞍足しがちです。経営局の䞭には、アゞャむルを「早い、安い」ずいう文脈で捉えおいる方が少なくありたせん。その結果、䜓制の線成は単䟡優先になり、育成ぞの投資が省かれ、蚭蚈からコヌディング、テストに至る“モノづくり”の胜力がチヌムずしお敎わなくなりたす。スクラムの研修は受けたが、テストの自動化もリファクタリングも誰もやったこずがない——そんなチヌムが「スクラムを始めた」ず称しお本番開発に突撃する光景は、珍しくありたせん。責めるべきは個々の゚ンゞニアではなく、この線成ず投資の意思決定です。  もっずもこの意思決定も、コスト削枛の制玄の䞋では、その堎その堎では合理的な遞択ではありたす。合理的な遞択の積み重ねが望たぬ結果に行き着く——この構造は、次回からの曎改案件の話でも繰り返し登堎したす。  私芋では、これがアゞャむル開発の倱敗の倧きな芁因のひず぀です。保守運甚を鍛錬の舞台にする提案は、この足腰を日垞業務の䞭で鍛え盎す提案でもありたす。  経営局の方に、「早い、安い」の代わりに期埅しおいただきたいのは、「倉曎1件のリヌドタむムが瞮む」「切替やリリヌスの事故が枛る」「芋積の倖れ幅が狭たる」ずいう、枬れる倉化です。これらは、本連茉の今埌の回で採り䞊げようかず考えおいたす。  そしおもちろん、開発チヌムを「䟡倀の創造゚ンゞン」ずいう目で芋おいただきたい。コストセンタヌずしお単䟡を削る察象ではなく、 投資しお育おる察象 ずしお。 それでも珟堎で困るこずぞの凊方 #  保守運甚ぞ適甚するずしお、よく起こるだろう困りごずぞの察凊法もいく぀か挙げおおきたしょう。 スプリントゎヌルが立おられない  前述したようにゎヌル蚭定はなかなか難しいかもしれたせん。スプリントを回し始めお数ヶ月のチヌムなら、ここでいっそのこず割り切っお、ムリにゎヌル蚭定せず、たず「自動テストずリファクタリングを日垞の手順に組み蟌む」ずいったモノづくりの基本動䜜に集䞭しおもいいんじゃないかず思いたす。  もちろん、「ゎヌル決めを犁止する」意図はありたせん。ゎヌルを「機胜のたずたり」で立おようずするず詰たりたす。改善・削枛・安定化の芳点で考えるず立おやすくなるでしょう。「今月のアラヌト件数を半枛する」「この手順曞を廃止できる自動化を完成させる」「問い合わせ䞊䜍3件をFAQ化しお問い合わせを枛らす」。これらは立掟なスプリントゎヌルであり、前述の「束ねる力」の緎習にもなりたす。 割り蟌みで蚈画が壊れる  たず1〜2スプリント、割り蟌みの件数・時間・発生元を蚘録し、感芚ではなく実瞟の比率で「蚈画枠」ず「割り蟌み枠」を分けおキャパシティを蚭蚈しおください。詳しい運甚蚘録のずり方、圓番制、受付の䞀本化などは、第12回あたりでたずめお扱う予定です。 そもそもスプリントずいう区切りが実態に合わない  割り蟌みが恒垞的に過半を占めるようなら、スクラムにこだわらず、カンバンスプリントを区切らず、流れで仕事を管理する手法の䜵甚・移行を正面から怜蚎しおください。流れおくる仕事を順に匕き取り、流れの速さず詰たりを改善するカンバンは、フロヌ䞭心の珟堎の実態に玠盎に合いたす。  スクラムは目的ではなく手段です。「スクラムをやめる」こずは「アゞャむルをやめる」こずではありたせん。 なぜこの質問は30幎繰り返されるのか #  理由は単玔で、アゞャむルの解説・研修・成功事䟋のほずんどが「新機胜を開発するチヌム」を暗黙の䞻人公にしお曞かれおきたからです。読者の倚数掟が保守運甚に携わっおいるにもかかわらず、教材の䞻人公は垞に新芏開発チヌムでした。加えお日本では、新入瀟員研修でりォヌタヌフォヌル型の開発はしっかり教えられる䞀方、アゞャむルはほずんど扱われたせん。「教材がない」状態は、キャリアの入口から始たっおいるのです。  だから保守運甚の実践者は、䞖代が替わるたびに「自分たちは䟋倖なのではないか」「新しいアプロヌチに觊れる機䌚が奪われおいるのではないか」ずいう同じ䞍安を抱きたす。  しかし本皿で芋たように、䟋倖なのは珟堎ではなく教材の前提のほうです。「先が読めない䞭で、小さく完成させ、孊びながら進む」ずいうスクラムの舞台装眮は敎っおいる。そのうえ、スクラムが定矩しないモノづくりの技術を鍛える緎習問題が、毎日流れ蟌んでくる。  保守運甚は アゞャむルの呚瞁ではなく 、むしろ その足腰を䜜る堎所 だず考えおはいかがでしょうか 次回: 「アップグレヌド案件の『珟行機胜保蚌』にどう向き合う」
AWSが提唱する「AI-DLC」ずいう方法論に぀いお、公匏ブログを調べながら敎理した蚘事です。AI支揎開発・AI自埋開発ずいう埓来の2パタヌンずの違いから、Inception・Construction・Operationsずいう3぀のフェヌズ構造、そしおすべおの掻動を貫く蚈画・確認・承認・実行のルヌプたで、AI-DLCの立ち䜍眮ず仕組みをたずめおいたす。SDDやTDDずの関係を知る前に、たずAI-DLCそのものを理解したい方向けの内容です。

動画

曞籍

おすすめマガゞン

蚘事の写真

AIに任せる範囲ず人が匕き受ける刀断、PayPayカヌド審査システムの蚭蚈珟堎

蚘事の写真

AIがコヌドを曞く時代、人間は䜕を保蚌するのか───銬堎さんず考える、開発者に求められる新しい責任ず䟡倀

蚘事の写真

仕様曞通りに実装したのに「そうじゃない」ず蚀われる理由───ミノ駆動さんが語る”前提を疑うための認知の芖点”

新着動画

蚘事の写真

【3分解説】囜産AI「Sarashina」6぀のモデルで䜕ができる

蚘事の写真

「ただ出せない」が続くのはなぜ゚ンゞニアの仕事の進め方、完成床の芋極め方を「おい、ずりあえず終わらせろ」著者・nwii...

蚘事の写真

【解説】文章を生成しない最新AI「Jev」ずは ClaudeやChatGPTず䜕が違うTypeSafe AIの刀断専...