国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Scrum敏捷開發(fā)在線教育系統(tǒng)

2016-07-10 07:08:40王萬意
電子技術與軟件工程 2016年8期
關鍵詞:在線教育

摘 要:目前萬眾創(chuàng)業(yè),互聯(lián)網創(chuàng)業(yè)團隊在項目開發(fā)中需要采用正確的軟件開發(fā)模型,這里介紹Scrum敏捷開發(fā),快速響應軟件開發(fā)中的需求變化,把復雜的開發(fā)任務,分解為很多小的開發(fā)迭代,每個迭代都產生一個可交付的軟件產品,打造高效的開發(fā)團隊。

【關鍵詞】Scrum 敏捷開發(fā) 在線教育 Agile Development Scrum開發(fā)流程

1 什么是敏捷開發(fā)

1.1 敏捷開發(fā)

敏捷開發(fā)(Agile Development)是一種以人為核心、迭代、循序漸進的開發(fā)方法。它是一種軟件開發(fā)的流程,指導我們用規(guī)定的環(huán)節(jié)一步一步完成項目的開發(fā),主要驅動核心是人,采用的是迭代式開發(fā)。

1.2 為什么說是以人為核心

瀑布開發(fā)模型以文檔為驅動,整個開發(fā)過程中,要寫大量的文檔,需求文檔寫出來后,開發(fā)人員根據文檔進行開發(fā),一切以文檔為依據。而敏捷開發(fā)只寫有必要的文檔或盡量少寫文檔,注重的是人與人之間,面對面的交流,強調以人為核心。

1.3 什么是迭代

迭代把一個復雜且開發(fā)周期很長的開發(fā)任務,分解為很多小周期可完成的任務,一個周期就是一次迭代,每次迭代都可開發(fā)出一個可以交付的軟件產品。

1.4 敏捷開發(fā)的4句宣言

(1)個體與交互勝過過程與工具;

(2)可以工作的軟件勝過面面俱到的文擋;

(3)客戶協(xié)作勝過合同談判;

(4)響應變化勝過遵循計劃。

2 什么是Scrum

Scrum (英式橄欖球爭球隊)軟件開發(fā)模型是敏捷開發(fā)的一種,取名為Scrum,可想象開發(fā)團隊在開發(fā)一個項目時,大家像打橄欖球一樣迅速、富有戰(zhàn)斗激情、人人你爭我搶地完成,你一定會感到非常興奮。

Scrum就是這樣的一個開發(fā)流程,運用該流程,你能看到你團隊高效的工作。

Scrum的基本假設是:

開發(fā)軟件就像開發(fā)新產品,無法一開始就定義軟件產品最終的規(guī)程,過程中需要研發(fā)、創(chuàng)意、嘗試錯誤,沒有一種固定的流程可以保證專案成功。Scrum 將軟件開發(fā)團隊比擬成橄欖球隊,有明確的最高目標,熟悉開發(fā)流程中所需具備的最佳典范與技術,具有高度自主權,緊密溝通合作,解決各種挑戰(zhàn),確保每天、每個階段都朝向目標有明確的推進。

Scrum 開發(fā)流程通常以 30 天為一個階段,由客戶提供新產品的需求規(guī)格開始,開發(fā)團隊與客戶于每一個階段開始時挑選該完成的規(guī)格部分,開發(fā)團隊必須盡力于 30 天后交付成果,團隊每天用 15 分鐘開會檢查每個成員的進度與計劃,了解所遭遇的困難并設法排除。

3 Scrum較傳統(tǒng)開發(fā)模型的優(yōu)點

Scrum模型的一個顯著特點就是能盡快響應變化,而傳統(tǒng)的軟件開發(fā)模型(瀑布模型、螺旋模型或迭代模型),隨著系統(tǒng)因素(內部和外部因素)的復雜度增加,項目成功的可能性就迅速降低。

有關Scrum的幾個名詞

(1)product backlog: 可以預知的所有任務,包括功能性的和非功能性的所有任務。

(2)sprint:一次跌代開發(fā)的時間周期,一般最多以30天為一個周期.在這段時間內,開發(fā)團隊需要完成一個制定的backlog,并且最終成果是一個增量的,可以交付的產品。

(3)sprint backlog:一個sprint周期內所需要完成的任務。

(4)product owner: 產品負責人,主要負責確定產品的功能和達到要求的標準,指定軟件的發(fā)布日期和交付的內容,同時有權力接受或拒絕開發(fā)團隊的工作成果

(5)scrum master: 流程管理員,負責監(jiān)督整個Scrum進程,修訂計劃的一個團隊成員。

