在 g0v 專案當 PM — 開源社群與 NGO 的混亂有序開放協作|Disfactory 農地違章工廠回報系統

Yun Chen
16 min readSep 2, 2020

閱讀時間約 6 分鐘,以及這是寫於 2020 年 4 月底的舊文,壓箱太久無力修改直接上稿。感謝曾對本文提出建議的朋友,四個月來又發生很多事與新的人加入專案,可能年底之前再寫一篇文章,感觸已經與當時十分不同。

Disfactory 小聚照片

三月的某個星期三晚上十二點,還有六七個人在辦公室瘋狂解程式的 bug 和準備隔天的記者會,再三確認產品介紹網頁和 demo 影片,桌上散落著零食和飲料。看起來是個科技產品發佈會前晚正常的手忙腳亂,只是大部分的人都是沒有領薪水的志工,產品的預估盈利為零。這是農地違章工廠回報系統 Disfactory 正式上線前一晚,這些開源貢獻者和地球公民基金會的職員熬夜趕工不是為了 IPO,而是為了推動政策落實,讓台灣的農田避免被高污染的違章工廠污染、避免不安全的工安事件。任何人只要打開網頁,上傳照片和標定地理位置就可以回報疑似違章工廠。

2019 年 7 月,環保 NGO 地球公民基金會媒體推廣組的小海到 g0v.tw 台灣零時政府的黑客松提案,希望能做一個網路平台,方便在地民眾和環保團體匿名、快速、精準舉報農地上的違章工廠,在工廠輔導管理辦法公布後,由地球公民基金會統整後向各地地方政府舉報,對高污染和新建的農地違章工廠即報即拆或斷水斷電。台灣目前約有 5 萬間農地違章工廠。

截圖自 https://disfactory.tw

公民科技 g0v 社群有 NGO 來提案不是新鮮事,比較難得的是馬上聚集很多人參與討論,並且現場開始釐清需求、畫服務架構與操作步驟,更難得的是約莫有十個人每週持續參與開發八個月,最終把產品推上線,上線一個月有約 120 件疑似違章工廠回報,其中送出超過 30 件公文給地方政府。

攝於 20190720第參拾伍次最旁邊黑客松 CC-BY 2.0 @ 小涼 on Flickr
攝於 20190720第參拾伍次最旁邊黑客松 CC-BY 2.0 @ 小涼 on Flickr

以議題的倡議工作來說,一切剛起步,還看不出來對政策影響的成效如何。然而,以產品開發來說,現在達成了 MVP(最小可行性產品)的階段性目標,是個適合回顧過去產品開發過程的時間點。

我希望以這個開源協作團隊中產品經理的角色,整理在 Disfactory 專案中,開源社群和 NGO 如何一路扶持走到現在,怎麼為這樣鬆散又有死線的產品開發保持動能和歡樂。這篇是寫給想要或正在嘗試連結開源社群與 NGO 一同合作專案的夥伴,開啟討論和經驗分享,促成台灣更多有長期影響力的公民科技專案。

由於我並不是地球公民基金會的給薪職員,我會從開源社群參與者的角度出發,並且歡迎其他團隊成員吐槽。

為什麼需要一個 PM?有死線又要歡樂開工

七月黑客松的時候,我看到現場那麼多人踴躍參加、有模有樣的討論,覺得這個專案不需要幫忙了,是在九月網路星期二 ddio 和哲瑋的演講「NPO/NGO 能和開源社群,協作出哪些可能?」結束後,我才意識到這個農地違章工廠專案需要一個產品經理,需要一個懂 NGO 倡議語言也懂產品開發語言的人來 coordinate,降低溝通成本,才不會一直鬼打牆。

Disfactory 這個專案要用 g0v 社群開放協作的架構來做,本質上是一件困難的事。

因為地球公民基金會有政策倡議的目標和既定死線,當時所獲得的資訊是 2020/1/1 工廠輔導管理辦法母法會公布(?),網站需要在那時上線獲得最大曝光量。然而,開源社群的參與者來來去去,能貢獻的時間有限和浮動,大家也是沒拿錢做開心的,很難準確估計開發所需時間。

