これはソフトウェアマネジメントに関するサイトJoel on Softwareの機能仕様書サンプルです。教育目的で作られており、すべてがいかに馬鹿げているかお気付きにならない方のために申しますと、言及されているのは現実の製品ではありません。(特に頭の鈍い部類の)ベンチャーキャピタリストへの注意: この製品アイディアは、事前評価額2000万ドルに対する500万ドルの追加投資で構築することができます。


WhatTimeIsIt.com
機能仕様書

ジョエル・スポルスキ
最終更新日: 2000/9/27

- 極秘 -

© 2000 Fog Creek Software, Inc. All Rights Reserved. 


概要

WhatTimeIsIt.comはWeb上で現在時刻を人々に知らせるサービスである。

この仕様書は、いかに想像力をたくましくしようと、不完全である。すべての文言は完成までに数回改訂される必要があるだろう。画面の画像及びレイアウトは背後にある機能を説明する目的で示されている。実際のルックアンドフィールはグラフィックデザイナからのインプットとユーザからのフィードバックの反復により、長期にわたって開発されることになるだろう。

この仕様書では時間計算エンジンで使用されるアルゴリズムについて議論しない。それは別なところで議論することになるだろう。この仕様書はWhatTimeIsIt.comと対話するときにユーザが見るものだけについて議論する。

シナリオ

製品のデザインにおいて、(類型化された)現実の人々がそれをどのように使うかという実生活上のストーリーをいくつか想像することが助けになる。我々は2つのシナリオを検討する。

シナリオ 1: マイク
マイクは多忙な経営者である。彼はトイザラスのような全国チェーンを通して販売されているダイナマイトを使った子供向け製品を製造する有力な大企業の社長である。典型的な一日において彼は、多くの非常に重要な人々との会議にいくつも出席する。支払期限が3ヶ月前のクレジットラインの利息を彼が支払わないことに嫌がらせをするために、時々銀行から男がやってくる。時には別な銀行から別な男がやって来て、別なクレジットラインに入会させようとする。またしばしば彼のベンチャーキャピタリスト(マイクにビジネスを始める金をくれたいい人たち)が、彼が金を儲けすぎると文句を言いに来る。「かがり火だ」と彼らは要求する。「ウォールストリートはかがり火を見たいんだ!」

マイクがこれこれの時に会おうと約束しながら、そのときになってみるとどこにも見あたらないことに、これらの訪問者たちはとても怒っていた。これはマイクが今何時かわからないために起こったことだ。マイクは秘書の薦めに従ってWhatTimeIsIt.comに入会した。今や彼は、時刻が知りたいときにはいつでも、単にWhatTimeIsIt.comにログオンしてユーザ名とパスワードを入力するだけで現在時刻を知ることができる。彼は日に何度もこのサイトを訪れる: 昼食時間がいつか知るために、次のミーティングに遅れないかチェックするために、などなど。一日の終わり近く、実際には午後3時頃から、いつ家に帰れるのかと頻繁にサイトをチェックするようになる。4:45までには彼は「再読込」ボタンを繰り返し押し続けているというのが常だ。

シナリオ 2: シンディ
シンディは高校に通うティーンエージャーだ。まったくひどい公立高校に通っているが、とても頭のいい彼女は、午後2時に家に帰って代数の宿題を終わらせるのに、(平均して)7分ほどしかかからない。彼女の他の教師達は宿題を出しさえしない。彼女の幼い弟(半分弟)は唯一のテレビセットの前でテレタビーズを見ながらのんびりしているので、彼女は午後(2:07から新しい母親が夕食を出す6:30まで)の間、ネットサーフィンしたり、友達とAOLでチャットしたりして過ごす。彼女はいつもエキサイティングな新しいWebサイトを探している。検索エンジンに「今何時?」と入力した結果として(彼女はインスタントメッセンジャーで友達に聞くつもりで、間違ってそうしたのだった)、彼女はWhatTimeIsIt.comに行き着き、新しいアカウントをセットアップした。彼女はユーザネームを選択し、「RyanPhillipe」をパスワードにし、タイムゾーンを選択して、そしてほら、今何時かを見い出したのだ。

対象外

