互聯(lián)網(wǎng)敏捷開發(fā)以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)。在敏捷開發(fā)中,軟件項目在構(gòu)建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備可視、可集成和可運行使用的特征。換言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。本場 Chat 著重介紹互聯(lián)網(wǎng) Agile 敏捷的模型以及常用項目管理流程等內(nèi)容。 本場 Chat 您將學到如下內(nèi)容:
互聯(lián)網(wǎng)敏捷開發(fā)以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)。在敏捷開發(fā)中,軟件項目在構(gòu)建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備可視、可集成和可運行使用的特征。換言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。本場 Chat 著重介紹互聯(lián)網(wǎng) Agile 敏捷的模型以及常用項目管理流程等內(nèi)容。 本場 Chat 您將學到如下內(nèi)容:
介紹 Agile 敏捷以及項目管理流程什么是敏捷開發(fā)?
怎么理解呢?首先,我們要理解它不是一門技術(shù),它是一種開發(fā)方法,也就是一種軟件開發(fā)的流程,它會指導(dǎo)我們用規(guī)定的環(huán)節(jié)去一步一步完成項目的開發(fā);而這種開發(fā)方式的主要驅(qū)動核心是人;它采用的是迭代式開發(fā)。 為什么說是以人為核心? 我們大部分人都學過瀑布開發(fā)模型,它是以文檔為驅(qū)動的,為什么呢?因為在瀑布的整個開發(fā)過程中,要寫大量的文檔,把需求文檔寫出來后,開發(fā)人員都是根據(jù)文檔進行開發(fā)的,一切以文檔為依據(jù);而敏捷開發(fā)它只寫有必要的文檔,或盡量少寫文檔,敏捷開發(fā)注重的是人與人之間,面對面的交流,所以它強調(diào)以人為核心。 什么是迭代? 迭代是指把一個復(fù)雜且開發(fā)周期很長的開發(fā)任務(wù),分解為很多小周期可完成的任務(wù),這樣的一個周期就是一次迭代的過程;同時每一次迭代都可以生產(chǎn)或開發(fā)出一個可以交付的軟件產(chǎn)品。 關(guān)于 Scrum 和 XP前面說了敏捷它是一種指導(dǎo)思想或開發(fā)方式,但是它沒有明確告訴我們到底采用什么樣的流程進行開發(fā),而 Scrum 和 XP 就是敏捷開發(fā)的具體方式了,你可以采用 Scrum 方式也可以采用 XP 方式;Scrum 和 XP 的區(qū)別是,Scrum 偏重于過程,XP 則偏重于實踐,但是實際中,兩者是結(jié)合一起應(yīng)用的,這里我主要講 Scrum。 什么是 Scrum? Scrum 的英文意思是橄欖球運動的一個專業(yè)術(shù)語,表示 “爭球” 的動作;把一個開發(fā)流程的名字取名為 Scrum,我想你一定能想象出你的開發(fā)團隊在開發(fā)一個項目時,大家像打橄欖球一樣迅速、富有戰(zhàn)斗激情、人人你爭我搶地完成它,你一定會感到非常興奮的。 而 Scrum 就是這樣的一個開發(fā)流程,運用該流程,你就能看到你團隊高效的工作。 Scrum 開發(fā)流程中的三大角色
主要負責確定產(chǎn)品的功能和達到要求的標準,指定軟件的發(fā)布日期和交付的內(nèi)容,同時有權(quán)力接受或拒絕開發(fā)團隊的工作成果。
主要負責整個 Scrum 流程在項目中的順利實施和進行,以及清除擋在客戶和開發(fā)工作之間的溝通障礙,使得客戶可以直接驅(qū)動開發(fā)。
主要負責軟件產(chǎn)品在 Scrum 規(guī)定流程下進行開發(fā)工作,人數(shù)控制在 5~10 人左右,每個成員可能負責不同的技術(shù)方面,但要求每成員必須要有很強的自我管理能力,同時具有一定的表達能力;成員可以采用任何工作方式,只要能達到 Sprint 的目標。 Scrum 流程圖: 互聯(lián)網(wǎng)常用敏捷工具和平臺以及實戰(zhàn)無論是創(chuàng)業(yè)軟件團隊,還是企業(yè)級規(guī)?;浖邪l(fā),都會遇到提升管理能力、提升研發(fā)效率的問題。為了解決這兩個問題,許多軟件研發(fā)工具平臺也營運而生:微軟、IBM、HP、Atlassian、Rally、Collabornet、Polarion…… 等廠商都推出了各具特色的產(chǎn)品,而近年來新生的 Slack、teambition 等平臺也帶來了新的理念和產(chǎn)品,受到了許多團隊的歡迎。作為軟件研發(fā)的團隊或企業(yè),我們該如何根據(jù)自身發(fā)展情況,對這些產(chǎn)品和工具進行合理的選擇?一個支撐軟件高效研發(fā)的工具平臺應(yīng)該具備哪些特點?未來又將向什么方向發(fā)展呢? 世界范圍內(nèi)軟件研發(fā)工具平臺產(chǎn)品發(fā)展迅速,國內(nèi)產(chǎn)品仍是空白。 當我們在學校里用 Visual Studio 編寫 hello world 的時候,我們就已經(jīng)開始使用工具進行軟件研發(fā)。只是那個時候,工具的作用還很單一,對管理能力、研發(fā)效率的整體提升還沒有特別關(guān)照。 在 80 年代,國內(nèi)的計算機、軟件行業(yè)剛剛萌芽的時候,國外的同行已經(jīng)開始研究使用工具提升軟件研發(fā)效率,微軟、Rational(后來被 IBM 收購)推出了各自的 IDE,并在不斷增強 IDE 功能的同時,向需求管理和質(zhì)量管理方向拓展。 90 年代,又有一些廠商加入到了開發(fā)軟件研發(fā)工具產(chǎn)品的行列中,其中國內(nèi)同行非常熟悉的莫過于 Mercury(后來被 HP 收購)的產(chǎn)品,90 年代末和 2000 年前后,大家經(jīng)常使用的研發(fā)工具組合一般是:需求管理用 Rational Request Pro,開發(fā) IDE 用 Micosoft Visio Studio,代碼庫用 collabnet subversion 或 Rational Clear Case,測試管理用 Mercury Test Director,軟件性能測試用 Mercury LoadRunner。這些工具在軟件研發(fā)的每個方面都提升了個人和團隊的效率,也讓越來越多的人看到了工具平臺對軟件研發(fā)效率提升的重要性。 進入 21 世紀,敏捷思想及敏捷軟件研發(fā)方法開始逐漸改變?nèi)藗儗浖邪l(fā)的認識。在軟件研發(fā)工具平臺方面,ALM(Application Lifecycle Management)逐漸成為各工具廠商產(chǎn)品努力的方向。在短短的 10 年內(nèi),涌現(xiàn)出一大批優(yōu)秀的軟件研發(fā)工具平臺廠商,如 Atlassian、Rally、Polarion、Versionone、Serena…… 一些老牌廠商,如微軟、IBM、HP 通過收購、合并、開發(fā)新的工具產(chǎn)品等方式,更加完善了軟件全生命周期管理的工具平臺。有了新的軟件研發(fā)方法,配合眾多優(yōu)秀的軟件研發(fā)工具平臺,軟件行業(yè)得到了快速的發(fā)展。此時國內(nèi)同行也廣泛認識到工具平臺對提升研發(fā)效率的重要性,有條件的企業(yè)或采購,或自主研發(fā),搭建起自己的研發(fā)工具平臺。 2010 年前后,隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,互聯(lián)網(wǎng)軟件研發(fā)逐漸成為新的焦點,DevOps 很快成為大家普遍的共識。很多傳統(tǒng)軟件研發(fā)工具廠商打著 “DevOps” 的旗幟適時地推出了一些產(chǎn)品或升級版本,同時又有一些新的廠商加入競爭的行列。在如何能夠更好地管理軟件研發(fā)活動的問題上,像 Slack 這樣的產(chǎn)品向 “傳統(tǒng)” 研發(fā)工具平臺發(fā)起了新的挑戰(zhàn),在看到越來越多的軟件研發(fā)團隊更愿意使用 Slack 進行日常研發(fā)工作時,我們不禁陷入思索:未來軟件研發(fā)工具平臺將何去何從? 下面我主要介紹市場上最活躍的 2 款產(chǎn)品:JIRA、BugFree 和禪道。 JIRA 敏捷管理軟件
JIRA 也可定義為 Professional Issue Tracker,即它是一個專業(yè)的問題跟蹤管理的軟件。這里的“問題”對應(yīng)的英文單詞是 Issue,所以含義比較廣,包括 Bug、Task、Enhancement、Improvement 等等跟軟件開發(fā)相關(guān)的名詞。跟蹤管理即對問題的整個生命周期進行記錄和管理。一個問題從創(chuàng)建到解決到關(guān)閉涉及到很多相關(guān)信息,包括是什么問題、誰發(fā)現(xiàn)的問題、誰處理了這個問題、如何處理的、相應(yīng)的代碼有什么改變等等,JIRA 可以方便的記錄這些信息,并且在問題的不同狀態(tài)呈現(xiàn)在相應(yīng)的責任人面前。相似的軟件有 Bugzilla、Trac、Mantis、Clear Quest、Streber 等。 Bugfree 和禪道BugFree 是借鑒微軟的研發(fā)流程和 Bug 管理理念,使用 PHP+MySQL 獨立寫出的一個 Bug 管理系統(tǒng)。簡單實用、免費并且開放源代碼(遵循 GNU GPL)。 命名 BugFree 有兩層意思:一是希望軟件中的缺陷越來越少直到?jīng)]有,F(xiàn)ree 嘛;二是表示它是免費且開放源代碼的,大家可以自由使用傳播。 禪道是第一款國產(chǎn)的優(yōu)秀開源項目管理軟件。它集產(chǎn)品管理、項目管理、質(zhì)量管理、文檔管理、組織管理和事務(wù)管理于一體,是一款功能完備的項目管理軟件,完美地覆蓋了項目管理的核心流程。先進的管理思想、合理的軟件架構(gòu)、簡潔實效的操作、優(yōu)雅的代碼實現(xiàn)、靈活的擴展機制、強大而易用的 API 調(diào)用機制、多語言支持、多風格支持、搜索功能、統(tǒng)計功能。 Redmine 是用 Ruby 開發(fā)的基于 Web 的項目管理軟件,是用 ROR 框架開發(fā)的一套跨平臺項目管理系統(tǒng),據(jù)說是源于 Basecamp 的 ROR 版而來,支持多種數(shù)據(jù)庫,有不少自己獨特的功能,例如提供 wiki、新聞臺等,還可以集成其他版本管理系統(tǒng)和 BUG 跟蹤系統(tǒng),例如 SVN、CVS、TD 等等。這種 Web 形式的項目管理系統(tǒng)通過“項目(Project)”的形式把成員、任務(wù)(問題)、文檔、討論以及各種形式的資源組織在一起,大家參與更新任務(wù)、文檔等內(nèi)容來推動項目的進度,同時系統(tǒng)利用時間線索和各種動態(tài)的報表形式來自動給成員匯報項目進度。 禪道項目管理軟件的功能列表:
案例分析:IBM的敏捷轉(zhuǎn)型之路IBM 軟件集團是一個龐大而復(fù)雜的組織,從 2009 年的軟件部規(guī)模來看,全球 26065 名員工廣泛分布在世界各地,擁有超過 500 個于各個時期收購的小公司以及相互獨立的產(chǎn)品線,大量的獨立工具和開發(fā)平臺在公司內(nèi)被采用。IBM 的五大品牌行事作風迥異,很難用一種流程、一種組織結(jié)構(gòu)來進行統(tǒng)一。 為了促進發(fā)展,各品牌組織均開發(fā)了自己的經(jīng)營策略,以適合其業(yè)務(wù)所在的市場。然而,IBM 為所有的品牌都定義和秉持了一套共同的技術(shù)策略。
3C 原則帶來的產(chǎn)品的質(zhì)量提升,還僅僅是在以產(chǎn)品為中心的主流市場獲得的成功體驗,但是,當市場發(fā)生巨大變化時,戰(zhàn)略又將產(chǎn)生變化。2006 年的互聯(lián)網(wǎng)高潮后,軟件部受到全球 IT 經(jīng)濟低迷的沖擊,股票開始下滑,面對開始失去信心的股東、董事會,為了生存,IBM 不得不將戰(zhàn)略導(dǎo)向從穩(wěn)定業(yè)務(wù)轉(zhuǎn)向了動態(tài)業(yè)務(wù),提出“隨需應(yīng)變”的核心戰(zhàn)略,軟件部由此提出了敏捷研發(fā)方法,最大化地提高生產(chǎn)力,將產(chǎn)品更快、更好地推向市場。 Agile 敏捷以及項目管理總結(jié)敏捷項目管理架構(gòu)(Agile Project Management Framework,APMF),估計是普遍大部分公司所需要的、也比較認可的模式,可以很好的實現(xiàn)傳統(tǒng)項目管理向敏捷項目管理轉(zhuǎn)型。這本書很值得推薦,從現(xiàn)代項目管理的發(fā)展趨勢,到對軟件項目管理發(fā)展史的剖析,到敏捷項目管理架構(gòu)的推崇,到敏捷項目管理的企業(yè)導(dǎo)入,到敏捷創(chuàng)新創(chuàng)業(yè)模式講解,讓你在軟件項目管理方面有了更加開闊的視野。如果你對敏捷項目管理感興趣,在拜讀本書的過程中會有茅塞頓開的感覺,同樣也為你以后的軟件項目管理路提供了更好的參考和借鑒。 通過對許博士這本書的研讀,加入個人的理解,對敏捷項目管理架構(gòu),做了簡單的梳理,希望對敏捷項目管理感興趣的你帶去更多幫助。敏捷項目管理架構(gòu)(APMF)共包括 5 個階段,分別為:立項階段、啟動階段、發(fā)布循環(huán)階段、迭代循環(huán)階段、收尾階段。 Agile 和 Watefall 開發(fā)模式的一些對比 經(jīng)過敏捷實施后,我們的生產(chǎn)力提高了很多,員工的積極性提高了,業(yè)務(wù)的參與使整體需求把控也很好,大家溝通多了,30 天的任務(wù)提前了 5 天完成。我們多出來的時間,讓大家每周有一天或者半天研究自己感興趣的領(lǐng)域,但是這些研究最終必須體現(xiàn)出成果。比如后臺開發(fā)想研究一個新技術(shù),最后做完需要寫個 ppt 給大家分享下。既能讓大家做自己想做的事情,也給大家創(chuàng)造了一個互相學習的氛圍。 |
|