2016 年, g0v 參與者 ETBlue 和 Ipa 有做了 Blupa 量表,讓大家評估一個專案適不適合用 g0v 的方式開放協作。根據 Blupa 量表,分數越高越不適合,這個專案的分數是很不適合的(大部分都在 1.5 的分數左右吧)

圖片改自 Blupa 量表 ETBlue & Ipa / CC BY 4.0 ,Blupa 量表完整投影片連結
  1. 因為有明確死線,就是政府法條公布的時間(不過好險地球公民基金會說來不及也沒關係,可以再找之後的新聞點公布)
  2. 不是一個人可以自幹,需要多人跨界協作

專案本質上開放協作是困難的,但至少產品面是有真實需求的產品,不是在黑客松空想需求而已。地球公民基金會已經每週都會收到數件農地違章工廠舉報的信件或是電話,也有合作的在地環保團體可以鋪展違章工廠回報行動。

以下會分析在 Disfactory 開發過程中,我在注意的四個面向:

  • 社群:讓每個參加專案的人覺得有趣和有所成長、參與的人可以擴大、串連開源社群資源
  • 培力:NGO 數位開放協作培力、開源社群與 NGO 合作經驗培力、可持續性
  • 倡議目標:監督政府落實政策、促進民眾參與、了解議題
  • 產品:死線前要做出來、使用者買單會用

剛參與專案時,我很專心處理產品技術細節,到現在產品反而是被我放在最後面的,產品本身好不好還是很重要,只是需要先達成前面三個目標。

社群:把人聚在一起讓他們發光

經過八個月的合作,我很愛這群參與的開發團隊,他們是我能夠放心把背後交給他們的夥伴。

議題研究、使用者推廣、媒體曝光、運營等部分,地球公民基金會的研究員和媒體推廣組都會專業處理好,成敗也是他們背。至於維繫每週開發小聚很重要的場地、食物、歡樂,地球公民基金會也是準備得滿滿的。我後來也學會請他們支出必要的數位服務支出和使用者調查交通費。

核心開發的工程師和設計師,是被提案人小海的魅力(?)和議題的重要性擄獲。我喜歡小海在 g0v 黑客松提案的原因是,這個 NGO 很清楚自己的目標和議題,報告直切要點不冗長,讓我們知道這個議題的概況和挑戰,因此相信我們只要幫忙解決技術問題,就可以大力幫到該議題的倡議推動。一開始有地政、圖資、前端、後端、服務設計等等專長的朋友跳下來幫忙,很可惜在開發的過程中有些夥伴時間不夠或是施不上力而淡出。開源專案我們沒辦法挑人,只能想辦法擴大參與,然後讓每個人在適合的位置上發光,彼此互相學習,例如沒畫過 UI 的服務設計師學會 UI 設計工具,還多拉了其他設計師一起跳坑。 PM 有時候還是得要做會傷害團隊成員感情的決定,例如專案一開始發現事態不對,緊急去拉 senior 的工程師來支援後端架構和部署等。

我很小心翼翼不要讓工程師和設計師的負擔太重,希望控制他們雙週參與時數在 6–12 小時內,基本上就是每兩週只壓一個重大 item,然後期望花兩週的時間完成共 2–3 個 ticket。當然團隊成員想要多做可以多做,所以我盡量會預先排好這個和下個 milestone 的目標和 issue,讓大家可以調配時間超前往下做,或是為之後預留時間。老實說,我非常感謝每位參與者,因為上線前還是免不了超時 debug。所以我比以前全職當 PM 時砍了更多功能和需求,因為我知道我們更沒時間,要留時間設計、測試、解 bug、迭代改進等等,不可以貪心把大家操死就沒人來了,還好我們工程師都很罩。

不過,社群參與最重要的還是要好玩、要有意義。

