資工、資管相關科系,想要創業,其實不難,畢竟現在這個時代,到處都有系統開發的需求。
而網頁開發,在軟體開發領域,其實又是相對低門檻,好入門的領域,甚至很多非本科系的,靠自學就可以進入網頁開發的領域。
大學時期就開始接案的例子不在少數,有些做得不錯的,會開始成立工作室,累積穩定的客源,最後成立公司,這樣也算是成功創業了。
接案模式的難題
但是這樣的模式會遇到兩個問題,第一個問題,由於進入門檻低,所以競爭激烈,如果沒有做出差異化,往特定產業、領域專研,很容易陷入低價競爭;
網站開發、軟體工程與管理和一些投資理財
資工、資管相關科系,想要創業,其實不難,畢竟現在這個時代,到處都有系統開發的需求。
而網頁開發,在軟體開發領域,其實又是相對低門檻,好入門的領域,甚至很多非本科系的,靠自學就可以進入網頁開發的領域。
大學時期就開始接案的例子不在少數,有些做得不錯的,會開始成立工作室,累積穩定的客源,最後成立公司,這樣也算是成功創業了。
但是這樣的模式會遇到兩個問題,第一個問題,由於進入門檻低,所以競爭激烈,如果沒有做出差異化,往特定產業、領域專研,很容易陷入低價競爭;
雖然說作為工程師,我的經驗還算豐富,可以解決大部分的開發需求與問題,姑且可以自稱資深工程師吧。
但是做為產品經理(PM),我就是全然的 Junior 了。
明明是工程師,為什麼要做 PM 的工作?
也沒辦法,畢竟公司目前只有我跟一位業務合夥人,很自然的,PM 的工作就落到我身上了。
以前還在當工程師的時候,常常會吐槽說,公司高層或是 PM 到底在規畫什麼爛東西?
看到需求後,工程師們最喜歡在會議室裡面噴一輪:
「這樣的系統真的有人要用嗎?這樣的流程也太違反人性了吧?」
「為什麼這些高層的決策總是出爾反爾?為什麼規格書總是亂七八糟?不好好寫清楚?」
「為什麼需求邏輯總是不流暢,甚至自打臉?」
族繁不及備載。
創業不是從天上掉下來的念頭,最早有創業的想法,應該是大學的時候。
受到臉書跟 Google 創業故事的啟發,覺得軟體工程師是一個很酷的職業,可以打造世界級的產品,賺很多錢。
出生在一個沒什麼資源的家庭,覺得靠一台電腦,寫寫程式就能創業,是非常好的機會。
因為有了這樣的想法,大學選擇了資訊相關的科系。
我並沒有那個勇氣休學創業,畢竟家裡沒有金礦,我姑且是有好好地把大學念完,雖然後面有點放飛。
前陣子,跟一位合夥人決定要開公司,做 SaaS 產品。想說機會難得,不如把過程中經歷的事情記錄下來吧。
除了可以把心路歷程記錄下來,也可以順便整理並反省,在創業的過程中,學到了什麼東西,有哪些事情做對了,又有哪些事情做錯了。
希望這系列文可以一直持續下去。
公司目前,只有我一位工程師,和另外一位業務合夥人。
我們的目標是自己開發一套 SaaS 產品來販售,所以有大量的開發工作需要進行。
這年頭,PHP 跟 Laravel 這兩個名詞,幾乎都是同時出現。PHP 也許還好理解,但是關於 Laravel,有太多的東西需要學習了。
這篇文章將透過介紹 4 個關鍵名詞,來幫助新手學習 Laravel,釐清觀念。
我自己屬於不是那麼追求新技術的人,偶爾滑到新資訊的話會看一下,或是別人在討論的時候也會參與,但是比較不會主動去追求,除非工作上有實際的需要。
不過以前有些同事,他們對於新技術非常有熱情,會主動去參與社團,或研討會等,學習新知訊,每次跟他們聊天,都在談論新的技術話題,根本跟不上XD。
他們通常學到新東西,就會迫不及待的想要導入開發團隊,讓團隊成員一起使用。
我覺得這樣很好,總要有些人要帶著大家往前走,讓整個團隊可以跟上時代,繼續往前走,不會一直用很舊的做法。
就像金融業,核心系統,據說到現在還在用 Cobal,永遠無法改成現代的程式語言。
壞處是,很難找到新人來維護;好處是,懂 Cobal 永遠不用怕失業。
我遇過一些主管,他們根本不知道怎麼帶人,最常用的方式就是放生 play,入職後就放著不管了。
新人沒有人帶,是一件很不好的事情,會讓新人花更多的時間上手工作內容。以公司的角度來看,新人要花很多時間才能有生產力,公司等於是在浪費錢。
所以對我來說,總是放生菜鳥的主管,是不合格的,代表主管根本就沒有建立標準管理流程,說好聽一點是自由發展,說難聽一點就是自生自滅了。
我認為一個合格的主管,對於新人訓練,至少要讓新人做到以下四件事:
1. 認識環境與團隊夥伴
2. 學習產業與相關知識
3. 了解工作與開發流程
4. 進行小規模實戰練習
我認識的一位前同事,他是一個相當認真的員工,可能能力不是頂尖,但是如果把工作交辦給他,基本上可以放心。
前陣子和他聊天,他提到他最近在考慮離職了,問他為什麼,他說:「我覺得這邊太閒了。」
一般人可能會覺得困惑,工作閒閒又可以領薪水不是很好嗎?這樣的職位真是可遇不可求,怎麼會想離職,太可惜了吧。
但其實在軟體產業來說,工作太閒確實容易讓人很恐慌。
好幾年前,投入一個專案,姑且算是我職涯中,第一個由我主導的大型專案吧,要帶領團隊,從零開始建置一個公司核心的重要系統。
專案的時程很趕,高層也相當重視,不能有大的差錯。
那時還比較年輕有鬥志,也想要有個代表作,所以我投入相當多心力。
晚上下班回家後,會繼續思考專案的事情,假日還自己跑到辦公室免費加班,處理需要安靜思考的工作,也整理文件,或把一些混亂的邏輯釐清,為了讓其他團隊成員在工作日可以更有效率的工作。
在時間跟人力都很緊湊的情況下,我們總算是在期限內完成開發。我們將系統上到內部測試環境後,請 PM 安排驗收測試。
畢竟是全新開發的專案,我們已經做好心理準備, PM 可能會找出一大堆 BUG,畢竟我們時程很趕,測試可能做的不夠周全;我們也預期 PM 會條列一大堆修改項目,還為此保留了一些開發資源,畢竟這是專案常見的事情。
我們給 PM 一些時間來做驗收,然而一個禮拜、兩個禮拜、三個禮拜,遲遲沒有回報。我開始覺得好像有問題,「怎麼搞的,這不是高層重視的專案嗎?PM 到底在幹嘛?。」
軟體開發有個長久以來令人詬病的問題:開發時間總是估不準。
不管怎麼估計,最後好像還是會發生意想不到的狀況,導致開發時程 Delay,PM 只能忍弄砍需求,跟老闆賠不是;或是為了趕上死線,逼工程師加班。
既然估時間一點都不可靠,那不如就不要估了吧?當然是不行呀,主管或客戶還是會需要一個數字,團隊也需要這個數字來互相配合。
所以到底為什麼,軟體開發的工時這麼難以估計?以下根據我自身的經驗,來聊聊三個可能的原因和對應的改善方式:
會選擇當軟體工程師的人,相較於跟人溝通,應該更喜歡面對電腦吧?畢竟面對真實的人總讓我們覺得尷尬不自在。
我們這些軟體工程師宅宅們,通常懶得跟不同類型的人溝通,要對這些人把事情解釋清楚,還要處理對方的情緒,對我們來說真的是很困難也很麻煩。
但電腦程式不會有這些問題,只要依照規則操作,這些程式就會乖乖聽話。遇到問題,電腦也不會鬧脾氣,反正多半是工程師自己耍白癡。
因此,大部分的工程師最後都練就一身不管別人怎麼想的強大「講話」能力,只需要把自己的意思傳達出去就好,至於有沒有通,嗯,不是工程師的問題,聽的人要自己想辦法理解。
剛步入職場的那幾年,我也是屬於埋頭苦幹型的。抱持著很理想的信念,認為只要認真做事,努力 coding,加薪升職就會輪到我。
還好,這並不是一個悲傷的故事,因為在離開第一間公司的時候,我的確成為在短短幾年內升到當時公司內最年輕的主管。
然而,現在回想起來,我必須要說,只是努力 coding 是不對的。