メインコンテンツまでスキップ

経験を生かして新卒採用ツールを作ってみた(5) ~「出来ました」を、事情を知らない相手に確かめてもらった~

鶴田
ディアシステム(株)開発一部第2課

はじめに​

「できました」と言われたとき、それをどう扱うか。

新卒採用の進捗を管理するツールを、AIに手伝ってもらいながら作りました。作業を頼めば、たいてい「完了しました」と返ってきます。

ただ、終わったかどうかを、作った本人が決めてよいのか。ここは決めておく必要がありました。今回は、その仕組みの話です。そして、その仕組みが私自身の取りこぼしを見つけた日の話です。

結論だけほしい方はこちらの第6回の振り返りをご確認ください。

なお、ここで紹介するツールは個人開発として作ったものであり、当社のプロダクトではありません。実際の採用活動で運用するかどうかは未定です。

今回の対象読者​

  • 開発者が、何を考えてものを作っているのか知りたい方
  • AIを使った開発が、実際にはどんなところから始まるのか気になる方

開発の手順そのものの解説ではなく、確認の仕方の話になります。

まず結論​

作った担当は、自分の完了を宣言できない。 これを決め事にしました。

判定するのは、作業の経緯を知らない別の担当です。渡すのは、出来上がったもの、「何ができていれば完了か」という条件、そして確認に必要な記録。渡さないのは、作業中のやりとりです。

この仕組みは、実際に私の取りこぼしを見つけました。

「できました」を信じてよいか​

自分で作ったものを自分で確認すると、私は甘くなります。

疑っているという話ではありません。経緯を知っているからです。ここは事情があってこうした、ここは仕方がなかった。そういう背景が頭にあると、「まあ大丈夫だろう」のほうへ寄っていきます。

AIに任せた作業でも、 作る役と、確かめる役を分けました。

確かめる人には、事情を渡さない​

確かめる担当に渡すのは、次のものです。

  • 出来上がった成果物(ファイルの場所と版)
  • 「これができていれば完了」という条件
  • 作業の証拠になる記録(テストの実行ログ、手で確認した記録など)
  • 決まったことの一覧(決めていないことを1行ずつ書き出した、あの表です)

渡さないのは、作業中の会話です。どういう事情でそうなったのか、どこで苦労したのか。そういうものは一切渡しません。

根拠がないまま判定させる、という意味ではありません。**根拠は渡す。事情は渡さない。**この区別が要です。

作った側と確かめる側を分けたのは、同じ担当が作って、自分で合格としないためです。

確かめる役には、書き込む権限も与えていません。判定を返すだけです。

実際に起きたこと:合格と数えてはいけないものがあった​

最後の工程で、この仕組みが働きました。

画面を通した通しのテストを進めていたときです。ある確認項目を、3種類のブラウザで自動的に試すようにしていました。

① 実装した担当が、1つだけ飛ばした 3種類のうち1つでは、当時は確認を実行できませんでした。そこで、その1つは飛ばす設定にしました。そのうえで、「これを受け入れ確認に回すかどうかは、判断してほしい」と報告してきました。判断を求めてきていた、ということです。

② 私が、決まったことのように扱った ここで私が、その判断をしませんでした。確認したつもりで、「受け入れ確認に送りました」と、もう決まった話として扱ってしまったのです。作業の記録には「受入テスト送り」と書き、次の担当への依頼文では、そのまま「合格」と書いてしまいました。

③ 報告書に、合格として数えられた 依頼文にそう書いてあるので、報告書ではその項目が合格として集計されました。合格44件のうちの1件です。

④ 差し戻された 最後の確認で、経緯を渡されていない担当が、実行ログと決まったことの記録を突き合わせました。ログには「1件飛ばした」と残っている。一方、それを受け入れ確認に回すという決定はどこにもない。そこで「合格と数える根拠がない」として、差し戻されました。

判定を始めたのが11時20分、差し戻しの票が出たのが11時23分でした。

取りこぼしたのは、AIではなく私だった​

この一件を、あとから自分で整理し直しました。

実装した担当は、正しく報告していました。「判断してほしい」と書いてありました。飛ばしたことも隠していません。

落としたのは、中継していた私です。判断が要るものを、判断せずに、決まったものとして次へ流しました。

しかも、そのあとの調査で、もっと恥ずかしいことが分かりました。「この環境では確認できない」という前提自体が間違っていたのです。やり方を変えれば、3種類すべてで確認できました。実際にやってみたら、全部通りました。差し戻し票が出てから17分後のことです。 差し戻しは1回で済みました。調査結果を受けて仕様とテストを見直し、3種類すべてで確認し直しました。その結果を報告書と、決まったことの記録に反映しました。

ゲートで落ちるのは、失敗ではありません。仕組みが働いた証拠だと考えるようにしています。

つまずきポイント​

決定のない「飛ばした」は「合格」ではありません。

その時点では、その環境で確認できない制約だと考えられていました。

それでも、確認の範囲を狭める判断には、決定が要ります。技術的にどう見えるかと、それを決めてよいかどうかは、別の話です。

私はすべての事情を知っていたので、決定の根拠を確認せずに通してしまいました。

そしてもう1つ。確認する人が事情を知りすぎていると、この種の見落としは通ってしまいます。

実務ではどう考えるか​

作る人と確かめる人を分けるのは、役職の上下の話ではありません。役割の分離です。偉い人が確認する、という話ではなく、作っていない人が確認する、という話です。

そのために要るのが、完了の条件を先に決めておくことでした。今回の最後の工程では、こういう条件を事前に文字にしていました(全部で4つあるうち、この話に関わる3つを挙げます)。

  • すべての確認項目が実施済みであること。ただし決定により範囲外とされたものは、課題管理表で解決済みかつ根拠に利用者の回答があるうえで、その決定どおりに報告書で区分されていること
  • 加工していない実行ログがあり、報告書の判定と一致すること
  • 報告書の判定と集計が、証拠・仕様書の期待結果・決まったことの記録と矛盾しないこと(実施していない項目を合格と書いていないこと)

1つ目と3つ目の条件があったことで、実行ログと報告書を突き合わせ、差し戻す根拠にできました。

何かを提出する前に、「これができていれば完了」という条件を先に書いておく。そういう進め方もあります。自分で書いた条件でも、あとから自分を助けてくれます。

まとめ​

  • 作った担当は、自分の完了を宣言できないことにした
  • 確かめる担当には、成果物・完了条件・根拠になる記録を渡し、作業中のやりとりは渡さない
  • 飛ばしたテストを合格と数えた報告書が、差し戻された
  • 報告してきた側は正しかった。判断せずに流したのは中継役の私だった
  • 今回の差し戻しは、仕組みが働いた結果だった

次回は、このシリーズの最後です。ここまで「確認が大事」と書いてきましたが、その結果どうなったか。書類が増えすぎて、自分で読み切れなくなった話を書きます。

なお、このツールは会社のプロダクトではありません。自分の手で一通り作ってみるための個人開発です。実際の採用活動で運用するかどうかは未定です。

次に試してほしいこと​

何かを提出する前に、「これができていれば完了」という条件を先に書いておく、という方法があります。提出したあとで、自分の書いた条件と突き合わせてみると、抜けが見えることがあります。

このシリーズの他の記事​

未経験から始める
システムエンジニア

一生モノのITスキルを身につけよう

あなたの経験とスキルを
ディアシステムで発揮してください!