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