機能が完成し、テストでも問題なく動く。そこで制作を終えたくなりますが、実際に使い始めると、テスト中には見えなかった違和感が出てきます。
MANIARUで作ったWordPressの仕組みでも、公開後の運用から改善点が見つかりました。入力した文字が保存後に変わる。利用者を追加すると過去の記録まで変わる。完了した項目がHOMEに残り続ける。どれも、画面を作った時点では気づきにくい問題です。
この記事では、実際の利用から問題を見つけ、直し、もう一度確認した3つの例を整理します。
完成直後の確認だけでは分からないことがある
制作中のテストでは、想定した入力と手順で動作を確認します。一方、実際の運用では、長い共有パスを貼り付けたり、後から利用者を追加したり、文書を完了まで進めたりします。
問題が見つかったのは、機能が動かなかったからではありません。機能を使い続けたときに、保存前後や時間の経過、画面同士のつながりにずれが生まれたからでした。
| 実際に起きたこと | 見直した場所 |
|---|---|
| 保存後にバックスラッシュが消えた | 入力値をWordPressへ渡す処理 |
| 利用者追加で過去文書の対象まで変わった | 確認対象を決めるタイミング |
| 完了した文書がHOMEに残った | HOMEと記録一覧の役割 |
例1:保存後にバックスラッシュが消えた
WordPressのコメント編集機能へ、共有フォルダのパスを扱う処理を追加しました。入力時には正しく見えていた文字列が、保存後に確認するとバックスラッシュだけ消えていました。
表示側を直しても解決しません。保存前の値を調べると、WordPressが入力を処理する段階と、独自コードが保存する段階でエスケープの扱いが合っていないことが分かりました。
そこで、保存処理へ渡す前にwp_slash()を使い、WordPressが期待する形へ値を戻しました。編集画面で共有パスを保存し、再び開いて同じ文字列が残ることまで確認しました。
詳しい原因と最小例は、WordPressのwp_slash()とは? コメント編集でバックスラッシュが消えた原因を理解するに分けてまとめています。
例2:後から利用者を増やすと過去文書まで変わった
確認が必要な文書では、誰が確認対象で、誰が確認済みかを表示しています。最初は画面を開くたびに、現在登録されている利用者から対象者を計算していました。
この方法では、新しい利用者を追加した瞬間に、発行当時にはいなかった人まで過去文書の未確認者になります。現在の組織状態は正しくても、発行時点の記録としては正しくありません。
確認対象を毎回計算するのをやめ、文書を発行した時点のユーザーIDを保存する形へ変更しました。その後に利用者を追加しても、過去文書の対象が変わらないことを確認しました。
この改善は、WordPressで「投稿→確認→完了」を業務フローにする。状態をつなげた考え方で、業務フロー全体と一緒に整理しています。
例3:完了した文書がHOMEに残り続けた
HOMEへ未完了文書を表示すると、利用者は次に確認するものを見つけやすくなります。しかし、完了後も同じカードを残すと、行動が必要な文書と過去の記録が混ざりました。
一方で、完了した投稿を削除すると履歴をたどれません。そこで、必要な確認がそろった文書はHOMEから外し、カテゴリー一覧と検索には残す形にしました。
- HOME:今、対応が必要なものを表示する
- カテゴリー一覧・検索:完了後を含む記録を探す
完了前後の両方を確認し、HOMEからは消える一方、記録としては開けることを確かめました。表示件数を変えるだけではなく、それぞれの画面の役割を分けた改善です。
問題を見つけたら、再現できる形にする
実際の利用で違和感を見つけても、その場ですぐコードを変えると、何が原因だったか分からなくなることがあります。今回は次の順番で確認しました。
- 起きたことを、入力値や利用者の状態と一緒に記録する
- 同じ条件で問題を再現する
- 保存処理、対象判定、表示場所など原因の範囲を絞る
- 必要な部分だけ変更する
- 同じ手順で直ったことを確認する
- 変更によって別の動作が壊れていないか確認する
「おかしい気がする」を、入力・操作・期待した結果・実際の結果に分けると、修正後の確認条件も明確になります。
改善記録を次の制作へ返す
3つの問題は別々に見えますが、共通していたのは、一つの画面だけを見ても分からないことでした。
- 入力から保存、再表示までを見る
- 現在の状態だけでなく、発行時点の状態を残す
- 完了後にどこへ残すかまで決める
作って終わりにせず、使って分かったことを記録すると、次に同じ仕組みを作るときの確認項目になります。
作る → 使う → 違和感を記録する → 再現する → 直す → もう一度使う。
MANIARUでは、この循環も実験の一部として残していきます。完成は区切りですが、実際に使って分かることが、次の改善の始まりになります。