(6)scrum team: 開發(fā)團隊,主要負責軟件產品在Scrum規(guī)定流程下進行開發(fā)工作,人數控制在5~10人左右,每個成員可能負責不同的技術方面,但要求每成員必須有很強的自我管理能力,同時具有一定的表達能力;成員可以采用任何工作方式,只要能達到Sprint的目標。

(7)time-box: 一個用于開會時間段。比如每個daily scrum meeting(每日站立會議) 的time-box為15分鐘。

(8)sprint planning meeting: 在啟動每個sprint前召開。一般為一天時間(8小時)。該會議需要制定的任務是:產品Owner和團隊成員將backlog分解成小的功能模塊, 決定在即將進行的sprint里需要完成多少小功能模塊,確定好這個Product Backlog的任務優(yōu)先級。另外,該會議還需詳細地討論如何能夠按照需求完成這些小功能模塊。制定的這些模塊的工作量以小時計算。

(9)Daily Scrum meeting:開發(fā)團隊成員召開,一般為15分鐘。每個開發(fā)成員需要向ScrumMaster匯報三個項目:今天完成了什么?是否遇到了障礙?即將要做什么?通過該會議,團隊成員可以相互了解項目進度。

(10)Sprint review meeting:在每個Sprint結束后,這個Team將這個Sprint的工作成果演示給Product Owner,客戶,老板和其他相關的人員。一般該會議為4小時。

(11) Sprint retrospective meeting:對剛結束的Sprint進行總結。會議的參與人員為團隊開發(fā)的內部人員。一般該會議為3小時。

(12) Scrum開發(fā)流程中的三大角色: 產品負責人Product Owner;流程管理員Scrum Master;開發(fā)團隊Scrum Team。

5 如何進行Scrum開發(fā)

(1)首先確定一個Product Backlog(按優(yōu)先順序排列的一個產品需求列表),這個是Product Owner負責的。

(2)Scrum Team根據Product Backlog列表,做工作量的預估和安排。

(3)有了Product Backlog列表,通過 Sprint Planning Meeting(Sprint計劃會議)從中挑選出一個Story作為本次迭代完成的目標,這個目標的時間周期是1~4個星期,然后把這個Story進行細化,形成一個Sprint Backlog。

(4) Sprint Backlog是由Scrum Team去完成的,Sprint Backlog是按照目前的人力物力條件可以完成的。每個成員根據Sprint Backlog再細化成更小的任務(工作量在2天內能完成)。

(5)在Scrum Team完成計劃會議上選出的Sprint Backlog過程中,需要進行 Daily Scrum Meeting(每日站立會議),每次會議控制在15分鐘左右,每個人都必須發(fā)言,并且要向所有成員當面匯報你昨天完成了什么,并且向所有成員承諾你今天要完成什么,同時遇到不能解決的問題也可以提出,每個人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃盡圖)。

(6)做到每日集成,也就是每天都要有一個可以成功編譯、并且可以演示的版本

當一個Story完成,也就是Sprint Backlog被完成,表示一次Sprint完成,這時,我們進行 Sprint Review Meeting(演示會議),也稱為評審會議,產品負責人和客戶都要參加,每一個Scrum Team的成員都要向他們演示自己完成的軟件產品。

(7)最后就是Sprint Retrospective Meeting(回顧會議),也稱為總結會議,以輪流發(fā)言方式進行,每個人都要發(fā)言,總結并討論改進的地方,放入下一輪Sprint的產品需求中,這樣周而復始,按照同樣的步驟進行下一次Sprint。

6 Scrum開發(fā)流程中的一些場景

6.1 Product Backlog 產品需求

Product Backlog 是Scrum的核心,也是一切的起源。從根本上說,它就是一個需求、或故事、或特性等組成的列表,按照重要性的級別進行了排序,它里面包含的是客戶想要的東西,并用客戶的術語加以描述。

6.2 Daily Scrum Meeting每日站立會議

每日的站立會議,參會人員可以隨意姿勢站立,任務看板要保證讓每個人看到,當每個人發(fā)言完后,要走到任務版前更新自己的燃盡圖,時間控制在15分鐘。

6.3 Task Kanban Board任務看板

每個人的工作進度和完成情況都是公開的,如果有一個人的工作任務在某一個位置放了好幾天,大家都能發(fā)現(xiàn)他的工作進度出現(xiàn)了什么問題(成員人數最好是5~7個,這樣每人可以使用一種專用顏色的標簽紙,一眼就可以從任務版看出誰的工作進度快,誰的工作進度慢)。

6.4 Plan Card 計劃令牌

計劃紙牌的作用是防止項目在開發(fā)過程中,被某些人所領導。

