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