OK,我們說有人。要有什么人?

  我說的是是開發項目經理。這個人得單提出來,不能開發編碼,專門做需求管理、BUG管理、團隊中每個人的工作計劃、工作推動、團隊內部資源調配、團隊內矛盾解決、執行過程中異常問題處理、每天向各個協調方報告工作進展和工作困難。我說的各個協調方包括客戶、客戶老板、自己的上司、自己的老板、銷售部門、實施部門、支持部門。

  我們整天在忙,其實在窮忙。很多穿插進來的事情和異常讓我們常常不得不停下手中的工作,接電話、查找客戶的BUG、臨時修改BUG、給客戶更新、跟蹤客戶更新后使用情況。我們本想完成的計劃,都成了空話。當月底檢驗計劃的時候,總會有一大堆的理由說是因為什么什么異常,所以無法按照計劃執行。

  對,這是沒有防火墻,每個人都直接受到各種來源的直接干擾。而開發項目經理,是防火墻。

  售前方面的方案制作、需求討論、打單演示,銷售部門反饋回來的客戶現場提出的需求和問題,老板在客戶現場發現的問題和需求,實施部門在實施過程中發現的需求和問題,客服支持部門在日常支持中轉過來的需求和問題,在項目開發過程中客戶的各個業務部門包括客戶IT部門提出的需求和問題,這么多的沖擊,需要有一個專門的人來統一歸口,屏蔽。任憑外部這么多異常的穿插,有項目經理一人擋關,開發人員在研發內部安安心心的按照項目經理的工作計劃扎實的開發著。

  不管收到多少需求和問題,每個人都覺得自己的問題是簡單的,是需要立即解決的。每個人都會這么想。但現實這么擺著,有100件事,三五個人,看著辦。累死也不可能把這100件事1天內干完。

  項目經理把來自各方的需求和BUG,統一匯總到一個EXCEL中。和各方討論明白到底想要的是一個什么功能,細節是什么,會引發的問題是什么,都要項目經理來做好功課。確實要開發的,根據現在的開發進展和開發計劃、開發負荷,排好后續的開發計劃。

  其他人著急啊,著急也沒有用,你看,所有的需求和BUG都在這里,其他人也在提,不光是你銷售部門一個部門在提。你看,我們的工作內容,已經排出來老長了。都很明確,大家沒有偷懶,大家確實很忙,丁是丁,卯是卯,是到了老板那里,拿出來這些EXCEL,老板也沒有辦法。這點人啊。

  這是第一道防火墻。

  第二道防火墻是增加測試人員。軟件不穩定,實施有問題會直接找開發人員,客服支持有問題會找開發人員。因為這些是軟件BUG,得開發人員跟蹤和修改。怎么讓軟件穩定呢?我和很多人都聊過,在長久的不間斷的修改代碼接客戶電話做跟蹤支持的,程序員們普遍很累,對這種狀態很膩,有厭煩心理,甚至有了虱子多了不嫌咬的無賴狀態。

  這是人的正常生理和心理。程序是程序員用手一個個敲字母敲出來的,這是個手工作業活。人是肯定要受各種生活和工作的影響。人不是冷血動物,人也不是機器。人是感性的,人是需要生活的。

  這種狀態存在,我們要去解決問題,而不是一味強壓。有時候,強壓也失去了作用。想解決,臭罵一頓也沒有辦法。說吧,想不想解決?想,那我們擺好心態,繼續往下看。

  測試人員一方面會使軟件質量提高,這樣BUG少了,未來的程序員的支持少多了,實施部門和客服部門的工作輕松了,當然部門沖突也會少了,合作也比較改良了。

  另外,測試人員需要兼任技術支持人員。因為測試人員為了能測試出更多的BUG,把軟件問題消滅在開發內部,所以他對軟件的細節了解的僅次于項目經理和開發人員。測試人員比實施人員、客服支持人員、銷售人員要了解軟件深的多。他來做技術支持,他解決問題查找問題比實施人員、客服人員要快的多、準的多。這樣不需要干擾程序員了。程序員可以正常的按照開發計劃一步步繼續了。

  而且,在實施過程或客戶應用過程才發現的BUG,那是測試人員當初沒有測試到的地方。為什么沒有測試到,為什么忽略了,以后要加強注意。這也是對測試人員工作質量的一個反饋。

  所以說,測試人員兼任開發部門技術支持人員,對測試本崗位工作非常有好處,是對測試工作的促進和提高,也給研發部門設立了第二道防火墻,防止實施部門、客服部門對程序員的干擾。

  只要程序員能安心工作。他寫的代碼質量會提高,BUG減少,功能細節完善,思考周密。如果整天讓他救火,程序員只能以救火的心態來工作。人不可能長期處于高度緊張救火的狀態。

  有了這兩道防火墻,負向轉到的企業文化、部門沖突、工作質量、工作效率才能慢慢再回到正向轉動上來。這是開始的切入點。

  上面所說的兩道防火墻都是在有人的情況下的一些措施,但現在是整個部門空無一人,連普通的技術人員都沒有,更別說那些技術骨干,都被陷入項目中,是拉不出來,現在是先用什么辦法拉出這些人來?

  沒有人不要緊,要緊的是,研發團隊需要承擔更多的工作。但這是理順前,走向正軌的必然付出。在老板沒有看到效果不投入人力之前,研發團隊要想變好,是必然要付出更多的。大家不要想著和過去一樣付出能達到更好的效果。我們在現有人手下,有些人需要承擔更多的開發工作,這樣才能擠出一個人來做項目經理,專心管好需求、BUG、工作計劃、協調、推進、匯報。這樣才能擠出第二個人來做測試與技術支持。這必然會有人職業轉型,會有人承擔更多的代碼開發工作。但其實,專心開發代碼,一切雜事都屏蔽了,開發質量和開發效率都會提高,反而比過去工作更順溜了。程序員,擅長的還是自己本職的開發工作。

  但冰凍三尺非一日之寒。所以不要一有救火,整個改良都放下了,重新回到過去的狀態了。這是不對的。從負向到正向,必然有很大的逆摩擦。堅持,咬牙,挺過,負向的車輪才會靜止,然后正向轉動。想實施改良的人,必須要深刻認識到這個沖擊,要承受得住,要有勇氣來面對挑戰,要有勇氣來面對失敗。

  你是否有這種犧牲付出和堅持推進的勇氣?