跟微軟學敏捷開發

2021-08-27 01:19:50 字數 4091 閱讀 6189

以人為核心的敏捷開發模式,強調團隊成員之間以及開發團隊與客戶之間的充分溝通,微軟正在身體力行地實踐這種新的開發模式。

微軟大中華區開發工具及平台事業部總經理謝恩偉主導了敏捷開發模式的匯入

自2023年17位軟體開發領域的領軍人物 聚集在美國猶他州的滑雪勝地雪鳥雪場共同發布《敏捷宣言》開始,敏捷開發作為一種全新的軟體開發管理模式和價值觀開始在眾多軟體開發人員和團隊中推廣。經過8年多的發展,敏捷開發已深入人心,但許多業內人士指出,過去幾年,it業對於敏捷的討論大多停留在什麼是敏捷開發、敏捷開發的價值何在等理論或流派的討論上, 敏捷開發在普及應用、智財權建設、商業模式開發等方面還存在問題 - 尤其是如何將敏捷的精神與原則,融合到開發團隊每日例行活動與工具使用中。

隨著敏捷概念日益深入人心,如今,軟體開發人員和開發部門的高管更關注如何將敏捷的概念應用到具體的開發實踐中。微軟中國研發集團的伺服器與開發工具事業部正在身體力行地實踐敏捷開發方式,並通過將敏捷方式融入自己研發的microsoft visual studio team system( 以下簡稱vsts) 開發工具,使得採用這種開發工具的客戶也可以利用vsts來實施敏捷開發模式。微軟大中華區開發工具及平台事業部總經理謝恩偉認為,這將把微軟現有的開發資源帶到乙個新的局面,使對人才資源的控制得到加強,並使資源應用有所提高。

對客戶需求快速反應

idc的乙份市場研究報告顯示,軟體行業只有30%的開發專案是在規定的時間段內和預算範圍之內完成的。傳統的瀑布式開發模式已存在了很長一段時間,在這種模式下,整個軟體開發過程被嚴格地分成需要分析、架構設計、軟體開發、測試等幾個階段,整個過程不可回溯。而通常乙個軟體開發的過程會花費幾年時間,當軟體最後開發完成後,開發人員往往面臨的乙個困境是,客戶的需求已經發生了變化,或是最終的產品由於開發過程中存在的種種問題而導致最終偏離了客戶需求。

在敏捷開發模式下,整個軟體開發周期與傳統模式下並無兩樣,但整個開發過程被分成很多個小的迭代週期,乙個迭代週期通常為兩周到四周時間,軟體開發的需求收集和分析、設計、編碼和測試等幾個流程被濃縮至每個小的迭代週期中。在每個迭代中,團隊成員透過一套共同作業模式的規範,將每個迭代需要的分析、設計、整合、測試,形成一套作業慣例。而每個迭代週期之後,開發人員就能拿出乙個可以演示的產品給客戶。這個過程通過迭代週期的設定不斷迴圈,使客戶可以不斷了解產品開發的進展。通過這種溝通方式,開發人員可以不斷地和客戶驗證所發布的產品是否符合客戶的真正需求,並且對客戶的需求變化迅速做出反應。

微軟中國研發集團伺服器與開發工具事業部的部門經理ramesh rajagopal是敏捷開發模式的實踐者,他的團隊利用敏捷開發模式開發vsts開發工具,同時他們自己也利用vsts實施敏捷開發模式。"我們首先用自己的產品來進行開發,把一些潛在的問題都暴露出來,修復之後再交付給客戶使用。"ramesh說。

微軟中國研發集團伺服器與開發工具事業部的部門經理ramesh rajagopal是敏捷開發模式的實踐者

微軟visual studio產品系列開發團隊由幾千名開發人員組成,在全球的不同地域和不同時區間進行協作。他們在開發過程中也建立了很多任務具來使整個開發流程更簡單高效。把這些好的工具,與全球客戶共同分享是微軟開發vsts系列產品的初衷。"我們利用自己開發的vsts工具來與客戶共同分享微軟的開發經驗。"ramesh說。

