這對計算機科學的畢業生是一個很好的年頭,我所了解的畢業生想要找工作的幾乎都已經找到。唯一沒有從事工作的是那些畢業后沒有努力去找工作的畢業生,只有很少一部分在這種范圍之內。我知道WPI的計算機科學的畢業生大多都收到好幾個提供的工作機會。如今我所思考的問題是他們是否作好了面臨挑戰的準備,并且也像一個母親那樣擔心,是否自己已經為他們做了足夠的準備。
從2003年我離開IBM加入到WPI那時起,我一直在琢磨2006年軟件開發領域是如何的不同這個問題。我將用幾個詞來形容我的學生們當今所面臨的問題――復雜的、競爭的、合作的和扁平化的。
我不擔心他們處理復雜問題的能力。他們在大學的整個成長進步的過程中,曾面臨和解決過更為復雜的問題,在壓力下工作,無限延展他們創作性思維的能力。在理解復雜科技及其應用方面他們普遍有著相當聰慧的才智。在當今科技技術的時代,他們還只是孩子,因此技術的復雜性在他們成功的道路上并不算是一個阻礙。
真正的挑戰將是下面標題中的“競爭”和“協作”。
競爭與協作
我想軟件開發領域中的這兩個屬性它們自己可以論述清楚。在當今的技術領域中有一種現象已經非常普遍:相互競爭的公司之間的協作越來越多。
不久前,有人按照自己的想法開始了一項業務,并期待這個業務在十年后仍然存在。他們監守自己的想法,在貿易市場開辟了一個很小的地盤。他們銷售自己的產品和程序,增加一些特征,并尋找機會增加自己的生產線――-通常是內部產生的想法。當有競爭者出現時,他們將采取行動立即將他們趕出局。在一個小的市場,這是一個非常有效的策略。大拇指規則是:如果你首先獲取了一個市場,或者創造了一個新的市場,那你領導位置幾乎是不可能丟失的。當然也有例外,但是通常情況是要想趕出那個首領者是要花費相當大的精力的。
如果你看看計算機制造業就會明白這個例子是很顯然的。IBM獲得大型主機這個立足點,并維護了他們的領導地位。以前的競爭者,像Burroughs,Honeywell和UNIVAC都已經進入了不同的高科技領域。Digital Equipment在微型計算機中占有王牌位置。但是在微型機日益減少的情況下它們也從未成功地過轉到PC、工作站或者大型機的市場來。Sun微型系統在工作站市場占有領先地位,當他們在為有利可圖而努力掙扎時,在Unix工作站市場仍是首領位置。但是工作站和PC市場的邊界開始變得混亂起來。 1
計算機設備的制造是一個資產密集性的投資,像大多其它風險性大的制造業一樣。它需要原材料、供應鏈、裝配設備和許多特殊設備。軟件生產則不同。主要資源雇員提供的是智力資本。不是所有軟件公司的雇員都是開發者,事實上,大多數人都不是。但是人是軟件事業成功的關鍵因素。協作和競爭也是需要的,這些在軟件商業中很快都涌現出來。因為市場的需求不是更多一模一樣的軟件,而是更多的思想,更多的特性,更多創造性的應用和工具。僅僅投入更多到制造設備是不能滿足需求的,只有靠不斷的創新才能實現。
持續創新
在軟件產業中人們發現不斷得創新需要不同的模型。開發軟件就像做研究工作一樣。它需要在以前的工作上建立新的思想,尋找新的途徑來開發已知的結果,在已知認識的基礎上增加新的東西。它不是一個高預見性的規則,尤其是你在一個產品中增加新的行為和功能的時候更是如此。
由于開發者們已經學會競爭和協作,軟件公司已經在協作中競爭。我們已經看到諸如統一建模語言(UML)和支持它的開發工具的協作產生創新的例子。支持模型驅動體系架構(MDA)的工具是下一代建模工具。為了使這個工具對用戶有最大的價值,他們不得不堅持標準,共同操作。
新思想的一個新模型
前兩個協作的例子指出一個有趣的變換,即發生在標準領域的事情。多年以前,我們制定我們所知道的標準――那些我們已經使用了很長一段時間并且測定了它的穩定性。就像普通辦公用的訂書機:假如訂書針沒有標準,你不得不到訂書機賣主那挑選適合你的訂書機的訂書針。但是大約十年以前,我們制定事物標準的方法發生了改變。一些公司不是制定公共標準,而是將他們自己的執行標準作為進入競爭對手領域的手段。許多這種給新的概念制定標準的例子證明這是一個廣泛分布革新的一種阻礙。如果一個公司能夠將他們的實現“鎖定”成為一種標準,他們的競爭者是非常愿意花費時間來采取這樣新的標準的。因此,在增加他們自己產品上就損失了很多時間。在這個新的商業模式下是很難找到一個普遍接受的標準的,但是如果你能夠使你的競爭者們支持你的格式,你就占據了領先地位。當今這種現象是很常見的。如果你的文字處理器或者電子制表軟件應用不支持產業領導者的特殊格式,你將會十分惱怒。
當今,由于像對象管理組織(OMG)這樣的組織機構,我們看到了一個不同的模型。組織機構和個人很早就結合起來在技術生命周期的標準中融合了他們最優秀的思想。這為那些想要構建支持技術的工具創造了更高層次的平臺。 2 但是這個模式并不能保證成功。幾年過后,我從事于OSF的ANDF工作,那個工作其實就是為那些在沒有多種實現的需求下可以部署并在任何平臺運行的軟件提供包裝方法。 3 在這種工作中產生了一些有趣的想法,但是都沒有成功。事實上,一些屬于OSF的公司積極的工作就是為了使ANDF不成功。
這一切對那些剛剛開始他們商業職業的畢業生來說意味著什么呢?除非我們為他們做了很好的準備,他們也許可以認為開發軟件就意味著做所有的工作。像他們一些課程的安排,產生一個想法,就開始設計,實施,最后測試――所有的事情,從開始到結束都是靠他們自己,或者跟幾個朋友一起。如果我們使他們做好適當的準備,他們會意識到他們將成為一個大團體的一部分。他們將延伸軟件產品,可能創造出必須和其他人一起協作、遵守標準并且適合組織機構的產品生產線的產品。在這個過程中他們有足夠的創造空間,但是他們卻很少有機會開發一個完整的產品,從開始到完成,不用任何其它軟件作為主要的特性。
分布式
現在分布式開發團隊使很普遍的。部分原因是我們的系統變得越來越大越來越復雜。但是最主要的原因是當今可利用的支持分布式開發的技術遠遠比以前多。
可高速訪問的英特網讓一個工作人員在家工作和在辦公樓里的小房間里工作有同樣高的效率。這表明運用正確的技術,我坐在家里的桌邊用著我學校辦公室的計算機,就好像我坐在他們前面一樣。
組織機構已經為分布式開發小組找到很好的理由:
但是隨著越來越多的分布式開發團隊的出現,額外的挑戰也不得不在這里陳述。
靈活的團隊通過集中工作地點――所有人在同一個辦公室,一起工作,直接面對面的交流的方式來支持軟件的開發。這對一些類型的產品和開發環境來說是理想的狀況,但是它并不支持那些趨于分布式開發的團隊。因此讓我們暫且把“靈活的”這個標簽擱在一邊,僅僅認為它是有效的,快速交流和反饋對于團隊的成功來說是必要的。那么我們如何在分布式團隊中開促進這種特性的開發呢?
群件工具的演進
很可能的回答是:新的工具和現有工具變化的涌現支持了分布式團隊的開發。許多當今可利用的產品是值得貼上“群件”的標簽的。先前的群件產品在實際應用中有數據共享的特征。在最早提供的群件中,各種辦公設施和開發工具的設施要么很松散大地結合著要么根本就不可能結合成一個整體。團隊的工作人員遭受著生產和使用這些不相結合的工件的痛苦。在你所使用的開發工具的需求,和另一個群件編寫代碼的需求以及和另一個群件運行測試的需求之間跟毫無聯系。即使可能,要想在一個文本文件中嵌入電子表格或者圖表也是相當困難的。
第二代群件工具是將不同的應用軟件聯系起來。最終你可以在一個類型的文件中嵌入另一個。你可以根據代碼和測試跟蹤那些需求。缺陷已經提交,編碼的工作區和其它工件的變化作為解決方法的一部分被聚集在一個工作區為以后作為參考。但是當他們允許我們分享我們生產的工件時,它們在實際團隊工作中卻并沒有被調整好。我們通常是單個地使用工具,分配產品給其他人來觀察異步動作,因為這些工具在實際工作中并不能幫助團隊聯系。
接下來的一代群件工具是以通信問題為重點的。首批我用來支持一個開發團隊的工具是Groove,由Groove Networks開發。它允許一個地理分散的團隊電子視頻,并能很有效地協作。 4 正當我思考我們的經驗和Groove性能的時候,基于我對目前我的工具的看法,Groove所欠缺的一部分簡直令我大吃一驚。它居然沒有完整版本的控制系統,Groove的環境與我們的開發工具完全是分離的??墒荊roove卻可以使我們獲取視頻的機會,還可以使我們共享思想和幾種類型的工件。
Groove是第三代群件工具中一個很好的例子。它獲得了利用英特網通信的力量為我們的團體提供多媒體支持的優勢。然而當我們視頻時還需要使用電話,因為聲音傳輸協議是不可利用的。在近十年的頭幾年里已經有很多支持電子視頻和分布式團隊的產品進入了市場。你們大多數人可能或多或少地使用過。
協作開發環境
當今已經有更多先進的群件工具,我們已經了解了協作開發環境。有些群件在一起相互作用只有短暫的時間。比如VA Software生產的SourceForge。SourceForge并不支持實時視頻,但它有很多可以使開發團隊更容易地共享工件的功能,比起以前的工具它還能使開發團隊以更可靠的方式工作。
對于組織機構來說,他們有好幾個可利用的服務于協作開發環境的選擇。有些是完全開源的應用,比如Gforge, 5 但是像SourceForge和CollabNet提供的卻是商業資源。 6
我們在伍斯特理工學院的幾個年級和頂尖項目中將SourceForge企業版本作為中心環境工具。SourceForge的一個非常好的功能是它有一個可以和其它工具完整結合的API,并且可以擴展它的功能。
現在在協作開發環境方面有了更令人興奮的開發和研究。IBM有兩個我非常感興趣的項目,其中包括IBM Workplace。雖然不是開發者的專有環境,Workplace提供了能幫助各種類型的分布式團隊的技術運作的主機。這個讓每個人似乎都興奮的項目是 “Jazz”。 Jazz在IBM Rational 和IBM研究院為分布式開發團隊提供統一裝置工具中起到連接的作用。Jazz的概念在研究實驗室中已經有一段時間,我找到一個IBM Cambridg研究中心發布的Jazzing up Eclipse with Collaborative Tools文件,它是對這個工作的一個具有趣的介紹。 7
經常閱讀這個欄目的讀者知道我是一個Eclipse的愛好者。如果Jazz以Eclipse為基礎,我可以肯定它將對我和我的學生在軟件開發方面起到很大的作用。那也意味著我們可以根據我們的客觀事實自定義一個適合學術背景的環境。
Eclipse對工作組協作起到了很大的作用。其中一個項目計劃叫“Eclipse Communication Framework”(ECF)。這個項目的首頁上宣稱:“Eclipse Communication Framework(ECF)提供了能夠簡化具有互操作性、擴展性以及可靠性的分布式應用創建的 API”。這個框架對于幫助創建那些需要客戶端-服務器和/或P2P消息和通信的插件、工具以及完整的 Eclipse RCP 應用非常有。 8 ECF目前支持不同種類的聊天客戶端,共享編輯、VOIP以及其它機構通信。
在WPI我們已經開始了一個多年的項目,以創建一個分布式開發團隊的環境,在其核心將使用Eclipse,ECF, SourceForg以及其它工具和技術。 9 這個環境是專門為支持不同地方的學術團隊工作而設計的,既可以在校園內也可在世界各地不同學校間的協作中應用。
這將我們帶回了這部分最開始提出的問題?,F在的學生需要開發他們的技能,才能使他們在他們的電子環境中能更清晰地、更有效地和更可靠地交流。此外,這項技術將不會成為他們成功的絆腳石,而要通過學習如何清楚地陳述,如何明確表達好的想法,如何接受別人的批評以及如何尊重團隊成員的價值等來取得成功。這些技巧與他們現在在小的協作團隊中所使用的有很大的不同。
扁平的
如果你不知道這里提到的“扁平的”是什么意思,那你一定沒有讀過Friedman的書,The World Is Flat: A Brief History Of The 21st Century(《扁平的世界:二十一世紀簡史》)。 10 我建議你閱讀一下這本書或者至少讀一下去年晚些時候的Rational Edge期刊上關于這本書的一些評論。 11 簡要地說,Friedman描述了世界范圍內曾經發展不均衡的國家和組織機構是如何利用科技來平衡這個世界的。他敘述了世界變得扁平的意義,解釋了政府和社會能夠并且必須怎樣來適應這種變化。任何涉及與科技相關業務的人都需要知道這本書中所談到的話題。你也許不會同意Friedman的所有觀點,但是你一定會對當今任何工業中發生的全球化有新的見解。
無論是在商業還是政治歷史的發展中,我們都從未看到像現在這樣多的跨國際的協作。如果我們想要取得成功,就應該希望這種協作增加得更多,這比僅僅工作在分布式開發環境的協作要多得多。它包括不同文化的融合以及我們以前從未遇到過的協作努力。那些能夠利用世界鄰國的知識分子和基于知識資本的公司和國家將是未來幾十年的大贏家。Friedman對此作了令人信服的論證。
在這個世界變得扁平之前,我們應該去我們的世界鄰國旅行,了解他們的文化。我想我應該是比較幸運的,因為我已經去好幾個國家旅行了。我在國外住過一段時間,我已經能夠使自己適應不同的文化。我遇到過的很多我非常尊敬的人都到國外旅行并且居住過。我確信這種世界性的經歷跟我們的推論能力的那種開闊、開放的方式是密切相關的。只要有可能我就會鼓勵學生去旅行,體驗其它不同的文化。大學是一個可以看到“大熔爐”的很好的地方,因為學生們來自不同的國家,帶著不同的文化和文明。學生在學校這個受庇護的大廳里學習怎樣協作。但是親自去其它國家,在他們自己的環境中了解當地的人們和習俗是什么都無法代替的。
然而,正如Friedman所說,現在我們沒有必要為了與世界各地的人們協作或者為我們從未見到過的市場制造產品而親自去旅行。如果你想要為一個新軟件產品開始一個國際性的協作,你可以通過在諸多項目集合網站的其中一個上開始你的計劃,刊登廣告而很容易地找到協作伙伴。這并不困難。你可以找到一個事實上你從未見過的“商業合作伙伴”,這樣你就會成功!這花費的僅僅是知識、雄心和高速連接的英特網。
WPI的很多畢業生都曾經有過世界旅行的經歷。我們在世界各地,像倫敦、曼谷、悉尼、香港和威尼斯都有項目中心。這些項目的大多數是學生們的交互式合格項目(IQP),這對學生聯系社會需求或者對由科技發展引起的特殊問題的關注是一個挑戰。
面對這個扁平的新世界,我們還能為學生的準備工作做些什么呢?我們可以為他們在課堂和研究中提供更多與世界各地學?;蛘呓M織機構合作的機會。很多學校在某些程度上已經這樣做了。我們應該更多地增加這些機會,我們需要告訴我們的學生在這個扁平的世界,競爭和協作需要一個雙贏的途徑。我們不需要破壞競爭來取得成功,我們需要通過采取按照雙方的優勢互補投資的方法來達到協作的目的。
更重要的是,我認為我們這些教育家應該繼續慢慢對這些學生灌輸健康的、智慧的好奇心和思考問題的能力的思想。學生應該意識到學習是一個持續不斷的過程――一個令人愉快而又必要的過程。我們應該讓他們明白學習的真諦以及學習同我們一起所表現的價值。
我們應該教會他們如何創新,如何用他們的價值來評估思想并挖掘思想。他們應該明白這個世界上現在有很多人有這個能力來開發軟件。所以他們必須學會如何快速構建高品質產品。但是更重要的是,他們必須學會如何創新,如何在工作上比其他人占有優勢。美國和其它工業化國家的學生不能再依靠他們自己的信息基礎組織和工具來競爭了。所有人都擁有這些?,F在的學生必須學會重視創新,顯示出對卓越追求的熱情。他們要有想成功的意念,不僅僅是為了得到一份工作和領到薪水。世上也有很多的學生為了成功而寧可接受更低的工資。
在 扁平的世界 這本書一個章節中,作者毫不掩飾地向我們指出了這一點。Friedman 談論關于中國年輕人視野不夠開闊,看問題比較片面,他們只聽Bill Gates的演講。他們有向成功企業家學習的雄心和渴望。在這部分的末尾,Friedman用一個段落像老師一樣指點了我,也讓我脊背一涼。“在當今的中國,Bill Gates 就是Britney Spears。在當今的美國,Britney Spears就是Britney Spears――這就是我們的問題所在。” 12 目前,我們的學生沒有將兩者混淆,我也想要他們永遠都不會。