このバージョンでは以下の機能はサポートしない:

WhatTimeIsIt.com フローチャート

退屈な詳細は後で扱うとして、今は全体像を捉えるため、サービスの概略のフローチャートを見ることにしよう。このフローチャートは完全ではないが、WhatTimeIsIt.com使用の「ストーリーボード」の適切なイメージを与えてくれる:

画面ごとの仕様

WhatTimeIsIt.comはかなりの数の異なる画面からなる。多くのスクリーンは標準的なフォーマットに従っており、ルックアンドフィールは将来グラフィックデザイナによって設計されるだろう。このドキュメントは正確なルックアンドフィールよりは、機能およびインタラクションのデザインを扱っている。

すべての画面はHTMLで作成される(唯一の例外はスプラッシュスクリーンで、これはMacromedia Shockwaveで作成する)。

WhatTimeIsIt.comのそれぞれの画面には正式名称があり、このドキュメントではそれを下線付きで表示するので、画面が参照されている場合にそれとわかるようになっている。例: Home Page

スプラッシュスクリーン

余計で煩わしいShockwaveアニメーションで、馬鹿げた音楽を鳴らして、誰をもイラつかせる。Splash Screenはソーホーにロフトがある高給取りのグラフィックアニメーションブティックに委託される。そう、あの飼い犬を職場に連れ込み、見つけたものを安全ピンで耳に止め、昼食前に4度スターバックスに行く人々だ。

アニメーションが10秒間ほど再生された後、「スキップする」と書かれたリンクが右下隅に徐々に現れる。ユーザがこれを見つけてクリックするのを避けるため、「スキップする」はずーっと右下の方に置かれ、ほとんどの人はこれに気づかないだろう。それは少なくともアニメーションの左端から800ピクセル、上端から600ピクセル離れていなければならない。

「スキップする」をクリックするとHome Pageに移動する。アニメーションが終わったら、ブラウザを自動的にHome Pageにリダイレクトする。

未解決の問題
マーケティング部門が許すなら、我々はユーザのコンピュータにクッキーを置き、彼らが「スキップする」をクリックすると、それ以降は常にアニメーションがスキップされるようにすべきだ。頻繁に訪れるユーザはアニメーションを2回以上見る必要はない。私はマーケティング部のジムにこのことを話したので、彼は販売、マーケティング、PRの委員会を招集して議論するだろう。

ホームページ

Shockwaveアニメーションが終わると表示さるHome Pageには、3つの目的がある:

  1. 人々にサービスについて学んでもらい、加入を検討してもらう
  2. すでに加入しているメンバーがログインする
  3. 加入したい人々がアカウントを作成する

Home Pageは以下のような外観をしている:

WhatTimeIsIt.com
WhatTimeIsIt.comへようこそ。このサービスは正確な現在時刻をお知らせします。

(あなたが受け取る結果は違っているかもしれません。私たちは送信時やあなたのコンピュータにおける遅延には責任を持てませんが、それによって実際の時刻が表示時刻より進むことがあり得ます。このサービスは現状のままで提供され、娯楽目的であり、正確な時間管理が目的ではありません。WhatTimeIsIt.comを耳につっこんだり、耳掃除に使用したりしないでください。)

WhatTimeIsIt.comは簡単で、しかも楽しいです。もしまだメンバーでないのでしたら、すぐ加入して、今何時かを見い出してください!

すでにメンバーになっている方は、ここをクリックしてログインしてください。

まだメンバーになってない方は、心配しないで—加入は無料です!そう、その通り、ただなんです! すぐにここをクリックしてサインアップしてください。数分で今の時刻を知ることができるようになります。

プライバシー | 会社概要 | 採用情報 | 問合せ先
WhatTimeIsIt.comについ

この画面、および他のすべての画面で、左上にあるWhatTimeIsIt.comのロゴをクリックするとHome Pageに戻る。

テクニカルノート
画面の間に高い類似性があるので、サービスの名称が変更された場合や我々の望むドメインネームが取得できなかった場合に、すべての画面を一カ所で変更できるよう、サーバのインクルードシステムを何か使用すべである。私はVignette Story Serverを勧める。そう、これは確かに行き過ぎだ。$200,000もかかる。しかしこれはサーバサイドインクルードを使うよりずっと簡単なのだ!