敏捷開發模式保證了產品開發能迅速反應客戶需求,而不是讓客戶在幾年的開發周期之後才能看到最終的產品。謝恩偉認為這種開發方式正符合微軟"為客戶而創新"的文化理念,這也是整個開發工作的方向。微軟剛在今年5 月發布了乙個visual studio 2010 beta1試用版,一些客戶試用了這個版本後提出,應在產品中加入更多的顏色,使客戶能夠有更豐富的顏色來定義圖形。這些新的需求被寫入visual studio 2010 beta2的待辦事項中,並在接下來的幾個迭代週期中加以改進。"我們在10月發布的版本中就具有這些新功能,這要是放在以前瀑布式開發模式下,這種客戶臨時提出的新需求肯定就沒有機會滿足。"ramesh解釋。

敏捷開發模式還使得微軟可以獲得對產品缺陷更強的管理能力。在瀑布式開發模式下,產品先設計再開發,這要經歷乙個很長的不可回溯的過程,等到最後的測試階段,開發人員往往發現產品的缺陷數可能呈現一種難以控制的增長勢頭,這些缺陷大多是由以前開發過程中一些沒有想到的問題引發的。而在敏捷開發模式下,每個迭代週期之後都有測試,開發團隊會藉此對產品質量有新的考慮,這使他們可以把產品缺陷數置於乙個可控的情況下。微軟剛做完的visual studio 2010 bata2版本在進行內部測試時,其產品缺陷數為零,這在傳統開發模式下是很難實現的。

根據ramesh的經驗,無論整個產品的總體開發周期多長,都應在開發中遵循敏捷開發的短迭代週期原則。

在開發過程伊始,開發團隊通常會通過收集和分析客戶需求,形成乙個產品待辦事項列表,這些待辦事項將在整個開發周期中全部完成。但通過迭代週期的設定,在乙個迭代週期的開始,專案經理會挑出待辦事項列表上最重要的兩到三項,根據總體待辦事項的概念,把之轉化成更具體的使用者規範,這被微軟稱為使用者故事(user story)。使用者故事詳細地描述了使用者的具體需求,開發團隊與使用者之間有怎樣的響應和溝通。然後再由開發人員進行實施,以及由測試人員完成功能測試,標註該待辦事項已經完成。"通過這種方式,我們能夠非常明確我們所做的每乙個開發都是朝著提公升使用者價值的方向來努力的,通過這個短的迭代週期的設定,我們可以不斷調整我們的方向。"ramesh說。

迭代週期的長度可能會根據不同的產品來做調整。"比如我們自己的vsts產品,產品開發周期通常為2年,迭代週期也會長一些,而一些發布到網際網路上的產品,3到6個月就是乙個發布週期,那麼迭代週期也會相應的縮短。"ramesh介紹,一些為客戶定製的產品,會根據客戶需要提前試用的要求,為客戶量身訂做乙個迭代週期。

保持溝通

"敏捷開發模式能讓我們最終以比較低的成本發布更好的軟體產品,更貼近客戶需求。"謝恩偉說。敏捷開發方式帶來的對客戶需求-哪怕是小開發需求-的迅速反應,幫助微軟準確地把握客戶需求,通過這些一點一點小改變的積累,微軟產品的可用性得以提高。

在每個迭代週期之後,開發團隊會與客戶一起召開評估會來評估這個迭代週期的成果。這個評估會能給開發團隊帶來很多反饋,包括客戶對已開發產品的意見,以及對未來需求的期望,開發團隊據此調整後面幾個迭代週期內的需求優先順序。"通過這種方式,我們能夠保證兩件事情,第一,我們所開發的功能確實是客戶想要的,第二,我們永遠都在做客戶需求優先順序最高的事情。這在傳統的瀑布式開發模式下是沒有辦法實現的。"

曾有一家荷蘭的it 諮詢公司在試用了vsts工具後,要求微軟伺服器與開發工具事業部的開發團隊按照自己的管理流程來加強附加功能來管理他們的流程模板,這些附加功能在原本的計畫中優先順序並不高,根據客戶的這個需求,開發團隊馬上公升高了這一功能的優先順序。

