走出軟件泥潭 第一回 雪上加霜

 

2012年的第一場雪,漫天飛舞,飄揚在整座城市。北風狂吼着,呼嘯聲中夾雜着漫天的飛雪。狂風暴雪仍然阻止不了上班人的熱情。這座城市的軟件園永遠都是那麼熱鬧,纔剛到8:30。路上的雪已經化乾淨了,遠處山上已經被雪蓋得全白了。馬路上的汽車來來每每,捲起雪泥,催促着人們趕忙跑到辦公室。單元測試

 

吳俊芳今天起得特別早,一大早就來到的辦公室,她今天要召開一個特別重要的會議。這個會議她已經準備了好久了。做爲北方ITO公司的總經理,她已經困擾了好久了,最近更是焦頭爛額。早上人一到齊她就把各個部門的部長(部門經理)召集到會議室,又叫上質量推動部的嚴俊經理。這個她準備了好久的會議開始了。測試

「你們好,可能衆位也有所耳聞。最近日本經濟不景氣,發注量(訂單)大爲減小,而且匯率也在下調,再加上最近勞動力成本上漲,同行壓價。種種外部壓力促使業界各個企業都在變革。可是如今的情形,你們都在拼價格,拼資本,看誰能挺到最後。這無異於自殺。咱們也面臨這種狀況,咱們到了不起不變革的時刻了。前陣子咱們打算跟客戶談漲價,可是客戶說這是咱們的經營管理問題,很顯然這條路已經行不通了。如今公司也在尋找一些用人民幣結算的客戶,以減小匯率的影響,可是這只是緩解的策略。因此,咱們要從更爲本質的角度去改變公司的經營情況,在全部的競爭對手中獲取競爭優點,這樣纔可以在競爭中勝出。在過去的一段時間,我請質量推動部的嚴經理將咱們的狀況進行了一些總結,根據這些數據整理出了一些結論,我把各位請來一是看看這些數據和結論,二來也想聽聽各位針對如何變革有什麼樣的看法。下面請嚴經理。」編碼

嚴俊打開他的筆記本電腦,展現了一份幻燈片。這份幻燈片是他最近這一段時間來精心整理又通過總經理反覆若干次確認才造成的。今天這個會議關係到公司從此的成敗。由於他也不免有些緊張。設計

「你們好。這份幻燈片的數據是根據過去3年來咱們各個部門提供的數據整理總結的。基本上是從質量成本交貨期這三個角度總結的。首先是質量數據,咱們過去的三年中,千行代碼缺陷率爲單元測試階段8.4個,集成測試階段4.6個。這個數據在同行中算是中等水平。而在代碼複查階段,每千行可以發現8.35個缺陷。詳細設計階段,咱們的缺陷率爲每頁發現4.32個問題。另外,在全部的Bug中,bug的引入階段,35%來自設計階段,40%來自編碼階段,25%屬於需求理解錯誤和其餘溝通類問題。這在行業中也算中等水平。」項目管理

說到這裏,嚴俊來了個停頓。吳俊芳接過話頭。開發

「雖然過去的數據顯示咱們處在行業平均水平,可是咱們的客戶顯然對這個數字已經不可以滿意了。咱們須要提高咱們的項目管理水平,首先就得從質量着手。要知道每一個質量問題到了客戶那裏就是一個問題,而每一個問題會引發咱們的返工,而返工就是成本。因此提高質量是咱們的首要任務。下面請你們各抒己見。」產品

「我以爲提高質量的從上流(上游)工程入手,得從設計階段就提高質量。」發言的是測試部的部長孔令有。軟件

「那麼,具體如何作呢?」開發一部的劉星部長以爲這是一句有敵意的發言,當即就反擊。很顯然,光作測試的人在這裏是沒法提出如何具體提高設計質量的——由於他歷來沒作過設計。見孔令有沒有回答,劉星繼續說,「我卻是以爲問題並非出在設計階段,而是需求的問題,客戶老是在項目末期進行需求變動,而咱們最初的時間規劃上並無這樣的規劃,這是致使咱們成本增長的緣由。因此咱們應該提出讓客戶在詳細設計階段開始以後就固定需求。」很顯然,把錯誤推到客戶身上,就會把本身的責任推的乾乾淨淨。plugin

但是,吳俊芳也是老江湖,這詭計並不能在她那裏奏效。「客戶當然有客戶的緣由,找客戶的緣由並不能讓咱們改變什麼,咱們就會回到舊的軌跡上去。這樣,對改變並沒有任何幫助,我但願你們可以想出更多更有效的方法來。」bug

「我以爲,」劉星以爲這話說的有些和平時不同了,也不由感到了氣氛有些壓抑了,只好硬着頭皮接着說,「其實,咱們的問題出如今複查上,若是咱們的複查可以更仔細,後期問題也就不會發生那麼多。因此,我建議增長複查的力度。」

「雖然複查能夠必定程度提高產品質量,可是複查花費時間太多,咱們可能得不償失。」開發二部的韓京有不一樣的見解。「我卻是以爲,測試組應該增長測試力度。」

眼看着照這樣下去,會議是開不出結果的。還好,吳俊芳早就對此有預料。她以爲該拋出本身的答案了。

「我以爲,你們提出各類不一樣的建議都很好。可是,每一個人提出的解決方案都是從一個點入手。咱們須要從整個流程上入手來解決質量問題才能夠。」

