ここ2〜3日話がそれましたが、イタレーションの続き書きます。
話は先週までさかのぼるんですが、最初に会った日の週末にAbdelの家でゲームプランニングをしました。

ステップ1は実現したい機能をノートに箇条書き。

まず最初に「え〜と、インターネット上にあるブログからHTML文をとってきて、それをいろいろ解析して」と切り出すと「ちがうちがう、それはあくまでやりかたとか手順であって目的じゃないよね。あくまでこのウェッブでなにがしたいのかを言わないと」とAbdelに言われてまたいちからやり直し。

基本的に私が注目しているのはブログに書き込まれるコメントをいかにマネージするかです。コメントってブログの一機能ではあるけれど、トラックバックRSS、PermLinkといった機能と比べると少し地味な機能で、ブログ以外にもSNSや掲示板などにもあるので、通常はみなさんそれほど気にしないもの。

でもブログの書き手にしてみれば、トラックバックよりもコメントの方が読者とコミュニケーションがとりやすいはず。トラックバックだと一方通行な評論に終始しがちで、そこから会話が続かないような気がします。

またブログの読み手とすると、一度自分の興味あるブログにコメントすると、自分のコメントに対する書き込みが気になってなんども書き込み確認したりしますよね。ブログによっては自分の書き込みに対する返事をメールで通知する機能や、一つの記事に対するコメントをまとめてRSS配信する機能があるけれど、対応しているところはまだ少ないとおもいます。 

またいろんな記事にコメントしてもそのうちどこにコメントしたか自分でも忘れがち。たまに本気モードで長文のコメント残したりすると、それを他人のブログのコンテンツの一部になりますが、同時に自分の物として手元にも置いておきたいと思いました。

普通そういう場合にはトラックバックとかを使うのでしょうがそれだと会話はつづきません。それにブログもっていない人はトラックバックできないですよね。ブログを開設しても毎日書くネタがないし、書いても何の反応もないとやる気がなくなってそのうち更新しなくなるっていうことはよくあるのはないでしょうか(私も今年の初めにちがうブログを開設したのですが1ヶ月続きませんでした。今回はAwardsOnRailsの終了する7月までは続けようと思っています。)

以上をまとめた上でほしいのは以下の3つの機能となりました。

1.自分の書いたコメントを投稿するとき、そのコピーをなんらかの形で保存。後で自分がいままでしたコメントの一覧を表示したい。自分のコメントをタグ付けとかしてあとで分類もできるようにしたい。
2.自分が書いたコメントに対して反応があった場合は自動通知。
3.他の人にも使ってもらいたいので、ユーザー登録機能とか管理機能とかほしい。あと多言語対応とかもできるとなお良い

今度はこれをもっと細かく区切り、一区分として完結するストーリを作っていきます。 するともっと細かく分かれていきます。

1.他人のブログにコメントを投稿したい。
2.自分が投稿した記事をデータベースに保存したい。
3.保存したコメントの一覧を見たい
4.コメントの一覧をタグで分類したい。
5.コメントの一覧を日付順で分類したい
6.コメントの一覧をブログのサイトごとに分類したい(1つのブログの複数の記事に対してコメントすることもあるので)
7.自分のコメントに他の人が書き込みした場合は通知してほしい
8.1つの記事に複数コメントした場合は、通知は一回だけに統一してほしい(更新通知の重複をふせぐため)
9.コメントの一覧に対する更新一覧を表示した時に、すでに読んだ更新と未読の部分を判別したい。
10.ログイン機能
11アカウント作成機能
12多言語対応機能

かなり具体的にやりたいことが浮かんできました。
そこで今度はこの中でもっともコアな機能はどれかを選びこむ作業に入ります。たとえばログインやユーザー管理機能は一見必須に思えますが、プロトタイプを作っている段階では作品のコアとはならない機能。そういうのは後回しになります。
それよりもこの作品をつく上でもっとも核となる機能は自分がコメントした機能をセーブし、それの一覧を見ることと、自分のコメントに対する他人の書き込みを通知する機能の二つとなります。そのあとに記事を分類したり、重複通知をなくしたり、ログイン機能が並んできます。

ということでコアのストーリーは
1.他人のブログにコメントを投稿したい。
2.自分が投稿した記事をデータベースに保存したい。
3.保存したコメントの一覧を見たい
7.自分のコメントに他の人が書き込みした場合は通知してほしい

となります。この4つが最優先に実装する機能です。

さらにこの4つの項目を難しさの順に4段階(1が一番かんたんで4が一番難しい)にランク分けします。すると 

1.他人のブログにコメントを投稿したい。 =ランク2
2.自分が投稿した記事をデータベースに保存したい。 =ランク3
3.保存したコメントの一覧を見たい = ランク1
7.自分のコメントに他の人が書き込みした場合は通知してほしい =ランク4

となりました。
これによってタスク配分が可能になってきます。現時点では多分ランク1をこなすのには4時間必要と仮定すると10ランク分のタスクをこなすのに40時間必要と仮定できます。この前の金曜日の最初の見積もりでは52時間ほど時間が取れそうなので、このコアの機能に1つ二つ余分な機能を追加可能ってところでしょうか。
もちろんこの見積もりは現時点ではどんぶり勘定なので週に一回イテレーションミーティングを開き、プランと現状との差異を調整していくことになります。

これだけ話し合うだけで4時間ぐらい費やしました。(つづく)