我這么說并不是玩笑:軟件工程師的能力問題在這樣一個(gè)廣泛連通的世界里只會(huì)變得越來越緊迫。 就在不久前,一個(gè)四年制計(jì)算機(jī)科學(xué)與工程專業(yè)的畢業(yè)生還可以在專業(yè)軟件工程機(jī)構(gòu)找到一個(gè)入門級職位,然后與同事、經(jīng)理一起工作并享有培訓(xùn)機(jī)會(huì),當(dāng)然最重要的是還可以掌握正規(guī)的開發(fā)方法和最佳實(shí)踐。而通常來說,這樣的員工需要經(jīng)過約一年的培訓(xùn)和實(shí)踐后才能給團(tuán)隊(duì)帶來效益。 而當(dāng)今社會(huì)則充斥著大量零散的工作需要軟件程序員來處理,因此,對軟件程序員的巨大需求使得軟件工程領(lǐng)域的這種事實(shí)上的學(xué)徒制方法變得越來越少見或者消失了,因?yàn)樵谌遮吘o張的交付時(shí)間要求下,這種學(xué)徒制方法簡直就是一種奢望。 最終人們會(huì)發(fā)現(xiàn),所有的熱情、編程馬拉松和沖刺都無法彌補(bǔ)個(gè)人在專門技能方面的缺失與不足。而軟件團(tuán)隊(duì)通常會(huì)掩蓋個(gè)人在技能方面的不足,但這僅僅是因?yàn)槠渌蓡T幫助彌補(bǔ)了那些技能不足者的低生產(chǎn)率。 實(shí)際上,根據(jù)軟件質(zhì)量與度量領(lǐng)域?qū)<摇yxis Systems International公司總裁G.Gordon Schulmeyer先生所言,當(dāng)前形勢非常嚴(yán)峻,所有大型項(xiàng)目中都可能存在著一些Schulmeyer稱之為“凈負(fù)生產(chǎn)程序員(NNPP)”的人,而這些人所做的破壞要超過他們的產(chǎn)值。 在《凈負(fù)生產(chǎn)程序員》(The Net Negative Producing Programmer)一文中,Schulmeyer寫道:“負(fù)生產(chǎn)并不僅僅適用于極端案例。假設(shè)在一個(gè)十人團(tuán)隊(duì)中,三名成員的缺陷率都高到足以列入凈負(fù)生產(chǎn)程序員的行列,那么,在技能常態(tài)分布的情況下,一個(gè)十人團(tuán)隊(duì)中沒有一人是凈負(fù)生產(chǎn)程序員的可能性為零。而如果你不幸分到一個(gè)缺陷率高的項(xiàng)目團(tuán)隊(duì)中(即每1000行可執(zhí)行碼中有30個(gè)~60個(gè)缺陷),那么你所在的團(tuán)隊(duì)中,有可能一半的成員都是凈負(fù)生產(chǎn)程序員。 那么,如何才能知道自己是否是一名合格的軟件工程師?如何才能讓公司、經(jīng)理和團(tuán)隊(duì)成員知道你不是一名凈負(fù)生產(chǎn)程序員呢? Jacob Beningod在他最近的一篇博客《硬件工程師該如何成為軟件專家》里給出了很多建議,其中一條就是獲得行業(yè)認(rèn)證。這似乎是個(gè)好主意,所以我要好好琢磨一下為什么實(shí)際上很少看到有人這么做,為什么相當(dāng)少的軟件從業(yè)者拿到了行業(yè)認(rèn)證。 如果說僅僅一小部分在職軟件工程師曾經(jīng)學(xué)過四年的軟件工程課程,這話并無偏頗。事實(shí)上,在美國只有22個(gè)這樣的課程設(shè)計(jì)。我們絕大多數(shù)軟件工程師都是在接受正規(guī)的計(jì)算機(jī)科學(xué)教育后再接受在職訓(xùn)練,但計(jì)算機(jī)科學(xué)教育并不同于軟件工程。 Construx Software公司首席顧問兼IEEE計(jì)算機(jī)學(xué)會(huì)認(rèn)證委員會(huì)主席Steve Tockey說:“你不會(huì)派一位化學(xué)專業(yè)人員去解決化工問題,同樣,為什么我們要讓計(jì)算機(jī)科學(xué)家去解決軟件工程問題呢?” Tockey所在的委員會(huì)負(fù)責(zé)如下IEEE認(rèn)證項(xiàng)目(引自IEEE計(jì)算機(jī)學(xué)會(huì)): ● 初級軟件工程師職業(yè)資格認(rèn)證(CSDA)—針對應(yīng)屆軟件工程師和初級軟件從業(yè)人員。 ● 軟件工程師職業(yè)認(rèn)證(CSDP)—針對希望證明其軟件開發(fā)能力進(jìn)一步拓展事業(yè)的中高級軟件從業(yè)人員。 Tockey說:“這背后的問題是,雇員和雇主們都對必需的技能和知識缺乏了解。做出雇用決定的人常常不知道這些東西。所以要幫助他們弄清楚。” CSDA/CSDP項(xiàng)目代表的技能與知識體現(xiàn)在軟件工程知識體系(SWEBOK)指南中,該指南包含了人們普遍認(rèn)可的軟件工程核心知識。ISO/IEC 24773于2008年發(fā)布了這一國際權(quán)威指南,從而使CSDA/CSDP被全球廣泛承認(rèn)。 實(shí)際上,IEEE計(jì)算機(jī)學(xué)會(huì)還特別針對印度和中國推出了SWEBOK認(rèn)證項(xiàng)目(SCP)。按IEEE計(jì)算機(jī)學(xué)會(huì)的說法,印度有約130萬名軟件、計(jì)算機(jī)科學(xué)和計(jì)算機(jī)工程專業(yè)的學(xué)生,每年要畢業(yè)數(shù)十萬相關(guān)專業(yè)的大學(xué)生,然而最近對超過5.5萬名工科生的抽樣調(diào)查表明,只有17%的學(xué)生符合任職條件。 SWEBOK Guide初版于2004年推出,現(xiàn)正在修訂。但現(xiàn)在已有SWEBOK Guide V3討論稿,據(jù)Tockey說,SWEBOK Guide V3很可能在今年年底稍做修改即公開發(fā)布。 Tockey說,從2004年的指南到V3版,最顯著的變化包括: ● 增加了新進(jìn)展,比如敏捷開發(fā); ● 更強(qiáng)調(diào)安全; ● 與CSDA/CSDP知識同步。 V3中的另一變化是將2004年版中的大量核心參考文獻(xiàn)裁減到了可控范圍。事實(shí)上,即便你不想付出太多,怎么也得把SWEBOK Version 3 Consolidated Reference List吃透了。如果你想提升自己的技能,不妨就從這里開始。 正如Tockey所說,認(rèn)證并不保證你能勝任什么,但它減少了你被淘汰的風(fēng)險(xiǎn)。有時(shí)候,知道這一點(diǎn)就夠了。 |