4. 誤解: 工期緊必然需要走捷徑。
很多團(tuán)隊(duì)都以市場壓力大、需要立即發(fā)布產(chǎn)品為由,寫出劣質(zhì)的代碼。寫出的測試程序繞開問題部位;瘋狂的攻堅(jiān)沖鋒中認(rèn)真設(shè)計(jì)原則被拋在腦后。但是,作為各個軟件開發(fā)團(tuán)隊(duì),大家都一樣。高效能的團(tuán)隊(duì)在成功之余不失英雄本色:正相反,當(dāng)壓力出現(xiàn)時,他們巋然不動,以自身深厚的功底成功化解任務(wù)。我們無數(shù)次聽到過高壓下出高成就的傳奇故事 —— 要么是軍事行動、專業(yè)運(yùn)動,要么是飛行員在河上強(qiáng)行降落 —— 其中的原因無非是英雄們的那句話,“我們受過專門訓(xùn)練”。
5. 誤解:開發(fā)人員應(yīng)該全權(quán)負(fù)責(zé)自己的代碼。
負(fù)責(zé)自己的代碼,聽起來很正確。理所當(dāng)然的。個人職責(zé)嘛。可是,開發(fā)團(tuán)隊(duì)里在代碼上分配歸屬人就意味著每個模塊的程序只有一個開發(fā)人員來寫,只有一個人能掌握。這會導(dǎo)致負(fù)責(zé)模塊的程序員之間產(chǎn)生“地方保護(hù)主義”。對于公司老板來說,這造成了很大的風(fēng)險,因?yàn)閳F(tuán)隊(duì)中損失一個人就會影響整個團(tuán)隊(duì)的進(jìn)程,如果這個人是負(fù)責(zé)系統(tǒng)的關(guān)鍵核心模塊的,那更會造成公司業(yè)務(wù)癱瘓。健康的工作方式是讓每個程序員都經(jīng)手過系統(tǒng)內(nèi)的所有代碼。結(jié)對編程能讓你實(shí)現(xiàn)這個效果,知識會從一個人傳遞到另一個人。所謂的“巴士指數(shù)”(團(tuán)隊(duì)中的多少人被車撞才會導(dǎo)致大家都無法進(jìn)行)是一個軟件創(chuàng)業(yè)公司的關(guān)鍵風(fēng)險指標(biāo)。我們這里所說的不僅僅指的是巴士在使壞,還有你的競爭對手,他們樂衷于挖走你最好的程序員。理解整個系統(tǒng)的人越多,你的公司就越健壯,越有活力。
6. 誤解:你需要一個怪異的招聘過程。
你會在雇用一個演員時不進(jìn)行試鏡嗎?如果要試,你就能短暫的做一回導(dǎo)演。這正是如今幾乎所有的公司在招聘程序員時會出現(xiàn)的場景。通常的面試都會談?wù)搼?yīng)聘者的經(jīng)驗(yàn)。這就完了。你可以想象一下,問一個躊躇滿志的演員是否喜歡飾演哈姆雷特這個角色。你能傳神的扮演他嗎?好的。你被雇用了!很多著名的軟件公司喜歡給應(yīng)聘者出腦筋急轉(zhuǎn)彎題。有些頂級的公司甚至給候選人進(jìn)行IQ測試。他們中最可取的是在白板上模擬軟件問題,讓候選人解決。這些情況讓人很無奈。我要說的是這非常明顯的道理:招到好的程序員的唯一可靠的方法就是跟他們一起編程。我對程序員的面試是跟他們進(jìn)行一個小時的快速的結(jié)對編程 —— 而且這只是面試的一個開始。大量的篩選,把他們按滿分100打分。什么樣的會被選中?思維敏捷,抽象思考能力強(qiáng),掌握各種算法,問題解決能力強(qiáng)。而最重要的是,領(lǐng)會能力。因?yàn)閰f(xié)作是對團(tuán)隊(duì)來說最重要的東西,如果你不能理解其他人是如何思考的,再聰明也沒用。
7. 誤解: 專業(yè)化很重要。
非常自然的,管理者遇到問題時習(xí)慣把問題分解,各個擊破。在開發(fā)團(tuán)隊(duì)里,這通常慫恿技術(shù)人員專項(xiàng)發(fā)展。前端開發(fā),后臺開發(fā),數(shù)據(jù)庫管理員等等。Brad Feld 在他的博客里建議說,每個團(tuán)隊(duì)里都應(yīng)該有個“全能程序員”,這個人是個真正的通才。他是對的,但他說的還不夠。每個團(tuán)隊(duì)里的每個成員都應(yīng)該是通才全才。為什么?因?yàn)閷2艑?dǎo)致團(tuán)隊(duì)脆弱。還記得“巴士指數(shù)” 嗎?每個專才都是一個弱點(diǎn);如果他離開了,你找不到替代他的人,你完了。不僅如此,它還能使團(tuán)隊(duì)機(jī)能失調(diào)。專項(xiàng)的人需要把他們負(fù)責(zé)的系統(tǒng)里相互獨(dú)立的模塊通過定義好的接口相互通信。事實(shí)上,他們每人都寫出了各自不統(tǒng)一通信方式。這導(dǎo)致了大量的額外開銷,經(jīng)常會出現(xiàn)“地方保護(hù)主義”或相互指責(zé)。而在著名的 Pivotal公司,每個程序員都要接觸到系統(tǒng)的各個層面,從HTML和JavaScript到Ruby,到數(shù)據(jù)庫。而有些人認(rèn)為專才會在系統(tǒng)的某個層面上更專業(yè)的,這種說法未必站得住腳。如今的軟件技術(shù)變得已經(jīng)不是那么復(fù)雜了。程序員能更容易的掌握各個層面上的知識以及如何操作它們。順便說一下,這暗示出了另外一個非常重要的信息:你不再需要為某個特殊的技術(shù)而招聘人才了。缺少Ruby程序員?好,招一個Java程序員,培訓(xùn)他使用Ruby(這里使用結(jié)對編程格外的有效)。有些人稱自己為“服務(wù)器端”程序員?沒問題,讓他們寫JavaScript程序,他們很快就能學(xué)會。
如果他們是人才,那就體現(xiàn)在這里。
想認(rèn)識全國各地的創(chuàng)業(yè)者、創(chuàng)業(yè)專家,快來加入“中國創(chuàng)業(yè)圈”
|