俺アンチパターン②:一枚目のカード
アンチパターン名:一枚目のカード
別名:一撃必殺という妄想
頻出スケール:アプリケーション
再構想解の名前:三歩必殺、バックステップ、コードレビュー、プレッシャーブレイク
再構想解のタイプ:プロセス
根本原因:無精、拙速、プレッシャー、不勉強
挿話証拠:「この方法でうまく動作したから…」
うー☆
何がなんだか分からない人も多いと思う。
だからよく陥る。というか僕も陥りっぱなしだ。だからこそ気をつける必要がある。
例を出したほうが分かりやすいと思いますが…こういうことです。10秒以内に答えてください。
問い:1から10000まで足した合計を表示するプログラムを書け
で、まぁ問題解くときには字面どおりにプログラム組むのが一番最初ですね。しかも時間が足りないとなると頭を使う時間もない。だから以下のようなプログラムを書く。
answer=0;
for i=1,10000 do
answer+=i;
end
printf("answer=%d",i);
てな感じでしょうか?で、これをもう採用しちゃう。時間もないし。プレッシャーあるし、上司怖いし。自分も面倒だし。ちゃんと動くし、これでいいや。
でも、これ、ガウスの公式知っている人ならこう書きますよね?
answer = (1+10000)*(10000/2);
printf("answer=%d",i);
ある数から、ある数までの等差数列の和を一般化するなら、こんな感じ?
function PrintSum(Start,End,Count)
printf("answer=%d",(Start+End)*(Count/2));
end
大切なのは、切羽詰って視野狭窄に陥っている自分に気づくこと。もうプログラミングテクニックじゃないね。早くこの息苦しいプレッシャーから逃れたいから、一番最初のアイディアに飛びついちゃう。
視野狭窄を解消するためにはプレッシャーを取り除いてあげること、まぁこれは上司の仕事なので、かなり難しいと思っておいたほうがいい。自分を変えることによって何とかしよう。
・面の皮を厚くする
・きっともっといい解があるはずだという信念を持つ
ということになるんだけど、これでも難しい人への指針として、
・とりあえず3つ考える。パクリでもいいよ。3つだよ。三歩必殺だよ。1で崩して2で攻撃、3で次に備えるだね。全然違うね、ごめんね。
だいたい3つ考えてたら頭が冷えて、マシな解を選ぶと思う。もしくはその解をもって他の人に相談する。自分は視野狭窄だからね。
とにかく今の自分を一歩引いて(バックステップ)観察してみよう。プレッシャーで実は頭が働いてないんじゃない?
プログラミングは結構自分のコンディションに左右されるから、僕が健康第一ってのも理由はここにあるんDA!
| 固定リンク | コメント (0) | トラックバック (0)
最近のコメント