2015-07-16

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

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

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

いくつかまとめてみる。



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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