職業(yè)認(rèn)證:事實(shí)或虛構(gòu) |
----By Steve McConnell, Construx Software and Leonard L. Tripp, The Boeing Company--- 本文原文發(fā)表在 IEEE軟件雜志1999年第11/12月期 對(duì)許多程序員來(lái)說(shuō),軟件開(kāi)發(fā)是一件又辛苦又乏味的寫作過(guò)程。隨著我們的逐漸成熟, 該是去學(xué)習(xí)其它專業(yè)學(xué)科的時(shí)候了,即把工程引入軟件工程。貴賓編輯審視了為建立我們的職業(yè),已經(jīng)做過(guò)些什么,還需要做些什么。 今天軟件開(kāi)發(fā)最通常的方法是寫寫改改的程序設(shè)計(jì)方法。在這種方法里,開(kāi)發(fā)團(tuán)隊(duì)開(kāi)始對(duì)構(gòu)建什么有個(gè)總體想法,他們可能有形式說(shuō)明,但或許沒(méi)有。他們使用任何一種適合他們的非正規(guī)設(shè)計(jì)、編碼、調(diào)試和測(cè)試的方法。程序員編寫一小段代碼, 再運(yùn)行看看是否工作, 如果不行,他們就改寫直到它工作。這種邊寫邊改的遠(yuǎn)遠(yuǎn)落后于現(xiàn)代的軟件開(kāi)發(fā)技術(shù), 它化費(fèi)更多,又費(fèi)時(shí),還產(chǎn)生比其它方法質(zhì)量低的軟件;它的主要優(yōu)點(diǎn)是只需要少量的技術(shù)和管理培訓(xùn)。一些領(lǐng)先組織已經(jīng)知道并使用有效的軟件開(kāi)發(fā)實(shí)踐有數(shù)十年了,但是在軟件界平庸實(shí)踐和最佳實(shí)踐之間的差距還是十分巨大。 如果說(shuō)軟件開(kāi)發(fā)勝任力譜上的一端是被編編改改開(kāi)發(fā)方式所占領(lǐng)的話,那另一端就是軟件工程– 按IEEE標(biāo)準(zhǔn)610.12的定義, 這就是“對(duì)軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)應(yīng)用系統(tǒng)、規(guī)范、可定量的方法”。 近來(lái),軟件工程界看到了有關(guān)建立、支持、傳播實(shí)踐軟件開(kāi)發(fā)者行為高級(jí)標(biāo)準(zhǔn)一些鼓舞人心的發(fā)展, 這期??貏e關(guān)注那些支持一個(gè)真正軟件工程職業(yè)的近期發(fā)展。 Elements of a Profession職業(yè)要素 1996年Gary Ford 和Norman E. Gibbs發(fā)表了一篇名為成熟的軟件工程職業(yè)的報(bào)告。他們研究了幾個(gè)健全構(gòu)成的職業(yè),包括醫(yī)學(xué)、法律、工程和財(cái)會(huì)。他們觀察到其它領(lǐng)域的職業(yè)不管它們的特定學(xué)科是什么, 都遵循相當(dāng)類似的專業(yè)發(fā)展道路。 成熟的職業(yè)包括下列幾個(gè)要素: Initial professional education初始職業(yè)教育 Accreditation水平鑒定 Skills development技能發(fā)展 Certification認(rèn)證 Licensing執(zhí)照制度 Professional development職業(yè)發(fā)展 Professional societies專業(yè)學(xué)會(huì) Code of ethics道德規(guī)范 初始職業(yè)教育 專業(yè)人員一般通過(guò)完成他們所選領(lǐng)域的大學(xué)教育程序,如醫(yī)學(xué)、工程或法律, 開(kāi)始他們的職業(yè)生涯。 軟件教育的占優(yōu)形式是計(jì)算機(jī)科學(xué)的本科學(xué)位。最近,在定義軟件工程本科程序方面取得了進(jìn)展。軟件工程這個(gè)術(shù)語(yǔ)經(jīng)常被誤解,一種方法是去闡明軟件工程和計(jì)算機(jī)科學(xué)的區(qū)別。在本期中重印了“軟件工程程序不是計(jì)算機(jī)科學(xué)程序”一文, David L. Parnas描述了兩者之間的差別,對(duì)我們所理解的軟件工程提出了最清楚的解釋。 水平鑒定 大學(xué)程序的水平鑒定,由監(jiān)督體系確定是否每個(gè)程序提供適當(dāng)?shù)慕逃_@保證只要專業(yè)人員從鑒定過(guò)的程序畢業(yè),他們將具備開(kāi)始他們職業(yè)生涯所需有效的知識(shí)。 隨著軟件工程程序的擴(kuò)展,水平鑒定變得更加重要。自從Rochester技術(shù)大學(xué)1996年在美國(guó)啟動(dòng)第一個(gè)大學(xué)軟件工程程序,許多大學(xué)開(kāi)出了類似的程序, 包括Auburn大學(xué)、密爾沃基工程學(xué)校、蒙默思郡大學(xué)和蒙大納工學(xué)院。在加拿大肯考迪婭大學(xué),McMaster大學(xué),Memorial 大學(xué),和渥汰華大學(xué)提供學(xué)士學(xué)位的課程,其它幾個(gè)北美大學(xué)也在積極地考慮加進(jìn)這些程序, 英國(guó)至少有13個(gè)大學(xué)和澳大利亞的6個(gè)以上大學(xué)提供本科軟件工程程序。 這些程序的水平鑒定還沒(méi)有到位。Gerald Engel在“軟件工程學(xué)位課程的水平鑒定程序標(biāo)準(zhǔn)”一文中, 介紹了鑒定標(biāo)準(zhǔn)將會(huì)像什么樣子, Engel介紹的工作將會(huì)顯著地影響第一批進(jìn)入產(chǎn)業(yè)的軟件工程大學(xué)生的教育和技能。 技能發(fā)展 對(duì)大多數(shù)職業(yè),單靠教育是不能充分地開(kāi)發(fā)完全的專業(yè)能力。初生的職業(yè)人員需要在準(zhǔn)備對(duì)他們領(lǐng)域里要完成的工作承擔(dān)主要責(zé)任前, 需要運(yùn)用他們知的實(shí)踐。在美國(guó),醫(yī)生一般有3年的實(shí)習(xí)期, 注冊(cè)會(huì)計(jì)師(CPAS)在獲得執(zhí)照之前必須在公開(kāi)批準(zhǔn)的組織中工作一年, 專業(yè)工程師必須有至少4年的工作經(jīng)歷。要求一段學(xué)徒期確保進(jìn)入某一職業(yè)的人們能具備有符合要求能力水平的實(shí)踐工作。對(duì)職業(yè)軟件工程師來(lái)說(shuō)什么是重要的知識(shí)?IEEE計(jì)算機(jī)協(xié)會(huì)和ACM已經(jīng)定義了那些知識(shí), Pierre Bourque, Robert Dupuis, Alan Abran, James W. Moore, 和Leonard Tripp在“軟件工程知識(shí)體系指南”中描述了工作的進(jìn)展, 這個(gè)項(xiàng)目非常重要,因?yàn)橹R(shí)體系將會(huì)影響大學(xué)課程以及執(zhí)照和認(rèn)證考試的標(biāo)準(zhǔn)。 認(rèn)證 在完成教育和技能發(fā)展后,一個(gè)職業(yè)人員必須通過(guò)一門或更多門考試確保他或她達(dá)到最基本級(jí)的知識(shí)。醫(yī)生要參加公開(kāi)考試, 會(huì)計(jì)師參加CPA考試, 專業(yè)工程師在學(xué)院畢業(yè)時(shí)參加工程基礎(chǔ)考試, 然后4年后參加工程專業(yè)考試。有些職業(yè)要求定期頒發(fā)新證。認(rèn)證是自愿的過(guò)程, 幫助公眾確認(rèn)誰(shuí)有資格進(jìn)入某一職業(yè),誰(shuí)沒(méi)有資格。 在英國(guó), 電氣工程師協(xié)會(huì)管理軟件工程認(rèn)證程序, 英國(guó)計(jì)算機(jī)學(xué)會(huì)有職業(yè)發(fā)展計(jì)劃。澳大利亞計(jì)算機(jī)學(xué)會(huì)提供信息技術(shù)認(rèn)證程序, 軟件工程屬子專業(yè)。在美國(guó),對(duì)軟件工程還沒(méi)有認(rèn)證程序。計(jì)算職業(yè)人員認(rèn)證學(xué)會(huì)提供計(jì)算職業(yè)認(rèn)證。美國(guó)質(zhì)量學(xué)會(huì)提供軟件測(cè)試工程師和軟件質(zhì)量工程師的認(rèn)證。眾多的公司, 包括Microsoft, Novell, and Apple 計(jì)算機(jī)提供各種有關(guān)他們產(chǎn)品的認(rèn)證證明。 IEEE計(jì)算機(jī)學(xué)會(huì)在1999年6月開(kāi)始開(kāi)發(fā)軟件工程專業(yè)人員認(rèn)證程序;它預(yù)期2000年第三季度認(rèn)證可出臺(tái)。 執(zhí)照制度 執(zhí)照與認(rèn)證有些相似, 但除了它是強(qiáng)制性的, 并且它是由政府授權(quán)管理的。在這個(gè)領(lǐng)域許多令人興奮的發(fā)展正在發(fā)生。德克薩斯州在1998年開(kāi)始頒發(fā)職業(yè)軟件工程師執(zhí)照。(想要更多信息,請(qǐng)看IEEE軟件雜志由John Charles寫的報(bào)告“License to Code”(1998年9/10月) 和他最近更新的 "Software Engineering Licensing Weathers Challenge" (1999. 年9/10月), 在1999年6月加拿大不列顛哥倫比亞開(kāi)始頒發(fā)軟件專業(yè)工程師證書,1999年9月安大略湖也緊隨其后。 頒發(fā)執(zhí)照意味著什么?這是個(gè)好主意嗎?頒發(fā)執(zhí)照引起了強(qiáng)烈的反應(yīng),從“當(dāng)然!”到“該死,不!”有一種觀點(diǎn),請(qǐng)看John Speed的文章,《What Do You Mean I Can’t Call Myself a Software Engineer?》。Speed是美國(guó)促進(jìn)軟件工程專業(yè)職業(yè)工程師執(zhí)照的倡導(dǎo)者, 文章提供了在美國(guó)頒發(fā)執(zhí)照過(guò)程的關(guān)鍵信息, 執(zhí)照制度的基本原則也用在其它國(guó)家, 文章的邊欄介紹了不列顛哥倫比亞、安大略湖以及英國(guó)的執(zhí)照政策。至于其它觀點(diǎn),請(qǐng)看本期Dennis Frailey 和Tom DeMarco的《Point/Counterpoint》一文, Frailey 把執(zhí)照制度看成是保證專業(yè)能力必要和有價(jià)值的手段, DeMarco 則把它比較為蘇聯(lián)的官僚制度。 職業(yè)發(fā)展 繼續(xù)的職業(yè)教育在工作者開(kāi)始職業(yè)實(shí)踐后, 保持和改進(jìn)他們的知識(shí)和技能。對(duì)工作在技術(shù)知識(shí)迅速變化的職業(yè), 職業(yè)發(fā)展的需求顯得最為強(qiáng)烈。醫(yī)學(xué)可能是最值得注意的, 因?yàn)樗幤贰⑨t(yī)療、醫(yī)學(xué)設(shè)備以及診斷和治療程序都在不斷改進(jìn)。在職業(yè)人員的初始教育和技能發(fā)展完成后,繼續(xù)教育的需求幫助保證專業(yè)人員在整個(gè)職業(yè)生涯保證最基本的勝任能力水平。 職業(yè)發(fā)展的一方面是學(xué)習(xí)適當(dāng)?shù)膶?shí)踐標(biāo)準(zhǔn)。IEEE積極地開(kāi)發(fā)軟件工程標(biāo)準(zhǔn)超過(guò)20年,IEEE標(biāo)準(zhǔn)的匯合構(gòu)成了軟件工程師的一類實(shí)踐標(biāo)準(zhǔn)。James W. Moore介紹了IEEE的最近成就“集成集的軟件工程標(biāo)準(zhǔn)”。 Moore的文章是這些非常有價(jià)值的開(kāi)發(fā)資源一個(gè)有用的引論, 它包含了關(guān)于IEEE對(duì)統(tǒng)一軟件工程標(biāo)準(zhǔn)最近努力的一個(gè)有趣更新版。 專業(yè)協(xié)會(huì) 職業(yè)人員把他們看作為是具有同類想法人員社團(tuán)的一部分, 他們把職業(yè)標(biāo)準(zhǔn)放在他們個(gè)人利益或者他們雇主的利益之上。最初,專業(yè)協(xié)會(huì)通常促進(jìn)知識(shí)的交流, 隨著時(shí)間的過(guò)去,他們的職責(zé)演變?yōu)榘ǘx認(rèn)證標(biāo)準(zhǔn),管理認(rèn)證程序,建立水平鑒定標(biāo)準(zhǔn),定義職業(yè)道德規(guī)范和懲罰違反這些規(guī)范的行為。 IEEE計(jì)算機(jī)學(xué)會(huì)和ACM已經(jīng)積極地定義軟件工程職業(yè), 這項(xiàng)工作是由軟件工程協(xié)調(diào)委員會(huì)(SWECC)統(tǒng)籌的, 要了解更多信息,可看邊欄“軟件工程協(xié)調(diào)委員會(huì)” 職業(yè)道德規(guī)范 每種職業(yè)都有其道德規(guī)范保證它的專業(yè)人員具有責(zé)任行為。規(guī)范規(guī)定不只是他的專業(yè)人員實(shí)際做的,而是他們應(yīng)該做的。職業(yè)人員違反道德規(guī)范, 會(huì)被逐出他們的專業(yè)協(xié)會(huì), 或者失去他們的執(zhí)照。忠于公認(rèn)的行為規(guī)范幫助專業(yè)人員感覺(jué)他們屬于被尊重的團(tuán)體,并且執(zhí)行道德規(guī)范標(biāo)準(zhǔn)幫助維持最低的行為標(biāo)準(zhǔn)。 1998年,IEEE計(jì)算機(jī)學(xué)會(huì)和ACM采納了軟件工程道德規(guī)范和職業(yè)實(shí)踐標(biāo)準(zhǔn)。Don Gotterbarn在《How the New Software Engineering Code of Ethics Affects You》一文中描述了規(guī)范, 這個(gè)規(guī)范通過(guò)明確定義軟件工程師的道德義務(wù), 支持一個(gè)成熟的軟件工程職業(yè)。 展望未來(lái) 正在進(jìn)行中的發(fā)展將直接或地間接地影響所有的軟件開(kāi)發(fā)者, 它們是積極的嗎?按我們的看法,它們肯定對(duì)提高軟件開(kāi)發(fā)能力水平既是積極也是必需的, 但是許多這些發(fā)展仍處在早期階段,有興趣的軟件實(shí)踐工作者可以貢獻(xiàn)對(duì)知識(shí)體系的定義,建立課程標(biāo)準(zhǔn),制定執(zhí)照許可政策,以及許多其它方面。IEEE軟件的使命是“建立領(lǐng)先的軟件實(shí)踐者社團(tuán)”, 我們希望你能幫助我們完成這一使命, 在推動(dòng)軟件工程成為一個(gè)職業(yè)方面, 發(fā)揮積極的作用,包括可以給我們發(fā)送您對(duì)本期內(nèi)容中涉及的動(dòng)議提出建議([email protected]) |