一.團隊組織
1. 微軟團隊模型
項目經理,開發,測試人員比例為5%,31%,64%。
產品團隊中,權威僅僅來自于知識,而不是來自于職位。
People are most productive working in small teams with tight budgets, time deadlines, and the freedom to solve their own problems. – Bill Gates
通過有效的風險管理,使不確定因素達到最小
使用小團隊并行工作,達到最多的同步點
定期編譯與快速測試,使產品的穩定性和可用性達到最佳
2. 各角色的職責
1)Product Management Team 讓客戶滿意
Target:確定產品遠景,獲取并確定用戶需求,開發并維護商業安全,滿足用戶需求。
Role: 部門負責人為 Product General Manager,下設Product Unit Manger,Product Planning,Market and Research,Evangelism與Public Relation的部門負責人;evangelism:說服別人,產品推銷,原意為“戰斗似的熱情”
Task:進行Group Program Management,清楚地知道用戶的需求,并給出詳細定義,即用專業術語描述;確保新產品帶來利潤;控制用戶的期望值;設計大概的產品特性和進度表;管理市場,推銷及公共關系!
2) Program Management 在項目約束條件下交付
Target:制定開發功能規范,在團隊內溝通與協商,維持產品進度并報告產品狀態,保證在產品約束條件下按時發布產品。
Role :project coordination, product architecture, release management
Task:管理產品細節,如feature的詳細設計;促進團隊溝通與交流,如plan following up;控制全局,保證項目按時完成,生產過程中的trade off。
3) Software Development Management 按產品規格交付
Target:開發出滿足設計規范和用戶要求的產品。
Team Role :軟件架構師(Software Architect) 與 軟件開發工程師(Software Development Engineer )
Task:進行Software Development Management,包括database,system service,user interface。
4)Software Testing 解決所有問題后發布
Target:開發測試策略和計劃,保證解決了所有已知問題后,再發布產品。
Team Role。測試工具軟件開發工程師(Software Development Engineer in Test , SDE/T)與 軟件測試工程師(STE) 。
Task:進行test management,compliance testing,configuration testing,integration testing,stress testing 測試工具的編寫 - 開始于,Test Case 確定之后,并根據Test Case來設計。
通過使用來發現bug不是真正的測試,只能發現一般用戶問題,屬于最基本測試范疇;
測試要考慮所有出錯的可能性,錯誤的承受力,運行的性能問題,軟件的兼容性;
一流的測試人員,不僅要找出bug,還要定位引起bug 的代碼行;對設計缺陷,測試人員應提出一個更合理的設計,并確保此設計易于開發人員實現。 Active Bug 指 當前必須修改的defect。
5)User Enducation Team 提高用戶勝任力
文檔編寫,用戶培訓;保證使用文檔要全部清除地寫出來,提高用戶使用產品的技能,保證大多數用戶能夠充分利用產品的功能。
6) Logistic management 平滑產品部署
產品實施與維護。
3. 開發過程特點
1) 文檔齊備:每人清楚了解自己需要做的工作;功能規范由一個3-5人的小組負責完成。
2) 相互閱讀代碼:實現目標為同一個feature,代碼間可能相互依賴,有助于整體提高效率;避免核心代碼由一人完全控制。
3) 代碼注釋:包含詳盡的調試信息,便于理解與問題解決。
二.項目管理
1. 管理機制
• 組織架構
產品開發行政結構,一個Product Unit Manger,下設三個平級的部門經理,團隊項目經理(Product Unit Manager),軟件開發經理(Development Manager)和測試經理(Test Manager);每個部門經理管幾個組長,每個組長下再有3到5個具體工作人員,如項目經理,軟件開發人員與測試人員。
產品設計,產品實現和產品測試,三權分立,相互配合,相互制約,相互依賴,有助于建立明確責任制,從而保證產品開發的順利完成。
軟件開發與測試經理/組長,均為專業技術人員出身,能夠指導部下工作或代替他們完成任務;這樣人員的行政管理就是領域專家式管理,保證了開發從技術上思考和評判設計方面的問題。員工也會樂意接受能真正了解他具體工作的人領導,并給與充分的尊重,同時也能避免開發人員虛報所需工作日的情況。
微軟行政級別決定員工工資,股權等福利待遇,而職務頭銜與行政級別并不是直接掛鉤的。技術人員只要能力強,貢獻大,行政級別與工資,福利待遇可能同高層一樣,不需成為經理或領導才能獲得較高級別的待遇。這樣他們可安心自己擅長的工作,其能力和貢獻,可經不斷的提級來得到認可和回報。
• 項目經理配置
隨著軟件產品項目規模增大,產品質量問題,開發周期問題,內部管理等問題越來越突出,必須從根本上加強項目的組織管理,從而微軟產生了項目經理這一職位。
項目經理全權負責產品的最終完成,其任務涉及:了解用戶需求;進行產品的功能定義,規劃和設計;做各種復雜決策,保證開發隊伍順利開展工作,及跟蹤程序的錯誤等。項目經理占開發總人數的1/5,即每個開發小組中,有一個項目經理,兩個軟件工程師,與兩個軟件測試工程師。
具體工作描述:
1) 制定產品遠景計劃,寫出項目規格說明書;
確定商業機會后,產品單元經理制定出粗略的商業計劃書,交項目經理準備項目計劃草案,包括遠景描述,主要功能,建議的時間表,里程碑及所需的資源。
主持由開發測試骨干參加的會議,對計劃草案進行全面的分析討論,確定主要功能模塊。
對每一模塊編寫一頁紙規模的設計說明書,包括功能優先級的制定與理由,對資源的估算,時間表的估算,風險評估,同其他功能塊的關系;目的要評估實現這個功能塊的成本,目標與條件。
召集產品單元經理,各部門經理參加的設計說明書評審會,匯總所有功能塊說明書,對進度,功能塊的取舍做總結和決定。
2) 制定工作詳細任務表,跟蹤任務的執行情況,保證其符合規格說明書的原始設計。
3) 指導項目開發的過程設計與實現;對各種具體方案進行取舍并做出決定。
4) 組織會議,評審程序錯誤;協調成員之間交互配合。
5) 產品完成后,主持項目總結報告會,討論此次的經驗與教訓;下一版本的改進,及具體的行動計劃。
• 項目經理要求
項目經理通過產品單元經理,對軟件設計工程師和測試工程師的資源和任務分配進行調整,但不會直接下達行政命令;其核心任務是業務領導,掌握產品全局觀念和進度,協調開發人員與測試人員的工作進度,及同與產品有關的其他人員接觸,如市場,用戶支持,客戶教育等。
對團隊的領導,主要依靠其個人威信(credit),開發人員和測試人員的尊重和配合;其威信來自于工作中表現出的領導力,洞察力和判斷力,以及高素質的技術專長和出色的協調溝通能力。
1) 領導能力保證項目組的高效運作,如,召集每周的項目進度會議,確定工作日程并進行跟蹤,提交項目進度報告。
2) 洞察力和判斷力,有助于在復雜情況下,迅速找到問題癥結所在,并提供解決對策。
3) 技術專長使其能真正幫助開發人員解決設計上難題,幫助測試人員分析和判斷程序錯誤;懂得開發人員和測試人員的共同語言,使之感到你對他們的理解和尊重,從而贏得大家的信任。
項目經理面試問題:
1) 在過去做過的產品項目中,哪一個你覺得最自豪 ? 為什么 ?
2) 你解決過的最難的技術設計問題是什麼?為什麼采用那種解決方案?
3) 你有什麼項目是按計劃的時間完成的?未能按時完成的原因主要是哪些方面?
2. 軟件開發過程 software development in Mircosoft
1) New product project 提議 ; 2)市場分析預測 <是否有用,是否是需要的>;
3)技術可行性分析 <是否能夠實現>; 4)產品研發計劃和實施步驟;
5)高層論證和審批 <支持者>; 6)項目確立和執行 <人力資源和財務資源的配置>
3. 微軟項目管理-- 多里程碑式流程
• 每個里程碑完成部分功能;便于團隊集中力量完成一個又一個功能;提供多個機會以適應需求的更改
如何完成一個里程碑
• 步驟一: 達成共識 Vision / Scope Approved Milestone
基本完成需求調研和分析 (產品經理負責); 確定大方向和長中短期目標,Vision來說明,并激勵團隊; 評估Opportunities & Risks;分析可利用資源限制,證明該產品值得去做;
項目管理團隊:設計新產品目標,具體實現方法;描述產品結構,用戶情景覆蓋80%以上功能。
軟件開發團隊:開發技術原型,檢驗新產品價值,并展示產品未來預期。
• 步驟二: 完成項目計劃 Project Plan Approved Milestone
定義詳細的邏輯設計,功能設計規范(項目經理負責),其優先級;所有角色參與審閱功能規范;
評估進度控制風險,功能技術風險; Risk Assessment 通常在物理設計之后,立即執行。
制訂總體開發計劃和進度表,包括 資源與職責的分配,制訂測試,開發計劃和進度表;
產品管理團隊:概念設計和市場推銷計劃/進度表;
軟件開發團隊:物理設計和開發計劃/進度表,Task-level Estimating。
• 步驟三: 完成功能 Scope Complete / First Use Milestone α Version Phrase
版本化的功能規范,完成全部功能代碼的編寫; All features built to specification
及時進行模塊間的整合,及時發現問題(daily build);版本控制工具 VSS ;
測試團隊:測試規范 與Test Case 設計,BMS缺陷跟蹤,實現解決Bug自動流程;
產品管理團隊:控制用戶的期望,推銷,價格,包裝(正式產品為 Golden Release)
項目管理團隊:項目跟蹤/溝通,按照綜合進度表不斷檢查進度; 制定β版本計劃。
• 步驟四: 穩定與發布 Release Milestone β Version Phrase
全面地測試功能;開發組全力配合解決Bug;決定哪些Bug到下個版本中解決;
預測發布日期 ;編寫操作手冊與幫助文檔;
基于版本發布:每一個版本有明確清晰的目標,解決或終結產品中的某些問題;
成立Triage小組:由PM,Dev與Test的負責人組成,決定對發現Bug的處理。
文章來源于領測軟件測試網 http://www.kjueaiud.com/