Excel や Access で行っている業務を Web に移す前に決めるべきなのは、画面の見た目ではなく、「1件とは何か」「その1件がどう変わるか」「誰が何をしてよいか」の3つです。画面は後から何度でも直せますが、データの形は一度決めると簡単には変えられないからです。
表をそのまま写すと、Excel の曖昧さまで引き継がれます
Excel は何でも受け入れます。セルに「済」と書いても、行を黄色く塗っても、備考欄に書き足しても通ります。その自由さのおかげで業務が回ってきたのは確かです。けれども、画面をそのまま Web に写すと、その曖昧さまでそのまま持ち込まれます。
移行の本当の肝は、表の中で人が暗黙に守ってきた決まりを言葉にすることです。ここでは架空の「備品貸出台帳」を例にします。社内のノート PC やプロジェクターを貸し出す表で、1行に備品名・借りた人・貸出日・返却予定日・返却日・備考が並んでいるとします。
1. 「1件」とは何かを決める
この台帳の1行には、「もの」と「出来事」が混ざっています。備品名は貸し出すたびに手入力されるため、「PC-03」と「PC03」のように表記が揺れ、別の備品のように見えます。また、備品を処分したときにどの行を消せばよいかも決まっていません。
Web に移すなら、備品(もの)と貸出(出来事)を分けます。備品は一度だけ登録し、貸出の記録はその備品を指すようにします。問いはいつも同じで、「この行が表しているのは、ものか、出来事か」です。
2. 状態と、戻れるかを決める
貸出には流れがあります。予約、貸出中、返却済みといった推移です。決めておくべきなのは、この順番と、逆に戻れるかどうかです。返却済みを貸出中に戻せるなら、誤って返却ボタンを押したときにも直せます。戻せないなら、誤りを直す別の手順を用意しなければなりません。
あわせて、あり得ない組み合わせを作らせない決まりも置きます。たとえば「返却済みなのに返却日が空」といった状態です。当社のブログでも同じように、「公開済みなのに公開日が空」の記事をデータベース側で作れないようにしています。そのうえで、公開日を指定せずに公開した場合は、その時刻が自動で入るようにしました。決まりだけを置くと、公開のたびに日付の入力を求められて手間が増えるからです。決まりと、それを満たす既定の値は、対で決めておきます。
3. 誰が何をしてよいかを決める
Excel では、ファイルを開ける人なら誰でもすべての操作ができます。Web に移すと、ここを役割ごとに分けられます。貸出の記録は誰でも付けられるけれど、備品の登録と処分は総務だけ、といった具合です。
当社のブログでも、公開した記事は誰でも読めますが、下書きはどの画面にも出ません。公開の操作ができる人も限定しています。見せる範囲と、変えられる範囲を別々に決めるのがコツです。
4. 消したときに何が起きるかを決める
備品を処分したら、その備品の過去の貸出記録はどうなるでしょうか。一緒に消すと、誰がいつ使っていたのかがわからなくなります。多くの場合、備品データは消さずに「処分済み」という状態にして、記録を残すのが安全です。
当社のブログには、記事の分類が2種類あります。1記事に1つだけ付ける「カテゴリ」と、いくつでも付けられる「タグ」です。カテゴリは、記事が1本でも属している間は消せません。一方でタグは、削除しても記事から外れるだけです。このように、消えてよいものと、消えては困るものを最初に分けておきました。
分類を2種類にしたのも、設計段階で最初に決めたことです。カテゴリだけで始めて、後からタグを足す案もありました。けれども後から足すと、それまでの記事をすべて新しい形へ移し替える作業が発生します。
5. 人が手で揃えていた列を持たない
Excel の台帳には、よく「No.」の列があります。行を足すたびに手作業で番号を振り、並べ替えると順番が崩れる列です。
当社のブログでも、最初の案には記事の並び順を表す番号の列がありました。しかし、これは採用しませんでした。記事は公開日の新しい順に並ぶため、番号の列を持たせると、公開日と同じ事実を二重に持つことになるからです。同じ事実を2か所に持つと、いつか必ず食い違いが生じます。合計、経過日数、並び順のように計算で出せるものは、列として持たないのが原則です。
決めなくてよいこと、決めておくべき出口
逆に、最初に決めきらなくてよいものもあります。画面の配置や配色、帳票のレイアウトなどは、使いながら何度でも直せます。
最初に決めておくべきなのは、移したデータを後から持ち出せることです。広く使われている標準的なデータベースに置いておけば、開発した会社と縁が切れても、中身を別の場所へ移せます。当社が理念に「囲い込まない」を掲げているのは、このためです。
移す前の点検表
最後に、移行を依頼する前に確かめておきたい問いをまとめます。
- 表の1行は、ものですか、出来事ですか。混ざっているなら、どう分けますか
- 1件はどんな状態を順にたどりますか。前の状態に戻せますか
- あり得ない組み合わせは何ですか。それを入力できないようにしますか
- 誰が見られて、誰が変更できますか
- データを消したとき、つながっている記録はどうなりますか
- 手で揃えている列や、計算で出せる列はありませんか
- 移したデータを、別の場所へ持ち出せますか
この7つに答えが出ていれば、画面の作り方は作り手に任せて構いません。答えが出ていないまま画面から作り始めると、Excel で起きていた食い違いが、Web の上でもう一度起きます。