Soking 來信:軟體小白如何觀察並認識軟體開發?


不論是在產品設計工作上遇到的利害關係人,或是 UX 教學上遇到的轉職者,我都會遇到相當比例是從未參與過軟體開發的人。

這是一件好消息,代表軟體走向大眾化,每個人的工作都有機會涉及到軟體的規劃。

這是一個壞消息,溝通的門檻是阻礙,軟體開發的溝通是一門既深且廣的領域,即使是專業人員也不敢說自己能夠涉及方方面面,對於零經驗的人來說更可怕,可能對方講的每個字你都認識,但組合在一起變成不像人話。

我很喜歡羅蘋荷布在奇幻小說《刺客學徒》中,讓老刺客說的一句話:「要入一行,必先學會行話。」

如果說我要列出三個最基礎要認識的軟體開發觀念,應該會是:

  • 軟體的用途是傳遞資訊
  • 觀察輸入與輸出的結果
  • 分辨功能與資訊內容

▋軟體的用途是傳遞資訊 ▋

雖然聽起來很像是廢話,但軟體是用來傳遞資訊的,這邊講的資訊表現形式有:文字符號、圖像、聲音。

傳遞資訊具體來說是執行三件事情,那就是:儲存、運算、顯示。

如果你有興趣,可以 google 一些專有名詞,例如「ASCII編碼」、「Unicode」,電腦其實不知道人類輸入的東西是什麼,如果每台電腦要互相溝通,那就需要一個統一的規則,讓我在 A 電腦上輸入的資訊,傳遞到你的電腦上也可以顯示相同的東西。

舉例來說,我們很習慣使用的 emoji 符號,背後就是使用 Unicode 的編碼表,但你會發現同樣的表情符號,在 Apple 的 iPhone 手機上與網頁上會顯示不同的相似圖案,甚至偶爾你會看到一些名為「tofu」的小正方形方塊 (☐),這就是你所使用的軟體或 emoji 符號尚未被支援。

到這邊我們可以了解,建立並共同遵循基本的規則,軟體才能互相溝通。

這個基礎觀念影響甚廣,可以解釋非常多軟體開發現場的困難,例如 Wordpress 為什麼號稱萬能,但實際上很難用?

Wordpress 號稱的萬能源自於開放性,任何會寫軟體的人都可以自行發佈插件程式,讓你安裝到自己的 Wordpress 上。

你還記得上面提到的基礎觀念嗎?建立並共同遵循基本的規則,軟體才能互相溝通。

那麼全世界成千上萬個寫了 Wordpress 插件程式的人,他們的軟體之間會一起制定什麼基本規則嗎?答案當然是沒有,他們只遵循了最低限度符合 Wordpress 的規範,結果就像 IKEA 的組合家具沒辦法跟 B&Q 買的組合家具連接在一起,但都能放進你的房間。

許多公司的數位轉型也面臨一樣的窘境,以致於全公司的資訊是碎片化的存在於各個不同的會計軟體、Excel 文件、SaaS 服務、內容管理系統、ERP、廣告後台之中。

用於傳遞資訊的軟體,因為每一種資訊各自使用不同的方式產生,並且各自處於封閉的軟體之中,成為現代工作者耗費最多心力進行整合的工作,可以說是軟體之間的溝通困難,創造了許多辦公室文書工作。

在個人的層級可能只是略微不便,例如我有記帳習慣,在便利商店買東西的過程,就要掏出手機載具條碼、數位支付 APP 以及記帳 APP,切換三個不同的服務。

到了大型企業的層級,已經幾乎沒有人可以搞懂整體公司的資訊之間互為因果的流向了。

▋觀察輸入與輸出的結果 ▋

幫助人類理解以及正確執行符合軟體設計目的的輸入與輸出,正是 UX 從業者的主要戰場。

前面提到,傳遞資訊具體來說是執行儲存、運算、顯示。

如何讓人類理解機器與電腦裝置所需的輸入訊息規則?裝置是否正確收到所輸入的訊息?裝置收到訊息之後處於什麼樣的處理狀態?會如何返回人類預期的輸出成果?

自從人類開始探索自身與機器裝置之間的關係之後,這一系列的問題發展出了人機互動的專業學科,隨著軟體的普及化,過去只有受過訓練的專家才懂得如何與機器與電腦裝置打交道,此時社會上只有少數人受過訓練知道如何操作軟體,當時的軟體設計是服務於商業目的或技術上的可行性,因此多半聚焦在商業邏輯或技術流程。

