讓老闆失望的一封信 — 夢想與現實的距離

Taiming
19 min readApr 10, 2024

--

前言

這篇文章是我在跟朋友一起接案的過程當中,遇到的一些案例。我發現接案者跟發案者認知的落差真的大到在溝通上造成不小的困難。我覺得這些部分很值得記錄下來,一方面當作自己的借鏡,一方面讓自己重新沈澱並思考遇到這些狀況時的想法與對策。

我的想法是很主觀的,因為要瞭解彼此的立場的話,就會需要彼此瞭解對方的主觀想法,我需要讓對方瞭解我的想法,所以我想要用我主觀的角度來看待和論述這些狀況。當然我也會盡我所能的去揣摩對方的想法和立場,因為我也不希望過於自我為中心來看待事情。

很多時候發現對方與自己認知落差到某種程度的時候,會突然語塞,用白話來說可能就是「無言」吧。你很想跟他解釋點什麼,但是因為太多東西需要解釋了,也一時不知從何解釋起,因為你發現對方需要的不是解釋,而是好好的聽你上幾堂課。而且,突然解釋起來,又好像在打臉對方,好像在跟對方吵架,所以話到嘴邊之後又吞了回去,只好一直笑笑地聽著對方高談闊論,回答著「嗯嗯,好好,對對,謝謝」。

夢想與期待

發案的老闆是做夢者,在夢裡什麼都有,因此可以有無限的美好想像,他需要對未來有一個美好的藍圖。接案的人是實踐者,他需要把夢裡的部分變成現實。

對於沒有軟體開發經驗的老闆而言,他做了一個夢,並且盡可能地跟我們描述他的夢想,通常都是描述一些美好的部分,講一些似乎可行的商業模型,講完之後,做夢者通常會有一些期待:

  • 你的腦中應該會跟我有一樣的想像,因為我已經盡可能講得很清楚了
  • 你對這個想像應該也很感興趣,畢竟,這是一個美夢,沒有理由不感興趣,對吧?
  • 除了你會感興趣之外,我相信消費者應該也會超愛我的產品,畢竟我應該有打到市場痛點
  • 要實現這個夢想,應該不會太困難,因為我相信你們的專業,你們也跟我打包票說你們是很專業的
  • 雖然我會問問你們這些專業人士,評估一下造夢需要多少時間,但我心裡的時間大概是 3~6 個月內應該要可以完成,至少完成一個雛形。
  • 至於會花多少錢?我相信合理的價錢應該可以完成是沒問題的,應該一個系統 10~15 萬吧?一個官網大概 1~2 萬,因為我看有些人花 5000 元也能做一個網站。

夢想與現實的距離

一個夢被做出來之後,一直到他被落地和實現,必定會有一段距離。那這段距離是多少呢?是長還是短呢?

從接案者的角度來說吧,你的夢越大,距離就越遠,你的夢越小,距離就越短

至於這個夢是大是小?不是由做夢者說的算,而是由要把夢落地實現的人說了算,畢竟,真正要去實踐的人,並且有實踐經驗的人,才更能夠精準的評估這個夢的大小。

舉例來說明:

這個情境就如同,有一個導演,他做了一個自認為很棒的夢,他很想要把他做的夢拍成電影。他希望他的夢與電影能夠盡量看起來一致,這樣能夠完美地呈現出他的想像,大眾必定會喜歡。這個故事是說「有一個女孩,跟一個男孩,巧遇之後相愛,雖然過程中遇到許多艱辛和困苦,但最終克服了困難終成眷屬」。

對於導演來說,我們需要的就是找到跟我想像中一樣的女主角和男主角,並且按照我想像中的劇本來走,說出我指定的台詞,做出我指定的表情,該哭的時候哭,該笑的時候笑,最後配上我指定的背景主題曲,這部絕世大戲就完成了!所以導演覺得這樣不會太難。

但對於劇組來說,他要做的事情超乎你的想像,每件事情都需要考慮到細節。

例如:

光是要弄清楚你的夢長怎樣就花費許多時間,畢竟我不是你,我看不到你夢裡的東西,就算把你腦袋剖開我也看不到。我只能透過不斷問你問題,來慢慢弄清楚你要什麼,不要什麼。

