這是一份功能規格的範例, 是討論軟體管理的網站Joel on Software中的一環. 這份規格是以教學為目的, 並不牽涉任何真實的產品. 這樣聲明是怕萬一你沒注意到這整篇東西有多蠢. 創投業者注意, 特別是很蠢的哪些: 先期投資500到2000萬美金就可以實現這個產品的點子.


WhatTimeIsIt .com
功能規格

Joel Spolsky
最後更新日期: 2000年9月27日

- 極 機 密 -

著作權 2000 Fog Creek Software, Inc. 保留所有權利. 


概要

WhatTimeIsIt.com 是一項用網路告訴大家時間的服務

不管再怎麼幻想, 這份規格都是不完整的. 在完成前所有用字都需要修改多次. 這裡展示的畫面圖案及配置只是為了說明裡頭的功能. 實際的外觀需要參考繪圖設計師意見並視使用者反應逐步開發.

時間計算引擎所用的演算法會在其他文件中討論, 並不會出現在這份規格中. 本規格只討論使用者與WhatTimeIsIt.com互動時所看得到的內容.

腳本

想像一些真實(典型)人物如何使用產品的真實生活故事, 會對產品設計很有幫助. 我們將會看看兩份腳本.

腳本1: 麥克.
麥克是位忙碌的經營者. 他是一家重要大公司的總裁, 公司的業務是製作在玩具反斗城等全國連鎖店販售的超熱門兒童玩具. 在典型的某一天, 麥克和很多大人物有很多會議要開. 有時候會有銀行的人抱怨他信用貸款的利息三個月未繳. 有時候另一家銀行的人會要他再申請另一個信用貸款. 有時候他的出資者們(拿錢給麥克開公司的好人) 會跑來抱怨他賺太多錢了. "多燒點錢!"他們要求著說"華爾街要看到燒大錢!"(譯著:諷刺網路泡沬時代公司花錢愈兇愈有價值)

如果麥克先前答應要在某時刻見面, 結果時間到了又找不到人, 這些訪客就會非常不爽. 而當麥克不知道時間時就會發生這種事. 基於秘書的推薦, 麥克新開了一個WhatTimeIsIt.com 的帳號. 現在當麥克不知道時間時, 只要登入WhatTimeIsIt.com, 輸入他的用戶名稱和密碼, 就可以知道現在的時間. 他每天都要上這個站好幾次: 看看是否到了午餐時間, 查查下個會議是否遲到等等. 等到一天快結束時(事實上是從大概下午三點起),他就會一直查查是不是該回家了,而且查的次數愈來愈密. 基本上從4:45開始, 麥克就只是一直在按重新顯示.

腳本2: 辛蒂.
辛蒂是個高中生. 她在一所很爛的公立高中唸書不過人很聰明, 所以她下午2點回家後平均只花約7分鐘寫代數作業. 其他科目的老師根本連作業都懶得出. 她的小弟弟(同父異母的)只會窩在電視前看天線寶寶, 所以下午(從2:07起到約6:30 媽媽弄好晚餐)都在逛網路並且和AOL上的朋友聊天. 她總喜歡找些刺激的新網站. 因為不小心在搜尋引擎上輸入了"What Time Is It?"(純屬意外, 她本來只是想在Instant Messenger 上問朋友時間而已), 所以連到了WhatTimeIsIt.com 並且建了個新帳號. 她選了用戶名稱並把密碼設成"RyanPhillipe"再選好時區, -- 就知道現在的時間了.

非目標

這個版本不會支援下列功能:

WhatTimeIsIt.com 流程圖

我們待會再花時間討論細節, 現在先看看這個服務的流程圖, 讓你能有些概念. 這份流程圖並不完整, 不過還是讓你正確地瞭解使用WhatTimeIsIt.com的"腳本":

[Image]

各個畫面的規格

WhatTimeIsIt.com 由很多不同的畫面構成. 大部份畫面都會依循一個標準格式(實際型式將由繪圖設計師負責). 這份文件主要著重在功能性以及互動設計而非實際的外觀及畫面配置.

所有畫面都是以HTML製作.(唯一的例外是以Macromedia Shockwave製作的啟動畫面).

在這份文件中, WhatTimeIsIt.com 中的每一個畫面都有一個加有底線標記的正式名稱, 所以你知道我們會以名稱來表示畫面, 比如首頁.

啟動畫面

一個無意義的煩人Shockwave動畫, 只會放著無聊的音樂把大家逼瘋.啟動畫面將會包給 某家位於蘇活區二樓的高收費動畫, 裡頭的員工不但帶狗上班還把鑄金屬飾物掛在耳上, 吃午飯前還會去Starbucks四次.

等這段動畫播放約10秒後, 動畫右下角會以淡入方式浮現"跳過這段"的連結. 為了避免人們看到並點選這個連結, "跳過這段"會放在很右邊很下面以便讓大部份人都看不到. 位置至少要在動畫由左算起800點以及由上算起600點.

點選"跳過這段"就會連到首頁. 當動畫結束時就會自動把瀏覽器重新導向到首頁.

未定項目
如果行銷人員同意的話, 當使用者點選"跳過這段"時, 我們應該在使用者的電腦上留一個cookie, 以後就直接略過動畫. 對常來的訪客說動畫應該只需要看一遍. 我和行銷部門的吉姆討論過, 他會負責召集會議找業務,行銷以及公關一起討論.

