見出し画像

システム開発の目的と手段を考える - 共通テスト情報ⅠのMさん健気すぎ問題 -

深夜2時。あと数時間後には娘の登園準備が始まる。でも、どうしても寝る前に書き残しておきたいことがある。
それは、昨日行われた共通テストの情報Ⅰ 第2問Bの問題について。システム開発経験者として、どうしても登場人物のMさんに伝えたいことがあるんだッ…!


設問のサマリー

まずは今回の問題のサマリーを下記に記載します。
問題の原本を読んでみたい人はこちらなどから見れます。

第2問B
あるグループの会計係を務めるMさんは、10人のメンバーから6,000円ずつ集金する役割を担いました。しかし、以前の経験から「お釣りを準備する際のトラブル」を避けたいと考え、システム的なアプローチを取ることに決めました。

その結果、以下の手順で解決に取り組むことにしました。
- 参加者が千円札6枚(6,000円)または1万円札(10,000円)のいずれかで支払うと仮定。
- 乱数を用いて支払いパターンをシミュレーション。
- 1万回の試行を通じて、どれだけのお釣り用千円札が必要かを算出。

結果として、お釣りのために必要な千円札の枚数を算出し、事前に準備する手法を採用。

共通テスト情報Ⅰ 第2問B ChatGPTによるサマリー

Mさん、あなた健気すぎませんか!?

Mさんの努力、分かります。むしろ共感しかないです。みんなに迷惑をかけたくないんですよね、その気持ち、めちゃくちゃ伝わります。でもね、1万回もシミュレーションしてる姿を想像すると、なんとも言えない感情がこみ上げてきますよ。

だってこれ、目的と手段が逆転しちゃってません?
本来、Mさんが解決したいのは「お釣りのトラブルをなくす」ってことですよね。足りなくなったから下ろしに行って待たせちゃうとか、後日返すので〜みたいに言わなきゃいけなくなるとか。でもいつの間にかその「お釣りの返却を完璧にすること」自体がゴールみたいになっちゃってませんか!

もっとラクで現実的な解決策を提案してみる

今回のMさんのケースでは、本来の目的は「スムーズに集金すること」ですよね。でも、1万回の試行をする中で、どこか「このシミュレーションを完璧に成功させること」自体が目的化しているように見えます。

1. 事前に一言伝えるだけで解決する説

たとえば、こういうアナウンスをするだけでいいんじゃないですか。

「代金はお釣りのないようにご用意ください」

これ、言葉の魔法ですよ。システムとか乱数とかいりません。参加者に軽くお願いするだけで、Mさんの努力が9割減ります。

2. 電子決済に切り替える

最近はキャッシュレスが当たり前の時代。PayPayとかLINE Payとか、QRコードひとつで、そもそも現金のやり取りがゼロに。Mさんが夜中にシミュレーションしなくたって、スマホが全部やってくれます。

3. シンプルなルールを導入

どうしても現金じゃなきゃダメな場合でも、一言言っておけばいいんです。

お釣りが発生した場合は、次回返金します。

と…。簡単!シンプル!ストレスフリー!

4. 千円札を40枚用意しておく

…これでいい気がしてきた。
でも今両替とかも大変だし、4万円分準備しなきゃいけないって考えるとこれは最終手段にしたいか。

目的と手段を見直そう

私の持論としては、システムはあくまで「手段」だということ。
以前倉庫作業のある現場でシステム開発をしていましたが、同じ開発チームだったメンバーは、システム開発ではなくオペレーションの見直しや動線の改善で大幅にアルバイトさんの作業時間を減らしていました。それこそエンジニアのあるべき姿だと思いました。

Mさんのように責任感が強い人ほど、手段にのめり込んでしまうことがあります。でも、そこで立ち止まって「これ、本当に最適解?」って問い直すのが大事だと私は思います。

Mさんへ

Mさん、本当にお疲れさまでした。その優しさ、責任感、素晴らしいと思います。きっと完璧に集金完了できましたよね。でも、ちょっと肩の力を抜いても大丈夫。人って案外、少しのアナウンスで動いてくれるものです。
Mさん、次はもっとラクにいきましょう!


…と問題にマジレスしてしまいましたが、問題の出題意図や解説はこちらのnoteがとっても勉強になりました!!でもやっぱりお釣りいっぱい持ってったらいいですよね。


いいなと思ったら応援しよう!