另外,找演員要怎麼找?去哪裡找?找了演員來試鏡要不要給他車馬費?要給多少?所以也要負責聯絡導演和來試鏡的演員,安排試鏡場地、時間、流程。

然後拍攝也要跟各個演員喬時間,也要事先去探勘拍攝場地,到處跑來跑去,找到場地之後還要給導演確認是不是他想要的。然後開拍如果在戶外,也要考慮天氣、考慮安全、考慮交通、考慮演員的便當(多少個?有沒有人吃素?)、考慮拍攝預算、演員心情不好演不下去也要想辦法安慰他…等等,各種大小事都要考慮。

跟導演的夢境比起來真的是非常的不浪漫,但都是一些瑣碎卻不可或缺的事情。那這些事情難不難呢?需要花多少時間呢?可能也要看導演,如果導演一直說場地跟他想像的不一樣,你就要一直找。

但一直找就要花時間、花車錢、人力成本,時間拉越久成本就越高。演員也是,如果一直找不到合意的演員,那到底要做點取捨,還是要繼續找?找到導演心目中長相的演員卻演技不佳,演技很好的演員卻讓導演感覺不太對。因為找越久,開拍時間就會一直往後延,找人的成本也一直上升,而且世界上到底有沒有導演心目中的那種完美演員?長得帥或漂亮、演技又好、又便宜的那一種。

換成軟體情境來舉例:

今天有一個老闆他要創業,他不會寫 code,但他有滿腹的理想、夢想,他想要做一個萬能的 Dashboard,這個 Dashboard 要可以監控陽光空氣水…等等資源,達到節能減碳的效果、達到各種好處,然後可以賣給個人、商家或企業,大賺一筆。

對於軟體工程團隊來說,要完成這一件事情,也有相當多的東西需要考慮。

首先,資料哪裡來?要用開放資料還是自己要去買一些 sensor 來監控?

再來,以水來舉例,你要搜集水的哪些資料?雨量?含水量?水質?水質要包含哪些項目的數值?其他項目依此類推。

然後這些資料的即時性如何?多久要更新一次?如果你的資料一天才會變一次,就不能叫我每秒都發 request 去刷新,或是去用什麼 websocket。

蒐集到的資料要存在哪裡?要使用哪一種 DB 來存?資料要存多久?資料量有多大?你不能說你的資料累積一年只有 500MB 卻要我用一個分散式系統,用個什麼 Hadoop、Spark、Cassandra。每日資料量有 1TB 卻說簡單做,用 SQLite 就好。要從 100 筆資料裡面搜尋就想用 Elasticsearch,或搞一套 Lucene。

然後雖然你只有說你要 Dashboard,給各個商家可以用,所以背後隱含的意思就是,其實你也需要一個登入系統來管理裡面的成員,這些成員他在平台上面可以看到什麼?不能看到什麼?權限要如何設計?

然後畫面上的 Dashboard 要如何佈局?如果重要的資訊只有一兩樣,但整個畫面都是滿滿的圖表、數值,請問使用者眼光的重點要放在哪裡?就像你以前段考在書上劃重點,你就必須要劃出那一兩行必考的「重點」,你不能說整本書都是重點。

你希望看到水的水質各種細節?還是你希望陽光空氣水一起搭配起來看?那你想要以節能減碳為導向來呈現?需要哪些指標?還是你想要監控有沒有危險會發生?你需不需要一個即時通知的系統?要有多即時?

隨便手抓一把都是一大堆要考慮的問題,那這些問題並不是故意要找碴或找麻煩,而是這個系統實際上要落地實現的話,必須要考慮到的問題。

而且這些問題可能老闆想都沒有想過,甚至他也不知道這些問題到底重要在哪裡,做出什麼選擇有什麼差別。但他必須要給出足夠的資訊我們才有辦法判斷和抉擇,並且要建置這些功能,每一個部分都會需要花費相當的時間和費用。

為什麼這些問題重要?因為我也是在幫你省錢和省麻煩。殺雞焉能用牛刀?

