いかにしてtypoを減らすか
はじめに
このメモは今後自分がtypoを減らすために書いた自戒メモです。
「エンジニアなのにtypoをするのか?」
と思われそうだが、残念な事にする。自分はめちゃめちゃする。
この上半期で残念なぐらいに自分typoをするという事を自覚した。typoと言えど、エンジニアとして飯を食べていく上で死活問題になるので、クソみたいな羞耻心は捨ててtypoを減らす努力をする。そしてNoTypoで気持ちよく仕事がしたい。
それが本心である。
なぜtypoをすると良くないのか?
文章が間違って伝わる。
エラーが起きる。
コードは一文字でも間違えると動かないので、エンジニアにとって文字を間違える事は予期せぬエラーを自分で招く事なので、非常によくない。
指摘されるコストが発生する。
指摘されると、その分相手に気づかせるコストが発生するので相手に時間を取らせてしまう。
モチベーションが下がる。
これが一番きつい。
単純にミスなので、毎回指摘されてくるとコード以前にtypoで仕事ができないトラウマに陥る。
そうなると負のスパイラルが発生して、typoでミスを重なるごとに自信がなくなるので、また次のミスにつながる。よくない。
なのでtypoをすぐに無くす事はできなくても、順々に減らす防止策を実践していく。
尚、今回考える再発防止策は根性論とかではなく、ここの要件を意識してみる。
良い再発防止策について、順位付けするとしたら、
その種類の問題について二度と意識することがなくなる解決策
その種類の問題を開発時に自動的に検知することができる解決策
その種類の問題が発生しても自動的に復旧することができる解決策
その種類の問題が発生しても影響が局所化される、フールプルーフ、フェールセーフになる解決策
このような順序でしょうか。
逆にこちらの悪い防止策は考えないようにする。
悪い再発防止策
悪い再発防止策は、シンプルで人間というコンポーネントを使うことです。
責任回避のため稟議、決済経路を追加する策
他者の努力/忍耐/根性の不足を指摘し改善を求める策
個人/チームの注意力を原因とし、「より注意深く確認します/させます」といった策
それっぽい言い訳付きのダブルチェック/トリプルチェック体制
ドキュメントにその旨追記します!的な解決策
これは、そんなことやらないよと思っていると、ついついやってしまいがちなので注意が必要です。
「ちゃんと」「しっかり」というフレーズが出てきたら、危険信号です。
1.投稿する際にconfirmをだして見返すように意識させてみる。
考えた案
UserScriptでGithubとかでissueのコメント投稿する際にconfirmを出して見返すようにしてみる。
(応用)投稿時に送る文章を抜き出してtextlintをかけるようにする。
こんな感じで、Github/GHEのIssueコメントを押すととconfirmが表示されるUserScriptを書いた。
code:js
let comment = document.getElementById('partial-new-comment-form-actions').getElementsByClassName('btn btn-primary')
comment0.addEventListener('click', function(e){ if(window.confirm('typoはないですか?')) {
return true;
};
event.preventDefault();
},false);
2.早くタイピングするよりも、正確を意識してみる。
速さは後回しでいい。
まずは正確を第一に考えてみる。
自分がtypoする発生条件として多いのが以下のような、早く返事を返さないといけない場合が多くある。
slackのスレッドですぐに返答をしなければならない
期限が迫って早くコメントを返信をしなければならない
レビューコメントを返すとき
この時に心理的に焦りが発生し、無意識に早くタイピングをして自分がtypoをしていると気づかずに投稿してしまうので、まずは落ち着いてタイピングするのを意識してみる。
3.キーボードを変えてみる
自分の場合だと、ホームポジションを意識してタイピングすると、普通に指が痛くなる。根本的な解決策として、タイピングして指が痛くならないキーボードを購入するのが良い。次の給与が入ったら購入してみよう。
考えた案
分割キーボード
その他
正しいホームポジションを意識してタイピングする練習になる。
現状はそんな感じで、とにかく細かいミスを一つ一つ丁寧に治していきたい。