有時候小聚會發散到一些哲學層級的討論,或是討論時事或分享生活點滴,這樣的情感分享也是很重要的,大家不只來做事,而是來見朋友的,就算沒進度來吃吃喝喝也很開心。

但開源參與者最核心的快樂是建立在貢獻的快樂上,可能是玩一個新技術、嘗試一個新的想法、看到真的有人使用該功能。

所以我不會把 issue 全部定死,因為 PM 也不會知道全部該做的事情是什麼,團隊成員自發提出他們想做什麼是非常重要的,這樣才是一個團隊,大家對自己提的問題和解法會最有動力去做。這邊的 PM 訣竅就是要巡田水勤回 GitHub、Figma 和 Slack 等協作平台,要讓大家做完有成就感,很快感覺到反饋——他做的工作有被看見和尊重。提新功能也盡量要有數據、邏輯和使用者回饋支撐,並且讓每週的進度是可視可感的,盡快把使用者的使用情形讓團隊周知。但很多時候我自己忙到沒時間所以我裝死,開會前半小時才去驗收 ticket 和列出當天要討論的事項,這時候就要靠團隊互相接球了。所以不需要私訊說的,我都請大家一律去公開頻道,開源社群專案不是跟 PM 報告,而是對社群負責,不然我掉球就很麻煩欸。(懶惰有時候真是科技業的最高美德)

我其實還算是滿菜的 PM,這時有開源社群的識途老馬參與滿重要的,因為他們知道專案什麼時候快死掉了。 yellowsoar 在這個專案扮演了這樣的角色,提出要每週固定小聚、提醒開發進度和社群互動狀況等,而且老經驗的開源開發者會知道有哪些開源專案可以利用、優缺點是什麼,在選擇採取什麼技術架構和避免打造重複輪子很有用。

除了核心參與者,外圍的社群支持也很重要,例如我們不熟悉的一些技術、圖資來源,則是可以到 g0v、OpenStreetMap 等開源社群尋求支援和建議。許多大大沒有每週參與,但隨手幫我們解掉一個困難的環節。

在這邊也必須說,地球公民基金會的態度也很關鍵。提案人小海很快就發現,他不只是來找「會做網站的人」,而是進入一個「開源社群的文化」。他對社群和開源文化本質性的思索,讓我們有機會進到 NGO 數位培力的階段。

培力:沒有什麼是學不會的!

有人有社群之後,就是要一起成長。

雖然要基金會裡面的人變工程師自己寫程式有點困難,但要讓他們變成產品經理是有可能的,讓他們熟悉開源協作的方式更是非常有機會。

#1 培力最淺的一層是,學習上手數位協作工具。

地球公民基金會的部分人員,被我們逼著用 Gandi 申請網域、做 landing page、在 GitHub 上開 issue 回報問題和要求新功能、使用 MarkDown 在 HackMD 上寫共筆等等。

#2 第二層是理解數位產品開發和程式的邏輯,怎麼跟工程師和設計師溝通。

工程師在幾個月之中,慢慢解釋前端與後端的關係、不同程式語言的差別,什麼是 API、DNS、Cloudfare 等等,收進來的資料在資料庫是怎麼存的,為什麼跟工程師講清楚資料可能會長的樣子很重要。

介面設計和使用者研究的部分,研究員到後期開始可以在白板上畫出他們想要的流程圖或假想畫面跟團隊討論,設計師再去畫出 wireframe,我們也教他們把 UI 印在紙上輸出做簡單的 prototype 測試,還拖著政策研究員跟我們一起做實地的使用者訪談和測試,整理成對下一版產品的改進需求。

產品規劃和行銷的部分,則是會解釋什麼是敏捷開發,為什麼沒辦法保證半年後要做完哪些功能,怎麼跟據使用者回饋調整產品開發,也讓基金會的工作人員界定好他們的倡議目標如何對應到產品目標,然後來確認產品哪個功能要先做。再一起設定 Google Analytics 、Google Tag Manager 看數據和要怎麼設產品和行銷的 metrics。

