如何在開源軟體工作中做出貢獻


作者:Catherine Robson
出處:opensource.com
文章連結: https://opensource.com/article/20/10/open-your-job


公開展示你的工作‚你將為軟體開發人員提供機會‚幫他們將開發出滿足你需求的應用程式。


■ 圖片來源:Mapbox Uncharted ERG,CC-BY 3.0US (知識共享署名許可)

想像一下你的軟體完美營造出你的世界。它可以滿足你的需求、用你的方式做事‚這完美的工具有助於你朝向目標‚取得重大的成就。

開源軟體起源於滿足你需求的這些根源。有許多項目的建構在工程師們遇到問題‚接著建立解決方案去解決它。然後他們會將解決方案‚公開分享給其他人使用和改善。

很可惜的事‚開發軟體是困難的。並非每個人具有專業知識‚去完美開發出他們所需求的軟體。如果開發應用軟體的開發人員‚他們不完全了解用戶的需求以及用戶的工作方式‚那麼他們所建構的解決方案‚則可能會無法滿足用戶的需求‚並且可能意外造成彼此間很多鴻溝。

我最近在牙醫診所遇到這樣的一個例子。當我在椅子上候診時‚我不禁注意到牙科保健員(dental hygienist)需花費多少時間用這軟體敲著鍵盤‚為牙醫檢查做準備。所以我問她:「你覺得這個軟體符合你的需求嗎」?她回答說:「不符合我的需求‚這個軟體很複雜‚它永遠無法滿足我真正的需要」。

軟體無法滿足牙科保健員需求‚有部分問題的原因是‚開發這個軟體的人員可能不是牙醫、牙醫保健員、或者只是在椅子等候且沒任何牙醫知識經驗的病人。許多軟體公司在扮演著填補那些鴻溝的角色:產品經理、產品市場分析師、研究人員和其他主要在收集軟體需求原因的一些人‚他們會將所收集的訊息‚去告訴開發團隊‚軟體建構開發需要的是什麼。

而我們全都知道學習新領域的方式‚若從領域的外表去學習‚只是隨便的理解;要像專家般將新的領域從內部去學習它‚每天和這個領域生活‚並且真正了解它。越能真正接近真實「生活」體驗的開發團隊‚他們越能為特殊用戶和用戶的領域做出更好的決策。

開放原始碼(open source)具有共享正在做完成工作的精神。現在我認為是時候了‚將開放原始碼(open source)發展到一個新的水平:共享需完成的工作。領域專家(即是最終用戶)需要去分享有關他們要做什麼的訊息‚以便讓開發人員能開發出可以滿足他們需求的軟體。

如果你不是軟體開發人員‚這聽起來可能會讓人要為開放原始碼(open source)做出貢獻‚而感到不安。對開放原始碼(open source)做出貢獻‚意味著你需要編寫代碼、理解Git 或跨越其他技術障礙‚對嗎?其實不是必要的‚貢獻你的領域專業知識‚是開放原始碼(open source)重要組成部分。

你可以使用你已擁有的工具‚你就已經在社交媒體上了‚你可能已使用某種文字處理器。而且你擁有一個可以公開共享的公共環境(即使在COVID新冠肺炎時代‚這都要歸功於科技)。

公開展示你的工作‚為開源軟體貢獻的三個步驟


以下步驟‚可以幫助你開始為開源軟體貢獻而工作‚如此之下軟體開發人員就可以學習到你的領域 ‚並了解到你的工作和工作難處‚以便幫你開發出更適合你的軟體。

1.邀請軟體開發人員進入你的工作環境
做人類學研究是部分軟體團隊能照到你工作中蒙上陰影的地方‚這時你會被要求做像平常在工作日總要做的每一件事。像「暗中觀察者」‚軟體團隊在那裏觀察並了解你的工作方式。他們可能整天向你詳細詢問‚以深入瞭解你為什麼要做某些事。總體而言‚對你來說是非侵入性‚但對團隊而言是很有意義。

2.與軟體開發人員分享有關你工作的內容
在軟體行業中‚我們關注的往往是軟體本身‚而不是使用軟體。例如‚軟體需求可能是:「顯示牙科工作對已完成的牙齒做的歷史記錄」。這個假設是完成這件工作是需要軟體‚無論這歷史紀錄顯示在軟體的哪裡‚這歷史紀錄都是有用的。

對開發人員而言‚反而需要歷史紀錄的備份‚來確信他們完全了解這工作功能。例如‚有個需求可能是:在例行的牙齒清潔中‚發現到病人蛀牙。當病人仍在那裡‚牙醫需要知道對牙齒還要做其他的事‚對病人要想辦法去解決他的蛀牙的問題。在知道了牙醫此時需要完成的工作‚軟體開發人員可以開發出軟體‚使牙醫在帶著手套檢查中‚遇到牙齒問題能對問題做出輕鬆的選擇。因此‚當例行清潔牙齒的觀察時‚這時牙醫清潔問題選擇的軟體訊息‚是可以使用。

寫下你的工作的意圖和整個來龍去脈 ‚可以幫助軟體開發人員滿足你的需求‚而不是要你去執行任務。

3.使用社交媒體‚多分享有關你工作的視頻和解說有關你工作
使用你選擇的媒體平台(例如:YouTube、Reddit 等)去分享有關你工作上的訊息。
公開記錄和分享「生活中每一天」的視頻‚對開發團隊真正了解你做的工作和如何做這份工作‚對開發軟體團隊會有極大幫助‚以便他們可以開發出滿足你所需求的軟體。

公開放機會幫助開發出更好的軟體


公開展示你的工作 ‚你將為軟體開發人員提供機會去開發出更好的軟體。藉由共享有關你需要的內容‚讓我們將開放原始碼(open source)提高到新的水平。