很多軟體專案中的質量問題都是由一些小任務之間的中斷而引起的。由於團隊成員把他們的工作定義的過於狹隘或者在把工作從乙個人手中移交給另乙個人時出現困難,所以會經常發生中斷的情況。
背景故事
幾周前,我在一家機場的飯店等一次午夜航班。有乙個服務員拿了一大堆髒盤子往廚房走,她竟然能一下子拿那麼多的盤子,對此我印象特別深刻。在朝廚房走了一半時,有乙個餐叉從盤子裡掉了下來。由於那個服務員兩手都拿滿了盤子沒法去撿那個餐叉,所以她就把餐叉留在地板上繼續往廚房做了。
這時走來另外乙個兩手空空的服務員,在她身後約
15英呎
。我想這個服務員肯定知道剛才發生了什麼,為了不踩到那個掉在地板上的餐叉她往前跨了一大步。但是她只是繼續往前走並沒有把餐叉撿起來。儘管那時飯店客人並不多而且她看上去也沒有什麼著急的事。因為撿餐叉不是她的工作,所以那把餐叉只好躺在那裡等別人踩了。
幾個月前我評審了乙個雜亂無章的專案。就在我與每乙個團隊成員討論各種專案問題及其解決方法的時候,我不斷聽到他們說:「這不是我的工作。」每個團隊成員對什麼是他們的工作似乎都定義的很狹隘,很明顯,許多責任都不在任何人的工作定義範圍內。所以沒有任何人覺得他們要對處理需求問題、確保需求與測試用例同步或者改進開發人員的測試,以便確保交付給測試團隊的是有質量的**等問題負責。
簡而言之,任何專案的成功都是每乙個團隊成員的責任,也就是說每乙個人都要盡全力去做一切能夠使專案成功的事。
但並不是說你要替其他團隊成員做他們份內的工作,而是當你看到有些而任務需要有人去完成的時候,要麼通知負責人去做,要麼就自己去做。
新理念
為了交付高質量的最終產品,團隊成員需要具備怎樣的理念?
交付高質量的最終產品需要分析人員、開發人員、設計師、測試人員、管理人員以及客戶之間的緊密協作。這種不斷加強的協作對責任、溝通方式、組織以及人們如何看待他們在團隊中的角色都有影響。簡而言之,它需對每乙個團隊成員的理念提出新的要求。
1.
經理關注的焦點應從日常管理工作、中間製品及固定計畫轉向領導能力、基於結果的管理方法及團隊協作。
a)做乙個領導者:作為領導者,你要保證讓整個團隊都知道要實現怎樣的目標,並且要極力團隊成員團結一致並實現最終目標
;建立共同的價值標準——哪些行為是可以接受的,哪些行為是不可以接受的——並且要通過實際行動不斷加強這些價值標準。
b)為團隊授權
c)公開專案所面臨的各種風險,不斷重新評估風險並按照風險區分專案工作優先順序:迭代開發方法最重要的特徵是在生命週期的早期驅除主要風險
d)通過可證明的結果而不是完成的各種活動進行狀態評估:作為經理,你所關注的焦點必須從活動轉向可證明的結果。
已經完成的活動不足以度量成功,因為僅僅完成一項活動並不能說明最終結果的質量。由於最終目標是軟體本身,所以成功的首要度量應該是被交付的工作軟體
e)在專案初期為整個專案制定高階計畫,職位當前迭代和下一次迭代制定詳細計畫:專案初期的詳細計畫花費大量時間並存在不確定性因素,相反,這個高階計畫要簡單地描述出每一次迭代所期待的成果,並且只為當前和隨後的迭代制定詳細計畫
f)隨時平衡對需求、架構、設計、實現以及測試的投資,以確保解決風險:「哪些型別的活動能最好的環節當前的風險」
2.
分析人員的理念應該從「負責將需求文件化」轉變為負責將正確的需求文件化、使需求被理解,而且可以被開發人員和測試人員所反映。
a)與終端使用者交換意見並徵求終端使用者的參與,以確保開發的系統是正確的
b)鼓勵早期實施關鍵能力以便了解哪些需求將會解決業務要求
c)與開發人員、測試人員一起對需求按照優先順序排序
d)根據你所處的階段及專案要求正確地對需求進行細化
3.
開發人員的理念需要從「僅僅負責實現需求」轉變為負責開發能夠解決終端使用者需求的高質量應用軟體。
a)將你的責任範圍擴大到詳細設計、實現以及開發測試:你希望將移交給不同的人員的資訊數量將到最少,從而把可能的潛在錯誤減至最少並且使效率最大化。為了使移交數量最小化,一定要讓你的團隊成員承擔的責任範圍盡可能地廣;一定確保編寫的所有**都是高質量的
b)承擔部分需求工作,協助為需求尋找解決方案
c)承擔部分測試工作:測試先行設計能夠幫助你從乙個開發人員的角度關注測試。這種方法十分注重生產高質量的**,並促使團隊集中精力構建高質量的應用軟體
4.
測試人員的理念應該從負責在專案的最後期「為質量注射疫苗」轉變為負責整個專案過程中的測試工作,並以測試專家的身份知道其他團隊成員進行與測試相關的問題。
a)定義測試策略:測試策略包括利益相關者對質量的定義以及專案團隊的優先順序。只有所有團隊成員對質量定義及專案成功的標準都意見一致後,他們才能正確地關注自己的工作,專案才會成功
b)成為團隊的導師,指導測試的步驟和方法:測試人員應該與整個開發團隊分享他們的專業知識,例如指導管理人員制定與測試相關的決策、向分析人員建議可測試的需求計畫以及幫助開發人員執行開發測試等
c)在專案初期進行測試:在迭代開發中,每一次迭代都涉及測試,這就意味著你需要將集中在專案後期的測試工作均勻地分布到整個專案過程中,並使所有人都知道每一次迭代的測試內容
d)集中處理定義過的測試目標:了解你的測試目標是什麼,而不是去試**決所有的缺陷——這是不可能的。
確定正確的質量級別並且要明確是否應用軟體的所有細節都對質量要求較高,然後相應地關注你的測試工作
e)不斷對穩定的能力進行自動測試
5.
架構師的新理念:略
6.
對大型團隊的指導:略
將運算交給每乙個人?
為加快速度,把渲染工作都交給了瀏覽器。如果,為了某乙個運算,能不能把它拆分為不同的步驟,放到 上,然後當每個人訪問這個 的時候,都幫忙做一些運算,得到的結果返回給 有點像不知 看到,用驗證碼方式幫忙轉換文字 能不能提高計算的效率?當然 的訪問量一定要夠大 再進一步,當這些運算最後不存在於 而是依賴每...
善待身邊的每乙個人
善待身邊的每乙個人 是生活,使我們懷著美麗的夢,走到了一起。在生活中,我們早夕相處。但因性格 修養存在的差異,難免產生摩擦。它會直接影響工作及生活的情緒。既然難免,就坦然真誠面對 學會善待身邊的人。生活本是一場漂泊的漫旅。走過的每乙個地方,遇到的每乙個人,也許成為驛站,成為過客。留下的只是回憶,直至...
乙個人久了
乙個人久了,會懶得戀愛 乙個人久了,朋友會越重要 乙個人久了,會越來越喜歡聽歌 乙個人久了,會常常忘記帶 乙個人久了,對愛情會越來越挑剔 乙個人久了,會更加勤奮 乙個人久了,除了寂寞點外還是蠻開心的 乙個人久了,會慢慢變得成熟起來 乙個人久了,會比以前更重視更愛父母,更重視親情 乙個人久了,對所有的...