! This post is also available in the following languages. 英語, 日語, 韓語

LINE Open Source Sprint 2021:打造有助於開源的文化

你好。Open Source Program Office TF(Taskforce)。LINE 高度仰賴 Open Source 已不是什麼秘密,但我們的團隊正在努力確保 LINE 的工程文化與開源文化緊密融合。

如果您是在 LINE 這樣的環境中工作的開發人員,您可能至少想過以下幾點。
“啊……總有一天我得抽空為開源做貢獻……”
這個想法很快就會引向下一個。
“但是我們從什麼開始,從哪裡開始……”
鑑於很多人都有這種煩惱,卻不知道該如何開始。我們的團隊已經準備好為開源做出貢獻,我們計劃舉辦一次內部活動。

在這篇文章中,我想給大家介紹一下發生在 2021 年底的 “LINE Open Source Sprint 2021″。

這是什麼活動?

LINE Open Source Sprint 是一個專案,工程師們在短時間內聚集在一起,為特定的開源專案做出貢獻。

LINE 發布了大量開源專案,2019 年我們正在為Armeria項目進行短期開源貢獻指導(Armeria Sprint ) 。那時,渴望為 Armeria 做出貢獻的人聚集在一起討論、討論、實施和提交 Pull Requests 來提供貢獻與解決問題。三年過去了,在當時的代碼貢獻之後,依然有開發者繼續穩定地貢獻。最初,他們從初學者的角度參與該項目,但現在當時參與的開發人員可以支持該項目。

雖然我很高興在看到這一點的同時能夠策劃一場活動,但我擔心的事情有很多。比如前面提到的,LINE 發布了“很多”開源,但其中之一就是其他項目也需要貢獻者。

基於此,在本次 Sprint 活動中,我們將參與對象擴大到了 LINE 發布的整個開源項目。

LINE上發布的開源大部分是根據公司的需要開發,然後根據需要開源發布,但第一個用戶當然是公司的員工。。。因此,如果您在與多個團隊一起開發各種服務時嘗試使用這些開源,您很容易接觸到對開源項目有貢獻的問題,例如創建您想要添加的新功能或查找錯誤。喜歡。此外,維護者就在 LINE 的開源項目旁邊!它還具有存在的優勢(當然,雖然現在很遠)並且能夠提供很多幫助。

所以,我們今年舉辦的活動大綱如下。(LINE Open Source Sprint 2021 )

期間– 招募參與項目:1 週
– 準備要解決的問題:2 週
– 招募參與者:1 週
– 實際開發週期:3 週
參加對象– 專案:開源發佈者為 LINE
– 專案參與者:LINE 組織中的任何工程師

你是如何進行的?

專案招聘

活動參與分為專案參與和對應問題的參與者,為把握活動規模,先啟動專案方招募。預計會有一些人不熟悉參加這樣的活動,所以這次Sprint活動的大綱和目的以及所有LINE開源項目維護者的項目維護者。我們抽出時間來解釋人們扮演什麼樣的角色需要。之後,我們調查了哪些開源項目需要貢獻者的需求,以及在當前情況下我們是否有能力接受新的貢獻者,結果一共有四個項目——  ArmeriaCentral DogmaDecatonLINE FiDO 伺服器專案 加入本次 Sprint。

問題準備

在活動之前,我們準備了一些初始問題 ,如果您是參與的工程師,即使您盡力而為,也可以提交一次 PR。即使您有興趣為開源做出貢獻或擁有大量使用開源的經驗,在您真正實現為開源做出貢獻之前仍然存在很大的障礙。因此,項目的維護者提前為初學者準備了一些問題,並著手進行降低參與門檻的工作。以這種方式為初學者預先準備的問題被標記為“good-first-issue”或“first-timers-only”,並以易於理解的方式顯示。還可以根據準備問題的數量和規模來確定最大參與者人數。

順便說一句,有一個關於 Good First Issue 問題的有趣事件。在我提前為 Sprint 活動創建 issue 的時候,項目的外部貢獻者首先接觸到了這個 issue,為本次活動準備的 issue 穩定的消失了。所以,在重新思考了應該是問題的問題之後,最終我們沒有將它們註冊為 GitHub 上的問題,而是將應該解決的問題通過僅向參與者解釋的方法分發。

參加者募集

