Alt.NET Conf
2007 年 10 月 9 日
上個週末,我參加了 Alt.NET 大會。這是長期以來我在部落格圈觀察的一群人第一次舉辦的聚會。一群長期使用 Microsoft 技術的使用者,他們覺得自己的開發哲學與 Redmond 認定的正統觀念越來越脫節。儘管有些人考慮離開,但這群人熱切地希望留下並試圖影響 Microsoft 的世界。
術語 alt.net 由 David Laribee 在他的部落格中提出。大會採用 OpenSpace 進行組織,我認為這種風格特別適合這個社群的性質。我並非聲稱代表這個社群或定義它;這些話是我根據所見所聞所做的詮釋。
另類
出現的一個問題是另類這個名稱。這讓一些人感到不舒服,因為這暗示他們是一個反對 Microsoft 的團體。對「另類」的不同看法是,它是一種擁抱選擇的事物。許多社群相信擁有許多另類選擇會讓他們更強大(Unix 社群就是一個例子)。在軟體開發中,很少有一種解決方案適用於所有可能的情況。擁有另類選擇確實表示你必須思考哪種解決方案最適合你的情況,但我比較喜歡這樣,而不是試圖用鎚子轉動螺帽。是的,這確實表示個人經驗和偏好會導致不同的選擇。我們可能是程式設計師,但我們仍然是人類,而不是具象化的演算法。
alt.net 的思維模式對我來說非常熟悉。它結合了敏捷 + 物件導向 + 模式 + TDD + DDD,這正是我所偏好的軟體開發學派。(由於缺乏適當的名稱,我傾向於稱它為 OOPSLA 軟體開發學派。)目前肯定有一種主流的 Microsoft 正統觀念,它不符合 OOSPLA 學派。這會帶來一些挫折感。但重點在於,alt.net 社群並非認為應該抹去既有的主流 Microsoft 路線,而是認為 Microsoft 世界足夠大,可以容納不同的方法。
除了討論「替代」是否是一個好名稱之外,還討論是否需要一個名稱。作為一個強迫性的 新詞彙 製造者,你應該不會驚訝地發現,我認為一個名稱是有用的。顯然這裡形成了一種常見的軟體開發風格,給它一個名稱可以更容易地討論它。不可避免地,有些人會對創造術語感到厭煩,但我認為其有用性大於這種反對意見。
參與式社群
alt.net 的一個重要特點是它是一個參與式社群。傳統上,當使用者大會聚在一起時,供應商負責議程。大多數會議都是供應商向社群展示如何使用其提供的工具。好的供應商會傾聽其客戶社群的意見,並透過開發符合其社群願望的新產品來做出回應。
參與式社群有所不同,他們不只是希望供應商傾聽並提供合適的產品 - 他們希望參與新產品的開發。正是一個這樣的參與式社群在 Java 世界中採取了主動。JUnit、IBatis、Spring、Hibernate 等並非來自供應商,而是由「客戶」開發的。軟體產業的本質之一是,許多客戶與供應商公司一樣有能力生產重要的產品,特別是在結合了社群和開放原始碼精神的情況下。
微軟未來面臨的重大問題是如何與像這樣一個參與且意見分歧的社群互動。將這樣的社群視為對手,將會失去有價值的產品,更重要的是與他們相關的有能力的人。與這樣的社群互動帶來極大的機會。我認為,參與企業 Java 的社群已經拯救了企業 Java 平台。微軟在所有這些方面面臨的一項重大挑戰是,這意味著要找到一種方法來適應開源開發。最近的跡象,特別是圍繞 Iron Ruby 的跡象,表明至少微軟的一些部分正朝著正確的方向前進。
朝著正確方向邁進的更多跡象是 Scott Guthrie 展示的 ASP.NET MVC 框架(另請參閱 Scott Hanselmans 的影片)。這對我來說非常有趣,不僅僅是因為產品本身,它似乎沒有任何特別創新的地方(這並不是抱怨),而是圍繞它的哲學標誌。
首先,Scott Guthrie 承諾參加這樣一個小型會議來展示此產品。接下來是圍繞可測試性的明確設計目標。增加豐富的醬汁,清楚地理解和學習此領域的其他工作。添加可插入性的裝飾,允許框架與非 Microsoft 工具一起使用並鼓勵擴充套件。許多與會者表示,自 .NET 以來,他們對產品公告還沒有如此興奮過。
這也是「替代方案」的一個很好的例子。MVC 框架並非旨在取代 Web 表單,程式設計師可以選擇使用 Web 表單或 MVC。
像這樣的社群中的另一個問題是,它是一個不會將批評等同於敵意的社群。許多供應商都深受這樣一種觀念的困擾,即任何批評他們的人都是他們的敵人。事實上,你的朋友往往在他們批評你的時候最有價值。像任何大型公司一樣,微軟可能會表現出矛盾的反應。組織中肯定有部分人認為朋友永遠不應該批評。與參與式社群合作的一部分是學會重視友好的批評。同樣,社群中的人們也需要學會如何批評而不刻薄——這在我們的職業中是一種特別罕見的品質。
獨家社群
在部落格圈中,關於 alt.net 社群是否是一個排他性的社群(以負面的方式),一直存在一些爭論。我發現一個有用的思考方式,就是一個在會議中出現過好幾次的疑問。人們應該成立獨立的 alt.net 使用者群組,還是應該嘗試影響並改變現有的使用者群組?我的答案是「兩者皆可」。一個專注的 alt.net 使用者群組會設定一個關於討論材料以及奠定群組基礎的價值觀和原則的期望。從事這種開發風格的人需要與其他從事這種風格的人交談,以便他們可以向他們學習。我已經從事這種風格十多年了,但我仍然有許多東西要學習。專注聚會的優點是我可以專注於這種類型的內容。
一個專業的 alt.net 使用者群組只有在嘗試排除其他人時才是排他性的。alt.net 會議並非排他性的,因為至少在會議額滿之前,任何人都可以參加。只要 alt.net 使用者群組願意接受任何人,這是一件好事。
同時,對於 alt.net 人員來說,參與更廣泛的 .NET 社群也很重要。我鼓勵這種開發軟體的風格,因為我真心認為它很有效。因此,我認為我嘗試向盡可能多的受眾傳達如何以及為什麼這樣做很重要。這樣,其他人就可以接觸到這些想法,並有機會了解這些技術,以便他們可以選擇是否要嘗試這些技術。我預計會看到許多 alt.net 人員希望在各種以 Microsoft 為導向的會議上討論這些技術以及他們使用這些技術的經驗。
我對 alt.net 社群寄予厚望。我相信這種社群對於 Microsoft 生態系統的可行未來很重要,而且我想要一個健康的 Microsoft 世界。我希望 Microsoft 參與這個社群,這樣許多領先的 Microsoft 人員就可以很樂意地表示自己是 alt.net 人員。我希望 alt.net 人員可以在維持自己和對進入社群的人保持開放之間取得微妙的平衡。我希望我可以在促成這件事上扮演一個角色。在這次第一次會議中,有一種很棒的精神,這為未來提供了許多良好的燃料。