曾經光是「打字輸入」就是一門經過訓練後可以謀生的電腦操作技能。

現在大多數的生活事務都逐漸涉及到了人與機器互動的議題,當認知心理學進入軟體設計的領域後,提出「人類的大腦有認知偏誤的天生缺陷,因此設計應該避免人類犯錯」之後,軟體開發的領域才逐漸理解,要讓軟體普及化發揮影響力,就必須觀察與理解人類的使用情境,降低軟體操作的使用門檻。

你認為流暢好用的現代軟體,都是刻意針對「系統一」所設計的,透過介面上的預告、暗示、行為引導、防呆設計,讓你不用耗費太多心力就可以輕鬆達成開啟軟體的操作目的。

而「資訊的輸入」衍生出大量的軟硬體產品,大家發現過去資訊的輸入是想辦法從實體的類比世界進行轉換,例如掃描照片變成數位檔案,那為什麼不一開始就使用數位相機拍攝數位照片呢?

同樣的道理,工作現場的紀錄、製圖、測量、計算、監控、訊息公告、移動、支付、影音錄製、描繪著色,這些過去存在於實體世界產生資訊內容的行為,能不能在一開始就成為數位檔案?

解決了麻煩的輸入議題後,人類世界產生資訊的行為,逐漸變成原生的數位檔案為主,我們有了各種不同的欄位儲存資訊內容,用來識別代表實體世界資訊的事物。

GPS 的定位與遊戲圖像結合,讓人們可以走在路上捕捉數位遊戲中的寶可夢。 動作偵測、移動、生理資訊的感應裝置,讓戴在腕上的手錶提醒你坐太久了應該起來喝水散步。 手指點擊虛擬鍵盤輸入文字符號,觀察已讀、未讀以及多少人給了 emoji 表情,影響你的心情。

觀察人類如何跟機器與電腦裝置互動產生何種資訊,以及觀察人類如何辨認和理解機器與電腦裝置產生的訊息回饋,會是成為 UX 工作者之後的職業病。

▋分辨功能與資訊內容 ▋

如果以廚房來比喻,軟體的功能就像是菜刀或砧板等廚具,而資訊內容就像食材。

軟體在執行儲存、運算、顯示的過程中,就彷彿從洗菜籃中挑選食材出來切菜,炒菜調味之後裝盤放到你眼前。

給你一堆 GPS 座標以及時間戳記,你可能會覺得莫名其妙。

但是按照時間戳記的順序,將 GPS 座標串連起來,再搭配地圖繪製每個座標點的路徑節點,就成為你的跑步軌跡或者是行車記錄。

軟體裡面的功能是各種將資訊內容加工的方式,例如裁切照片、將文字輸入轉換成 emoji 圖案、判斷一則訊息該傳送給誰看、加總你購物車裡面的金額、驗證你輸入的信用卡號、根據你輸入的電話號碼撥打給指定對象、顯示文字與圖片在網頁上、根據你滑鼠的點擊顯示互動介面。

許多討論軟體需求的場合,在言語之間混搭了功能與資訊內容的需求,例如「幫我在這邊放一個圖表」,聽到這個描述的人其實什麼都沒有得到,這跟「今天中午幫忙買吃的」差不多空洞,既不知道要買給誰、什麼場合需要、吃什麼與不吃什麼、幾點需要,也不知道預算是多少。

如果追問不到細節,只聽到「問這麼多幹嘛?你是專業的你決定」,那只買了一份蚵仔麵線與臭豆腐,要給一群午餐會議的高階主管們吃,似乎也不是奇怪的結果。

偏偏在軟體開發現場的需求討論中,誰在什麼情境下、如何獲得資訊內容、應該怎麼處理訊息、在什麼情況下呈現,經常缺東缺西,很少有人獲得充分的資訊就被要求開始工作。

因此就會發生蓋好了五層樓的公寓後,被要求中間要挖空增加電梯,既然都要加電梯了,為什麼沒有停車位呢?五層樓好像不夠用,為什麼不能是二十層樓?

因為軟體是抽象的,所以憑空增加電梯的需求,聽起來跟在書房加裝一台冷氣差不多,這也是許多軟體從業人員面臨的溝通困難。

如何精準的分辨軟體開發中的功能與資訊內容需求,會是新手小白與資深熟手的分水嶺。

結語

