INASOFT 管理人のひとこと


フリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。
2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。
・INASOFT Webサイト: https://www.inasoft.org/
・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/
本業の方のお仕事が再び忙しくなりつつあるので、断続的にしばらく更新が止まることがあります。

目次 | ←前へ / 2021-02-03 00:00 / 次へ→ / 最新へ⇒

■すでにヘルプどころかダイアログ上に記載済みの時刻指定ON/OFFの件…についてコメント頂きの掘り下げ

2021/ 2/ 3 0:00:00



RSSRSS配信中

https://www.inasoft.org/








先日、すでにヘルプどころかダイアログ上に記載済みの時刻指定ON/OFFの件についての記事を書いたのですが、これについて、「タスク スケジューラを触りたくない。マウスふるふるのGUIで簡単に出来てほしい」という意図なのではないか?というコメントをいただきました。

これは非常に重要な観点となるため、今回はこれについて掘り下げていきたいと思います。

この観点を掘り下げる上で、重要なことが2点ほどあります。

1点目は、端的に言うと「そうであれば、そう書いておいて欲しいものだ」ですね。

ダイアログ上の注意書きを読んだうえでの要望なら、それだと何が足りないかを書いて欲しいものですね

実は以前にもこういうことがありました。例えば過去記事だと、こういうのがあります。

2011年に「すっきり!! デフラグ」に寄せられた機能追加要望(しかし、すでに存在する機能)。これも、フィードバック経由での機能追加要望をいただいたパターンでして、返信先が書かれていなくて、当初、「その機能は既に存在する」ことを伝えられずにいました。しかし、後日ブログコメントにて事情を教えていただくことができました。なんと「その人は、実は一度もすっきり!! デフラグを使ったことがなく、冗談のつもりで書いたものだった」という顛末でした。

他にもこういったことは度々ありましてね。「それならそうと書いて欲しい」し、「そうでないなら、現状で存在する機能や案内文では何が不満かを事細かに書いて欲しい」ものですね。でないと、改善も何もできたもんじゃない。

2点目は、時刻指定関係の機能は、要望を想定(妄想)して、あるいは先々のことを考えて実装しようとするには、沼が深い、ということ。

当初いただいている要望だと「10:00~17:00だけONにする時間指定をしたい」ということなのですが、おそらくこれには、暗に「月曜日~金曜日のみ」「盆暮は除く」などの要望が隠れているのではないかと思います。仮に本人はそういう要望を持っていなかったとしても、「時刻指定機能が付いた」と聞いて喜ぶ人は、これくらいのことを暗に期待している可能性があります。これは、仕様要求がどんどん膨れ上がっていく危険なパターンと感じます。

中途半端に要望を叶えると沼にハマる危険があるわけですね。それならば、初めから完璧に出来上がっているタスク スケジューラを連携させる方が、作者-利用者がWin-Winの関係を築きやすいですね。

しかもこの手の対応って、「時間外にわざわざ起動したらどうなる?」とか、「時間内に手動OFF/時間外に手動ONした後に再起動したらどうなる?」のような、要望者としては気にしない(そんな細かいことはどうでもいいとすら思っている)けど、実装のためには必要な仕様決めとかもあって、仕様を詰めるのがかなり大変だったりもします。

要求者が「どうでもいい」と思っていたとしても、プログラム中に「 doudemoii(); 」という命令語を書けるわけではないですし、逆に「どうでもよくない」と思っている利用者もいるわけで。

手動を優先するのが常識でしょうか? いや、時間外に動かしたくない要望の方が強いのだから、手動を時間設定が上書きできるのが常識的な考えでは? いや、日本人は残業が大好きだから、定時後に仕事をすることが生じるのは常識では?とかいう働き方改革で真っ向から衝突する両常識の代理戦争をやったりですね。 それはそうとして、途中に再起動を挟んだらどっちのモードになる?とか…。

曜日についてはどうでしょう。普通に月曜日~金曜日を想像してしまいますが、人により土・日曜日については「土・日は起動していないからどうでもいいのが当たり前でしょ?」「起動しているし、常時OFFになっているのが当たり前でしょ?」「起動しているわけで、土・日も時間通りにON/OFFされるのが当たり前でしょ?」という3種の「当たり前」派がおり、それぞれ自分のやり方を「当たり前」だと思っているので、「それぞれを選べるように、選択できるようにプルダウンの選択肢を配置しておくのが当たり前でしょ?」となって、どんどん仕様が膨れ上がっていきます。やろうとすると沼が深すぎる。であれば、本プログラムとしては指示をコマンドで受けるだけという「仕切り」を設けておき、日付・曜日・時刻指定はタスク スケジューラを使うことが望ましいのでは?となってきます。

あと、夜勤者の昼夜逆転問題というのがありますね。ONの期間(時刻)を表す大小関係が逆転するので、単純に区間を表す1行のif文では制御できなくなります。あと、曜日との絡みもありますね。夜勤者の金曜日の終了時間は、実時間では土曜日の朝になります。「土・日が休み」というのは、「土曜日の朝6時59分までは金曜日扱い。月曜日も20時59分までは日曜日扱い」みたいな例外が生じたりします。

こんな例外的なことまで考えてUIを作りこむのは、かなりツライ。これがタスク スケジューラなら、

  • 月曜日の夜21時に起動コマンド発行
  • 火曜日の朝07時に終了コマンド発行
  • 火曜日の夜21時に起動コマンド発行
  • 水曜日の朝07時に終了コマンド発行
  • 水曜日の夜21時に起動コマンド発行
  • 木曜日の朝07時に終了コマンド発行
  • 木曜日の夜21時に起動コマンド発行
  • 金曜日の朝07時に終了コマンド発行
  • 金曜日の夜21時に起動コマンド発行
  • 土曜日の朝07時に終了コマンド発行

という、10個のコマンドを登録すればよいだけだったりします。これをマウスふるふる用に新しいUIを作って、10個の別々な設定を与えるための仕様を考えると……、もう大変なことになっちゃうわけで。工学の法則にありましたね。レアパターンの方への対応ほど、複雑なUIを必要とするという。

時刻指定でON/OFFできるようにしてほしい」という、たった1行の要望を見ると簡単そうに見えますが、実装に落とそうとすると、これだけ多くのことを解決しなければならない、考えないといけないことが隠れているというわけですね。

余談ですが、他のソフトの話ですが、設定を多くしすぎたことにより、20年くらい前に「設定が複雑になるから、これ以上機能を増やさないでくれ」という苦情をもらったことがありました。



目次 | ←前へ / 2021-02-03 00:00 / 次へ→ / 最新へ⇒


目次の表示:


ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメールフィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。
当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。本ページは公開から1年半後の任意のタイミングで削除される予定です。




2575079 (+1633)[+0424]

Copyright© 2010-2021 INASOFT