競聘軟件部的副經理
l客戶有權隨時決定軟件變動范圍并得到有關反饋,也可以在任何時間取消一些項目并保留能反映投資回報狀況的有用工作系統。
3、具體項目的處理
l解決進度延遲,多發布迭代周期,以獲得對進度的詳細反潰
l預防項目取消,讓客戶選擇具有最大意義的最小版本,從而在投入生產前減少發生錯誤的機率,同時軟件的價值也得到最大化。
l預防系統惡化,創建并維護一套測試程序,保持系統最佳狀態,不允許累計錯誤。
l預防缺陷率,遵從客戶需求,逐個程序進行測試。
l預防業務誤解,使客戶成為整個團隊的一部分。在開發過程中,不斷和客戶進行溝通,并且項目的說明書不斷得到改進。
l預防業務變更,縮短版本周期,使每個版本開發過程中的變化最少。在一個發行周期中,歡迎客戶用新需求取代仍未制作完成的功能。
l程序員承擔估算和完成自己工作的責任,并將他們完成工作實際所花費的時間及時反饋給他們,改進并且尊重他們的估算。大家都很清楚應該由誰做出或者改變估算的規則。這樣,就可能更少的因為要求程序員作明顯不可能完成的工作而使之感到沮喪。鼓勵團隊成員間的互相溝通,以減少由于對工作不滿意而產生的挫敗感。
l共同擁有代碼,更有效的減少人員調整后對軟件項目的負面影響。
4、多項目的整體運作
l整體軟件部門劃分為b/s工作組,c/s工作組。
l實行分時多任務的開發方法。以一個星期為一個開發周期,每一個開發周期都交給客戶一個已經發布的軟件。適時建立并以專業團隊為開發單位,全面實現客戶權利。
l促進軟件項目之間的溝通,尋求編程風格、習慣、標準的統一。
5、軟件部崗位設置
l項目管理員負責跟蹤各個項目,反饋給質管部門并生成相關文檔;分配資源,協調軟件團隊與客戶和用戶之間的關系;輔助教練確定客戶需求。
lb/s教練、c/s教練,指導具體技術,與市場部門共同商定技術方向,協助項目管理員管理和跟蹤各個項目。與客戶一起確定需求。衡量一個教練稱職與否的標準,不是他做出了多少關鍵性的代碼或者決策,而是他輔助整個團隊做出了多少正確決策。教練不負責許多開發任務,他的主要職責是:
i.充當開發伙伴,特別是對于那些剛開始承擔責任的新程序員或者困難的技術任務來說。
ii.明白長期的重構目標,鼓勵小規模的重構來實現一部分長期重構目標。
iii.用個人技術、技巧幫助程序員,如測試、格式和重構。
iv.向上層管理人員解釋過程。
v.輔助與客戶溝通。
l程序員是軟件項目的核心,他們的工作并不是僅僅讓計算機明白客戶的需求。最重要的準則,是和別人進行溝通。如果程序能夠運行,但還有重要的部分沒有溝通,程序員的工作就沒有完成。需要盡力為客戶開發最有價值的軟件,并且把問題規模減到足夠小的程度。程序員必須學會重構、學會單元測試,放棄對系統的某個部分的個人所有權的想法。對于一個程序員來說,你必須承認你的恐懼,因為我們每個人都在害怕:怕自己看上去很蠢、怕被認為是廢物、怕跟不上時代、怕不能勝任。然而你可以在團隊的幫助下,克服這些恐懼、獲得勇氣。