總結來說,如果不論你是負責許願的需求方,或是剛踏入這個領域的人,希望本文討論的三個基礎的認知,能夠幫助你更好理解這個行業。

  • 軟體的用途是傳遞資訊,建立並共同遵循基本的規則,軟體才能互相溝通。
  • 觀察輸入與輸出的結果,幫助人類理解以及正確執行符合軟體設計目的。
  • 分辨功能與資訊內容,幫助你在軟體開發現場更精準的溝通。

by Soking

Soking

千綺創意設計 Co-Founder / 產品設計總監,目前經營軟體領域的體驗設計顧問公司,也從事 UX 教學,喜歡以工作坊形式,引導你體驗 UX 領域的專業知識。 工作聯絡:service@soking.cc

Read more from Soking

哈囉,朋友 一直以來,我非常關心「學習」這件事情,如何透過網路與科技的力量改變。 我選擇用「學習」這個字眼,是因為學習是關於我們如何成長,如何認識與掌握一件事情的過程。 我避免談「教育」,是因為教育背負了很多現存體制的條條框框與每個人可取得資源的限制。 我們這一代六七年級生從事網路軟體相關工作的人,就是受惠於透過網路學習各式各樣事物。 然後我們有機會透過學習,去從事甚至是創造各種上一代從未聽過的職業與工作。 ▋線上課程市場這條賽道 所以當「線上課程市場」這個賽道出現時,我便深感興趣。 除了自己有錄製過線上課程在平台販賣,也有協助幾位客戶規劃與開發自己的線上課程平台。 只是一直以來我很困惑,感覺「線上課程市場」似乎正在高速的跑完某個循環。 直到最近閱讀好朋友喊涵的電子報,她身為課程製作專家,在第一線的觀察心得,似乎有點恍然大悟。 喊涵在電子報中分析到:「線上課程市場的變動速度真的很快,任何一點商業條件變動,都可能推翻原本堪用的做法。」. 以及:「產業競爭加劇,課程越做越精緻。」 這些訊息對我來說,意味著線上課程市場,已經走入市場生命周期的第三階段:成熟期。 ▋成熟期市場的競爭樣貌...

哈囉,朋友 如果你在工作上要去執行需求訪談,相信也曾遇過不耐煩的受訪者。 尤其是主管位階的大忙人,特別沒耐心受訪。 或許你會想,可能是自己的職稱不夠高,所以對方才不耐煩。 但換個情況,如果我們是主管,然後總是對於跟位階低的人講話不耐煩。 那這樣要如何領導其他人呢? 所以有沒有一種可能,不是我們位階低,而是對方感覺這次的談話是沒有用的。 就我自己的親身經歷,最常見以下幾種狀況: 同樣事情他已經講了一百遍 沒有人可以了解他在幹嘛,忙得喘不過氣 你想訪談的東西他覺得跟他無關 因此我想與你分享一下,這幾類狀況的訪談應對策略。 ▋狀況一:同樣事情他已經講了一百遍 除非對於一件事情有使命狂熱,講個千遍也不厭倦。 不然任誰同一件事情講十次以上應該都會超級不耐煩吧? 講了十幾遍之後,他覺得自己已經付出了沈重的代價。 然後此時再來一個什麼都不懂的人,這情況簡直糟得不能再糟糕了。 因為有更多的事情得從頭講起。 那該怎麼辦呢? 讓對方意識到你也付出了一些沈重的代價,但沒有找到答案,所以來到了他的面前。 例如對方跟組織內的同事講過許多次了。...

哈囉,朋友 原本預計今天寫給你們的一封信,被我收進了草稿匣,因為變成了奇幻小說,而我不知道該怎麼向你們介紹而不顯得突兀。 如果你有追蹤我的臉書,最近的我,正處於內在衝突的自我整合歷程,因此不斷萌發各種念頭,看起來不太像在說人話,先跟你們抱歉。 我想改成與你分享,最近我們團隊正在籌備的一場直播講座的調查狀況。 這個調查主題是關於「side project」,當你接觸網路軟體產業之後,或多或少應該聽過這件事情。 有些人想透過 side project 來提升自己的能力,有些人想透過 side project 打造屬於自己的解決方案或工具,有些人渴望透過 side project 讓自己更快樂、有成就感。 我自己常常發起屬於自己的 side project,大多數在當下都沒什麼用,但可能在日後突然串了起來,在某個專案中起了絕妙的用途。 因為這樣,我常常被誤認為是有創意的人。 但我其實不是有創意的人,而是嘗試過一百種當時不可行的辦法,並且記錄、分類、保存下來。 因此 side project 對我來說,就是用來失敗的。 那我是怎麼遇見想要的 side project 呢?...