因為應用了敏捷開發方式,微軟得以提前為客戶展示一些新功能並讓他們進行深度試用,這樣微軟就得以與客戶之前進行經常性的深度溝通,不斷使客戶需求在產品中得以體現。"以前在軟體開發過程中我們很難去與客戶進行深度溝通,比如我才進展到設計階段,我不能跟客戶說你來幫我看一下這個文件,這太沒意思了。而現在每個迭代週期之後,我們都有軟體產品或是新功能讓客戶試用,這樣客戶比較有興趣,我們也能夠收集到我們需要的反饋意見。"對於更上級的老闆或外包方的cio 來說,他通過敏捷開發模式以及微軟的vsts工具提供的剩餘時間表圖,可以知道每天的開發進展情況以及剩餘的時間和任務還有多少,以此獲得對整個開發流程的及時掌控。

敏捷開發的核心管理理念是強調溝通交流和協作,這是敏捷開發中非常重要的環節,每個迭代週期的設定都非常短,所以團隊成員對開發工作的全身心投入以及保持暢通的溝通渠道非常重要。微軟為了保證溝通暢通有效,將乙個開發小組的所有成員都集中在同乙個房間裡工作,這樣保證一旦出現什麼問題,團隊成員之間能通過面對面的溝通迅速解決問題。另外,當整個團隊中某乙個人的任務落後時,其他團隊成員也會一起協助他,這也保證了整個開發團隊以最高效的形式來執行。

在敏捷開發模式下,微軟弱化了傳統意義上的專案經理角色,他的職責分別由產品負責人和整個團隊來一起擔當。產品負責人決定所有使用者需求的優先順序,根據各個迭代週期之後的使用者反饋,製作產品待立項列表。而專案經理原有的考評職責則由整個開發團隊一起來擔當,大家一起來評估乙個功能需要多長時間來開發,並且相互監督在規定的時間內順利完成任務,這使得整個團隊的考評不會有失偏頗。

在那些對敏捷開發方式有興趣的人來說,他們通過研究微軟的敏捷開發模式發現,這種模式對於管理者來說,還是一種有利於降低開發成本的選擇。成本的節省主要來自因溝通順暢而避免的開發錯誤,以及在團隊協作的良好氛圍下帶來的新進人才迅速成長以及減少成熟人才的流失。"團隊協作度比較好,學習的進度也比較快,我們發現,乙個新手通常經過兩個迭代週期下來,就可以迅速成長為乙個熟手,這也為我們節省了成本。"ramesh解釋。

我跟敏捷開發的故事 三面牆

在上篇文章中提到 敏捷開發並不是萬能的 而是要結合自己公司的特點和問題摸索出適合自己的一套模式。而專案剛開始的時候 也就是我們整個團隊開始摸索敏捷開發的時候.第一次開始正式進行會議是把所有的相關人員都集合到乙個會議室 在這會議室有三面牆 一面是窗戶玻璃.為什麼要提會議室的三面牆呢 這時候是敏捷教練開...

請不要跟微軟混

個人的痛苦經歷告訴我,跟微軟混要做好心理準備.在大一時用vb6.0跟老師做各種商業專案,學得很起勁,可以熟練用vb sql2000獨立做專案時,net橫空出世了.大家都知道vb.net和vb6.0根本不相容,完全是兩套思想.於是實驗室裡的我們幾個和老師同時開始學習vb.net 其中有幾個細節終身難忘...

敏捷實踐 微軟實施敏捷的經驗

此處會介紹微軟在分布式團隊環境下如何實施敏捷開發的一些經驗。對於面向全球市場 想節省成本的公司,分布式團隊是應用非常廣的一種方式。每乙個團隊的組成 產品經理 代表客戶,幫助團隊更好的了解需求。對product backlog排列優先順序並為每一次迭代確定user story。微軟為乙個團隊安排一名產...