試験と成績で「生徒を選ぶ」を揃える — 対象生徒管理の共通化
一括採点には、試験に生徒を登録する画面と、成績に生徒を登録する画面があります。 どちらも「対象の生徒を選ぶ」という同じことをしているのに、操作のしかたが別々に育ってしまっていました。 このちぐはぐさを、ひとつの共通のしくみにまとめ直した開発の記録です。 なぜ統一したのか、何が良くなったのかをお話しします。
同じことなのに、操作が違っていた
試験を作るときも、成績を出すときも、最初にやることは「どの生徒を対象にするか」を決めることです。 やっていることは同じはずなのに、一括採点では2つの画面が別々に作られていました。
- 試験側— 学級から生徒をまとめて追加できるが、一人だけを選んで足すような操作は弱めでした。
- 成績側— 学級の追加はプルダウン(一覧から1つ選ぶ形式)で、個別に生徒を追加する手段がありませんでした。
機能を足すたびに、それぞれの画面が少しずつ違う方向に成長していった結果です。 先生からすると「試験ではできたのに、成績では同じやり方ができない」という、分かりにくさにつながっていました。
「学級は補助、本体は生徒」という考え方
統一するにあたって、まず考え方を整理しました。 試験も成績も、本当に登録したいのは一人ひとりの「生徒」です。 「学級」は、生徒をまとめて追加したり、一覧で見やすくしたりするための補助的な手がかりにすぎません。
この見方に立つと、必要な操作は2つだけだと分かります。 「学級ごとまとめて追加する」と「生徒を個別に探して追加する」です。 試験と成績で、この2つをどちらもできるようにすれば、操作は自然と揃います。
一括採点では、生徒そのものに「在籍が終わったかどうか」の情報は持たせていません。 在籍の期間は、生徒と学級のつながり(所属)の側に記録しています。 そこで「在籍中の生徒」を、「まだ終わっていない所属が1つ以上ある生徒」と定義し、 試験でも成績でも同じ基準で判断するようにしました。
画面をひとつに揃える
試験と成績で、生徒を追加する画面を共通の部品に置き換えました。 ひとつの画面の中で、タブを切り替えて2つのやり方を使い分けられます。
- 学級から追加— 複数の学級にチェックを付けて、まとめて追加できるリスト形式にしました。成績側はプルダウンを廃止し、この形に刷新しています。
- 個別に追加— 生徒を名前で検索して、一人ずつ選んで追加できます。成績側にこの手段が新しく加わりました。
- 在籍スイッチを2か所に— 学級の追加にも、個別の追加にも、在籍中の生徒だけに絞るスイッチを用意しました。どちらも初期設定はオンです。
人数のバッジにマウスを合わせると、追加される生徒の名前の一覧が表示されます。 登録する前に「誰が対象になるか」を確かめられるので、入れ間違いを防げます。 試験側にあった古い画面(4つのファイル)は役目を終え、削除しました。
裏側のしくみも共通にする
見た目だけを揃えても、裏側の処理が別々のままでは、また少しずつズレていってしまいます。 そこで、生徒を選び出す中心の処理も共通の部品に切り出しました。
- 在籍の判定— ある日付の時点で在籍しているかを判定する処理を、ひとつにまとめました。
- 学級候補の取り出し— 在籍0名の学級を隠す、対象の生徒名を一緒に返す、といった処理を共通化しました。
- 個別候補の取り出し— 在籍中の生徒だけを候補にする処理も、共通の部品にしています。
試験と成績は、この共通の部品を呼び出すだけになりました。 どちらか一方を直せば、両方の挙動が同じように良くなります。
試験側では、その試験の日付を基準にして在籍を判定するようにしました。 試験を実施した日に在籍していた生徒を、正しく対象にできます。
両方を一度に良くできる
共通化のいちばんの利点は、改善が片方で終わらないことです。 これまでは、試験で便利にした操作を、成績にも同じように作り直す必要がありました。 いまは共通の部品を改善すれば、試験でも成績でも同じ使い心地になります。
今回の統一によって、成績にはなかった「個別追加」が加わり、 試験には学級追加の「在籍スイッチ」が加わりました。 別々だった2つの画面の良いところを、一度の作業で互いに持ち寄ることができたわけです。
まとめ
試験と成績で別々に育っていた「生徒を選ぶ」操作を、ひとつのしくみに統一しました。
- 本当に選びたいのは生徒。学級はまとめて追加するための補助と整理
- 画面を共通化し、学級追加と個別追加をどちらでも使えるように
- 在籍の判定や候補の取り出しなど、裏側の処理も共通の部品に
- 片方を改善すれば両方が良くなり、長く保守しやすくなる
似た機能をひとつにまとめておくことが、使いやすさと作りやすさの両方につながります。
関連記事
- 転入・転出生徒の成績をどうする — 在籍期間スイッチの使い方 - 統一後の在籍スイッチの使い方
- 巨大ファイルを分割せよ — 保守性を高めるリファクタリング - 共通化と保守性の話
- データの型を統一する - 揃えることで分かりやすくする