#3 最深處,我想推的是開源協作的精神。

對我來說,數位工具、產品開發是術,開放協作才是道,思維和設計上怎麼讓整個數位專案和組織運作更開放更扁平,讓更多人參與、更方便協作才是重點。

我們基本上是用開源專案的邏輯在開發,我們盡量將協作入口的連結和資料整理好,寫文件、非同步溝通,選好程式碼、文字和設計圖的開源授權,並解釋不同的開源授權是什麼意思,跟基金會的律師溝通寫好隱私和使用者貢獻條款。聽起來是由很多瑣碎的小事堆疊起來的,但都是開放的基礎建設和心態,也有前面段落所說討論內容盡量在公開頻道,營造開放貢獻和批評的社群氛圍。

我們團隊也會討論產品要如何兼顧回報民眾的隱私和凝聚在地社群參與,用社群和擴大參與的策略去想像專案的未來發展。

小海真的對開源文化很有興趣,去上了開源科技課程,也逐步在基金會組織內導入雲端協作平台,也意識到寫清楚文件讓大家非同步協作的重要性,還拉了幾個 NGO 一起討論如何使用 Google Analytics 和 Google Adword 等服務來募款和議題行銷。地球公民基金會新聘的研究員 deeper 則是大學時有修過使用者經驗設計,也曾經嘗試過學寫程式,讓我們專案能利用的數位能力又更上一層。小海也參與了「在有組織與無組織之間」的線下討論,討論開源社群如何與 NGO 合作,當時現場參與者提到開源社群想要拆掉牆但 NGO 是有牆的,在兩者之間要取得平衡。

也是培力的過程讓我沒有那麼害怕產品失敗,因為就算產品失敗都沒人用,舉報的農地違章工廠政府都沒有處理,相關政策也沒有改變,至少我們有留下一些東西,有留下開放協作的合作方式、應用數位工具、規劃數位產品的能力。

對開源社群這邊來說,至少我個人也是在探索跟 NGO 組織合作的方式,畢竟議題 NGO 對議題有長期深入的研究,以及後續持續追蹤的能量,是 g0v 社群一直想要協作的對象。有很多 g0v 專案因為缺乏人力、時間、成本、倡議策略而很難持續做,我希望透過跟 NGO 合作,可以讓 NGO 有組織性地持續把專案做下去。

我自己個人的 PM 能力也在 Disfactory 專案中有所成長,其他參與者有人來練技術、有人來試自己沒試過的領域、有人純粹想要幫忙,我衷心希望不論產品和倡議成敗,大家都有從參與專案中成長。

倡議:找到達成目標的最短路徑

一般產品經理要考慮市場、商業策略,在 Disfactory 這個專案中,相對應的層級要考慮的就是議題倡議的策略和影響力。

這部分作為外掛支援的社群參與者,我就完全相信地球公民基金會的判斷和佈局,他們會去研究法案、與政府溝通、跟議題中的利害關係人協調折衝、爭取媒體曝光、社群行銷、在地組織串連等等,在產品端我要做的是,要讓產品在他們需要時準備好作為彈藥,並且讓他們知道開發技術和時程的限制,還有主動關心他們的倡議計畫讓整個開發團隊知道方向和時程。

我也清楚意識到每一次我們跟使用者的互動,都是地球公民基金會與他們協力網絡的互動,都需要被安置在倡議策略下,因此我們不是只去做使用者需求訪談或測試,而是與在地夥伴和志工加強連結、互惠、交換資訊、化解衝突等。

在產品設計上,除了面對回報民眾當下的需求,也要去預想地球公民基金會未來倡議的需求,包括記者會、社群媒體行銷、對捐款者的月報內容、撰寫政策白皮書、投書媒體等等,以及最重要的後台匯整資訊和處理公文的繁複流程,後者是我們這階段 Milestone 的主力開發方向。

