第一章 介紹
第一節(jié) 什么是 Getting Real ?###
想搭建一個(gè)成功的網(wǎng)絡(luò)應(yīng)用?是回歸現(xiàn)實(shí)的時(shí)候了。 Getting Real 是用更小、更快、更好的方式來(lái)搭建軟件。
- Getting Real 是跳過(guò)所有象征真實(shí)的事物(圖表、曲線、方框、箭頭、線框等)來(lái)構(gòu)建真實(shí)。
- Getting Real 是做減法。更輕,更少的軟件,更少的功能,更少的文檔,更少的無(wú)關(guān)緊要的事物(大部分你認(rèn)為必要,實(shí)際卻不是的)。
- Getting Real 是維持小規(guī)模,保持敏捷。
- Getting Real 從界面開(kāi)始,那個(gè)用戶會(huì)真正使用的屏幕。它從用戶的實(shí)際體驗(yàn)開(kāi)始,并從這里向后搭建。這讓你在軟件出錯(cuò)之前獲得正確的用戶界面。
- Getting Real 是關(guān)于迭代和降低改變成本。Getting Real 是關(guān)于發(fā)布、調(diào)整,和持續(xù)改進(jìn)的,使之成為一個(gè)構(gòu)建網(wǎng)絡(luò)軟件的完美方法。
- Getting Real 只提供客戶需要的,擯棄他們不需要的。
Getting Real 的好處
Getting Real 逼迫你處理那些真正需要解決的問(wèn)題,而不是你對(duì)于這些問(wèn)題的想法,因此能夠提供更好的結(jié)果。它逼迫你面對(duì)現(xiàn)實(shí)。
Getting Real 傾向于構(gòu)建真實(shí)的界面,擯棄功能規(guī)格書(shū)和其它的臨時(shí)文檔。功能規(guī)格書(shū)是虛假的,是達(dá)成一致的幻覺(jué),而一個(gè)實(shí)際的網(wǎng)頁(yè)才是現(xiàn)實(shí)。這是你的用戶將要看到并使用的。這才是重要的。Getting Real 能讓你更快做到這點(diǎn)。這也意味著你是基于實(shí)際情況來(lái)做出決定,而非抽象的概念。
最后,Getting Real 是適用于網(wǎng)絡(luò)軟件的一個(gè)理想途徑。把軟件裝在盒子里售賣,每個(gè)一兩年發(fā)布一個(gè)更新,這種過(guò)時(shí)的模式已經(jīng)逐漸淘汰。與需要安裝的軟件不同,網(wǎng)絡(luò)應(yīng)用能夠以天為單位持續(xù)進(jìn)化。Getting Real 利用這種優(yōu)勢(shì),充分發(fā)揮網(wǎng)絡(luò)應(yīng)用的價(jià)值。
如何寫(xiě)出有活力的軟件
有活力的編寫(xiě)是簡(jiǎn)潔的。一個(gè)句子不應(yīng)包含無(wú)用的詞匯,一個(gè)段落也沒(méi)有無(wú)用的句子。同樣的原因,一幅畫(huà)不該有多余的線條,一臺(tái)機(jī)器不需要無(wú)用的零件。這不是要求作者將所有的句子縮短,或者只描述概要而忽略細(xì)節(jié),而是要讓每個(gè)詞都擲地有聲。
—— from "The Elements of Style" by William Strunk Jr.
不再膨脹
老方法:冗長(zhǎng)、官僚、人人都明哲保身的流程。典型的結(jié)果:膨脹,表現(xiàn)平庸、過(guò)目即忘的軟件。讓人惡心。
Getting Real 能夠避免 ...
- 長(zhǎng)達(dá)數(shù)月甚至數(shù)年的時(shí)間表
- 不切實(shí)際的功能規(guī)格書(shū)
- 可擴(kuò)展性的爭(zhēng)論
- 無(wú)休止的員工會(huì)議
- 雇傭大量員工的偽需求
- 毫無(wú)意義的版本號(hào)
- 想完美預(yù)測(cè)未來(lái)的藍(lán)圖
- 無(wú)盡的偏好設(shè)置選項(xiàng)
- 將技術(shù)支持外包
- 不現(xiàn)實(shí)的用戶測(cè)試
- 無(wú)用的文檔
- 至上而下的管理層級(jí)
要開(kāi)發(fā)一個(gè)偉大的軟件,你不需要巨額的資金,龐大的團(tuán)隊(duì),或冗長(zhǎng)的開(kāi)發(fā)周期。這些只會(huì)產(chǎn)生緩慢、晦澀、單調(diào)的應(yīng)用。Getting Real 采用完全相反的途徑。
**在本書(shū)中,我們將向你展示 ... **
- 經(jīng)營(yíng)哲學(xué)的重要性
- 為何小就是好
- 如何做減法
- 如何快速地從想法過(guò)渡到現(xiàn)實(shí)
- 如何配置團(tuán)隊(duì)成員
- 為何應(yīng)該由內(nèi)而外地設(shè)計(jì)
- 為何寫(xiě)作是至關(guān)重要的
- 為何要比競(jìng)爭(zhēng)對(duì)手做的少
- 如何傳播信息,推廣你的應(yīng)用
- 技術(shù)支持的秘密
- 在發(fā)布后繼續(xù)保持勢(shì)頭的技巧
- 以及更多的 ...
我們將關(guān)注于宏觀的概念。不會(huì)讓你陷入代碼的細(xì)節(jié)或是 CSS 的技巧。我們會(huì)圍繞于驅(qū)動(dòng) Getting Real 進(jìn)程的主旨和哲學(xué)。
本書(shū)適合你嗎?
你是一個(gè)企業(yè)家,設(shè)計(jì)師,程序員,或市場(chǎng)營(yíng)銷人員。
你意識(shí)到舊規(guī)則已不再適用。每年通過(guò) CD 來(lái)發(fā)行你的軟件?2002 這個(gè)版本號(hào)怎么樣?將這些拋到窗外。你需要搭建、發(fā)布、調(diào)整,然后重復(fù)上述步驟。
或者你對(duì)敏捷開(kāi)發(fā)和商業(yè)結(jié)構(gòu)還不熟悉,但你渴望了解更多。
如果這些聽(tīng)起來(lái)像你,這本書(shū)就是適合你的。
備注:雖然本書(shū)的重點(diǎn)是如何搭建網(wǎng)絡(luò)應(yīng)用,但其中的許多觀點(diǎn)也適用于非軟件領(lǐng)域。無(wú)論你正在開(kāi)展一項(xiàng)業(yè)務(wù),寫(xiě)書(shū),設(shè)計(jì)網(wǎng)頁(yè),錄制專輯,或從事其它的活動(dòng),書(shū)中關(guān)于小團(tuán)隊(duì)、快速原型、期望迭代,以及許多其它的觀點(diǎn)都能給你一些指引。一旦你將 Getting Real 應(yīng)用于生活中的某個(gè)方面,你就會(huì)發(fā)現(xiàn)這些概念能夠適用于廣泛的領(lǐng)域。
第二節(jié) 關(guān)于 37signals
我們做什么
37signals 是一個(gè)小團(tuán)隊(duì),我們創(chuàng)造簡(jiǎn)單、專注的軟件。我們的產(chǎn)品幫助你更好地組織協(xié)作。超過(guò) 350,000 的個(gè)人和小企業(yè)使用我們的網(wǎng)絡(luò)應(yīng)用來(lái)完成工作。華爾街日?qǐng)?bào)的 Jeremy Wagstaff 寫(xiě)道,“37signals 的產(chǎn)品簡(jiǎn)潔、美麗、優(yōu)雅、直觀,與之相比,Outlook 的界面看起來(lái)就像是一個(gè)審訊室?!蔽覀兊膽?yīng)用絕不會(huì)讓你受此折磨。
我們的行事方法
我們認(rèn)為軟件太復(fù)雜了。太多的功能,太多的按鈕,太多需要學(xué)習(xí)的內(nèi)容。我們有意地讓產(chǎn)品比競(jìng)爭(zhēng)對(duì)手做的更少。我們的產(chǎn)品工作起來(lái)更智能,感覺(jué)更好,能讓你按自己的方式來(lái)做事,也更容易使用。
我們的產(chǎn)品
截至本書(shū)的發(fā)行,我們一共有五個(gè)商業(yè)產(chǎn)品和一個(gè)開(kāi)源框架。
Basecamp 把項(xiàng)目管理作為首要功能。Basecamp 提供了 留言板,待辦事項(xiàng),簡(jiǎn)單的行程安排,協(xié)同寫(xiě)作,文件分享,以此來(lái)取代甘特圖,華麗的曲線、沉重的電子表格。目前,成千上萬(wàn)的人都認(rèn)同這是一個(gè)更好的方式。Salon.com 的 Farhad Manjoo 說(shuō),“Basecamp 代表了網(wǎng)絡(luò)軟件的未來(lái)。”
Campfire 為商務(wù)場(chǎng)合提供簡(jiǎn)單的群聊功能。企業(yè)知道持續(xù)穩(wěn)定的實(shí)時(shí)群聊有多重要。傳統(tǒng)的即時(shí)通訊工具在應(yīng)付快速的一對(duì)一聊天時(shí)是很好的,但面對(duì)三人以上的場(chǎng)景就很糟了。Campfire 解決了這個(gè)問(wèn)題但不止于此。
Backpack 是一個(gè)個(gè)人信息管理工具,用于替代那些復(fù)雜且令人困惑,“用 25 個(gè)步驟管理人生”的軟件。在一個(gè)苦于維持現(xiàn)狀的類別里,Backpack 給頁(yè)面、筆記、待辦事項(xiàng)、基于電話/郵件的通知帶來(lái)了一種全新的理念。華爾街日?qǐng)?bào)的 Thomas Weber 說(shuō)這是該類別里最好的產(chǎn)品,紐約時(shí)報(bào)的 David Pogue 把它稱為一個(gè) “非??帷钡慕M織工具。
Writeboard 讓你撰寫(xiě)、分享、修訂,將文字與自己的或他人的作品進(jìn)行比較。對(duì)于一個(gè)臃腫的文字處理軟件,95% 的功能對(duì)你的寫(xiě)作是無(wú)用的,Writeboard 是一個(gè)新鮮的替代品。Daring Fireball 的 John Gruber 說(shuō),“Writeboard 可能是我見(jiàn)過(guò)的最清晰、最簡(jiǎn)潔的網(wǎng)絡(luò)應(yīng)用。” 網(wǎng)絡(luò)專家 Jeffrey Zeldman 說(shuō),“37signals 的天才們又一次做到了?!?/p>
Ta-da List 在線存儲(chǔ)并管理你的待辦列表。你可以自己保存列表,或分享給他人進(jìn)行簡(jiǎn)單的協(xié)作。沒(méi)有比它更簡(jiǎn)單的方式來(lái)把事情搞定。迄今為止,已經(jīng)創(chuàng)建了超過(guò) 100,000 的列表和將近 1,000,000的項(xiàng)目。
Ruby on Rails,對(duì)開(kāi)發(fā)者來(lái)說(shuō),這是一個(gè)基于 Ruby 的全棧式的開(kāi)源網(wǎng)絡(luò)框架,可以快速、方便地開(kāi)發(fā)出真實(shí)的應(yīng)用。Rails 幫你解決那些繁雜的工作,這樣你就可以專注于思考。O'Reilly 出版集團(tuán)的 Nathan Torkington 說(shuō),“Ruby on Rails 令人震撼。使用它就像在看一部功夫電影,一群流氓框架想要痛打這個(gè)新人,卻被各種充滿想象力的方法修理了一頓?!?非常喜歡這個(gè)說(shuō)法。
你可以在 www.37signals.com 上找到更多關(guān)于我們產(chǎn)品和公司的信息。
第三節(jié) 注意事項(xiàng)、免責(zé)聲明、及先發(fā)制人
為了提前掃清障礙,以下是我們經(jīng)常遇到的一些抱怨:
這些技術(shù)不適合我
對(duì)我們來(lái)說(shuō),Getting Real 是一個(gè)工很好的系統(tǒng)。也就是說(shuō),書(shū)中的觀點(diǎn)不可能放之四海皆準(zhǔn)。如果你在建造武器,核電站,應(yīng)付百萬(wàn)客戶的銀行系統(tǒng),或其它關(guān)乎生命/財(cái)產(chǎn)的系統(tǒng),我們的某些自由的處事態(tài)度對(duì)你是有害的。繼續(xù)前進(jìn),并采取一些額外的預(yù)防措施。
這不是一個(gè)非黑即白的命題。即使你無(wú)法完全接受 Getting Real 的方法,還是悄悄地使用其中一小部分觀點(diǎn)。
點(diǎn)子不是你發(fā)明的
我們沒(méi)有申明自己發(fā)明了這些技術(shù)。許多概念都以某種方式存在了很長(zhǎng)的時(shí)間。如果書(shū)中的某些觀點(diǎn)是你很早之前就接觸過(guò)的,不要發(fā)怒,這完全可能。這些技術(shù)不是專屬于 37signals 的。我們只是將我們工作和成功的經(jīng)驗(yàn)告訴你。
你的許多觀點(diǎn)太絕對(duì)了
如果我們的語(yǔ)氣太自大了,請(qǐng)?jiān)?。我們認(rèn)為觀點(diǎn)應(yīng)該大膽地說(shuō)出來(lái),而不是畏畏縮縮。如果這看起來(lái)驕傲自大,那就讓它去吧。我們?cè)敢饧みM(jìn)一些,而不是和稀泥,事事都要依情況而定。當(dāng)然,這些規(guī)則有時(shí)需要擴(kuò)展或打破,有些策略可能也不適用于你的情況。請(qǐng)運(yùn)用你自己的判斷和想象力來(lái)決定。
這不適用于我們的公司
你認(rèn)為你的公司太大了,不能回歸現(xiàn)實(shí)?即使微軟也可以做到(我們懷疑你會(huì)比微軟還大)。
即使你公司的發(fā)展是基于龐大的團(tuán)隊(duì)和長(zhǎng)期的規(guī)劃,還是有一些方法可以讓你回歸現(xiàn)實(shí)。第一步就是分散成小團(tuán)隊(duì)。太多人參與會(huì)導(dǎo)致一事無(wú)成。更精簡(jiǎn)一些,事情就能更好更快地完成。
當(dāng)然,這需要一些推銷能力。讓你的公司進(jìn)入 Getting Real 的流程。向他們展示這本書(shū),展示你用更少的時(shí)間和更小的團(tuán)隊(duì)所獲的的成就。
向人們解釋,Getting Real 是一個(gè)測(cè)試新概念的低風(fēng)險(xiǎn),低投入的方法。
或者,如果你有膽量,可以采取秘密行動(dòng)。Start.com 團(tuán)隊(duì)就是用這種方法在微軟悄悄地執(zhí)行 Getting Real ?!拔覀兛催^(guò) Start.com 團(tuán)隊(duì)的工作,他們沒(méi)有征求許可?!?Robert Scoble 如是說(shuō),他是微軟的技術(shù)傳道者。“他們的老板提供空中支援,他們一次只吃一小口,然后執(zhí)行,作出反饋?!?/p>
發(fā)布微軟的 Start.com
在大公司里,流程和會(huì)議是司空見(jiàn)慣的。人們花費(fèi)數(shù)月的時(shí)間來(lái)討論功能和細(xì)節(jié),期望所有人能夠達(dá)成一致,確定什么對(duì)用戶是“正確”的。
對(duì)于塑料包裝的軟件,這個(gè)方法可能是對(duì)的,但是網(wǎng)絡(luò)有驚人的優(yōu)勢(shì)。只要發(fā)布就行。讓用戶來(lái)告訴你這是不是正確的,如果不是,你甚至可以在發(fā)布的當(dāng)天就作出修正。用戶的話語(yǔ)是最重要的,抵制冗長(zhǎng)的會(huì)議和討論。
知易行難,這意味著:
- 不需要長(zhǎng)達(dá)數(shù)月的計(jì)劃
- 不需要在撰寫(xiě)規(guī)格書(shū)上耗費(fèi)幾個(gè)月的時(shí)間,應(yīng)該在開(kāi)發(fā)的過(guò)程中確定基礎(chǔ),敲定細(xì)節(jié)。不要在開(kāi)發(fā)前嘗試結(jié)束任何開(kāi)放的問(wèn)題,確定所有的細(xì)節(jié)。
- 發(fā)布高質(zhì)的,少量的功能
- 你不需要一個(gè)包含眾多功能的大更新。慢慢來(lái),讓用戶能夠消化。
- 如果有一些小 bug ,一旦確保核心功能是完好的就可以發(fā)布產(chǎn)品,之后通過(guò)網(wǎng)絡(luò)來(lái)修復(fù) bug 。盡快獲得用戶的反饋。紙上談兵或許聽(tīng)起來(lái)不錯(cuò),但實(shí)踐結(jié)果未必如此。對(duì)于根本問(wèn)題,越快發(fā)現(xiàn)問(wèn)題越好。
- 一旦你快速迭代,對(duì)客戶反饋?zhàn)鞒龌貞?yīng),你就建立來(lái)客戶聯(lián)系。記住,你的目標(biāo)是通過(guò)搭建客戶需要的東西來(lái)贏得客戶。