距離不同,思考的問題也不同

要如何評估夢想與現實的遠近?遠很重要嗎?近很重要嗎?說起來,還真的蠻重要的,因為根據距離遠近,要做的準備不同,要思考的問題也不同。

假設我們今天要做的一個專案叫做「找朋友泡茶」。下面這些情境是否相同?

  1. 我從我家到隔壁街找朋友泡茶
  2. 我從永和到南港找朋友泡茶
  3. 我從台北下到屏東找朋友泡茶
  4. 我從台灣到美國找朋友泡茶

我們來分析看看

Case01:我從我家到隔壁街找朋友泡茶

這個專案,我只需要跟朋友說一聲「我五分鐘後到」,然後你就穿好衣服,甚至可以穿著拖鞋,啥也不用帶的直接「走路」到隔壁按門鈴,你就可以順利找到朋友泡茶。

Case02:我從永和到南港找朋友泡茶

承接 Case01,你需要多考慮的事情是,常態來說,從永和走路到南港是不切實際的,所以你要考慮你需要搭什麼交通工具,機車?汽車?公車?捷運?不同的交通工具你要準備的東西不同,花費的時間也不同,例如你是要拿機車鑰匙還是要拿悠遊卡,還有這個距離的移動你應該不會只想要穿拖鞋。

Case03: 我從台北下到屏東找朋友泡茶

這個情境已經比前兩個更複雜了。首先,你需要考慮如何前往屏東,可能需要搭乘高鐵、火車或是飛機,這取決於你的預算和時間安排。你還需要確保有地方可以住宿,因為這不是短暫的活動,可能需要花上一整天或更長的時間。你可能還要考慮帶些什麼東西,比如衣服、盥洗用品、手機充電器等等,因為這是一個相對較長的旅程。當然,你也需要和朋友確認好時間地點,以免到了屏東後找不到彼此。

Case04: 我從台灣到美國找朋友泡茶

這個情境更是大幅提高了難度。首先,你需要考慮搭乘長途飛機的時間和費用,還要辦理相關的護照、簽證等手續。你可能需要在美國住宿幾天,因此要確保有地方可以住,也要考慮旅途中的飲食、交通等問題。除此之外,時差可能會影響到你的活動安排,需要調整生活作息。當然,和朋友確認好細節也很重要,以免到了美國後出現溝通上的問題,有可能你英文不是那麼好,那在途中也會遇到困難。

距離的遠近確實影響了所需考慮的事項。對於「找朋友泡茶」這個例子來說,距離越遠,需要考慮的因素就越多,需要做的準備也就越周全。

所以,如果老闆說,找個朋友泡茶很難嗎?看完上面的例子之後,你覺得呢?

  1. 我想做一個能夠監控水資源的 dashboard
  2. 我想做一個能夠監控陽光空氣水的 dashboard
  3. 我想做一個能夠監控不止陽光空氣水,以後還有各種擴充資料來源的 dashboard
  4. 我想做一個能夠監控不止陽光空氣水,以後還有各種擴充資料來源,必須要即時監控,還可以比對過去歷史,而且可以用在節能減碳、用在災難通知、用在節省公司成本的 dashboard,他必須要在各個面向上面都保有彈性

通常,會出問題的時候,都是老闆嘴巴說的是 Case01,但心裡想要的是 Case04。或是,他嘴巴說的是 Case04,但他覺得這件事跟 Case01 一樣簡單。

創意無限,但口袋深度有限

在試圖想要弄清楚老闆的夢想與現實的距離有多遠的時候,我們會透過一些問題來釐清需求,藉此來判斷實作時所需要的資訊。但是通常你會得到這樣的對話:

