上禮拜(2015.01.31) 第一次去參加了一場由 hackathon.tw 所舉辦的黑客松,所謂的黑客松像是工程師的馬拉松,從發想、實作到介紹連續三十小時不間斷的寫程式,透過短暫密集的與一大群人(一兩百人)一起在同一個環境裡,並與自己組員高度密集的討論協作。
工作了約一年的時間,從學生變成了上班族,寫程式的心態也不斷的被挑戰與改變,在一個半新創(快過新創期了)的公司,跟在學校的做事方法有點類似,但是心態、目的與方法都有很大的落差,參加這場活動讓我重新體驗並反思了寫程式的目的與方法。
算是一個蠻有趣的經驗吧…?
過程
一早起床買完早餐就到會場 築空間(藝廊x咖啡廳)報到,大家已經拿著紙畫著九宮格在找認識並尋找隊員了,我已經在事前就已經組好隊惹,而且我遲到直接略過了這個步驟,所以少掉一點樂趣ㄜ..
開始 Jserv 開場分享了一個 talk,接著是 QT、node、Arduino 的工作坊,這次的主題好像圍繞在這三個上面,由於是透過 node.js 的社群看到這個活動的,所以主觀的以為這個活動是 nodejs 為主,但實際上似乎是由一些贊助廠商與社群共同影響這次個工作坊與主題。
自己沒參加任何一個,大略得知都是一些蠻入門的教學,所以有點好奇工作坊與 hackathon 的關係,如果需要透過入門教學來學習的人,真的有辦法能再三十個小時內透過創意實現出一個足以展示的作品嗎?除了按鈕燈會亮XD?
接著就開始討論主題了,開始先透過 hackpad 收集提案,再從中午吃完便當開始討論到接近傍晚,我們幾乎困在這個地方,從討論一個簡報系統的點子死掉,到找咖啡廳與診所,到開放地標,不斷的打掉重練,到下午都有點沮喪想回家了,最後還是硬是選了一個覺得少了一點創意,但是實際的東西,而且我們背景大都是 Web 出身,所以也沒有考慮其他方向的主題(雖然我也玩了一兩個禮拜的 arduino,卡了一個不會飛的四軸在桌上@Q@)。
討論完決定後就開始分配工作了,先是把所有想蒐集資料的網站爬完,將資料蒐集完就從晚上爬到半夜再到早上,這個過程真的是很痛苦,因為無法開始掌握進度,不曉得還要花多久才能開始收斂到可以預估的時間,在這之前的半夜就是馬拉松的撞牆期,體力與精神不停的來回拉鋸。
所以難度在於一開始要挑選一個主題能夠再預期在十小時完成主要架構,因此可以在良好分工下實作到一個雛型真是一個困難的挑戰,有許多問題要面對,選擇一個適當大小的題目,期望不要太容易,又能具有創意,又符合團隊整體技術力能解決的問題,預期所有需解決的困難,分配討論與實作的時間,或許是在工作後很少擔任這項任務,所以很生疏,好險隊友都有些基本默契,大概知道每個人能力跟專長,減少了工作分配的困難。
到了白天資料都已經蒐集完畢,匯入 mongodb 以後,就開始設計介面,我就開始花時間將主 UI 寫一寫,再把大家接好的資料與 API 串起來,這個時候雛型大致就成型了,然後再開始慢慢用投影片把整個架構與故事擬定,順便把故事內最重要的一些功能補上,與設計一個 demo 的情境,大致就完成了。
最後的一個插曲是大家在最後幾小時,因為經過長時間的體力與精神的耗損,debug 的能力降到一個極致,merge 完光一個檔案沒有 require,一個 dash 跟 underline 打錯,都需要花半小時的時間才能找到,真是超時工作跟效率關聯的最佳寫照。
雛型
附上半成品與投影片,紀錄這次的血汗,作品的核心是透過開放 API 與自動彙整資料,開放協作來建立一套不相依各地圖與平台與的地標系統,以台北市餐廳作為雛型範例。
發想的來源是想要更容易的找到鄰近地區的咖啡廳有些有提供 wifi 與插頭,目前由 Google map 無法簡單的找到結果甚至連築空間都找不到,但是臉書卻有但這些資訊卻無法整合,所以也才有這個念頭。
感謝一起寫程式的大家,也很懊惱自己沒有把簡報講的夠好,讓大家的心血沒有被最大化的傳遞出去。
想法
另外關於這個活動的設計提供一些想法,實際參與並且讀了同時間舉辦的 alphahackathon ihower 這篇文章 的感受:
- 沒有當日限制題目,又沒有限制主題(Qt、node、arduino),或許比較有彈性,但各組之間較無交集
- 又因為最後要選出一個隊伍得獎吧,所以沒有一個主題讓人不曉得評分標準,還是只是純看評審喜好,沒獎就算了,有獎就有公平性與評分標準的問題,又會有贊助廠商影響整個活動體驗
- 有些作品起點顯然不是從當天開始,也少掉一些大家都是現場的樂趣,就大家主題分散外,又不一定當日發想當日實作。
- 所以整個感覺就少了一點凝聚感,好像大家都各有目的的去用自己的方法參加這場活動。
因此蠻認同 ihower 對該場活動的設計,雖然沒參加,但是感覺專業有趣一些,或許是社群與公司主辦的差異吧。在社群方面或許 g0v 的會有組織一些?但還是感謝這場活動的主辦單位的辛勞,還是在這個經驗中得到不少收穫~
另一方面參加這場活動讓我感受到以前在學校的熱血,單純為了一個目標,相信一件事情,想辦法把程式寫好寫出來,並且投注我的心力去灌溉他實踐他,讓我更在乎這個產品,也讓我對他的寄望更高,沒有得到任何回饋也更加憂傷,或許這才是可能能讓我真正開心的開發模式吧。
很棒的東西! 不知道有沒有公開哪些部分呢?
好想拿來玩一下~
web 的程式碼在此 https://github.com/levichen/hackathon-coffee-gogo 剩下的程式散落在大家電腦 XD