民初思韻網

加入收藏   設為首頁
選擇語言   簡體中文
你好,請 登陸 或 注冊
首頁 人文思韻 傳奇人物 歷史思潮 時代作品 話題討論 國民思韻 民初捐助 賬戶管理
  搜索  
    人文精神 >>> 技術的天空 溫和的思緒
字體    

專訪 .NET 開源關鍵決策者潘正磊
專訪 .NET 開源關鍵決策者潘正磊
dotNET跨平臺     阅读简体中文版

微軟全球開發平臺事業部資深副總裁潘正磊是微軟核心開發工具Visual Studio.NET平臺開發團隊的領導人,1992年加入微軟,從一位工程師做起,歷練過多項微軟全球性技術和管理職務,3年前也兼任微軟亞太研發集團服務器與開發平臺事業部總經理,同時管理美國與中國兩地的微軟研發團隊,就連C#之父Anders Hejlsberg都是她的部屬。


潘正磊一手主導微軟Visual Studio開發團隊導入敏捷開發,擁抱DevOps思維,甚至她還是決定.NET開源的關鍵人物。


Q:你何時得知.NET要開源?

A:這是我的決定,而不是被告知。


Q:為何微軟需要這么大的變革?

A:原本大多是新創公司擁抱開源,但現在有越來越多大企業將開源視為戰略的一環。開源商業模式也越來越完善,可以透過提供服務的方式來建立獲利模式。軟件的代碼只是軟件其中一小部分的價值,更大的價值要靠服務(意指云端服務)來實現。


我們的市場競爭者Java也因開源而受到歡迎。比只靠內部.NET開發團隊的腳步,大量開源社區參與的創新速度可以更快,我們也有類似Java社區規模的.NET開發人員在微軟之外,只是我們沒有善加運用。


Q:你如何說服老板,例如微軟新任CEO Satya Nadella?

A:有次和我的老板也就是微軟云端和企業部門執行副總裁Scott Guthrie一對一面談時,我提出.NET開源的計劃,他也看到了上述類似的趨勢相當認同我的決定,甚至要求我提前3個月完成.NET開源的工作。至于Satya Nadella,我根本不需要說服他,他完全支持。


Q:決定開源之后,先做哪些事?

A:沒辦法在決定的第一天就開源,因為不是將所有的代碼開源,傳統桌面代碼還沒有開源,這是很大的剝離工程。另外,改用開源GitHub來管理代碼之后,如何確保全世界任何開發人員都可以使用,不論是編譯、構建、測試等工作流程都要重新考慮,等于是整套微軟軟件開發工程的重建。所以,我們花了很多時間研究Java的作法,才發現JDK也不是完全開源,例如得和Oracle簽署使用授權后才能取得代碼。


微軟第一個開源的程序是TypeScript,從中開始學習開源經驗,了解如何和社區共事,但還沒真正學到后開源的商業模式。后續才將C#編譯器(Roslyn)開源,然后再擴大到將.NET核心。采取漸進式一步步開源的策略。


Q:在微軟推動開源,最大的挑戰為何?

A:一開始最困難的是跟所有人解釋為何要這么做。例如得說服法務部門,如何避免微軟的知識產權,得向市場部門解釋,開源的必要性,什么樣的成功情境,才是開源的成果等。


另外,微軟有一套嚴格的知識產權規范,這個規范結構不適合采取開源,因此也有很大的調整,讓產品部門未來很容易可以開源。第一次想要開源TypeScript時的挑戰最大,等到了.NET開源時已經非常順利了。


另外在軟件架構上也需要調整,能將要開源的代碼單獨抽離,若釋出的代碼還需要其他未開源的相依元件才能構建,就等于無法開源。


Q:會担心知識產權權的問題嗎?

A:早在2010年時,微軟就開始嘗試將開源軟件放入自家產品中,但會盡可能采取最安全的方式,斥資進行知識產權來避免發生問題,甚至還會考慮,萬一有問題,多快能把開源軟件從產品中移除。


但是,現在,沒有人會再担心這類的問題。倘若是在對外的服務中使用開源軟件,部署在后臺環境中就不會有任何知識產權的風險。但若要放入盒裝軟件還是會有風險,因此,我們不會考慮任何Copyleft的授權,如GPL


Q:開源后,對微軟工程師有什么影響呢?

A:3年前,微軟工程師若要看一眼開源代碼,都得經過3道申請程序,得獲得我的同意,他們才能看。因為微軟經歷過很多侵權官司,為了避免工程師犯錯,因而設置了很多壁壘。