老闆:我想做一個能夠監控水資源的 dashboard
工人:那你想要監控水資源的什麼呢?
老闆:能監控的我都盡量想要監控,因為我未來的藍圖很大
工人:所以你需要除了水量、水質還有裡面的礦物質含量對嗎?
老闆:不止這些,未來還有無限可能,所以這部分要盡可能保持彈性
工人:那你的 dashboard 使用者是誰呢?
老闆:我的使用者有可能是個人,也有可能是小型商家,大型企業都會是我的潛在客戶
工人:(所以看來這需要一個登入系統)
工人:那你一個商家只有一個對應帳號嗎?還是說你同一個商家裡面要能夠有不同員工登入,每個人有不同權限的帳號?
老闆:對,我希望這部分不要寫死,未來要有彈性的擴充性,我也要讓使用者可以很彈性的設定每個人的權限,為了不同情境他們可以自己客製化。
工人:(看來權限設計是有需要的,並且要擁有複雜的邏輯控制)
工人:那你的使用者想要看到的 dashboard 是想要怎麼樣來呈現?因為根據不同目標會有不同的設計,例如你需要幫家庭、公司省水的,或是你想要水質不好的時候要提醒的,還是你需要什麼?
老闆:你講的這些都很好,這些都會需要,甚至不止這些,以後陽光空氣水都要納進來監控,我還要讓客戶可以自己客製化自己的 dashboard,讓不同種類的客戶可以按照他們自己的需求客製化,他們可以看到自己想要看到的 insight。

其實講到這邊的時候,如果你沒有什麼經驗,你大概會想說「太棒了!我接到一個大案子了,看來可以一陣子不愁吃穿了」

但如果你有一點經驗,你就會開始覺得有點不妙「怎麼好像遇到一個慾望黑洞,這個也要,那個也要,只要我講出來他覺得不錯他都要,那他知不知道這些東西有多複雜?他知不知道他想要的東西是什麼?他有錢可以付嗎?有多少時間讓我做?」

因為通常許願的時候,會忽略背後要考慮要付出多少代價,所以只要講的出來,聽起來是合理,是好的,他就會想要,因為他沒有想過他要這些東西的時候需要多付多少錢,通常預設,他會覺得這些都不用額外再多加錢,這些都是基本。

可能跟我們去廟裡拜拜的習慣一樣,你會跟神明說你想要賺大錢、想要平安無事故、想要小孩會讀書、好好長大、一眠大一寸,但是你在這樣拜拜的時候可能不曾想過你是否需要付出什麼代價。

也有點像是你去到了百貨公司,遇到一個櫃姐,你跟他說你要參加一個華麗的舞會,需要穿搭得體,他就會問你,這件西裝很好看,要不要?裡面要不要多搭配一件襯衫?哇真好看,你要不要再試試看這個保羅領帶?太帥了,那我覺得你這雙鞋子很不搭,要不要試試我們最新款最經典的牛津鞋?看起來好多了,但你這皮鞋跟皮帶有點不太搭配,我覺得你可以試試這條 Gucci 皮帶,順便也搭配同款顏色的 ROLEX 手錶,然後這個時尚胸針也很適合你,最好再搭配一個口袋巾,太棒了。然後你原本預算 5 萬以內,結果去結帳發現要 87 萬。

在買衣服的時候你很直覺地會知道多要這些東西需要加錢,但是很奇怪的是,在開軟體需求的時候,通常人家都不覺得多加這些功能會需要多加錢。

所以,對於工程團隊來說,你要明確的告訴發包老闆,你開的這些需求都是要加錢的,不然你會發現你開發了價值 100 萬的系統,結果你卻只拿到 10 萬元。

對於老闆來說,就像攝影一樣,攝影是減法,不是加法,你要想辦法讓你的畫面減少不必要的東西來凸顯你的主題。你要想辦法來減少那些沒有也沒關係的功能,來凸顯你的產品特色,唯有這樣想,你才能減少你的成本,你才能清楚你要的東西是什麼。

彈性與規範

在上述的例子當中我們也可以看到,因為老闆對他的產品有無限的想像,所以他希望在各方面都能夠盡量保持彈性,這背後的含義就是,未來假設需求增加或需求改變了,他不想要再多花錢,他希望目前的系統就能夠支援。

這樣的想像很美好,但是有一些潛在的問題,就是他目前無法告訴你未來會變成怎樣,所以你需要因應未來的各式各樣。換句話說,講好聽是彈性,講白話就是需求不明確、沒有規範、沒有規矩。