怎么用的呢?比如A程序員開發(fā)一個功能,需要8個小時,B程序員認為只需要1小時,那他們各自取相應的牌,藏在手中,最后攤牌,如果時間差距很大,那么A和B就可以討論A為什么要8個小時... 最終評估一個更合理的時間。

7 Scrum開發(fā)過程注意事項

(1)產品負責人應當理解每個故事的含義(通常需求都是由他來編寫的,但是有的時候其他人也會添加一些請求,產品負責人對它們劃分先后次序)。他不需要知道每個需求具體是如何實現(xiàn)的,但是他要知道為什么這個需求會在這里。

Sprint計劃會議非常關鍵,是Scrum中最重要的活動。舉辦Sprint計劃會議,是為了讓團隊獲得足夠的信息,能夠在幾個星期內不受干擾的工作,也是為了讓產品負責人能對此有充分的信心。

Sprint計劃會議成果:Sprint目標;團隊成員名單(以及他們的投入程度,如果不是100%的話;Sprint backlog(即Sprint中包括的需求列表;確定好sprint演示日期;確定好時間地點,供舉行每日scrum會議。

整個團隊和產品負責人都必須參加sprint計劃會議。原因在于,每個需求都含有三個變量,它們兩兩之間都對彼此有著強烈依賴。

(2)范圍(Scope)和重要性(Importance)由產品負責人設置。估算(estimate)由團隊設置。在sprint計劃會議上,經過團隊和產品負責人面對面的對話,這三個變量會逐步得到調整優(yōu)化。會議啟動后,產品負責人一般會先概況一下希望在這個sprint中達成的目標,還有他認為最重要的故事,接下來,團隊從最重要的故事開始逐一討論每個故事,估算開發(fā)時間。

質量分為內部質量和外部質量:外部質量是系統(tǒng)用戶可以感知的。運行緩慢、讓人迷糊的用戶界面就屬于外部質量低劣;內部質量指用戶看不到的要素,它們對系統(tǒng)的可維護性有深遠影響??删S護性包括系統(tǒng)設計的一致性、測試覆蓋率、代碼可讀性和重構等。

目前我負責開發(fā)的波士頓善恩教育在線學習系統(tǒng)(www.bstcine.com)中就采用了Scrum敏捷開發(fā),每日安排任務,寫在白板上,每日早會15分鐘團隊成員一起領任務,估算開發(fā)時間。下班前花15分鐘開發(fā)團隊一起過一遍今天的任務完成進度,碰到的問題,任務完成快的團隊成員從Sprint Backlog中領取待開發(fā)的任務,每周一次例會,兩周一次Sprint Review,開發(fā)效率不錯。

參考文獻

[1]廖靖斌,呂梁岳,陳爭云,陽陸育等譯.Scrum敏捷軟件開發(fā)[M].北京:清華大學出版社,2010.

作者簡介

王萬意(1981-),男,江西省永豐縣人。現(xiàn)為東華大學軟件工程碩士在讀。波士頓善恩教育技術總監(jiān)。研究方向為大型系統(tǒng)軟件架構。

作者單位

東華大學 上海市 201620

猜你喜歡
在線教育
基于微信公眾號的交互式課堂及教學模式探索
基于五力模型的在線教育盈利模式的選擇
對外經貿(2016年8期)2016-12-13 04:13:08
教育出版數字化轉型的務實之路
出版廣角(2016年16期)2016-12-13 02:50:00
“互聯(lián)網+”時代民辦高校創(chuàng)新教學模式研究
科教導刊(2016年29期)2016-12-12 07:16:24
高校在線教育探討
“互聯(lián)網+”時代在線教育模式創(chuàng)新研究
在線教育商業(yè)模式分析
智富時代(2016年12期)2016-12-01 15:34:40
在線教育商業(yè)模式探究
中國市場(2016年40期)2016-11-28 04:06:00
提高機械原理教學質量的幾點思考
價值工程(2016年30期)2016-11-24 16:42:50
慕課中美應用差異的四大原因分析
叶城县| 交城县| 乌拉特中旗| 彰化县| 青龙| 赤壁市| 临沭县| 景德镇市| 黄浦区| 仪征市| 萨嘎县| 婺源县| 东乌珠穆沁旗| 乐东| 萝北县| 曲阜市| 金沙县| 武乡县| 忻州市| 建瓯市| 东平县| 北辰区| 新竹市| 壤塘县| 綦江县| 台江县| 沾化县| 鄂托克旗| 吉木乃县| 雅安市| 乡宁县| 西昌市| 七台河市| 宁南县| 紫阳县| 黄骅市| 恩施市| 英山县| 开鲁县| 塔河县| 启东市|