デバッガーの憂鬱

仕事帰りにmidian'sへ。

みゅーさんがいました。

私のことを心配してくれていましたよ。

嬉しい限りです。



やっぱりこの荒んだ心を癒さなければなりません。

おっさんが家に帰ってビールを呑むイメージでしょうか。







デバッガーって結構アレな仕事ですよ。

今までにも何度も言いましたが。



そりゃ土木作業やら引っ越し作業と比べたら圧倒的に楽でしょう。

毎日明け方まで残業してるプログラマさんらと比べたら圧倒的に楽でしょう。



でもやっぱり辛いんだよ。







私の仕事は一言で言えば遊んでるだけです。

もはや遊べてませんが。



反論はせめてテトリスを1日7.5時間プレイという生活を1週間続けてからにしてもらいたい。

ネトゲとかではダメです。

一人プレイ限定で且つ、ルールが極めて単純なものす。



テトリスなら1日2日くらいはまだ何とかなるでしょうね。

そこから先は苦痛ですよ。

どれだけ眠くても絶対に寝るなよ。

休憩時間は途中で1時間挟む以外はトイレ休憩のみだ。



これをやって楽だと仰るなら貴方は神です。

感服致しました。

住む次元が違います。

是非とも私に力を貸してくださいと土下座して本気でお願いしますよ。







私はデバッガーなのでただ遊ぶだけではダメです。

全ての局面に於いてありとあらゆる行動パターンを考え、

その全てを実践するのが仕事です。



ノルマはありません。

強いて言うならバグが無くなるまで。



ですが、全てのバグを取り除くのは不可能というのはソフトウェア開発経験者なら常識です。



いくつ間違いがあるか誰にも分からない間違い探しを延々と解き続けると言えば分かりやすいでしょうか。

全ての間違いを見つけた、と結論付けるのは即ち悪魔の証明です。

探し方が悪いと言われればお仕舞いです。



「無い」ことを証明するのは本当に難しいです。

「有る」可能性の全てを否定しなければ証明出来ませんから。



その「全て」の定義をどうするか。

ここも議論が必要になりそうです。







行動パターンを考える以外にもすることはあります。

その中でも特に面倒なのが確率依存のものの検証。



例えば発生率10%のものがあり、

あることをすれば発生率が15%になるとします。

この5%の差の検証を考えてみましょう。



まず、発生率10%の検証です。

単純に試行を100回します。

その結果何回発生したかを数えます。



中心極限定理と言いますが、

中央に近い数字ほど高確率になります。



発生率10%なので10回丁度発生する確率が最も高いです。

ですが10回丁度発生する確率は意外と低いです。

約13.2%です。



それどころか、15回以上が出る確率に至っては7.3%もあるわけです。

よってこの程度の回数の試行だと運が悪ければ発生率15%の方が低くなるということはすぐに分かります。



これの証明はどうするか。

ひたすら試行を繰り返すのみ。

統計学的に考えてほぼ確実に明確な差が出ているという数値が出るまで繰り返します。

確率が絡むものは全てが調査対象です。



true or falseの分岐ではなく、

0%〜10%ならA、

11%〜20%ならB、

……、

という分岐をしている場合は試行1000回くらいでは済まないです。







これ以上長く書くのもめんdなのでここで打ち切りますが、

基本は黙々と作業を進めることです。

あらゆる局面に於いて注意を払い、

「ここでこうしたらどうなる?」といったことを考えるのは勿論のこと、

「ここでこれをすることは出来るだろうか?」という可能性にも探りを入れます。



とはいえ連日同じ作業をするわけで、

下手すれば1日に何度もすることもあるわけです。

最終的にはパターン化して何も考えずに作業をすることになります。



因みに一つの作業は物の数秒で終わります。



何時間も、何日間も、何週間も続ける苦痛を分かって頂けたでしょうか。



プログラマさん達は挙がってきたバグを修正したりするので、

そういう意味でははっきりとしたすることがある分幸せですね。







このデバッグ作業がソフトウェアの品質をダイレクトに反映することになるので、

デバッグの質が悪ければ回収騒ぎになったりするわけで責任は非常に重いです。







仕事終わったら頭痛いよ。

安らぎが欲しいです。



もうちょっと続き書きたかったけど今日はもう寝ます。

ここから先は逝っちゃってる話なので書く必要は無い樹もしますが。