跳到主要內容

推動大學程式設計教學Logo

成果展現

有沒有第一次 coding就拿全國冠軍的八卦?專訪「EATender約食神器」參賽團隊

採訪/曾令愉

很多人都曾為了聚餐時間地點喬不攏而傷腦筋,但有多少人想過:可以「寫程式」來解決這個問題?

近日LINE上出現的聊天機器人「EATender約食神器」,就是為了「揪團吃飯」而生。使用者只要在LINE上透過「EATender約食神器」的地圖系統,設定希望用餐地段以及餐廳類型,系統就會自動推薦餐廳選項,並附上營業資訊及食記連結;接著,主揪可以「創建投票」,將餐廳選項跟用餐時間加入投票中,方便大家選擇。輕輕鬆鬆,吃什麼?何時吃?有幾個人?透過投票系統,馬上一目了然,不愧是「約食神器」!

有趣的是,這支程式是由5個非資訊科系背景的臺大學生,用3個月的時間,從無到有「生」出來的,而且還一舉拿下教育部第二屆「Coding 101:屬於初心者的程式設計競賽」首獎。

蛤?這麼威?有卦嗎?

Coding 101是國內第一個專門為非資訊科系學生舉辦的程式設計競賽,參賽者必須為非資訊科系學生,並且近期修習程式入門課程,確保參賽者在程度相近的情況下公平競爭,挑戰用程式解決問題。「EATender約食神器」團隊的5位台大同學,都是程式初心者,共同修了「商管程式語言」這堂超熱門千人大課,為了期末專案而透過臺大數位教學平台「NTU COOL」認識彼此,根據各自專長進一步分工。隊長是農經系的鈞瀚,主要負責程式前端,程式後端由生傳系的昊辰主責,戲劇系的以恩主要負責UI/UX設計,生傳系的莉晴主責企劃,而財金系的品瑄主責簡報呈現。

程式設計是為了「解決問題」,所以「要解決什麼問題」本身就是最重要的問題。「大學生活中最常遇到的問題是什麼?我們討論很久,覺得就是揪團吃飯。所以這個程式,就是要解決你吃飯的問題。」團隊將發想問題的階段稱為「孵蛋期」,「光是把問題孵出來,就花了1到2週。」從自身需求出發,團隊也想過「線上試衣間」之類的時尚主題,但後來覺得,每天最煩惱的還是「吃什麼」,所以往餐廳推薦的方向構思。

「但討論過程中,覺得餐廳推薦Google Map已經做得很好了,那到底為什麼找餐廳還是很麻煩?我們真正要解決的問題究竟是什麼?」為了爭取時間,團隊邊做邊想,在過程中發現,問題其實出在「飯局很難約」。

問題的核心,從「找餐廳」進一步聚焦為「約吃飯」,「EATender」的「Tender」是否與交友軟體的「Tinder」有異曲同工之妙?「我們確實有聯想到Tinder,概念上有些相似之處但還是不同。我們選用Tender這個字,比較是『傾向』跟『照顧』的意思,希望這個程式可以照顧大家想吃的東西。」所有的設計,都環繞著「約吃飯」這個核心需求,例如:餐廳資訊裡除了營業時間,還要考量大學生口袋有限,大餐小食得精打細算,所以用餐均消價位很重要;介面的配色,也特別選用讓人食慾大開的黃、紅、白等顏色;還有貼心的,為了防止大家一忙就忘記聚餐,投票結束還有自動通知的功能等。身兼設計者與使用者,團隊將使用者體驗做到盡善,「這款程式就是要用來解決我們遇到的問題,我們不想做一支自己都不想用的程式。」

會不會遇到「想要的功能卻寫不出來」或「問題不能解決」的狀況?團隊成員都是非資訊科技背景的程式初心者,自然需要花時間「練功」克服程式技能不足的困難,但因為大家都修過基礎的程式設計課程,上課學習到的程式語言Python及程式開發環境成為五人之間的共通語言,讓這五個初心者長出了「coding魂」,在討論問題時從邏輯運算思維出發,在問題的思考上,也就變成「怎麼解決這個問題」而不是「這個問題能不能夠解決」。

「有問題,就是debug。」昊辰說,在coding的世界裡,困難在於問題不一定都有解,而有沒有用對工具去定義並分解問題就顯得格外重要。從12月組隊到3月競賽提交成果,只有短短三個月,要如何有效率地釐清問題,找出問題的核心與解決方案,十分關鍵。而要解決的問題,不只出現在「程式」本身,整個「Coding101」競賽的要求也是考驗,成果呈現包括資訊視覺化、口語簡報表達,甚至還要另外自學剪輯影片來呈現作品內容等。有趣的是,在整個訪談過程中,團隊講述了許多過程中遭遇的困難或意外狀況,讓他們深感「時間不夠」、「很痛苦」、「覺得崩潰」,但他們的回答中,從來沒有出現「沒有辦法」四個字,不會的技能,就想辦法去找資源來自學、自我提升。品瑄說,「從選修程式設計課程開始,就是打破自己心理障礙吧。」沒有解決不了的問題,只有自己願不願意克服心魔,跨出勇敢的一步。

而五名成員來自四個差異甚大的系所(生傳、農經、財金、戲劇),也是團隊一大特質。但溝通過程會不會很多障礙?五個人有志一同表示,這個團隊是他們大學生涯中溝通跟分工都最沒有障礙的一次,而且團隊共同實作程式,比起修課前期一個人孤單練功要有趣多了。莉晴說,「畢竟我們還是各有各的專長,像我跟品瑄就比較擅長企劃跟簡報,如果要我去寫程式的話會比較痛苦,但因為課程的訓練讓我對coding有一定的了解,再加上我們本身的專長,可以跟其他成員發揮互補的作用。」隊長鈞瀚則是說,「跨領域合作可以聽見不一樣的想法,是很珍貴的經驗。」

而不同類組的作事風格不同,也成為團隊合作難忘的回憶。在簡短的訪談中,團隊中每個成員都展現出謙虛且樂於分享的特質,過程中也會遇到意見不合的情形,但團隊達成共識後就一起執行去做,如果又出現新的bug,那就再想辦法處理,不需要浪費力氣究責彼此。以恩回憶到,簡報當天要呈現程式操作介面,他認為預錄操作畫面播放比較安全,但鈞瀚則認為現場實際操作投影的效果會比較好,最後大家共識決定現場操作,結果因為器材相容性的問題,差點無法投影,團隊緊急在上場前拼命Google找方法,最後有驚無險順利完成報告。「我覺得我們這個團隊比較沒有臺大生那種自我中心的傲氣,大家遇到問題就是聽彼此的意見,也很樂於接受不一樣的想法;被指出問題的時候雖然會有點擔心時間不夠或內心小崩潰的無奈感,但不會覺得不爽或覺得被挑毛病,反而是很希望只要條件允許,一定要改到更好。」

歷經這次挑戰的加持,有人朝向UI/UX設計的職涯方向努力,有人選擇科技相關產業實習,也有人繼續練功進修,希望用程式解決更多的問題。而「約食神器EATender」的下一步如何?團隊表示有想過跟外送或金流公司合作,很歡迎商業開發洽談,不排除任何繼續發展的可能性。

這五個來自不同領域的大學生,在coding的世界裡找到彼此的共同語言。他們不自滿,卻有自信;勇於表達意見,更尊重每個人表達意見的自由,這是團隊展現出來的特質,也正是「約食神器EATender」核心所蘊含的人文性格:照顧每個人的意見與想法,運用程式設計,打造出更有效率、更舒服、更友善的意見溝通環境。