首頁

當Shockwave動畫結束時就會出現, 首頁有三個功用:

  1. 讓人們認識本服務並考慮是否要加入
  2. 允許已加入的會員登入
  3. 允許想加入的人建立帳戶.

首頁的外觀如下:

WhatTimeIsIt.com
觀迎來到WhatTimeIsIt.com, 為你提供 確實時間的服務!

(你看到的結果可能不盡相同. 資料傳送至你電腦時會有傳輸延遲, 結果實際 時間會比顯示的時間稍晚一點, 我們無法為這種延遲負責. 這個服務以現況為準, 目的只是娛樂而非精確的對時. 不要把WhatTimeIsIt.com 掛在耳朵上或用它來清耳朵.)

WhatTimeIsIt.com簡易有趣. 如果你不是會員, 今天就加入看看現在的時間吧!

已經是會員了? 按這裡登入!

還不是會員? 別擔心 - 會員是免費的! 對, 沒錯, 免費! 只要 按這裡加入, 彈指之間就能知道時間了!

隱私通知 | 關於我們 | 工作機會 | 聯絡我們
關於 WhatTimeIsIt.com

在這個畫面及所有畫面中按左上角的WhatTimeIsIt .com圖案就會跳回首頁.

技術註釋
由於各個畫面非常相似, 伺服器上應該使用某種含入系統, 萬一服務名稱變更或我們買不到所要的網域名稱時, 可以一次更改所有的畫面. 我建議用Vignette Story Server. 這當然是殺雞用牛刀而且要花20萬美元. 不過這比用伺服器端含入功能好用太多了!

按標有"按這裡登入"的連結就會連到登入表格. 按標有"按這裡加入"的連結會連到 加入表格. 其他五個連結會顯示管理階層提供的固定文字, 這份規格並不涵蓋文字內容. 而且內容也不需要時常變更.

登入表格

登入表格是讓現有會員登入帳戶找出現在的時間. 其外觀如下:

WhatTimeIsIt.com
請輸入你的電子郵件地址:


輸入你的密碼:


忘記密碼? 只要輸入你的電子郵件地址, 我們就會把密碼寄給你.

還不是會員?別擔心 - 會員是免費的! 對, 沒錯, 免費! 只要按這裡加入, 彈指之間就能知道時間了!

隱私通知 | 關於我們 | 工作機會 | 聯絡我們
關於 WhatTimeIsIt.com

畫面右半邊的行為和首頁原先描述的內容相同.

電子郵件框允許你鍵入最多60個字. 密碼框允許最多鍵入12個字. 為了避免被侵入, 使用者在密碼框鍵入的字都不會顯示出來, 只會看到星號(*).

技術註釋
這個功能可以用<INPUT TYPE=PASSWORD>達成

當使用者按登入時, 要在伺服器端進行下列檢查:

  1. 如果有填電子郵件地址, 可是格式錯誤不可能是真實的地址(比如缺@符號或含有 RFC-822電子郵件地址不允許的文字), 伺服器會傳回另一個很像登入表格的網頁 (只有這種場合會出現), 其中地址框的上方會插入紅色的錯誤訊息,說" 你輸入的電子郵件地址不合法. 請再次確認." 雖然這段字是紅色的, "請輸入你的電子郵件地址" 還是黑色的. 使用者原先輸入的錯誤電子郵件地址會直接放在編輯框內.

  2. 如果有填電子郵件地址, 可是找不到對應的註冊會員, 伺服器會傳回另一個很像登入表格的網頁, 其中地址框的上方會插入紅色的錯誤訊息,說" 你輸入的電子郵件地址不是會員. 請再次確認. 要成為會員時可以按畫面右方的連結." 雖然這段字是紅色的, "請輸入你的電子郵件地址" 還是黑色的. 使用者原先輸入的錯誤電子郵件地址會直接放在編輯框內. [問開發人員的問題. 這裡能不能利用JavaScript, 讓使用者按加入會員的連結時, 可以自動把原先的電子郵件地址放在加入表格內?]

  3. 如果有填電子郵件地址而且確認是註冊會員, 可是完全沒輸入密碼, 我們會把密碼用電子郵件傳給給該地址. 郵件的主題是"你的WhatTimeIsIt.com會員身份". 電子郵件是純文字的. 董事會還在爭議該郵件的確實文句內容, 不過在服務推出前會定案. [開發人員: 我建議暫時用嘲諷的字眼. 可以讓老總加快動作. ]

  4. 如果有填電子郵件地址而且確認是註冊會員, 有輸入密碼但卻是錯的, 伺服器會傳回另一個很像登入表格的網頁, 其中地址框的上方會插入紅色的錯誤訊息,說 "你輸入的密碼錯誤. 請再確認. 注意, 對密碼來說大小寫 不一樣的." 如果使用者輸入的密碼裡完全沒有小寫字母, 訊息內要增加下列文字: "你是不是不小心打開大寫功能(CAPS LOCK)了?" 不管密碼是否正確, 重新顯示登入表格時都會清除密碼框內容.

  5. 如果電子郵件地址和密碼都正確, 就直接跳到時間顯示.

未定項目
必須決定第二項的JavaScript

未定項目
需要總經理決定密碼電子郵件的文句內容


回到Joel on Software