はてなスター

って、もらえると地味にうれしいです。というはなし。

大学院生のころに、「ソフトウェアはおもちゃのようであるべきだ」という議論を博士課程の先輩としてました。
それによると:

  1. 見た目がきれいであること
  2. 操作が単純で、十分にアフォードされていること
  3. 一つ一つの操作に対し、即時リアクションを返すこと

世の中のおもちゃは、たいてい上記を満たしてると思います。
ソフトウェアも、上記を満たすことによって多くの人が使ってくれます。
実際に、図書の推薦を「欲しいと思う本をExcelにリストアップしてメールで返信」という回収方法と、「WebでISBNを入力すると、AmazonAPI経由で登録+概要表示」という回収方法があったのですが、前者は0件、後者は期限が短かったにもかかわらず、(一部の人が)大量に登録してくれました。

自分では「欲求と行動の溝」とか呼んでますけど、ある欲求を満たすための行動でも、その行動自体にコストがかかるとやめてしまいがちです。コストはお金とか時間とかのほかにも、「めんどい」とかいろいろあります。行動随伴性の考えからすると、行動前から比較した行動後のベネフィット(の見積もり)が、行動に関するコスト(の見積もり)を凌駕すれば実際に行動がなされるということになります。

そういう意味で、はてなスターはよくできてるなーと思いました。特別エントリに賛同したわけでなくても、相手に特別意見がなくても、なんとなくボタンを押せます。押すとすぐにスターが増えます。

前置きが長くなってしまいましたが、Irenkaでやりたいこと:

  1. 他人のHack(= クエリ+書き換えプログラム)を容易に導入できる
  2. 導入後、すぐにHackをプロジェクトに適用できる
  3. Hackの適用結果はロールバックできる

1つめは、EclipseのSoftware Updatesをもう1段階先に進めたような感じにしようかと思っています。Firefoxのアドオンが近いでしょうか。つまり、Hackの検索を簡単にできて、その場でワンクリックすると導入できるイメージです。
2つめは、Hackを導入し活性化した瞬間に、プロジェクトに何らかの影響が反映されるようにしたいと思います。たとえばHackの導入→活性化→回帰テストの開始まで、イメージとしては5操作程度、時間にして1分以内が目標です。
3つ目は、Hackがプロジェクトに悪影響を及ぼした際、何らかの形で適用前または導入前まで戻れるようにしたいと思います。Eclipseのリファクタ機能を使った直後にUndoを行うと、気持ち悪いくらい戻りますが、あのイメージがかなり近いですね。

少しIrenkaが動き始めたため、全体的なアーキテクチャとかの議論ができるようになってきました。実際はもう少し内部を作りこまなきゃいけないのですが、いろいろと考え中です。