大多數人都想選擇過太平日子,程式設計者也不例外。

大多數的程式設計者都喜歡在開發生活中踩著固定的開發步調,一步一步的往前進,當抵達終點的那一天,就是完成軟體的那一日。在很理想的情況下,專案開發的每一天要做那些事情都很清楚,每天從坐上自己的座位,就知道自己今天需要完成那些工作,然後,也能在不加班的情況下,把需要完成的工作完成。

但是,這終究是十分理想的情況。在軟體開發中,姑且不論對工作負載的估算可能發生偏差,在專案的進行過程中,還是有可能會有不少突發狀況發生。

一旦發生了,就得臨時應變。而更重要的是,這些通常都很緊急,也就是說,有一個很確定、而且很短的期限,在這個很短的時間內,必須完成一定的工作內容。

救火隊式任務出現,容易亂了工作步調
程式設計者多半討厭處理緊急的工作,因為它會嚴重破壞既定的步調。而且,很少有人喜歡在很大的時間壓力下工作,因為除了壓力本身造成的心理因素影響之外,同時也會使得程式設計者無法從容的思考如何妥善的解決所面對的問題。

也因此,對軟體開發團隊的管理者而言,自然應該要盡量避免讓程式設計者面對緊急的工作,因為太多緊急的工作,會影響到程式設計者的開發步調,而緊急工作下的產物,通常都是為了在短期內完成一個重要的目標而衍生出來的,因此,在執行工作時,最重視的是時效,而像品質、甚至對日後的長遠佈局及規畫,都不是最重要的考量因素,在追趕時間的同時,這些在軟體開發中重要的因素,反而都會被犧牲掉。

除此之外,處理緊急的工作,就像是在救火一樣,而時常在處理緊急的工作,會讓程式設計者覺得自己像消防隊員一樣。而且,整天疲於奔命都是在解決緊急的事情,會讓他的生活中充滿一堆極短期的目標、不僅看不到長遠的方向、也沒有穩定的步調、而且還時常處理極大的時間壓力之下。很少有人會喜歡這種工作的模式。

有些緊急的事是來自於不夠詳盡的規畫,只要做好相關的工作,可以避免此類的事情發生。許多專案的計畫不夠完備,造成了某些工作到了它必須要完成的日子之前,才猛然發現它的存在及必要性。這個時候,只好以緊急的姿態,試圖在很短的時間內加以完成,避免專案

如果總是疏於規畫,那麼專案中就會持續充斥著各種緊急的工作等待處理,而消防車的警笛聲也就在專案進行過程中不斷地此起彼落。加強規畫,我們是有機會降低面對緊急工作的機會。但是,計畫做得再怎麼詳盡,規畫再怎麼有遠見,終究是無法完全預見未來。

事情總有變卦,有了變卦,就產生了不在預期中的事件,也就可能衍生不在預期中的工作。而且,通常還是很緊急的工作。

例如,軟體原先在某個國家運作得好好的,突然有一天因為該國網路政策改變的關係,使得這個軟體在突然間不能運作了。

這種情況應該可以說是無法預期的,卻必須在很短時間內解決的。因為該國的客戶,可能因為此一軟體無法使用,因而採取退貨的手段。經過業務單位的協商之後,該國的客戶接受在限期內的一個改善方案。而開發部門就多了一件必須在限期內完成的緊急工作。在這個例子裡,並不是因為計畫做得不夠詳細而造成的,而是因為一些難以預測的事件發生,使得開發部門必須面臨十分緊急又十分重要的工作。

先確認完成的期限
緊急的事件大多數人都不想面對,但是,終究還是有些緊急的事件難以避免。一旦遇上了,還是得積極加以處理。

如果你是一個團隊的領導者,處理緊急工作的第一步,便是決定真正的期限。有時候緊急的工作在第一時間會有一個必須完成的期限,但是這個期限或許是可以協商的。更有些時候,緊急的工作能接受分階段性的完成,經由協商可以延長期限,或者是縮小在既定期限內必須完成的工作內容。
在決定真正的期限之後,你便要快速分析,在這個期限內,為了達成目標,有那些大略的工作勢必要完成。

找到對的人
展開了要進行的工作細項,接著便是依據需要完成的工作細項,挑選適合處理的人選。

並不是每個人都很適合處理緊急的工作,這是因為每個人的人格特質都不盡相同。有些人的長處在於周詳的思慮、縝密的規畫、按步就班把工作完成。但是這樣的人在急促的時間壓力下,不見得能夠把事情做的較好。畢竟,終究還是有些人才是天生的消防員。

什麼樣的人適合處理緊急的工作呢?

曾經看過一篇文章以不同類型的翻譯工作,很巧妙地類比程式設計者所面對的工作模式。在這種比喻底下,你可以想像,翻譯一本文學名作時,需要謹慎小心地逐字句琢磨,一來必須掌握文章原意不可有所偏差,二來,所翻譯出來的文字也必須優雅流暢。

而若是國際會議中的口譯情境,必須在很短的時間內就將對話的內容予以譯出,重點的是時效性,至於語句優雅與否,倒還在其次。

解決程式的問題也有這樣的分別。有些程式設計者雖說或許是不世出的奇才,但是不擅長在短時間內解決急迫的問題。他們的專長在於在充份的時間下,做出最好的規畫、最理想的設計、最兼顧未來發展的解決方案。然而,一旦要求他們在急迫的時間內完成,他們可能不見得能做出在該時間限制條件下最好的結果。

但是,相反的,卻也有些程式設計者,很能夠面對時間的壓力,而且能在時間的壓力下做出正確的決策。即使在這樣的壓力下,他仍然能夠冷靜分析問題,去除那些與主要目標相關度較低的因素,聚焦在主要目標上。而這類的人,能夠權衡時間上的限制,決定解決方案的內容。

他們可以接受不那麼乾淨的方法和答案,而把重心放在問題的解決及工作的完成。在解決緊急的工作時,需要的反而是不那麼優雅、但能在短時間內解決問題的暫時性方案。而有些人天生就是速戰速決又能應變的好手!
如果你是一個團隊的領導者,面臨了一個無法逃避的緊急工作等著如期的解決,首先,你要做的事,便是想想團隊中有誰適合擔任這樣子的工作,他們最好是在人格特質上適合救火;另外,他們所熟悉的技能取向也足以解決問題。通常被徵召來解決緊急問題的成員,也都是技巧較高超的一群人。因為要在急迫的時間內解決問題,同樣需要深厚的實力。即使只是暫時性的方案,實力平庸的人,也無法於短時間內完成。

你需要依據需要完成的工作內容還有工作量,逐一的挑選成員加入你的臨時救火隊。這時候你會發現,身為領導者本身也會需要救火的特質。從決定期限內該做的事,以及挑選合適的救火隊員,都需要在急迫的時間內做出能聚焦的決定。

在下回,我們將再繼續探討軟體開發時處理緊急工作的議題。

專欄作者

熱門新聞

Advertisement