0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「テストGreen」でもGoにしなかった理由

0
Posted at

「テストGreen」でもGoにしなかった理由

アイキャッチ

1. リード

テストが Green だと、安心する。私もそうだった。だが RC 検証週では、Green の数が増えるほど、逆に別の問いが強くなった。その Green は、明日の朝 06:30 の運用まで保証してくれるのか。この問いに「はい」と言い切れなかったから、Go は急がなかった。

Day 7 の時点で 171 Green が確認されていた。さらに 2026-07-24 の Current Context では 178 Green になっている。それでも状態は No-Go 継続で、Issue #11 / #12 の運用フォローアップが残っている。今回は、その「通っているのに進まない」判断の話だ。

2. 背景

Vol.11 では Day 7 の一時 No-Go を書いた。あの記事で中心に置いたのは、171 Green でも正式版の十分条件ではない、という線だった。今回の Vol.16 は、その線をもう少し広げている。

Current Context には、今の状態がはっきり書かれている。Version 1.0 は No-Go 継続。現在の論点は Issue #11 / #12 の運用フォローアップ。直近の最小修正として --wait-for-user-active が追加されたが、DarkWake 中の起動問題は無人実機確認が未完了だ。つまり、テストは伸びているが、朝の条件確認はまだ終わっていない

3. 今回のテーマ

テーマは、テスト Green は「壊れていない」の強い証拠だが、「正式版として説明できる」の十分条件ではなかったということだ。

この違いは、非エンジニアの私にはかなり大きかった。テストが多いほど、もう前に進んでよい気がする。だが RC 検証週では、コードの正しさだけでなく、時間どおりに動くこと、無人で続くこと、止まる理由が説明できることまで見ていた。

Green の数字と Go 判断は見ているものが違う

4. 実際の出来事

Day 7 の記録では、171 Green という事実があった。それは大きい。広く壊れていないこと、過去に決めた約束がかなり守られていることを示してくれる。さらに 2026-07-24 の Current Context では、テストは 178 Green に増えている。ここだけ見れば、前進は明らかだ。

だが同じ Current Context には、Go を止める理由も同じ強さで書かれている。Issue #11 / #12 の運用フォローアップが残っている。DarkWake 中の launchd 起動は検証中で、修正は入ったが無人実機確認は未完了。今やってはいけないこととして、新機能追加、認証方式変更、v1.0.0 tag、Issue 自動クローズも明示されている。

ここで見えてくるのは、テストと運用判断の役割の違いだ。テストは「この変更で既知の約束を壊していないか」を強く見てくれる。一方で Go / No-Go は、「正式版として世の中に説明できるか」を見る。説明には、無人運用の確認、残 Issue の扱い、Version を上げる理由まで含まれる。

RC 検証週で特に重要だったのは、Go を感情で決めなかったことだと思う。171 Green から 178 Green へ増えても、未確認項目があるなら止まる。改善が入っていても、実機の朝でまだ裏が取れていないなら止まる。この順番を守れたから、Green の数字を飾りにしないで済んだ。

ここで支えになったのは、止める理由が曖昧な不安ではなく、文書として並んでいたことだった。Issue #11 / #12 の運用フォローアップ、DarkWake 中の起動問題、--wait-for-user-active を足したあとの無人実機確認未了。どれも「たぶん気になる」ではなく、確認待ちの論点として置かれていた。だから Green の数が増えても、どこを見て止まっているのかを言葉で説明できた。

この整理は、数字を軽く扱うためではない。むしろ Green を正しく重く扱うための線だったと思う。171 や 178 という数字は、かなり多くの約束が守られていることを示してくれる。だからこそ、その数字に含まれない論点を別で持っておかないと、安心材料がそのまま判断のショートカットになってしまう。RC 検証週で守りたかったのは、Green を強い事実として使いながら、Green だけで Go を決めないことだった。

もう一つ大きかったのは、最小修正が入ったあとも「だからもう大丈夫」とは言わなかったことだ。--wait-for-user-active が追加されたのは前進だ。だが前進したことと、朝の運用条件が十分だと裏取りできたことは別だ。この切り分けがないと、修正の存在そのものが完成証明のように見えてしまう。完成を急がないためには、修正と検証を別に扱う必要があった。

止めた理由は数字の外に並んでいた

5. 考えたこと

テストが Green なのに止まるのは、最初は少し気まずい。前に進んでいないように見えるからだ。だが今は、そこで止まれたことが品質だったと思っている。止まれないプロジェクトは、Green を免罪符にしてしまう。免罪符になった瞬間、数字は説明責任から切り離される。

非エンジニアの立場で言うと、テストは「もう安心していい」という鐘ではなく、「ここから先は別の確認へ進める」という合図に近い。コードの土台が崩れていないからこそ、次に朝の運用を見られる。逆に言うと、朝の運用確認を飛ばす理由にはならない。

Human Approval の思想とも似ている。承認が要る操作では、実行できることと、実行してよいことを分けていた。Go / No-Go も同じで、Green であることと、正式版にしてよいことは分けて考える必要がある。その分離があるから、Version は単なる記念日にならない。

私は最初、Green の数が増えるほど「もう止まる理由を探しているだけではないか」と少し疑っていた。だが今は逆で、止まる理由を言語化できるからこそ Green が意味を持つのだと思っている。もし残論点を曖昧にしたまま Go を出していたら、171 や 178 という数字はあとで都合よく使われるだけだったかもしれない。数字を守るには、数字の外にある条件も守らないといけない。

毎朝の運用を前提にすると、この差はさらに大きい。テストは同じ条件で何度も確かめられる。一方で朝 06:30 の無人実行は、時間、睡眠状態、ネットワーク、認証、外部サービス遅延が絡む。その違いを無視して「テストが通ったから十分」と言う方が、むしろ雑だった。RC 検証週の Go / No-Go は、コード品質を疑うためではなく、運用品質を別枠で見切らないための判断だった。

だからこの時期の学びは、「Green を増やすこと」より「Green の意味を取り違えないこと」にあった。数字を積み上げる努力は必要だが、それを正式版の宣言へどうつなぐかは別の責任になる。非エンジニアでもここを言い分けられるようになると、安心材料に流されずにプロジェクトを守りやすくなる。その線を引けたこと自体が、RC 検証週の大きな収穫だった。

最小修正の前進と完成証明は別に扱った

6. 学び

  • テスト Green は強い安心材料だが、正式版の十分条件ではない
  • Day 7 の 171 Green と、2026-07-24 時点の 178 Green は前進の証拠だが、未確認項目を消してはくれない
  • Go / No-Go はコード品質だけでなく運用品質と説明責任も含めて決める
  • 残 Issue や無人確認未了を抱えたまま Version を上げない方が、あとで強い
  • Green の数字を免罪符にしないことが、RC 検証週の価値になる

7. 次回メモ

この続きで書くなら、無人実行でネットワーク障害にどう向き合ったか、という話につながる。朝の運用では、成功率より先に切り分け方が重要になるからだ。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?