網站介紹
該網站每個月都有兩到三次線上比賽,根據比賽的結果對參賽者進行新的排名。參賽者可根據自己的愛好選用Java, C++, C#, VB或python進行編程。參賽者須在1小時15分鐘的時間內完成三道不同難度的題目,每道題完成的時間決定該題在編程部分所得的分數。而比賽可分為三部分:Coding Phase, Challenge Phase和System Test Phase,比ACM/ICPC多了Challenge Phase,這部分是讓參賽者瀏覽分配在同一房間的其他參賽者的原始碼,然後設法找出其中錯誤,並提出一個測試參數使其不能通過測試。如果某參賽者的程式不能通過別人或系統的測試,則該參賽者在此題目的得分將為0。關於其比賽的具體規則,詳看該網站上的公告。
以上信息主要針對TopCoder公司舉辦的算法競賽部分,而實際上遠不只於此。
TopCoder是一個面向平面設計師和程式設計師的網站,它採用比賽、評分、支酬等方式吸引眾多平面設計師和程式設計師業餘工作。由於其主要領域在編程工作上,下面敘述的主要內容均在編程方面 。
利益貢獻
TopCoder是什麼?我準備先回答一個問題:TopCoder為其各類客戶帶來了什麼利益?
1.對於熱衷挑戰的人,TopCoder是為Coder(編程者)而生的一個用於挑戰自我的網站。TopCoder除了舉辦兩個一年一次的multiple-match錦標賽以外,它還舉辦常規比賽,這種比賽讓參賽者儘可能快的解決複雜性不同的算法問題。在常規賽和錦標賽中的獲勝者都將獲得現金獎。參賽者獲得既獲得金錢,也獲得榮譽。
2.對於尋求兼職的人,TopCoder是個獲取軟體開發兼職的網站。以編程工作為例,他的流程如下:提供工作列表->用戶接工作->一周后提交->評分。在評分中得第一名者,獲500美金(組件類一般為800美金);第二名獲250美金(組件類一般為400美金,其他名次不獲得獎金,但是某些組件會因為難度或者緊急性而把這個金額提高,同樣,也有某些組件會因為難度較低而下調獎金。工作類型包括:系統設計、代碼編寫、模組測試等。通過一段時間的熟悉,大學在校生、業餘開發人員均可以在網站上接下兼職獲取獎金)。
3.對於TopCoder的客戶企業,它是個優秀的軟體開發商或編碼工作外包商,由於其規範化流程及各模組編程的冗餘機制(同一模組有多人同時開發,擇優採用),TopCoder能夠按時按質的為客戶提供軟體開發服務。
4.對於各軟體企業,TopCoder是個優秀的人力資源公司,它匯集了世界上眾多高手,通過這個平台,軟體企業可以獲取到優秀Coder的信息,並從中招聘員工。Google、Microsoft等公司都曾經在TopCoder上尋求優秀設計人員加盟。同樣的,另一方面,對於應聘者來說,它提供了一個展示自我的機會。那么,TopCoder本質是什麼呢?我認為,它是一個採用新穎模式的軟體開發企業,他並不完全採用固定員工,主要是通過網際網路,利用世界各地的註冊用戶參與開發。其核心,在於將原本通過企業形式組織起來的軟體開發工作轉向了市場形式。改變,通過網路和軟體工程規範,形成了以單一模組開發為服務商品的市場,全球的Coder均可以在該市場上提供商品和服務(設計方案、模組代碼、模組評測),而TopCoder成為該商品的採購商。
契約形式的採用取決於不同契約間交易費用的比較。在常規的軟體行業中,由於交易費用過高,軟體企業所需的商品和服務(設計方案、模組代碼、模組評測)市場難以存在,原因包括:協調工作的困難、質量監控、與模組代碼提供商的聯繫等等。由於產品難以通過市場契約形式獲得,因此,軟體企業採取的是企業契約形式,招聘人員進入企業,以員工的形式為企業提供所需的商品和服務。而TopCoder利用網路及軟體工程理論的成熟,將企業內部由員工完成的各項軟體開發工作外部化,降低採用市場形式的交易費用,使得市場購買成為優於企業內部化的選擇。
收益
TopCoder如何降低市場交易費用?相比於企業組織形式,其收益何在?
首先,TopCoder利用其在軟體工程方面的經驗與技術,將服務與商品的標準化,使得溝通成本大大降低。TopCoder的軟體開發流程,包括系統設計、代碼編寫、模組測試等各環節,在每個環節之間,TopCoder都設計了標準化的文檔,上下游環節之間所需的所有溝通內容都通過文檔展現。通過這種形式的標準化,每個環節的工作人員均可以在完全不和上下游工作人員溝通的情況下進行工作,最終工作人員交給TopCoder的最終產品,也完全以標準文檔形式給出。由於標準化,商品具有了獨立性,使得TopCoder的註冊用戶為其提供商品成為可能。
其次,由於商品標準化,對各商品的質量評估指標也因此可以標準化(模組運行速度、穩定性等),因此,有了商品的質量評價指標,則商品的定價和擇優採購成為了可能。TopCoder將評估指標最後轉化為一個總分,總分第一的定價1000美元購買,總分第二的定價500美元購買。由於指標清晰,商品提供者也能夠逐漸改進自身提供的商品質量。相較於企業形式的生產,由於每項工作只有一個人完成,質量得不到比較,無法選擇最優。而且,軟體開發工作作為一種知識型的工作,難以為員工的工作表現作精確定價,監督成本也相當高,而市場形式則避免了上述交易費用。
第三,網路使得標準化商品的全球採購成為可能。TopCoder採購的商品無需運費,而且世界各地存在明顯價格差。中國與印度的人力成本遠遠低於歐美,因此商品提供者所希望的商品價格也很低。以往,為了獲取發展中地區的人力成本優勢,企業必須遠赴當地開設分公司,因此帶來了相當大量的額外成本。而TopCoder通過網路的形式採購,無需付出額外的成本。事實上,目前在TopCoder上進行開發的註冊用戶中,中國和印度用戶占了很大部分。
另外,TopCoder與註冊用戶間的心理契約,與企業與員工的心理契約有很大區別。作為TopCoder的註冊用戶,其期望獲得的並不僅僅是金錢,作為其目標對象的大學在校生、業餘工作者,他們還期望獲得榮譽、工作經驗、能力提升,甚至於前面敘及的,進入知名IT公司的機會。因此,即使只有前兩名可以獲得獎金,仍有許多用戶參與承接工作。由於這些附加價值,TopCoder在商品採購價格方面,實際上低於其現金價值。
綜上所述,TopCoder利用網路技術的發展,改變了常規的生產方式。而事實上,這一模式有可能在其他行業中得到推廣。對於知識型工作,通過流程設計和嚴格接口定義,完全有可能運用這種模式(例如日用品的設計工作)。C2C改變了人們參與貿易的方式,使得個人的市場信息(商品價格差)能迅速轉換為利潤,而TopCoder的這種模式可能會改變人們參與生產的方式,使得個人能夠方便地提供知識工作商品。