イントロダクション
”絶対にミスを起こさないようにしたい"どうしてもそう思いがちになります。
ミスを犯すと、その対処にコストがかかります。
ミスを犯さないように対策するために、コストがかかります。
ミスを犯さずに、最速でゴールに到達できればどんなに良いことでしょう。
でも、人はミスを犯すものです。
それを実感したい場合には、ある程度長いプログラムを実際に作成してみると良いでしょう。
本題人はミスを犯さずにプログラムをかけるか?
プログラムを書く上では、様々な要素に対して考慮することが必要です。- プログラムを実行する環境の仕様(ハードウェア{パソコン、スマートフォン、組み込み機器...}の仕様や、OS{Windows, Mac, Linux, Android, iOS...}の仕様...)
- プログラミング言語の仕様
- 利用するライブラリなどの仕様
- 作成するプログラムの仕様
- プログラムが安全に継続して動作し続けるための仕組み
- 実際にプログラムが使用される現場状況
それらを一度に理解して、一気に問題の無いプログラムを書きあげることは可能でしょうか?
それはとてつもなく困難なことでしょう。
作成したプログラムを見てみると、主に次のことが発生するでしょう。
- コンパイルエラー
- 実行時のエラー
- 動作はするが、期待したように動かない
これらは、主に次の要因によって発生します。
- 各種仕様の理解不足・誤解
- 動作の考慮漏れ
- 事前には予期できない要因や、正しいはずのことが実際には正しくなかった
- 単純ミス
なお、詳細なソフトウェアの不良の原因の分類や原因を知りたい場合には、そのようなことを詳細に記載した専門書や、公的機関{IPA(独立行政法人情報処理推進機構)等}が公表している資料を参照してみてください。
IPA 独立行政法人 情報処理推進機構
http://www.ipa.go.jp/
http://www.ipa.go.jp/
それらの発生を実際に体験してみることで、人は必ずミスを犯すということを実感できるでしょう。
そして、ミスが発生したら上手くいかなくなるシステムを作り上げるのではなく、ミスを事前に防止することや、ミスが発生したとしてもそのミスによって問題が発生しない仕組みづくりの重要性を学ぶことが出来るでしょう。
例えば、ソフトウェア開発であれば、ソフトウェア設計時のレビューや、ソフトウェアリリース前の各種テスト、不具合発生時の対応策の制定など、各種の取り組みが行われています。
このような人間が引き起こす失敗については、ヒューマンエラーという分類で様々な研究がおこなわれています。
また、失敗に対する知見を蓄積し、失敗が再び起こらないようにするために、失敗学という形で様々な研究がおこなわれています。
コメントを投稿
コメント投稿機能について