我做過的最糟糕的項目
在工作面試時,我經常會被問到一個問題:“請描述一個你曾經失敗過的項目。” 我每次都會第一個想到的下面這個項目。
1995年,我辭去了我在時代華納的高級軟件工程師的職位,成為了一個為萬維網開發互動內容的咨詢顧問 —— 在當年,這還是很新的東西。時代華納教了我很多事情。其中之一便是,大公司不是很多單獨的機構構成的,而是一群分享著同一辦公樓的相互關聯的中型公司(各 子公司之間存在很大的溝通問題)。(這也是我不喜歡在大公司工作的原因之一。)
英國保誠公司是我早期的客戶之一。保誠公司的業務集中于人壽保險、房地產和金融服務。公司位于新澤西的紐瓦克 —— 這是另一個非常好的例子,去說明大公司實際上就是一群中型公司分享一個同一個辦公樓。我為這個公司做了不少項目。其中一個是生成子公司的房產經紀人的在線 人名地址錄 。我確定現在的人一定都非常熟悉這個東西。基本上,就是當你瀏覽他們網站的時候,把郵編或者地址錄入網站的某個輸入欄,網站就會返回距離你最近的房產經紀 人,由近到遠排列。
這項目非常糟糕,一部分是因為保誠公司組織混亂外加官僚主義,另一方面,我確實不知道我在干什么。我給了他們一個固定的咨詢價格—— 我以為這樣非常直接,而且我以為我對客戶要求有明確的解決方案。但是,我完全低估了這公司官僚主義和每層管理者都想淌一腳的事實。他們幾乎介入了每一個細 小的環節。交給我的數據沒有經過任何處理,要么很混亂,要么不完整。他們一直不斷在修改數據輸出方式,而且從來沒有完整完成任何一次數據的輸出。他們經常 改變主意,按照他們突然所想到的排列順序去顯示經紀人,然后就不得不重新給我新的數據 ,而這些新傳來的數據永遠都是不完整的,或者是有錯的。我接到了六次,或者七次新傳來的數據。這其實真的不是什么問題,除了每次發給我的數據都用了一種新 的格式,像是從什么失敗者手里拿到的在不斷變化的從Excel導出的數據。
因此,我不得不七八次改變我的程序,去驗證重載這些數據。這件事情在今天的我看來,我其實可以更好地解決。在前兩次的重復工作以后,我可以更好解釋 整個情況:我的預估價格只是基于我估計的工作量和偶發事件造成的額外工作量;我并沒有估計到我需要用八倍的工作時間去清理完全不同格式的數據。他們原本是 可以給我一模一樣格式的數據,或者重新估算我的咨詢費用,或者找另一人去做這件事情。但是,對于當時的我來說,我實在是太嫩了,我免費做了以上提到的所有 工作。
類似的,他們不斷更改輸出結果的格式:最開始的版本,子公司是按照距離遠近的順序排列的。然后,他們改變主意了: 同一個地方出現的子公司需要按照字母順序排列,所有的子公司按城鎮分組。再然后,他們又改變主意了:距離并不是最重要的,常規等級的子公司和優先考慮的子 公司分類才是他們想要的。他們一直堅持這個想法,直到他們發現,他們并沒有這個分好等級的子公司的數據,最后才放棄了這個方案。這方案一點都不符合常理。 他們想要的結果,是把一個相當遠的優先級別的公司放在輸出頁面的前面,然后才是顯示附近的常規等級的公司。 這類事情,經常會出現在很多客戶身上。但是我并沒有估計到這個,而且,這個事情消耗了我很多沒有預算進的時間。現在的我明白,這類事件多半都會導致不好的 結果。
無論如何,我們還是把它做出來了。而且,它得到了各管理層的批準,還得到了監察部授予的金星獎勵。我的客戶還把它拿到保誠公司的房地產部員工面前展示。.
還記得我前面提過的,保誠公司就是一個位于新澤西的分享同一棟大樓的一組中型公司。和我一起工作過的人,就是來自其中一個中型公司的,而房地產部在另一個公司。我得到的報告說,房地產部的人非常喜歡我的演示報告,這就是他們想要的。
他們問道:“但是如果用這套系統,我們應該怎么收取介紹費呢?”
保誠房地產是一個經銷組織。公司本身沒有真正意義上的經紀人。這些經紀人找到保誠公司,付給這公司一點費用,然后借用保誠公司的名義去進行地產服 務。另一個業務是,保誠公司有一個免費客服電話,你可以撥打這個電話,然后接線員會幫你轉接到最近的經紀人那里去,并向這些經紀人收取一些介紹費。
我所做的,是讓用戶直接在網站上找到距離最近的那個經紀人,完全跳過了中間部分,也削減了保誠公司的收取介紹費的機會。
我被告知說,我需要對經紀人定位系統做一點最終的改變。現在,它的工作方式是這樣子的。用戶需要輸入他們的郵編或者地址;申請表到數據庫查找到最近 的經紀人的聯系方式。這些經紀人的顯示順序,取決于監察部給我的特殊排列順序。他們每一個人的聯系方式,都被隱藏了。真正被顯示的聯系電話,是保誠公司的 免費客服號碼。甚至連網頁上顯示的名字,都值得被懷疑。在相當長的一段時間內,保誠公司都在考慮是否要用“保誠房地產公司附屬子公司”來代替每一個經紀人 的名字,因為他們一直擔心, 網站用戶會不會直接在黃頁電話號簿上找到這些經紀人的聯系方式。最終,他們決定,在網頁上放置免費客服號碼可以極大的減少他們的顧慮。因此,除了經紀人名 字以外的任何東西,都再也不會從網上找到了。
保誠公司并不需要一個經紀人定位系統。他們只是單純的需要一個最簡單的靜態超文本語言的頁面,去告訴他的用戶去撥打他的免費電話。我所有的工作,那些在重載數據上,在輸出數據格式的修改和在顯示經紀人的順序上花掉的時間,全部浪費掉了。