【摘 要】本文結(jié)合中職學(xué)生特點,將當(dāng)前流行的敏捷軟件開發(fā)模式引入到計算機軟件開發(fā)課程教學(xué)中,探索其在軟件開發(fā)課程項目教學(xué)中的應(yīng)用與實施。讓學(xué)生在實操中掌握項目開發(fā)與管理,并順利過渡到軟件企業(yè)的生產(chǎn)流程中。
【關(guān)鍵詞】軟件開發(fā) 敏捷開發(fā) 項目教學(xué)
【中圖分類號】G 【文獻標(biāo)識碼】A
【文章編號】0450-9889(2017)03B-0102-02
當(dāng)前,中等職業(yè)學(xué)校軟件開發(fā)課程采用的項目教學(xué)法,是傳統(tǒng)的項目教學(xué)法。它雖然能夠鞏固課堂知識,讓學(xué)生感受到項目開發(fā)的流程和管理方法,但由于通常采用虛擬的教學(xué)環(huán)境,存在著許多不足:首先項目教學(xué)的組織流程還是沿用傳統(tǒng)軟件開發(fā)模式(如瀑布式開發(fā)模式),與當(dāng)前社會上軟件公司中講究原型開發(fā)與快速迭代更新的設(shè)計思想不一致;其次,傳統(tǒng)的項目教學(xué)在課程組織模式下,師生無法及時溝通,出現(xiàn)的問題不易及時解決,導(dǎo)致了項目進展緩慢,學(xué)生普遍反映學(xué)習(xí)難度大;第三,傳統(tǒng)的項目教學(xué)課程由教師主導(dǎo)進行,往往是由教師先講,做示范,學(xué)生模仿完成,這種模式使學(xué)生缺少獨立設(shè)計、自主學(xué)習(xí)和創(chuàng)造性思維能力方面的相關(guān)訓(xùn)練,沒有真正培養(yǎng)學(xué)生主動學(xué)習(xí)的能力。鑒于傳統(tǒng)項目教學(xué)中存在的諸多不足,筆者提出在中等職業(yè)學(xué)校軟件開發(fā)課程項目教學(xué)中引入企業(yè)敏捷開發(fā)模式,并且在學(xué)校經(jīng)營性實習(xí)基地組織學(xué)生邊教邊學(xué)、邊學(xué)邊干,提高了學(xué)生學(xué)習(xí)的主動性,讓學(xué)生的學(xué)習(xí)緊貼企業(yè)生產(chǎn)實際。
一、敏捷開發(fā)的概念與特點
目前市場上大多數(shù)的中小型軟件企業(yè)都在使用敏捷開發(fā)方法。敏捷開發(fā)是一種有代表性的計算機軟件開發(fā)模式,它是以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)。在敏捷開發(fā)中,軟件項目在構(gòu)建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備可視、可集成和可運行的特征。換言之,就是把一個大項目分為多個相互聯(lián)系而又可以獨立運行的小模塊,并分別完成,從而實現(xiàn)快速開發(fā)的目的。其特點是:①適用于小團隊;②團隊是跨功能的——包括測試人員、開發(fā)人員、文檔開發(fā)人員等;③短迭代——利用短迭代方法來交付軟件;④相較于文檔,敏捷開發(fā)更注重面對面的交流;⑤結(jié)對編程、以強帶弱;⑥持續(xù)集成,交換測試。
二、在項目教學(xué)中應(yīng)用敏捷開發(fā)的原因
1.敏捷開發(fā)以用戶的項目需求進化為核心,需要與用戶進行積極的溝通,通過與用戶的溝通,可以增強學(xué)生的組織溝通能力。
2.由于敏捷開發(fā)把一個項目劃分為若干個子項目,每個子項目均可單獨測試,學(xué)生在短期內(nèi)可看到項目效果,容易產(chǎn)生成就感,激發(fā)學(xué)生的學(xué)習(xí)興趣。
3.敏捷開發(fā)項目采用分段分組、互相配合的形式,任務(wù)明確,使每個學(xué)生均有事可做,增強了學(xué)生的責(zé)任心,培養(yǎng)了學(xué)生的團隊精神。
4.學(xué)生水平參差不齊,對軟件開發(fā)的興趣點和愛好面不同,如有的學(xué)生善于組織,有的學(xué)生對UI感興趣,有的對前臺交互編程感興趣,有的則對后臺開發(fā)有特長等。通過角色扮演,提高學(xué)生的興趣。
5.能讓學(xué)生體驗到軟件項目開發(fā)在企業(yè)中的流程和管理方法。
三、敏捷開發(fā)在項目教學(xué)中的應(yīng)用與實踐
(一)敏捷開發(fā)項目在教學(xué)中的實施要求
敏捷開發(fā)項目教學(xué)不同于傳統(tǒng)項目教學(xué),其需要有一定的實施條件,對教師、設(shè)備場地、課時等提出了較高的要求。
1.對教師的要求。要求教師有一定的項目經(jīng)驗,會編制較詳細(xì)的《項目需求說明書》,課前教會每組的“項目經(jīng)理”編制每個組員的《項目任務(wù)書》,并檢查《項目任務(wù)書》的編制情況。這需要教師課前進行大量的準(zhǔn)備工作。學(xué)生的 5 分鐘站立會議及小結(jié)會議,要求教師有較強的課堂把控能力。
2.對設(shè)備及場地的要求。要求每個項目組有相對獨立的空間,方便小組成員隨時進行溝通與交流。
3.對課時的要求。軟件開發(fā)是一項腦力勞動,需要長時間思考,所以在課時安排上,最好安排連續(xù)的 3-4 個課時。
4.對信息化的要求。需要有網(wǎng)站,以便能實時體現(xiàn)各項目組的項目推進情況;每個成員可以在線查閱自己的項目任務(wù)書,并可在線填寫每次課的工作日志及各類評價。
(二)敏捷開發(fā)在項目教學(xué)中的實施
筆者曾在學(xué)校的經(jīng)營性實訓(xùn)基地——柳州益智軟件科技有限責(zé)任公司工作 6 年,擔(dān)任公司軟件部經(jīng)理,負(fù)責(zé)軟件開發(fā)業(yè)務(wù),同時擔(dān)任學(xué)校計算機專業(yè)軟件方向?qū)W生的基礎(chǔ)理論和實訓(xùn)課程的教學(xué)工作,對學(xué)生的軟件開發(fā)實訓(xùn)是這樣實施的:
1.課堂(生產(chǎn))準(zhǔn)備階段
(1)教師準(zhǔn)備。教師扮演軟件開發(fā)部門經(jīng)理角色,負(fù)責(zé)整個項目的洽談及用戶的溝通。在準(zhǔn)備階段,教師主要負(fù)責(zé)項目立項、《項目需求說明書》的制訂、項目原型的制作,并根據(jù)項目需求和學(xué)生特點對學(xué)生進行分組,仿照中小型軟件企業(yè)組織架構(gòu),讓學(xué)生進行角色扮演,將學(xué)生分成 5 人/組,人員組織架構(gòu)如下:
項目經(jīng)理由教師指定,項目經(jīng)理由組織能力較強的學(xué)生擔(dān)任,能組織協(xié)調(diào)各成員間的關(guān)系,檢查本組成員的工作進度,可以不參加編寫代碼。
(2)項目經(jīng)理準(zhǔn)備。項目經(jīng)理配合教師制作項目原型,并根據(jù)項目特點進行成員的分工。成員分成 2 個小組,每個小組由2名成員組成。項目經(jīng)理指定各小組成員其任務(wù)分工,必須明確每位成員的任務(wù)和職責(zé)。教師要了解每個組的分工情況,對分工不合適的要進行適當(dāng)?shù)恼{(diào)整。項目經(jīng)理要根據(jù)成員分工情況編制每個成員的《項目任務(wù)書》,進一步明確每位成員每次課的工作任務(wù)。
(3)成員準(zhǔn)備。成員要明確自己的工作任務(wù),了解項目的技術(shù)特點,并根據(jù)自己的項目任務(wù)要求,進行對新知識的學(xué)習(xí)和對舊知識的鞏固。
2.項目實施階段
項目實施階段是課程的中心。不要太在意學(xué)生實施結(jié)果的完整性,而是讓學(xué)生體驗項目實施的過程。每次上課開始時,不是讓學(xué)生馬上操作,而是讓項目經(jīng)理召集組員進行 5 分鐘的站立會議,討論任務(wù)內(nèi)容和明確分工,確定核心工作任務(wù)。教師的作用是巡視、答疑、指導(dǎo),如果有新的知識點,則要進行必要的講解、演示及提供指導(dǎo)手冊等,1 節(jié)課里教師的講解不要超過 10分鐘。在每次課結(jié)束前 10 分鐘,項目經(jīng)理要召集組員進行工作小結(jié),每個組員都要小結(jié)本次課的任務(wù)完成情況、收獲以及待改進的地方,并以工作日志的方式進行存檔。項目經(jīng)理匯報本組的完成情況,教師則小結(jié)本次課的知識點,并表揚做得好的小組。最后各項目組還要在網(wǎng)站上更新項目的推進情況。
3.項目驗收階段
整個大項目完成后,要進行檢查驗收,看是否符合《項目需求說明書》及用戶的實際需求。此時每個組都要在全體同學(xué)面前,展示自己的項目作品(最好有 PPT 課件作為輔助)。
(三)敏捷開發(fā)在項目教學(xué)中的評價考核
敏捷開發(fā)在項目教學(xué)的評價考核,主要是針對學(xué)生進行考核,由平時評價與項目結(jié)束評價兩部分組成。
1.平時評價。即每次課的工作小結(jié)。每位成員都要進行自我評價;每組的“項目經(jīng)理”也要根據(jù)任務(wù)的完成度和完成質(zhì)量對每位成員進行評價;教師則根據(jù)“項目經(jīng)理”編制的《項目任務(wù)書》對成員進行評價。以上評價均分為優(yōu)、良、中、差四等,評價結(jié)果記錄在當(dāng)天的工作日志中。最后計算優(yōu)、良、中、差的次數(shù)則為平時成績。筆者的計算方法為 1 次優(yōu)、良、中、差分別得 1、0.8、0.6、0.4 分,缺勤得 0 分。最終,平時成績=每次評價分值的和÷評價次數(shù)。
2.項目結(jié)束評價。項目驗收階段,項目組之間根據(jù)項目作品展示情況進行交叉互評,教師也要對各項目組進行評價。項目組的最后成績?yōu)榻M間評價平均分和教師評價各占50%。最后,項目組的成績綜合學(xué)生的個人平時成績,得出了學(xué)生的最終成績。
這幾年來的實踐證明,學(xué)校畢業(yè)的軟件方向?qū)W生能快速地適應(yīng)企業(yè)的工作要求,獲得了企業(yè)的認(rèn)可和好評。部分學(xué)生升學(xué)后也能適應(yīng)高校的學(xué)習(xí),得到了高校教師的好評。在中職的軟件開發(fā)項目教學(xué)中引入敏捷開發(fā),可讓學(xué)生在實習(xí)或工作前,了解軟件企業(yè)進行軟件開發(fā)的人員組織架構(gòu)、工作的方式方法及如何進行高效的溝通、交流、協(xié)作。每次課的測試成果可以增強學(xué)生學(xué)習(xí)軟件開發(fā)的成就感,提高學(xué)生的學(xué)習(xí)興趣。由于敏捷開發(fā)貼近企業(yè)實際,能讓學(xué)生順利過渡到真實的軟件生產(chǎn)流程,從而使學(xué)生的實習(xí)及就業(yè)更加順暢。
【參考文獻】
[1]肖小聰,曹步清.基于敏捷開發(fā)的數(shù)據(jù)庫系統(tǒng)課程設(shè)計教學(xué)研究與實踐[J].當(dāng)代教育理論與實踐,2016(8)
[2]尹 華,王志堅.基于Scrum敏捷開發(fā)的軟件實訓(xùn)設(shè)計[J].計算機教育,2016(6)
[3]劉繼承.在《面向?qū)ο蟪绦蛟O(shè)計》教學(xué)中引入敏捷軟件開發(fā)思想[J].科技信息,2007(31)
【作者簡介】譚江山(1977— ),男,廣西上林人,柳州市第一職業(yè)技術(shù)學(xué)校計算機專業(yè)課教師,講師,理學(xué)學(xué)士,研究方向:計算機軟件開發(fā)、物聯(lián)網(wǎng)技術(shù)。
(責(zé)編 羅汝君)