ソフトウェア設計で、レベルは3段階に分かれると思っている。
初級 正しく動く。最低限動くだけ。
中級 わかりやすい。操作性が良い。親切な表示。
上級 安全性。例外処理に対応。不測の事態に対応している。
動かすだけならすぐ作れるけれど、他人が使用する場合は、思わぬ操作をしたり初歩的な部分で理解できていなかったり、する。
たとえば、ファイルが壊れていた場合、途中で終了してしまった場合、OKとキャンセルを間違えた場合、禁止されている文字を入力した場合・・・。
自分では思いつかないことを、するかもしれない。
操作を理解していない初心者が触るかもしれない。
それらを全て想定して作る。それが本当に大変なのだ。
内部の問題としては、後で変更するかもしれない可能性を考え、わかりやすいプログラムにしておく。
こちらはもう、技術と経験が物を言う。