skillup

技術ブログ

プログラミング全般

ミスを少なくする工夫について

投稿日:2016年6月2日 更新日:

プログラマであればだれもが「いかにバグを少なくするか」に腐心すると思います。

ところが、人間がある以上、バグ(ミス)は絶対にゼロにはなりません。バグ云々以前に、「人間はもともとミスをする生き物だ」という前提で取り組むことが大切でしょう。

そこには「エラーをおこさないようにする」「テストをしっかり行う」は対策とは言えません。ミスとは人間が認知できないものなので、それを認知しようとする試みは無意味だと思います。※超音波を聞き取ろうとするような試みだと思います。

自分用ですが「ミスを少なくするような科学的な取り組み」を考えたいと思います。

自分のミスの起こりやすいパターンを記録する

人間の未来を最も確実に予測できるのは、いままでに起こったことです。ですので「自分の起こしやすいミス」も「過去に起こったミス」です。これを記録しておき、のちの後述するチェックリストに活かすことが大事になってきます。

チェックリストを使う

自分のミスのパターンやプログラミングをする上でのするべきタスクやチェック事項をリスト化しておき、紙に書いておく。

フローを書き出す

プログラミングの流れを整理するために大切だと思います。特に複雑な画面遷移が絡んでくるとどこがどう動いて連動しているかがわからなくなります。以前複雑な画面でこれを行ったら見通しが一気にわかりやすくなりました。ドキュメントのようなものではなく、メモ程度でも書いておくと全く違うので、なるべくこれを書く。

日を置いて確かめる

文章を作るときに、日をおいて確認するとミスを発見しやすいですが、同じようにプログラムも日を置いて、テストすると頭を冷やした状態で確認できますので、1日でも日を置くとよいでしょう。

コードの勉強をする

バグが生まれやすい場合、バグを起こしやすいようなコードを書いていることがあります。バグを起こしにくいコードを読んだり、正しいコードの本を読むようにしましょう。

画面のチェックは紙に印刷する

帳票や画面などは紙に印刷して、正しいかどうかをチェックしましょう。ディスプレイで目だけだとどうしても見落としが生まれます。

小さい単位で確認する

複雑なプログラムの場合、どうしても処理が長くなります。小さい単位に分割して、確認しやすくしましょう。また日常でおこなう作業もできるだけ小さく分割すると行動がしやすくなります。

テストツールを導入する

テストコードを書いたり画面テストを取り入れてみましょう。ただし完ぺきにやろうとすると、労力がかかりすぎ、本末転倒になります。部分的に、できるところから、本末転倒にならないように行うことが大切です。

システム的なチェックを行う

以前いた学習塾で請求書の金額を確認するときに、2人で取り組み、片方がコンピューターの金額を、もう一人がそれを聞いて明細の金額が正しいかをチェックする、ということを行っておりました。このような確認方法だとエラーが起こりにくくなります。

気を付ける、のではなくてこのようなシステム的なチェックを行うことが大切だと思います。

上記の中で実行しやすいものを選び、改善状態を記録する

上記を全てやろうとすると機能不全を起こしたり、労力がかかりすぎます。できそうなものから少しずつやり、その改善状態を記録していき、習慣にしていくことが大切です。

-プログラミング全般
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

JWT(ジョット)の認証に関して

セッションやtokenを使った、認証について色々書いてきましたが、今回はJWTを使った認証について。 Contents1 以前の認証がらみの記事2 JWT(ジョット)とは?2.1 ヘッダー2.2 クレ …

no image

JavaScriptライブラリ sugar

去年、JavaScriptの仕事をがりがりやった時にお世話になったライブラリsugar。 JavaScriptのライブラリというとunderscore.jsが有名ですが、こいつも結構使えるライブラリで …

no image

小〜中規模程度のWEBアプリ作成で気をつけるべきこと

初見の処理系(ライブラリ操作)などは休日などで最小パターンを確認しておくこと。実務で何時間も悩むと非常にストレスがたまる テーブル設計命。あとで終えるようにトレースができるような値を入れておくこと。 …

no image

設定ファイルの置き場所

一般的にレベルの高いソースとは保守性が高いものを指します。特にWEB系ですと仕様変更がしょっちゅうなので変更があったときにいかに少ない工数で対応できるかが大切です。 保守性をあげる工夫はいろいろありま …

no image

テストプロセスに関して

日々是テスト。 プログラマになってから数年がたちますが難点はずっと同じでテストですね(汗) 以前にかいたエントリーなどは下記参照。 参考 データベースによるテストデータ作成 Excelによるテストデー …

アーカイブ