接下來,我們為一般參與者舉辦了活動說明會以及項目招募。
由於 LINE 的工程組織分佈在各個國家,因此我們準備了韓語、日語、中文和英語的翻譯。我們想藉此機會感謝負責翻譯的支持機構和翻譯人員!

在說明會上,我們解釋了本次活動的大綱,參與者的角色和成就,並抽出時間聽取了過去參加 Armeria Sprint 的人的印象並鼓勵他們參與。說明會結束後,每個項目將按照先到先得的方式接受參與申請,活動將在三週的工作時間內進行,我提前給大家介紹了內容。

發展

開發終於開始了。

首先,對於每個項目,參與者和維護者聚集在一起進行自我介紹,並留出時間討論項目和進度感。但是,由於 COVID-19 的情況,我們只能通過屏幕看對方的臉。起初,我們認為溝通沒有特別問題,因為我們完全適應了在家工作,但首先,活動的目的是“幫助不知道獨自去哪裡的人”。因為至此,我的擔憂逐漸加深。因此,在進行開發時,我們制定了以下規則。

  1. 開發將盡可能在工作時間內完成。→ 已提前通知參加者所屬組織的負責人。
  2. 如果可能的話,在設定的時間聚集在 Gather Town 的虛擬空間中。
  3. 項目維護人員在虛擬空間中等待時繼續他們的工作。
  4. 參與者可以自由地與等待的維護者交談並提出問題和討論。
  5. 除了開發之外的交流是在 Slack 頻道上進行的。

曾經有一段時間,當第一次完全執行在家工作時,遠程會議有點尷尬,但 Gather Town 的虛擬空間中的交流不是像那個時候一樣尷尬嗎?一開始我以為。不過,由於他們還是為了一個共同的關注而聚集在一起的人,他們很快就適應並開始看到他們是如何積極創建一個討論論壇的

一場熱烈的討論正在進行中。還有”你友善的好鄰居 (蜘蛛人) ”!
即使在虛擬空間中,我也對決定每張椅子和桌子並坐下來開發的外觀印象深刻。 (微笑)

概括

經過四個星期的開發期,每個項目都選擇了 Sprint 最活躍和最活躍的成員之一作為 MVP (Most Valuable Player) 。所有參與者齊聚一堂,為MVP獎頒獎,分享他們的想法和簡短的回顧,並結束了活動。

我們分享了成果,就參與的印象和活動的進展交換了意見。

我們將獎杯交付給了努力工作的維護者和 MVP。

我們還製作並交付了 2022 年日曆作為參與紀念品。

你為什麼決定舉辦這樣的活動?

本次活動以三個主要目標開始。

1. 創建一個環境,​​即使在您的日常工作時間內,您也可以開發和貢獻開源代碼。

LINE 在各個領域利用開源。因此,我們認為,理想情況下,開源開發和貢獻應該在日常工作中進行。如果您不使用、修改或為上游貢獻開源程式碼,您可能會卡在該版本無法升級,並您開發的內容無法再次利用。如果我們不做出貢獻,就無法影響開源發展的方向。

這是一個真正的問題,但從形成工程文化的角度來看,每天開發和貢獻開源作為一項業務也很重要。LINE強調的發展文化關鍵詞是“成長”。在談論開發人員的成長時,開源是必不可少的。為了創造一種讓開發者成長的開發文化,我們認為我們必須在我們的業務中自然地利用開源,並營造一種有助於開源發展的氛圍。

2. 讓人們了解開源貢獻流程並讓他們親身體驗。

我們的團隊創建和運營各種開源政策和流程。然而,再好的措施,如果沒有 LINER 的知識,它們是不可能奏效的。通過本次活動,我們希望讓參與者了解 LINE 的開源政策,並創造一個親身體驗的機會。您可能認為,與員工總數相比,只有極少數的參與者會通過我們的措施獲得知識,但這次活動的參與者是各個部門的同事,我們希望他們在傳播我們的措施方面發揮重要作用(相信,大家!)。

3、補充LINE開源開發所需的人力資源

開源開發可能是一場孤獨的戰鬥。周邊地區期望值很高,參與者人數很少(甚至一個人),而且總是有很多工作要做。我以為在這種情況下維護者的幫助會得到一群團結一致的人的幫助。雖然這個活動是從初學者開始的,但另一個目標是結交會穩步貢獻而不鬆懈的朋友。

