邢益良
敏捷開發(fā)在高職課程團(tuán)隊(duì)教學(xué)中的應(yīng)用探討
邢益良
(海南軟件職業(yè)技術(shù)學(xué)院 軟件工程系,海南 瓊海 571400)
將敏捷開發(fā)思想融入高職軟件開發(fā)類課程教學(xué),探討基于敏捷開發(fā)思想在團(tuán)隊(duì)教學(xué)中的應(yīng)用,包括團(tuán)隊(duì)組建、團(tuán)隊(duì)管理和團(tuán)隊(duì)評(píng)價(jià)。實(shí)踐表明,敏捷開發(fā)思想具有較高的教學(xué)適應(yīng)性,能強(qiáng)化團(tuán)隊(duì)管理、有效激勵(lì)學(xué)生和提高教學(xué)質(zhì)量。
敏捷開發(fā);課程團(tuán)隊(duì)建設(shè);教學(xué)管理
“PHP程序設(shè)計(jì)”和“Java Web應(yīng)用開發(fā)技術(shù)”等課程是高職院校計(jì)算機(jī)專業(yè)的職業(yè)技能課程,課程教學(xué)目標(biāo)是使學(xué)生掌握軟件開發(fā)語言和技術(shù),具備軟件項(xiàng)目開發(fā)能力。團(tuán)隊(duì)是企業(yè)開發(fā)軟件項(xiàng)目的主要運(yùn)作形式。組織高職計(jì)算機(jī)專業(yè)類學(xué)生以團(tuán)隊(duì)形式開發(fā)課程軟件項(xiàng)目,對(duì)提高教學(xué)質(zhì)量具有重要意義。
團(tuán)隊(duì)教學(xué)法是指以學(xué)生自主性、探索性學(xué)習(xí)為基礎(chǔ),以項(xiàng)目為主線、以團(tuán)隊(duì)學(xué)習(xí)為中心、以任務(wù)目標(biāo)為使命、以團(tuán)隊(duì)為載體、以教師為主導(dǎo)、以學(xué)生為主體、以素質(zhì)培養(yǎng)為目標(biāo),有效激發(fā)學(xué)生創(chuàng)新能力的教學(xué)方法[1]。參照傳統(tǒng)軟件工程和團(tuán)隊(duì)教學(xué)法,團(tuán)隊(duì)成員需要根據(jù)自己的工作崗位選擇參與軟件計(jì)劃、需求、設(shè)計(jì)、實(shí)現(xiàn)和測試等開發(fā)工作。由于學(xué)生初步接觸軟件項(xiàng)目及其相關(guān)技術(shù),學(xué)生團(tuán)隊(duì)常常會(huì)出現(xiàn)隨意變更項(xiàng)目需求、忽視軟件體系結(jié)構(gòu)和不遵循開發(fā)規(guī)范等問題,所以學(xué)生很難把握整個(gè)軟件項(xiàng)目的開發(fā)。這給軟件開發(fā)帶來了無序和進(jìn)度慢等問題,給學(xué)生帶來學(xué)習(xí)成本高和學(xué)習(xí)周期長等問題,給教師帶來了學(xué)生評(píng)價(jià)困難等問題。
近幾年,團(tuán)隊(duì)教學(xué)方法引起了研究者的關(guān)注和探討。例如文獻(xiàn)[2-4]研究了團(tuán)隊(duì)教學(xué)法在計(jì)算機(jī)課程教學(xué)中的應(yīng)用問題;文獻(xiàn)[5]從團(tuán)隊(duì)組建、組織結(jié)構(gòu)和管理方面探討了團(tuán)隊(duì)與項(xiàng)目匹配的問題;文獻(xiàn)[6]提出由基礎(chǔ)層、個(gè)性層和綜合挑戰(zhàn)層構(gòu)成的團(tuán)隊(duì)激勵(lì)機(jī)制;文獻(xiàn)[7]研究了學(xué)生團(tuán)隊(duì)構(gòu)建的策略問題;文獻(xiàn)[8-9]探討了團(tuán)隊(duì)績效評(píng)價(jià)問題;文獻(xiàn)[10]基于敏捷軟件開發(fā)模式,從組建團(tuán)隊(duì)、題庫、配對(duì)編程和考核方面探討了計(jì)算機(jī)語言課程教學(xué)[10]。
但是,學(xué)生團(tuán)隊(duì)易于流于形式。為解決團(tuán)隊(duì)流于形式的問題,本文將具有快速響應(yīng)特點(diǎn)的敏捷開發(fā)思想引入高職教學(xué),探討其在高職軟件開發(fā)類課程中學(xué)生團(tuán)隊(duì)建設(shè)、管理和評(píng)價(jià)中的應(yīng)用策略。
2001年初,由于看到許多公司的軟件團(tuán)隊(duì)陷入了不斷增長的過程的泥潭,一批業(yè)界專家聚集在一起概括出一些可以讓軟件開發(fā)團(tuán)隊(duì)具有快速工作和響應(yīng)變化能力的價(jià)值觀和原則。他們稱自己為敏捷聯(lián)盟。隨后,敏捷聯(lián)盟創(chuàng)建了一份價(jià)值觀聲明,也就是《敏捷聯(lián)盟宣言》(The Manifesto of the Agile Alliance)[11]。敏捷聯(lián)盟首任主席Robert C.Martin認(rèn)為:敏捷開發(fā)是一種以人為核心,迭代、循序漸進(jìn)的開發(fā)方法[12]。除了在軟件開發(fā)領(lǐng)域,敏捷開發(fā)在計(jì)算機(jī)芯片領(lǐng)域也受到了學(xué)者的關(guān)注[13]。
在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過測試,具備集成和可運(yùn)行的特征。換言之,就是把一個(gè)大項(xiàng)目分為多個(gè)既相互聯(lián)系,又可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成。在此過程中,軟件一直處于可使用狀態(tài)。
敏捷開發(fā)思想的關(guān)鍵是以人為核心,認(rèn)為人是軟件開發(fā)過程中最為關(guān)鍵的因素,整個(gè)軟件開發(fā)過程能不能實(shí)現(xiàn)敏捷化,能不能取得完全的成功,主要是看人的因素能不能處理得當(dāng)。這里的人不僅包括用戶,還包括團(tuán)隊(duì)開發(fā)者和責(zé)任者。極限編程(extreme programmin)、Scrum、特征驅(qū)動(dòng)開發(fā)(feature driven developmen)和動(dòng)態(tài)系統(tǒng)開發(fā)方法(dynamic systems development methodolog)等是常見的敏捷開發(fā)方法,這些方法都強(qiáng)調(diào)了團(tuán)隊(duì)的重要性。
團(tuán)隊(duì)規(guī)模是課程教學(xué)中會(huì)出現(xiàn)的問題,課程團(tuán)隊(duì)的人數(shù)往往差別較大。遵循傳統(tǒng)軟件工程組建的團(tuán)隊(duì)由于嚴(yán)格分工,因此課程團(tuán)隊(duì)人數(shù)會(huì)偏多。
敏捷開發(fā)方法認(rèn)為團(tuán)隊(duì)規(guī)模會(huì)影響敏捷性,小規(guī)模團(tuán)隊(duì)更適合敏捷開發(fā)。依據(jù)敏捷要求以及為了便于管理和發(fā)揮團(tuán)隊(duì)成員作用,課程團(tuán)隊(duì)人數(shù)以3~6人為宜。由于通常的教學(xué)項(xiàng)目規(guī)模并不大,當(dāng)團(tuán)隊(duì)人數(shù)偏多時(shí),容易出現(xiàn)個(gè)別成員無事可做的現(xiàn)象,甚至因產(chǎn)生“不公平”的心理,讓團(tuán)隊(duì)失掉和諧。但是,當(dāng)團(tuán)隊(duì)人數(shù)偏少時(shí),也容易出現(xiàn)項(xiàng)目不能按期完成的情況,進(jìn)而挫敗學(xué)生的學(xué)習(xí)動(dòng)力。
學(xué)生隨意選擇隊(duì)員是課程教學(xué)中常見的問題。“最好的構(gòu)架、需求和設(shè)計(jì)出自于自組織的團(tuán)隊(duì)”是敏捷開發(fā)原則,它強(qiáng)調(diào)了團(tuán)隊(duì)的自組織性。為了讓每個(gè)學(xué)生能與自己滿意的團(tuán)隊(duì)成員共同參與項(xiàng)目,可采用“先自由組隊(duì),后隨意分配”的方式組建團(tuán)隊(duì)。
組建團(tuán)隊(duì)時(shí),可先引導(dǎo)學(xué)生根據(jù)自己的興趣愛好、人際關(guān)系和能力搭配關(guān)系等因素,自己尋找成員組建團(tuán)隊(duì),大多數(shù)學(xué)生都會(huì)自行組建團(tuán)隊(duì)。經(jīng)過一番組隊(duì)之后,少數(shù)不積極組建團(tuán)隊(duì)的學(xué)生可能會(huì)處于無團(tuán)隊(duì)的狀態(tài)。為了鼓勵(lì)他們能以團(tuán)隊(duì)形式參與項(xiàng)目,可將他們隨機(jī)匹配組建成新團(tuán)隊(duì)或分配到其他團(tuán)隊(duì)。
為便于他人稱呼和擴(kuò)大團(tuán)隊(duì)影響,團(tuán)隊(duì)成員需要為自己團(tuán)隊(duì)起一個(gè)有意義的名稱。為避免有些課程團(tuán)隊(duì)漠視團(tuán)隊(duì)名稱,甚至嘩眾取寵,選用惡俗、具有“負(fù)能量”的團(tuán)隊(duì)名稱,需對(duì)課程團(tuán)隊(duì)名稱進(jìn)行規(guī)范,鼓勵(lì)采用有創(chuàng)意、正能量、有意義和簡短易記的課程團(tuán)隊(duì)名稱。
Scrum敏捷方法強(qiáng)調(diào)團(tuán)隊(duì)?wèi)?yīng)是跨職能的團(tuán)隊(duì)。“跨職能”削弱了團(tuán)隊(duì)成員分工,要求團(tuán)隊(duì)成員扮演更多的角色和承擔(dān)分析、設(shè)計(jì)、編碼和測試等諸多工作。
在課程教學(xué)初期,學(xué)生對(duì)課程和工作崗位之間的關(guān)系的是模糊的。為了讓學(xué)生團(tuán)隊(duì)成員明確自己在團(tuán)隊(duì)中的作用和責(zé)任,每個(gè)團(tuán)隊(duì)成員至少需要扮演2~3個(gè)角色??赏ㄟ^真實(shí)工作職務(wù)為成員分配角色,這些職務(wù)是指本地區(qū)企事業(yè)工作崗位中的職務(wù)。團(tuán)隊(duì)成員通過工作崗位要求和工作內(nèi)容能初步了解自己的職務(wù)和職責(zé)。以我院“Java Web應(yīng)用開發(fā)技術(shù)”課程為例,可引導(dǎo)學(xué)生到“海南人才在線”網(wǎng)站搜索和了解Java Web程序員崗位,并選擇自己容易把握得住的工作 角色。
敏捷方法認(rèn)為:每隔一定時(shí)間,團(tuán)隊(duì)會(huì)在如何才能更有效地工作方面進(jìn)行反省,然后相應(yīng)地對(duì)自己的行為進(jìn)行調(diào)整。團(tuán)隊(duì)隊(duì)長的一個(gè)重要作用是組織團(tuán)隊(duì)成員協(xié)同工作,向工作目標(biāo)前進(jìn)。團(tuán)隊(duì)隊(duì)長在工作初期往往不清楚自己的職責(zé),導(dǎo)致團(tuán)隊(duì)成員工作松懈,所承擔(dān)的項(xiàng)目不能正常完成。通過建立聘用和解聘制度,既能讓團(tuán)隊(duì)隊(duì)長提高工作責(zé)任感,也能避免因隊(duì)長的不作為導(dǎo)致團(tuán)隊(duì)工作效率低下。隊(duì)長可由團(tuán)隊(duì)成員共同推薦產(chǎn)生,在無人可推薦或無人愿意擔(dān)任隊(duì)長時(shí),可隨機(jī)指定團(tuán)隊(duì)隊(duì)長。在隊(duì)長任期內(nèi),如果團(tuán)隊(duì)在指定時(shí)間內(nèi)未完成指定的項(xiàng)目工作量,則可解除隊(duì)長職務(wù),由其他團(tuán)隊(duì)成員按先推薦、后隨機(jī)的原則擔(dān)任團(tuán)隊(duì)隊(duì)長。
一個(gè)團(tuán)隊(duì)要實(shí)現(xiàn)敏捷開發(fā),應(yīng)該盡量避免團(tuán)隊(duì)成員的變動(dòng),因?yàn)樾鲁蓡T會(huì)讓團(tuán)隊(duì)交流等活動(dòng)的成本提高和時(shí)間加長。由于學(xué)生臨時(shí)休學(xué)以及學(xué)院批準(zhǔn)學(xué)生長時(shí)間停課參加職業(yè)技能大賽等原因,會(huì)使課程團(tuán)隊(duì)因成員人數(shù)減少而變得不完整。如果團(tuán)隊(duì)剩余人員未達(dá)3人,則應(yīng)組建新團(tuán)隊(duì)或接納新成員進(jìn)行團(tuán)隊(duì)重組。“組建新團(tuán)隊(duì)”是指把各個(gè)殘缺團(tuán)隊(duì)的成員重新組建成新團(tuán)隊(duì);“接納新成員”是指符合人數(shù)要求的團(tuán)隊(duì)主動(dòng)吸收殘剩成員。如無法按前述原則安排殘剩成員,則取消該團(tuán)隊(duì)且以個(gè)人形式完成項(xiàng)目要求。這樣可使殘剩成員盡可能以團(tuán)隊(duì)形式工作,同時(shí)不影響其他團(tuán)隊(duì)正常運(yùn)作。
在團(tuán)隊(duì)內(nèi)部,最具有效果并且富有效率的傳遞信息的方法,就是面對(duì)面的交談;每隔一定時(shí)間,團(tuán)隊(duì)會(huì)在如何才能更有效地工作方面進(jìn)行反省,然后相應(yīng)地對(duì)自己的行為進(jìn)行調(diào)整。這是敏捷開發(fā)的重要原則。依據(jù)此兩條原則,團(tuán)隊(duì)內(nèi)部可定期召開團(tuán)隊(duì)工作會(huì)議。團(tuán)隊(duì)工作會(huì)議使團(tuán)隊(duì)有了具體的團(tuán)隊(duì)合作形式,團(tuán)隊(duì)成員可以聚集在一起進(jìn)行討論和交流。團(tuán)隊(duì)工作會(huì)議主要討論任務(wù)分配、問題分析和成果展示等問題。為方便了解和跟蹤工作,需要記錄團(tuán)隊(duì)工作會(huì)議內(nèi)容。
團(tuán)隊(duì)與成員是整體與個(gè)體的關(guān)系。敏捷方法鼓勵(lì)每個(gè)人的積極性并以個(gè)人為中心構(gòu)建項(xiàng)目,以把握整體、區(qū)別個(gè)體為原則,從整體上判定個(gè)體并區(qū)別對(duì)待個(gè)體,客觀評(píng)價(jià)和激勵(lì)團(tuán)隊(duì)和成員。
團(tuán)隊(duì)成績評(píng)定公式為
S=11+22+33+44+55+66+77
式中,S是第個(gè)團(tuán)隊(duì)的團(tuán)隊(duì)成績,1—7是影響因子,取值范圍為[0,1],1+2+3+4+5+6+7=1。
1是團(tuán)隊(duì)人數(shù)成績,與團(tuán)隊(duì)人數(shù)有關(guān),人數(shù)超3人就減分,人越多成績越低。
2是組隊(duì)方式成績,由成員價(jià)值觀雷同度來定,雷同度低(不相關(guān)性高)則該項(xiàng)成績就低。
3是團(tuán)隊(duì)名稱成績,如果團(tuán)隊(duì)名稱是負(fù)面的,則該項(xiàng)成績就低。
4是團(tuán)隊(duì)角色成績,如果成員不扮演角色,則該項(xiàng)成績就低。
5是隊(duì)長成績,如果因完成不了任務(wù)而變更隊(duì)長,則該項(xiàng)成績就低。
6是成員變動(dòng)成績,如果成員發(fā)生變動(dòng),則該項(xiàng)成績就低。
7是會(huì)議成績,如果沒有會(huì)議記錄,則該項(xiàng)成績就低。
成員成績評(píng)定公式為
P=kS
式中,P是第個(gè)團(tuán)隊(duì)中的第個(gè)成員的個(gè)人成績,k是第個(gè)團(tuán)隊(duì)第個(gè)成員在該團(tuán)隊(duì)中的權(quán)重,取值范圍為[0,1],權(quán)重可由成員角色重要性和成員認(rèn)可度等決定。
海南軟件職業(yè)技術(shù)學(xué)院將敏捷開發(fā)思想融入課程團(tuán)隊(duì)教學(xué)方法,并將課程團(tuán)隊(duì)教學(xué)方法應(yīng)用到了計(jì)算機(jī)應(yīng)用專業(yè)“PHP程序設(shè)計(jì)”課程、軟件技術(shù)專業(yè)“Java EE編程基礎(chǔ)”課程和“Java Web應(yīng)用開發(fā)技術(shù)”課程中,加強(qiáng)課程團(tuán)隊(duì)組建、管理和評(píng)價(jià),讓學(xué)生明確團(tuán)隊(duì)成員責(zé)任,加強(qiáng)合作意識(shí)和提高交流溝通能力,并公平激勵(lì)團(tuán)隊(duì)和團(tuán)隊(duì)成員,使教學(xué)質(zhì)量得到提高。敏捷開發(fā)思想廣泛適用于Java Web程序設(shè)計(jì)和Android程序設(shè)計(jì)等計(jì)算機(jī)類實(shí)踐課程,并對(duì)其他實(shí)踐課程具有指導(dǎo)意義,可以更多地探索符合學(xué)生團(tuán)隊(duì)學(xué)習(xí)規(guī)律的課程項(xiàng)目。
[1] 應(yīng)宏. 團(tuán)隊(duì)教學(xué)法的課程開發(fā)[J]. 職教論壇,2009(14): 14–15.
[2] 唐捷. 團(tuán)隊(duì)教學(xué)法在Office辦公軟件教學(xué)中的應(yīng)用[J]. 科技資訊,2013(12): 197–198.
[3] 高國強(qiáng). 團(tuán)隊(duì)教學(xué)法在《網(wǎng)站建設(shè)》課程教學(xué)中的應(yīng)用[J]. 軟件導(dǎo)刊(教育技術(shù)),2013, 12(4): 33–34.
[4] 吳云,徐冠男,王萬鑫,等. 團(tuán)隊(duì)合作教學(xué)法在數(shù)據(jù)庫課程教學(xué)中的應(yīng)用[J]. 福建電腦,2015, 31(3): 66.
[5] 程麗麗. 基于主動(dòng)選擇優(yōu)化的教學(xué)項(xiàng)目—團(tuán)隊(duì)匹配研究[J]. 中國教育信息化,2015(2): 43–45.
[6] 姜春茂,曲明成,季偉東. 學(xué)生軟件團(tuán)隊(duì)中的激勵(lì)機(jī)制研究[J]. 計(jì)算機(jī)教育,2014(5): 19–21.
[7] 陽小華,李萌,劉志明,等. 軟件工程學(xué)生團(tuán)隊(duì)構(gòu)建的案例分析[J]. 計(jì)算機(jī)教育,2011(5): 57–61.
[8] 王丹鳳,沙金. 團(tuán)隊(duì)實(shí)踐教學(xué)中學(xué)生個(gè)人成績評(píng)定方法研究[J]. 河南理工大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2017, 18(2): 105–109.
[9] 白曉穎,李山山,李明杰,等. 基于敏捷開發(fā)的軟件工程實(shí)踐教學(xué)探討[J]. 實(shí)驗(yàn)技術(shù)與管理,2018, 35(4): 6–11.
[10] 馮愛祥,羅雄麟. 敏捷軟件開發(fā)模式在計(jì)算機(jī)語言課程設(shè)計(jì)中的應(yīng)用[J]. 中國現(xiàn)代教育裝備,2016(7): 73–75.
[11] 周瑩瑩. 敏捷軟件開發(fā)技術(shù)研究[D]. 長春:長春理工大學(xué),2006: 13–14.
[12] MARTIN R C. 敏捷軟件開發(fā):原則、模式與實(shí)踐[M]. 鄧輝,譯. 北京:清華大學(xué)出版社,2003.
[13] 余子濠,劉志剛,李一葦,等. 芯片敏捷開發(fā)實(shí)踐:標(biāo)簽化RISC-V[J]. 計(jì)算機(jī)研究與發(fā)展,2019, 56(1): 1–14.
Exploration on application of agile development in team teaching of higher vocational courses
XING Yiliang
(Software Engineering Department, Hainan College of Software Technology, Qionghai 571400, China)
The agile development idea is integrated into software development course teaching in higher vocational colleges, and the application of agile development idea in team teaching is explored, which includes the team formation, team management and team evaluation. Practice shows that agile development idea has high teaching adaptability, and can strengthen the team management, effectively motivate students’ learning and improve teaching quality.
agile development; course team construction; teaching management
G712.4
B
1002-4956(2019)09-0142-03
2019-02-10
海南軟件職業(yè)技術(shù)學(xué)院科學(xué)研究項(xiàng)目(Hr201808)
邢益良(1979—),男,海南文昌,碩士,副教授,主要研究方向?yàn)閳D形圖像處理、軟件工程和互聯(lián)網(wǎng)軟件開發(fā)技術(shù)。
E-mail: xyllib@163.com
10.16791/j.cnki.sjg.2019.09.035