品質は作りこまない限り実現できない。品質を作りこんでこそプロだ。難しいことを実現しようとしていれば、なおさらだ。「うまくいくときだけ、うまくいく」なんて代物は、いつまでたっても実用にならない。
その当たり前のことをやれていない組織が増えてきているのではないか?
特に今の50代は、上の世代が作った枠組みで少し仕事したときの成果を、自分の実力と勘違いしている可能性がある。
品質へのこだわりを持とう
- 半導体プロセスでは、その品質確保に対してどれだけ労力が払われているか理解できますか。
- クリーンルームでのプロセスで、汚染(コンタミネーション)を減らすことがどれだけ重要か理解できますか。
- いっけん、違いのないような操作でも、わずかの違いでコンタミネーションが残ってしまって、実験がうまくいかなくなります。
クリーンルーム内での一つ一つの手順がどれだけ面倒であっても、それらを守らないと実用になる水準には達成することができません。
- 「後工程はお客様」の考え方で 各自の仕事に責任を持ちアウトプットを保証する ことの積み重ねが、技術・製品を作り上げているのです。
たくさんの工程やたくさんの部分があるものでは、それまでの工程で積み重なるわずかながらの不具合が重なることで、もはや手の打ちようがないと思わせるほどにまで、台無しにしてしまうことができるのです。
生産を海外に移転した事業では、その移転先のずさんな管理のために、全数回収という大損失をもたらしている事例も見聞きしたことがあります。
品質の作りこみは研究の現場でも重要な問題です。
機械学習の性能を議論するときに、ソースコードの品質は確保できているのか。できていなければ、研究は無意味です。使用しているデータの品質も重要です。研究に関するすべての手順の品質が確保されてようやく意味を持ちます。
あなたの現場の品質は作りこまれていますか。品質の作りこみに鈍感な場合には、あなたの仕事が成功する割合は低くなります。
同僚を含めた全てのユーザーの負担を減らそう
ソフトウェアを開発するときに、その開発中のバージョンを使う同僚を含めた全てのユーザーの負担を減らそう。適切なビルド手順書、実行手順書を書こう。そうすれば無用なトラブルは防げる。
こんなのはいやだ。
- 謎のおまじないをしておかないと絶対に動かないソフトウェア。
- 「それ相手先のソフトウェアのバージョンが古いよ?」って言われてもどうやって気づけばいいんですか?
- 「これ読み込むファイルがなかったのに、無理やり継続しているときのバグだね。」
- 「接続先の1番と2番が入れ替わっているバグだったよ。データを保管するモードでコンパイルしたのを実行しないと、絶対知りようがないね。」
品質を作りこむためのチェックリスト
以下は、チェックリストのほんの1例です。
- エラーを生じたときに、対処方法を示すメッセージをユーザー画面(開発者用)に表示しているか。
- エラーメッセージは謎の暗号ではなく、その開発を共有している他のメンバーに分かりやすいものになっているか。
- 対話的に復旧が可能なものならば、復旧させるヒントとなる再入力を受け付ける構成になっているか。
- 指定したファイルが間違えたときの再入力
- 入力ファイルがなかったときのエラーメッセージは分かりやすいものになっているか
-
設定ファイルのバグはどのようにしてつぶしてあるか
- 設定ファイルのバグが枯れていることはどうやって確認できるか
-
接続先のサーバーが立ち上がっていなかったときの処理はどうか、
- 回復不可能なものであって、次のステップに進んでも何の意味もなさない場合には、適切な対象方法を示して次回の起動を容易にする。
- 接続先のサーバーが立ち上がっていないことを、わかりやすいメッセージを表示して、接続先のサーバーの立ち上げをまって、自動もしくは手動で接続を開始できるようにする。
- 軽微なエラーの場合には、それ知らせた上で、「打ち切りますか、継続しますか」を選べるようにする。
これらのうち、どのような対応がいいのかは、開発の段階やライブラリを使う範囲によって変わってくる。
品質を作りこむために、チームの力をそろえていこう。