此外,當您考慮這一點時,有一天您可能會有一個外部貢獻者,而不是下一個座位的同事。通過這次活動,維護人員能夠看到他們必須為貢獻者註意的事項以及他們無法在文檔中提供的內容。這種準備工作將為潛在貢獻者輕鬆加入項目奠定基礎。

事件的結果是什麼?

以下是本次 Sprint 活動的結果。

25 名參與者共提交了 24 個 Pull Request,其中 12 個在活動結束時被合併!在活動結束後,Pull Request 得到了穩定的消化,到 2 月中旬,當我寫這篇文章時,總共有 20 個合併。我們為活動結束後直到最後都沒有放棄的參與者和仍在努力的參與者鼓掌。

接下來,我們來看看參與者所做的貢獻類型(一個 Pull Request 可以包含不同類型的貢獻)。

New featureDefectBreaking changeImprovementDeprecation
175221

其中“New Feature”相關的貢獻最多,也增加了新功能,其次是與 “Defect” 相關的貢獻,解決了問題。與提高性能的“Improvement”、改變兼容性的“Breaking Change”和棄用現有的“Deprecation”相關的貢獻是新的,因為如果不深入了解項目結構,它們就無法推進。可能有點挑戰為貢獻者。但是很開心還是有人在這個場合完成了相關的工作。

以下是活動結束後進行的問卷調查結果(僅限最熱門的答案)。

満足度滿意的部分令人失望的部分
很滿意43.8%與人的互動和關係62.5%上班時間參與25%
滿意56.3%參加營業時間37.5%對自己的結果不滿意25%

對結果滿意的人37.5%

有趣的是,即使因素相同,每個參與者的滿意度也不同。事實證明,有些人認為參加工作時間會更好,但其他人對此感到抱歉。畢竟,我發現很難讓每個人都滿意。

最後

此次活動結束後,我們與參與者合影留念。與第一次簡報會不同,我們能夠堅定地看到彼此,並為作為一名主持人感到自豪。最後,分享許多參與者回饋的意見。

  • 通過這次活動,我能夠為開源做出貢獻。我希望每年都舉辦這樣的活動。
  • 成功後,有時我想嘗試其他問題。
  • 我工作接觸的部分並不是開源,但它是我一直感興趣的技術。藉此機會,我了解了相關技術,這對我的工作很有幫助。
  • 維護人員好心地幫助我實現了它。這是一次非常好的經歷,我希望你以後還有機會。
  • 我以前只使用了我工作的一小部分,但這次我對其他重要功能有了很多了解。將來,這將是一個在商業中更好地使用它的機會,我對為開源做出貢獻有了信心。
  • 我決定參與其中,以閱讀我僅在工作期間使用的源代碼。我還沒有完成我的工作,所以我想繼續工作。
  • 交流方面,由於屏幕共享的多樣性,我能夠直接展示源代碼,並沒有感到太大的語言障礙。
  • 上一屆 Armeria Sprint 賽事是線下舉行的,但當時被困在一個會議室空間中,被扣留了很長時間。所以,這很困難,因為我必須專注於一個機會,但這次我能夠在不面對面的情況下走得慢一點,也輕鬆一點。
  • 有趣的是,我決定利用虛擬空間進行交流。我其實是呆在那個空間裡,花了很多時間,如果有故事要單獨做,我又抽時間聊了聊,所以我盡量把故事分開。
  • 做這個工作肯定是個負擔,但是大家都參與的這麼辛苦,有的時候還可以合併Pull Request,所以我覺得大家都很難。
  • 儘管我是一個初學者的開源維護者,但我很高興能夠通過這次機會體驗到更多關於開源管理的知識。
  • 我希望這將是一個穩定貢獻的機會,而不是一個短暫結束的事件。即使從維護者的角度來看,我也無法知道一切,但是當我收到這樣的貢獻時,我可以注意到我還沒有考慮過的部分。所以我真的得到了很多幫助。
  • 我認為在 VR 中嘗試會很有趣(笑)

    回首往事,面臨即將到來的 2022 年!我覺得我必須準備一個充實的活動。這不正是你在做開源相關工作時獲得最強勁動力的時刻嗎?那一刻充滿了互相支持,互相鼓勵,再努力的眼神。有能力看管的我們也很享受。未來,我們將努力創造一個可以與盡可能多的人一起工作的環境。感謝大家的辛勤工作!