首先,未來需求的不確定性會使得系統設計變得更加複雜。開發團隊需要考慮各種可能的情境,並在系統架構和設計中留下足夠的彈性空間,這可能會增加開發成本和時間。但很有趣的是,我們不是先知,我們會以為我們盡可能地保留彈性了,但未來很可能會出現在你覺得需要被規範的地方還是有變動的可能。

最後,由於未來需求的不確定性,系統可能需要頻繁地進行修改和擴展,這可能會導致系統的維護成本增加,並且可能會影響系統的穩定性和可靠性。程式裡面有規範的地方,我們很容易做到批次處理,我們很容易做到錯誤檢查。但沒有規範的話,任何狀況都是可能的,所以你很難辨識錯誤,而且也較難批次處理,反而要去針對不同 case 客製化調整,維護成本很高。

因此,在面對老闆的無限想像時,開發團隊需要謹慎考慮彈性和規範之間的平衡。儘管彈性能夠應對未來的變化,但也需要有明確的需求和規範作為基礎,才能確保系統的穩定性、安全性和可擴展性。

另一方面我們也要留意,保持彈性的意思,也有可能意味著,他對目前的需求沒有自信,他對市場的眼光不夠精準。眼光不夠精準是老闆要負的責任,但他只要說你的系統不夠彈性,不能因應市場變化,要負責任的人就會變成你!是不是很厲害!

我找你是把你當做創業夥伴

如果有人對你說「我找你是把你當做創業夥伴」,你會怎麼想呢?會感到高興?或是,害怕?

如果一個老闆對人說「我找你是把你當做創業夥伴」,通常他想要讓你感受到,我要讓你覺得我很重視你,你應該要感到高興。

但同時背後也意味著,既然我們是夥伴,他就會期待,你就要跟我一樣拼,你就要跟我一樣重視這個產品,你要為這個產品嘔心瀝血,你也要像個創業者,要有這樣的精神,雖然你還沒有拿到錢,但你要很拼命,我們不要計較錢,不要去想錢的事情,我們先把東西做起來,以後什麼都好談,做這個東西很有搞頭,很有意義,一定會成功。

換句話說之後,是不是有點可怕呢?通常人基於禮貌,是不會把話講得這麼白,可是實際上,常常這就是對方講出這句話之後對你的期待。

但是成功之後呢?他有沒有答應你成功之後要給你多少錢?還是他答應你要給你多少股票?這些股票是否真的具有價值,還是只是壁紙?等到你成功之後,在期待著你會獲得多少時,你會發現你得到的比期待的更少,因為你們之前沒有約定好就埋頭下去幹了,錢賺到是賺到了,但不是進你口袋,產品成功是成功了,但與你何干?

創業題目雖然令人感到興奮和充滿希望,但我們知道,根據經濟部中小企業處創業諮詢服務中心統計,一般民眾創業,一年內就倒閉的機率高達 90%,而存活下來的 10%中,又有 90%會在五年內倒閉。 也就是說,能撐過前五年的創業家,只有 1%,前五年陣亡率高達 99%。

根據上述的數據來說,大部分的狀況你是不會成功的,那表示我也需要跟你一起承擔這些風險,那你讓你的夥伴承擔這些風險,你是否對他感到虧欠?你是否願意對他做出金錢補償?

何況,今天有一位找外包的老闆找到我們,然後對我們說「我找你是把你當做創業夥伴」。把心裡話用白話說,你憑什麼無緣無故把我當創業夥伴?我根本不打算在你身上做白工,我跟你的關係僅止於承攬關係,我跟你也不是僱傭,也不是合夥,我出來外包工作就是因為我需要錢,我可以認真努力為你貢獻我的專業,但我需要拿到相對應的報酬,但你希望我幫你做白工,不覺得不好意思嗎?這就像是你去一間百貨公司,告訴櫃姐我把你當朋友,所以你最貴的那件西裝免費或低價給我,不覺得這樣的行為很不知羞恥嗎?這跟路邊要錢要飯的人有什麼兩樣呢?

  • 你的需求不明確,沒關係,我們很專業,可以一起幫你釐清問題和需求,但你想得到我的 proposal,你要付我諮詢費、顧問費。
  • 你不知道你的系統怎麼設計,沒關係,我來幫你想,但你要付我開發費、設計費。
  • 你時程很趕,需要趕快有一個結果給客戶,沒關係,在能力所及我可以幫你加班做,但你要給我加班費。
  • 你突然想要改功能改需求,沒關係,我想辦法幫你改,但你要給我修改費。