現在微軟工程師要“看”開源代碼,不用獲得任何人的同意。只有要將開源代碼放入產品時才需要批準。


當我們第一次將代碼放上GitHub時,工程師們都非常緊張,還將代碼中所有的注解都看過一遍,深怕寫過什么罵人的話或隱私要趕快刪除,后來就習以為常了。


Q:開源對微軟開發流程上又有什么影響?

A:過去微軟設計產品只需和內部溝通,現在得和社區合作,這是一個全新的工作模式。開源社區貢獻的代碼如何和套裝產品整合,也需要新的流程。擁抱開源最需要的不是調整組織,而是要改變工作方法。


Q:為什么需要改變工作方法?

A:因為這是一個全新的模式。倘若微軟仍然采取傳統的瀑布式開發流程,就不可能開源。瀑布式開發流程是一個全權控制的模式,可以自行決定代碼開發完成的時間點,再來安排后續測試團隊的工作排程。


過去,微軟開發工作是計劃性的,但在開源之后,無法預估有多少人有興趣貢獻代碼。開發社區貢獻的代碼越多,就得投入愈多人力來審視提交出來的代碼品質。


代碼開源之后,不論是誰貢獻的哪一段代碼,盡管是完成度很高的代碼,幾次開源經驗來看,都需要進一步檢查如代碼一致性或相依性等。


Q:在這種非計劃性的開源工作模式下,要如何確保產品的品質?

A:開源釋出的代碼任憑社區使用,但是,要成為微軟的產品,會有另一個我們認證過的發行版本,就像RedHat Linux也會發行不同的版本一樣。

或者像GoogleChromiumChrome的作法一樣,作為產品發布者,我們有權決定哪些社區貢獻的代碼能放入最終產品。


Q:代碼開源后,對微軟帶來哪些好處?

A:跨平臺是未來的大趨勢,能讓Runtime跨平臺,對所有開發人員都是福音,因為只要寫一套代碼就能在多個平臺上使用。


.NET沒有釋出,只有微軟自己能進行跨平臺支持,但微軟不可能支持所有的Linux平臺,開源釋出后,可以讓其他人針對不同平臺修改。


這也是一種變相的群眾外包,讓開發需求靠社區快速得到解決,而不用依賴廠商解決。


Q:微軟長期開源策略是什么?會將所有產品都開源嗎?

A:我覺得,微軟不需要將所有程序都開源,而應該是選擇性地開源。首選是Runtime開源,其他則是要看需求程度來釋出。例如.NET開源之后,在GitHub上受歡迎程度比C#編譯器高很多。


長遠策略是來自當下所知,目前,我認為,開源最重要的是Runtime開源,從開發過程來看,工程師能夠知道底層Runtime的代碼怎么撰寫,有助于調校代碼,改善軟件效能。但是,對于工具軟件的代碼,軟件工程師不一定有興趣。工程師傾向于使用一個好用的工具,而不一定會要求工具也要完全開源。


就像小孩成長過程,要先會爬之后才會走,能走之后才會跑。在開源之路,微軟才剛剛學會走路,但距離會跑能跳還有很長一段路。

2015-08-23 08:48

歡迎訂閱我們的微信公眾賬號!
春秋茶館訂閱號
微信號 season-tea(春秋茶館)
每天分享一篇科技/遊戲/人文類的資訊,點綴生活,啟迪思想,探討古典韻味。
  清末民初歷史人物  民初人物
高文費而隱 古德潔無華
楊霽園先生是民國時期寧波的一位大儒,一生致力于教育、述著,著作宏豐,在國學、文學等方面成就卓著,更兼他品行方端、至誠至孝,自1940年去世后,鄉人及門生一直追思不息。但楊....
晚清改革家強權人物
袁世凱(1859年9月16日-1916年6月6日),字慰亭,號容庵,河南項城人,故又稱袁項城,清末民初的軍事和政治人物,北洋系統的領袖。袁世凱出生於清咸豐九年八月二十日(....
資助民初精神網
        回頂部     寫評論

 
評論集
暫無評論!
發表評論歡迎你的評論
昵稱:     登陸  註冊
主頁:  
郵箱:  (僅管理員可見)

驗證:   验证码(不區分大小寫)  
© 2011   民初思韻網-清末民初傳奇時代的發現與復興   版權所有   加入收藏    設為首頁    聯繫我們    1616導航