我在當?shù)貛准夜緭芜^項目經(jīng)理,項目主要關(guān)于一些用PHP制作的中小型網(wǎng)頁。在那段歷程中,我見識了很多公司常常會犯這樣或那樣的錯誤,既浪費時間又浪費資源。下面我具體談談在這些錯誤中不可饒恕的7個:
1.不問客戶究竟想要什么
一般而言,在簽署合同階段都會有一份關(guān)于原始需求的標準性文件。而我們常常會犯的大的錯誤之一是想當然地認為,這是客戶的想法。我的建議是,和客戶那邊所有的核心員工開個咨詢會議,確?蛻羲械男枨蠖寄艹芍裨谛。
后期如果想要添加關(guān)鍵功能到幾乎已經(jīng)完成的產(chǎn)品中將需要支付大量額外成本,而這原本是可以避免的。
我記得有一次,只是因為在初期階段沒有考慮一項功能而已,我們的團隊不得不重新設計數(shù)據(jù)庫模型。往事不堪回首啊。
2.沒有全局性的章程
早前我在一家小公司工作的時候,因為資源有限,我們的老板總是催我們盡早寫代碼。通常我們不得不一簽好合同立馬開工(有時候甚至更早)。我們常常對客戶需求懵懵懂懂一知半解,不過即使我們知道客戶究竟想要什么,我們的老板也不會讓我們騰出時間為程序員和設計師寫需求說明。正因如此,重寫代碼成了家常便飯。因為沒有全局性的章程,所以項目經(jīng)理給出的解決方案往往沒有包括所有的需求功能。
3.不寫文檔
我還在讀大學的時候,常常聽別人說“寫文檔很重要”。事實也是如此,這一點不言而喻,我不多說了。但是,假設你突然分配到一個時間緊迫、人員和成本有限,甚至管理層還不同意額外支付加班費用的項目,不寫文檔這個錯誤會給你當頭一棒:如果在項目進行過程中發(fā)生人員更迭或者后期添加人員跟進項目,這都將會耗費公司大量的成本。
從另一個人手里接手源代碼而沒有任何文檔,再也沒有比這個更讓人吐血的了。
這種情況不僅僅是發(fā)生在開發(fā)人員身上。我曾經(jīng)做過一個項目,客戶的需求總是變來變?nèi)ヒ灾掠诤蟮男枨笳f明和原始版本大相徑庭,除了都是Web應用,我找不出其他相同之處。雖然我們的討論一絲不漏地保存于郵件之中,并且也有了后的產(chǎn)品也照著客戶要求做出來了,但是要是我想知道具體什么時候我們做了什么這樣的細節(jié),無從著手了,這變成了一個不可能的任務。所以,在文檔中跟蹤項目的流程和變化這一點也很重要,它將防止混亂和計費錯誤。
4.團隊中的溝通問題
小公司經(jīng)常會聘請一些兼職程序員來做項目。此時如果還包括遠程工作人員,那么一個合適的溝通渠道顯得更為重要。我曾經(jīng)不止一遍地向員工強調(diào),溝通是成功合作的關(guān)鍵。有的程序員落后于原定進度時,不告知其他人,從而導致團隊相關(guān)人員只能坐等他出結(jié)果,方可繼續(xù)工作,這中間浪費的資源可想可知了。
5.工作流程不起作用或者不設置工作流程
如果你曾經(jīng)參與過有很多開發(fā)人員攜手合作的項目,那么對于制定一個良好的工作流程是成功的關(guān)鍵這一說法的重要性不會質(zhì)疑。但是在很多小項目中,管理層往往會認為設置工作流程是沒有必要的,然后團隊效率的低下會讓這些家伙自釀苦果:耗費大量的資金和資源。此外,設置以下的規(guī)章流程也很重要:內(nèi)部的溝通、職責和任務的歸屬、緊急情況響應等等。
舉個例子,有一個非常實用的任務管理工具,Trello。它不但能跟蹤任務,還可以定義處理程序(如根據(jù)說明準備應用軟件貫穿于整個編碼和測試產(chǎn)品過程)。如果需要使用聊天工具(Hipchat、Slack等),Trello還提供相關(guān)整合工具。如此一來,只需要一個交流渠道,能傳遞所有信息,這將大大減少浪費在團隊溝通中的成本。
6.不做源代碼管理
有一種大錯特錯的觀點是源代碼管理是沒有必要的。事實上,即便我們只有一兩個開發(fā)人員,如果不使用源代碼控制系統(tǒng),我們很可能會深陷麻煩之中。
還是我的親身經(jīng)歷,在一個項目中,我們開發(fā)的一個版本既能用于開發(fā)新功能也能修正補丁,但是我們沒有運用版本控制。所以,當某一個開發(fā)人員需要更新產(chǎn)品時,他得先做一個手動備份的還原點。這是一個非常重要的應用,每天的訪問量成千上萬。所以有一次在發(fā)現(xiàn)bug、發(fā)布修正補丁之后,卻發(fā)現(xiàn)這個補丁中竟然有未完成的工作,這是一場悲劇,這導致了數(shù)據(jù)災難, 嚴重影響了公司聲譽。
沒有適宜的源代碼管理像是在玩火——從字面上看是:你在燒錢!
7.權(quán)力過于集中、無替代人員
談談我曾經(jīng)的一份工作,那個老板人非常和善、活力十足、喜歡親力親為。他深信,所有郵件都必須由他親自批復。不得不坦言,因為權(quán)力過于集中,所有流程都需要從他那邊走,使之成為了企業(yè)薄弱的環(huán)節(jié)。而且,一旦有緊急情況發(fā)生,甚至沒有臨時替代人員。
很明顯,這位“可敬又可笑“的老板成為了項目的瓶頸。我們總是在等待他處理消息。的確,這對于掌控下屬,督促他們好好工作很有好處,但是作為一個,也應該學會信任下屬、權(quán)力下放。
可以分而治之。掌控所有事是不可能的,特別是在像開發(fā)軟件項目這類大工程中。
上述這些錯誤亦有其共同之處:是犯錯誤的人缺乏高瞻遠矚的戰(zhàn)略性眼光。如果我們不能將時間投入到正確的事情上去,雖然能立馬看到削減開支的效果,并對此沾沾自喜,但是不可忽略的是,后我們所能創(chuàng)造的利潤也減少了。做任何事情都應該都大局出發(fā)。正確的處事原則有助于建立良好的習慣,而良好的習慣則能讓我們圓滿地完成任務。這才是一個公司和它的員工真正發(fā)展成長之道。否則,一家企業(yè)終將只會落得曇花一現(xiàn)的結(jié)局。