所以 Disfactory 農地工廠違章回報系統,不是一時熱血頭洗下去的提案,而是經過縝密評估和策略制定後的提案,要推動議題改變不是靠大聲或是一個很酷的科技,而是聰明找到撬動改變的那個支點和到目標的最短路徑,這是我在這個專案中學到最寶貴的事。

產品:影響力和可持續性?

產品其實是我最沒信心的一塊,這就要交給使用者去評價了。

如果按照許多產品經理招募文要求的硬技能來看,我應該都沒做,例如 wireframe、workflow、roadmap 、OKR 、growth strategy 之類的根本沒有設定很清楚或是付之闕如,只能用 press-release-driven 的模式去訂大的milestone,然後什麼時候開記者會又是配合政府公布政策的時程。三月 MVP 上線後我們才有時間喘口氣,現在比較有餘裕整理這些產品基礎建設,所以這篇文章是我逼自己要在 retrospective meeting 回顧檢討合作流程之前,要寫完產品經理視角的開發過程。

對產品開發過程我真的諸多不滿意,像是跟使用者距離太遠,開發團隊只直接跟目標使用者接觸過兩次,一群城市人在台北開發要在鄉村使用的服務讓我非常沒有安全感。

另一點是我覺得用產品思維的思考不夠,例如策略上要成功的目標是什麼?增長的策略是什麼?我們投入這麼多的人力,所開發出產品的影響力和我所謂培力的回報符合成本嗎?數位開源培力作為產品要怎麼再擴大影響力?以開源專案來說,我們所開發的成果有什麼可以模組化的東西給其他專案使用?這樣的開發模式可以持續多久,怎麼安排交接?

現在只能跟自己說 Disfactory 是 side project ,所以不要對自己和團隊太苛刻,我們有把產品做出來而且真的有使用者就謝天謝地了,以及感謝所有參與者的包容和汗水。(生怕工程師和設計師看完本文後七竅生煙)

下一步?

倡議面就是在行銷推廣,開始發公文給各地縣市政府舉報,和推動更多志工參與回報和資料整理;產品面在理清地球公民基金會後續回報的流程和建置後台,還有回顧我們的合作模式;社群則是持續在找更多人參與,尤其是 Python 後端工程師,非常缺。(當時很缺,現在其實比較缺數位行銷和可接手的產品經理)

我也希望這篇文章可以拋磚引玉,促進更多開源社群與 NGO 的合作以及大家的經驗分享,因為身為資淺 PM 心驚驚想要多學習。

感謝專案一路上參與過的開發團隊夥伴,沒有你們就沒有 Disfactory

- 前端:IU、yukai
- 設計:SL、J、Xinroo、Ray
- 後端:cph、yellowsoar、Andy、Looofy、Simon、Aaron、Hubert、Toby、 Sonia、小白、jsaon、Swind、安東尼、笑笑、Darren
- 地球公民基金會:小海、小胖、Deeper、沅諭、可飛
社群協力:shupo、Joycelin、ronnywang、pm5、kiang、ddio、laiTzan、chelin、jenhaoyang、chihao、Angel、Bryce、容瑜、土撥鼠

還有那些實地舉報的使用者和地球公民基金會志工
(如有缺漏請務必告知><)
以上名單為 2020 年 8 月更新

以上 PM 小記內容有整理成投影片於 g0v 黑客松分享:
https://docs.google.com/presentation/d/1T5n6Brt2GCIhVoP0JwDD_ix2oaU2K-tu1h_rC421y2k/edit?usp=sharing

與另一個 g0v 專案 Rentea 在 g0v Summit 2020 關於開源協作專案管理的分享
https://docs.google.com/presentation/d/1Oy73yGxv9dNkQZdcd13RvIAdxawuD7rRikVyGWYDjUM/edit

如何參與 Disfactory 農地違章工廠回報?

想要回報農地違章工廠:

想要參與開發:

--

--

Yun Chen

Nobody in g0v.tw, PM of disfactory.tw. Caring #civictech #opengov #socialdesign. Now researching on Internet and open democracy.