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