「ここをクリックしてログイン」と書かれたリンクをクリックするとLog In Formに移動する。「ここをクリックしてサインアップ」と書かれたリンクをクリックすると、Sign Up Formに移動する。他の5つのリンクはマネジメントにより提供される静的テキストのページを表示するが、それはこの仕様書の範囲外である。それらはあまり頻繁に変更する必要はないだろう。

ログインフォーム

Log In Formは現メンバーがアカウントにログインし、現在時刻を取得するために使用される。これは以下のような外観をしている:

WhatTimeIsIt.com
emailアドレスを入力してください:


パスワードを入力してください:
 


パスワードをお忘れですか? emailアドレスだけ入力すれば、パスワードをemailでお送りします。

まだメンバーになってない方は、心配しないで—加入は無料です! そう、その通り、ただなんです! すぐにここをクリックしてサインアップしてください。数分で今の時刻を知ることができるようになります。

プライバシー | 会社概要 | 採用情報 | 問合せ先
WhatTimeIsIt.comについ

右側の画面は、Home Pageのところで記述したのと同じように振る舞う。

emailテキストボックスは60文字まで入力できる。パスワードテキストボックスは12文字まで入力できる。ハッキング防止のため、ユーザがパスワードボックスへ入力すると、入力された文字のかわりにアスタリスク(*)が表示される。

テクニカルノート
これには<INPUT TYPE=PASSWORD>を使えばよい。

ユーザが「ログイン」をクリックすると、以下のチェックがサーバで実行される:

  1. emailアドレスが提示されたが、フォーマットが正しくなく(たとえば@マークがないとか、RFC-822でemailアドレスでの使用が許されていない文字が含まれているとき)、実際のemailアドレスであり得ない場合、サーバはLog In Formとよく似ているが、アドレスボックスの上に赤文字でエラーメッセージ「emailアドレスが正しくありません。もう一度確認してください。」が挿入された別のページを返す。このテキストは赤だが、テキスト「emailアドレスを入力してください」の部分は黒のままである。ユーザが入力した誤ったemailアドレスは、あらかじめエディットボックスに設定されている。
     

  2. 入力されたemailアドレスが登録メンバーのものではない場合、サーバはLog In Formとよく似ているが、アドレスボックスの上に赤文字でエラーメッセージ「emailアドレスは登録されていません。もう一度確認してください。メンバーになるには、画面右側のリンクをクリックしてください。」が挿入された別のページを返す。このテキストは赤だが、テキスト「emailアドレスを入力してください」の部分は黒のままである。[開発者への質問。 JavaScriptを使って、ユーザがメンバー登録のリンクをクリックしたときに、入力されたemailアドレスを自動的に登録フォームに設定することは可能か?]
     

  3. 入力されたemailアドレスが登録ユーザのものであるが、パスワードが入力されなかった場合、そのアドレスにパスワードを含むemailを送信する。emailの件名は「あなたのWhatTimeIsIt.comメンバシップ」である。emailはプレーンテキストとする。emailの詳細な文面は取締役会で熱心に討論されており、出荷前のどの時点かで提供されるだろう。[開発者へ: 一時的に汚い言葉を使うことを提案する。そうすればチャックも尻に火がつくだろう。]
     

  4. emailアドレスが登録ユーザのものと一致し、パスワードが誤っている場合、サーバはLog In Formとよく似ているが、アドレスボックスの上に赤文字でエラーメッセージ「入力されたパスワードが間違っています。もう一度確認してください。パスワードの大文字小文字は区別されます」が挿入されている別なページを返す。パスワードが小文字を一つも含まない場合、メッセージにテキスト「キャップスがロックされていませんか?」を追加する。パスワードが正しくない場合はいつでも、Log In Formのパスワードボックスはクリアされる
     

  5. emailアドレスとパスワードが正しい場合、Display Timeに移動する。

未解決の問題
2番目のケースでJavaScriptについての決定を行う必要がある
 

未解決の問題
パスワードを返信するemailのためのCEOの文面が必要である
 


Joel on Softwareに戻る