嚴俊知道該輪到本身發言了。「其實咱們的質量情況處在行業平均水平。關於這一點我去考察了一些行業中比較領先的公司,他們的作法有值得咱們借鑑的地方。好比說:剛纔提到的固定需求,減小變化,這一點能夠在合同裏寫上,若是需求變動達到5%之內免費,而超過5%則開始收費,這樣能夠減小風險。另外,從項目早期階段入手提高質量有助於後期的質量提高。因此即便在項目的上流工程投入更多的時間複查,在後期節省的時間會更多,這是值得的。另外,也要提高一下各個工程階段的指標。」說着他打開了另一張幻燈片。這是一張V模型圖,上面標註了軟件開發的各個階段,每一個階段旁邊都標註了一個小框,小框中寫着一些標註。

「詳細設計階段,咱們之前的指標是每頁複查的問題爲4~6個,如今咱們能夠提高這個數字爲6~8個。代碼複查階段的缺陷密度爲每千行7~10個,如今咱們能夠提高爲10~14個。單元測試階段爲8~10個,能夠提高爲10~14個。集成測試爲4~6個,也能夠提高爲6~8個。執行更嚴格的質量標準,能夠減小後期由於需求變動和客戶驗收而帶來的成本。」

「你們還有什麼補充嗎?」吳俊芳不失時機的提問道。

看來這是一出早就排練好了的雙簧,連幻燈片都準備的那麼完整。還說什麼呢,你們天然就是以靜聽爲主了。

嚴俊接着說,「下面就是成本方面,在成本方面,咱們的平均工資也處在行業的平均水平。這裏不方便提供完整的數字。可是,咱們能夠想一想其餘的辦法來下降成本。剛纔提到的提高質量就是一種下降成本的好辦法。你們有什麼其餘建議,還請多多發言。」

有了剛纔的狀況,你們有些面面相覷,不知道該如何是好。

「咱們過去支付的加班費太多了,能夠考慮減小些加班費,好比:天天晚上減小兩個小時的用餐時間,沒必要支付加班費。」劉星第一個發言,看來這個事情他已經憋了好久了。「長期以來,有些員工在外邊吃晚飯的時間太長了,只有這樣纔可以避免他們蹭加班費。」

「其實公司的旅遊也沒有必要搞得那麼誇張,就在郊區找個地方,你們熱鬧熱鬧就能夠了,這也能夠省很多錢。」韓京補充道。

「我以爲返工是最大的成本」,孔令有的發言彷佛老是有針對性。「咱們每次測試都至少要5輪纔可以交付客戶。要減小輪次纔可以有效下降成本。」

           劉星彷佛一直不喜歡他的發言,「但是致使返工的主要緣由不是代碼質量很差,而是測試組沒有把測試用例提早交給開發組,若是開發組提早知道測試用例就可以更好的提升質量。」

「測試組是爲了可以站在客戶的角度上來驗證軟件質量,若是提早把測試用例告訴開發組,開發組就不會提升代碼質量了。」孔令有不甘示弱。

「我看並非這樣的。測試組是擔憂測試用例提早知道了會失業對吧?」流行的發言彷佛針對性很強。

「我也以爲測試組的用例不可以提早交給開發組,若是開發組知道了測試用例,有針對性的編寫代碼就沒法保證代碼質量了。」孔俊芳補充道。

既然總經理已經定方案了,你們就很差再說什麼了。

通過了一下子的沉默,嚴俊接着說,「下面咱們要說的是交貨期方面,咱們在交貨期方面有些很差,由於咱們老是比計劃晚交付3~4周。這個和成本也是掛鉤的。」

「但是,你要知道,咱們提高了質量,就要進一步延長交貨期,若是不延長交貨期,那就要增長人數,提高成本。要是控制了成本,就得質量降低。總之呢,QCD(質量成本交貨期)三者之中最多可以同時兼顧兩者。這是一個經濟學難題。」劉星看問題就是很尖銳。

「對。」韓京附和道。

「是」「對」,其餘的部長也都有相同的想法。就連一直和劉星做對的孔令有也符合了這個說法。看來吳俊芳要在這三者中選兩個了。而這個確是她一開始沒有意料到的問題。

「這個問題咱們先放一放,你們說的是有道理的。」作總經理這麼久了,處理這種緊急狀況他仍是頗有經驗的。「不過針對這三方面的改進咱們還有一整套的方案。除了剛纔的流程圖以外。還有一系列的政策。」

「過去咱們的加班量不是不少,並且加班時間不少員工都在外邊吃飯吃了很長時間。咱們要增長加班量。」這話是嚴俊說的。「另外,咱們的人員等級中,高級工程師數量偏多,應該按照合適的比例去控制,多采用些初級員工,下降成本。還有,會議時間過長,應該控制會議時間。」每講一個改進點,他都會翻一頁幻燈片,並且,都有一些數據在支撐。顯然,這一切都是有備而來的。

「下一個項目我已經談妥了。就由開發一部開始試點,成功之後全公司推廣。其餘部門也要支持他。這是關係到公司從此發展的重要項目。」吳俊芳在最後總結道。

「好的,下面劉星留一下,其餘人能夠散會了。」

吳俊芳留下劉星,跟他講述了一下此次變革對於公司的重大意義,而且對他過去的表現大加讚揚,表示,只有他纔是實行這個改革的最佳人選。由於他頭腦夠聰明,靈活。劉星天然歡歡喜喜的接下了這個重任。

 

窗外,雪花飛舞的更歡快了。不遠處一座大鐘噹噹噹的,正好敲響了十下。

吳俊芳,望着窗外的遠山,彷佛,一切都很明朗。

相關文章
相關標籤/搜索