你不能因為你的想法沒有變現就不給我錢,我花時間跟你開會,幫你規劃,幫你寫程式,我付出工時和努力了,我就要拿到錢,否則,你就是強盜,你就是小偷,就是用你畫的大餅騙我做白工。

因為台灣人通常很客氣,談錢傷感情,不好意思談錢。但你身為老闆,你自己要有自知之明,請別人做事要給人家錢,不要人家沒跟你提到錢,你就想說這一切都不用錢,人家都心甘樂意幫你做,人家都覺得你的夢想很棒,夢想很棒是一件事,但不代表我幫你做事不用錢,所以,請你自己主動一點詢問對方,這麼做的話需要多少錢。

談錢傷感情,不談錢傷身體

我知道有些老闆不是不願意付錢,而是他搞不清楚這些東西價值多少錢。如果你沒有經驗,不知道付多少錢不會虧待對方,你可以上 104 求職平台查查看。

如果你請的是一位資深前端工程師,那他的價位假設落在年薪 150 萬上下,你可以換算他的時薪,大約是 720元/hr。如果你還有請一位資深後端工程師,他的年薪假設落在 160 萬上下。如果你也有請一位資深的 UI/UX 設計師,他的年薪假設也會落在 120 萬上下。如果這些人同時有正職,是透過下班時間幫你外包,那你需要幫他的時薪乘上 1.2 或1.5 甚至更高(上述薪資只是舉例,以實際市場價格為主,可能更高)。

當然如果你有要求對方趕工或加班,那就要乘上更大的級數。然後你看看你讓對方花在你身上多少時間。開會一小時就要算一小時的錢,雖然我沒有寫 code 或畫圖,但是我跟你開會有花我的工時,就要算錢。你希望我提出一個 UI proposal,UI/UX 設計師花了 20hrs 幫你畫一個設計初稿,你就要算他 20hrs 的錢。

即使你最後沒有採納他的建議,但他也已經在你身上花時間,你就必須要對他所花的時間負責,因為我們也無法在你腦中消除我們給你看過的稿、跟你說過的建議。就像是你去漫畫店裡面,你不能說你把人家的漫畫看了之後,說你不喜歡他的劇情,就不付錢走人,或只付人家一半的錢。

如果你擔心設計稿不符合你的心意,你應該要更重視事前的溝通,或是先跟他講好請他先在彼此想法對齊之前不要畫太精緻的稿子,避免彼此不必要的摩擦和誤會,也避免對方被你氣到,突然瘋起來對你拳打腳踢。

結語

這篇文章並不是什麼冠冕堂皇的話,而是許多人赤裸裸的內心話,身為老闆你通常聽不到這些內心話,因為通常講出這些話的時候有可能就是彼此要撕破臉了。畢竟難聽的話不好意思當面跟你講,跟你講了你也不一定會改變,我倒不如去找別人。

以我的立場,當然我非常鼓勵創業,也非常敬重那些願意出來創業的人,像我自己出來社會上打滾接外包,某種程度也是一種創業。

但是對於軟體開發不熟的創業者,還是需要認清現實,常常軟體開發人員會被市場低估它的價值,特別在台灣,對於軟體需要付費這件事情的想法還不是很普及。並且,基於禮貌以及長久的人際關係經營,很少人願意打開天窗說亮話,所以你很難知道人家不想幫你打造產品背後的真實想法。

人跟人之間的互動,最難以得到的就是瞭解對方的真心話,就像經營一間餐廳,你永遠不會知道對方吃了一次就不來的原因是什麼,通常你當場問客人,他都會禮貌性的跟你說不錯。但你發現大部分的客人從此不會再來了,你就知道你的餐廳可能有問題了,但因為你無法再遇到那些客人,所以你也無從問起。

--

--