すのふら

日々の備忘録

認識を合わせずに作業した結果がこれだよ!

f:id:snofra:20151220135455j:plain

先日すごいミスをして周囲を巻き込んでリカバることになってしまった。

ちょっと考えれば分かることだったのに、何故こんなことしたのかと凄い反省したので風化しないためにも状況を反省を簡単にメモしておく。


■どういうことが起きたのか。

自分があまりかかわったことのない機能の単体テストを実施するときに

  1. 単体テストコンディションが不明確だったにもかかわらず、明確化せずテストを行う
  2. 全てのコンディションを1回のランチャー起動で済まそうとした

その結果、失敗して始めからやり直しレベルまで手戻ってしまうという。

テストデータ作るのにほぼ1人日かかっているので、もう一回テストをやり直すという感じになったとき心が折れてしまった。
そこから残業しても失敗の反動で何もやってもうまくいかず。


更に今回の悪いところは、単体テストコンディションが不明確であるという点に加えて、俺があまりかかわったことがない機能なのに根拠のない自信があったという問題。


■俺は何故こんなことしたのか

  1. そもそもテストコンディションはこうに違いないという思い込みと、実際が乖離している
  2. 手戻ってしまったときの影響を全く考えてなかった


何故コンディションを思い込んでいた原因のひとつとして、自分の担当ではないがヘルプで何回かやっているので知っているという一番ヤバい状態が挙げられる。

「何となく知っている = 知っている」と思い込んだヤバい状態で、認識に間違いがないか確認を怠ってしまったのが原因のひとつ。

これだけならまだしも、
手戻ったときにどれくらい影響があるのか考えず、まとめて1回の処理で済まそうとしてミスしてしまうとか、リスクを視野に入れなさ過ぎた。


作業進捗聞かれたときに

何もなければ今日中にいけるんじゃないかな。

と答えたが、これのやり方だと絶対に何かあるよね。


■心がけなければいけないこと

認識は基本的に合わないもんだとあれだけ自分でも書いてきたのに、おざなりにした結果で引き起こしたことだと思う。
何で認識が合わないんだ - すのふら
認識を合わせなきゃやるべきことが分からない - すのふら

自分が作っていないコンディションでテストする場合、必ず想定結果が間違っていないか簡単にマトリックスで一覧を作って認識を合わせてから取り掛かるべきだった。


また確かにテスト用ランチャーの起動回数はテストの時間を短縮するためにも少なくするべき。
だけどテストデータ作成に1人日かかるレベルのテストでランチャー起動1回はさすがに無謀すぎ。

失敗したときの手戻るリスクを考えて、再準備に時間がかかるのであれば、ある程度カテゴライズした上で分割して(2~3回)取り組むべき。


すっげー当たり前の話なんだけど。