2015-07-16

デバッグが早い人と遅い人の違い

会社デバッグの早い人と遅い人がいる。

二人を観察していると、色々な違いが見れて勉強になる。

いくつかまとめてみる。



デバッグが早い人はコードに着手する前に状況を整理する

 期待動作はどのようなものか、現状の動作(バグ)はどんなものか、どんな条件でバグが生じるか、生じないかを整理する

 他人からアサインされたタスク場合、手早くこれらを質問して状況を確認する。

 デバッグが遅い人は何も考えずにコードを触り始める。

 「何をデバッグしているの?」と聞くと言語化出来ない。

 場当たり的、五月雨式に質問する。

デバッグが早い人は仮説を持っている。

 ざっくりと全体像を把握し、当たりをつけてから作業する。

 全ての作業が仮説の検証作業。結果が出た時に次に何をすべきかも把握している。

 デバッグが遅い人は自分でも何をやっているか分かっていない。

 「よくわからないけど一応2回試してみた」とか言う。

 「それは今何を検証しようとしているの?」と聞くと答えられない。

デバッグが早い人はメモを取る。

 デバッグが遅い人はぐるぐると何度も同じ検証を繰り返す。

 「さっきは大丈夫だった」とか「さっきと一緒なのに動きが違う」とか言う。

デバッグが早い人は事実と仮説/予想を明確に分ける

 デバッグが遅い人は想像事実をごっちゃにする。

 

デバッグが早い人はツールを使いこなす

 強力なLinuxコマンドエディタ/IDEショートカットキー等の基本的な使い方が身に付いている。

 地味に塵も積るで一日で見ると大きな時間差が生まれる。

デバッグが早い人は一気にやろうとしない

 パラメータ複数あるとき、一気に変えない。一作業一仮説。

 デバッグが遅い人は一気に複数箇所を変え、差分や状況がわからなくなって途方にくれる。

デバッグが早い人は熱くならない

 デバッグが遅い人は作業に熱くなって細部にハマっていく。

 デバッグが早い人はハマりそうになったら一息おいて状況を整理する。


観察してて大いに学んだ。

考え方ややり方はデバッグが早い人を見習って自分も少しは効率的にはなった。

しかし筋の良い仮説を初期段階で立てられるかどうか、というところが経験か才能なのか、まだ追いつけない。

  • それは経験だから心配しなくていい 最も毎回考えて仮説を立てていく良い経験を積まないと意味がないが 積み重ねのない人間は良い経験を積まなかったから

    • その経験の質がいろんなことを試すということに依存している つまり、3歳ぐらいまでにトライアンドエラーを試すような人間にならなければ一生負け組

      • さすがに3歳の頃の記憶はないな お母さんが生きてた頃、俺がそれぐらいの年齢のときにハトのものまねしてたって言ってたのを覚えてる

  • わいデバッグのろのろおじさん(のろおぢ)、参考になります

  • 正解になるまでランダムな数字答え続ける、学習障害の小学生かな?

  • 凡人は大変だな この程度のことなら俺は2歳の時にはもう身についてたぜ

  • どっかで見たような話だな?どこのサイトのコピー?

  • 早い人はこれだけ。 ・エラーメッセージをちゃんと読んで理解する ・公式ドキュメントを当たる

    • 40越えた中国人帰化おっさんが突っかかるたびにに「スタックトレースは読みましたか?」「リファレンスは読みましたか?」って確認する俺の身にもなって

      • いまの時期「中国人」「帰化」ってだけで犯罪者あつかいされる時代だから気をつけたいよね 日本だけじゃなく欧米もそうだけど

  • スタートアップ・ベンチャーとかWeb系界隈とかでやたらと「五月雨式」って見るんだけどこれ何? 一時の「深掘り」、「解像度」と同じぐらい見るわ

    • 深掘りも五月雨もスタートアップに限らずSIerでもよく使われるぞ

    • 最上川ってことだろ。

    • 一般メーカーだけど「五月雨式に申し訳ございません」はめちゃくちゃ聞く。 普通のビジネス用語なんじゃねーの。

      • いや、特にビジネス用語というわけでもないだろ。ビジネスの世界に限らず一般的な言い方じゃん。

  • デバックモードとリリースモードで挙動が変わる!だと!?

  • どこを変えたらどう影響するかコードリーディングできてない時点でツールの使い方とかどうでもいいわ 一か所ずつ変更とかやってられるかよ 典型的な最初から総当たりして無駄に時間...

    • 上級レベルになってくるとそうも言ってられないからな アセンブリいじるレベルになってくるとブラックボックス部分も多いし、周りも知らないしで自分で変更しては予想してを繰り返...

  • デバッグが早い人は報告者が優秀。 俺が遅いのは追加情報求めた相手のレスポンスが遅いから。

  • これってさあ、ほとんどは普通に「ちゃんと仕事をしている」というか、普通にまともに仕事しているというレベルの話なんだよなぁ。プログラミングに限ったことでもなくてさ。 「...

  • ブコメ: kobito19 (バグ解明した後の)バグ修正も広義ではデバッグやろ  ← それ逆や。「バグ修正」「バグ取り」こそがデバッグの原義や。(広義ではバグ探しのプロセスも含める...

  • 北見のオッチャンも同じこと言ってたナ...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん