Just My Life & My Work

Posts tagged ‘software’

[圖解] 技術債 (Technical Debt)

最近陸續有新人來公司報到,我跟一位很年輕成功轉型工程師的同事(原本是教小學生課輔,網路看影片自學寫程式)聊週末去哪玩,他提到自己想要還技術債 (Technical Debt),我以為他要改前人留下來的專案,他說因為很多技術還沒有熟悉,所以想要更用功在鑽研技術上。

突然我想到小英總統2018年底變成辣台妹,因為人家說她「撿到槍」。原本的意思是貶義,拿到不屬於自己的東西(也就是贓物),就說那是撿來的。對於小英勇敢回應強勢的對岸,就變成褒義,表示拿到神級武器,可以從挨打的份逆轉成反擊!不過扯遠啦XD~

後來他表明不曉得技術債真實意義,我便簡單解釋,因為急著要完工,難免會以不周全的寫法完成程式功能,之後若要增修專案,就會面臨之前的「遺毒」。下圖可以明白技術債的陰影面積XD~

製圖的作者很神奇,使用我非常喜歡的動畫獵人拿酷戮的念能力可以來做解釋,胖娃隨著時間債會越滾越大,最後破產就會讓敵人無法使用念能力。若拿來比喻軟體工程,技術債若隨著時間累積,到一定的程度使人難以再做增修,此時專案就要宣告「打掉重練」!

要快又要好,實在不是很容易!除非專案只是一次性,若要長期維護的話,還是要有品質地實作呀~

想起先前分享的文章:設計師的心聲專案的三個要素

註:拿酷戮的念能力「天上不知唯我獨損」(推測是放出系的念獸)另外十分擅長於逃跑。「天上不知唯我獨損」是將念借給對方並以複利計算的高利貸,由胖娃娃「波克里林」計算,在借貸內攻防皆不會受到傷害,借貸額數超過對方念的最大值就會破產,「討債魔」出現強制對方進入絕的狀態30天。

參考:Scrum Estimation-Scrum Estimation Model獵人WiKi – 拿酷戮•拜因有效面對技術債專案中的隱形殺手:技術債

概念驗證 (Proof of Concepts)

我們開發軟體會透過Jira來記錄細節,像是新增功能修正錯誤,甚至還有概念驗證 (Proof of Concepts)

概念驗證(英語:Proof of concept,簡稱POC)是對某些想法的一個較短而不完整的實現,以證明其可行性,示範其原理,其目的是為了驗證一些概念或理論

(繼續閱讀…)

[圖解] 軟體工程師離職後

去年還在健康科技公司上班時看到這張圖解軟體工程師離職後,還覺得是個開玩笑的狀況,沒想到終於被我遇到啦⋯⋯

曾經有聽說過,某新創公司的產品是由超強老闆寫出來,上線營運後發現市場接受度相當高,有意擴張規模而雇用幾個工程師來承接他之前寫的產品,這是我朋友吉米的前公司做博弈軟體的故事。

產品創始人把心中的想法迅速時做出來,透過雛形來測試市場接受度有多高,開發軟體過程想必不會寫得很有彈性,因為「彈性」是需要大規模超仔細地想各種可能發生的情況。比如若我當初只想要搞定80%的狀況,大概一個月就能做出來;若我要再觸及剩下的20%,可能要再多花兩個月才能完工。於是乎我會選擇前者!

當驗證市場可行後,接下來就來補剩下的20%。然而儘管只是20%,想要在既有的架構上可就不太容易擴展,而老闆僱用來的工程師肯定不可能全盤了解當初寫的架構與流程,因為裡頭包含各種Features、Bugs、User Cases、Work Flows、Workarounds等。加上老闆所展現的Coding StyleLogic,與雇用來的工程師所使用的並不一致,導致剩下的20%由老闆來寫只要兩個月,而若讓雇用來的工程師來寫的話就高達半年⋯⋯

回想我還在健康科技公司時,是如此呼風喚雨,iOS App由我一個人獨自從無打造出來,後進來的Android工程師都要仿照我的方式來實現,畢竟小而美的創業公司資源不多,要盡可能使用最少資源來達成目標。對比現在港商的工作狀況,產品已經由資深同事開發10個月,架構是由他建立起來的「樂高系統」,MVC架構非常分明,就好比我當初使用MVP架構HiLife App,然而相對的所花費的時間變多。

過去一個大功能我能在一天內完工,現在一個小功能我可能一天內還無法安心動手,落差非常大啊⋯⋯有時候真的想要不管既有架構,把可運行的Code塞進去,馬上就可以有正確的效果,只是長久來看,只會不斷增加「技術債」,這我在圖解理想與實際的軟體架構有提過。

想起我偉大的前同事德叔說:

要Refactor他人寫的Code需要很大的氣度。

我在下方回答笑說:

我寧願寫Code給別人Refactor,也不要別人寫Code給我Refactor!

對我來說,加入新創公司就是想快速成長,要像個成長駭客一樣跟著產品進化,來盡可能獲得較多的成就感!最終實現自我~

於是乎,之後若要我選擇的話,我肯定會選擇從「無」開始打造產品,因為我可以根據當時的規格(畫面、功能、流程等)來決定架構,可以很快就把既定的藍圖實現出來。

我心中有好多Idea要實現啊⋯⋯

[圖解] Git Flow

過去五年做接案模式的工作,我只會使用非常簡單的Git來版本控制,偶爾才會有同事或夥伴協同合作開發。如今我踏入開發自有產品的環境,必須跟另外兩位前輩工程師合作,此時Git操作就變得更加重要!如何在同一個專案上增修,同一時間不會影響到彼此的任務,做得好就是一門藝術!

Git版本控制有非常多好用的功能,端視專案需求來使用,所以沒有一定的規則!若是同時有多人開發,2010年有個可以當作公版的Git Flow可遵循。現在我參與自有產品開發,大致上就是以上圖的模式來操作。

(繼續閱讀…)

[圖解] 理想與實際的軟體架構

理想與實際會有非常大的差異,在軟體界更是尋常可見!可是因為軟體並非實際的物品,所以通常不易讓「外行人」了解!不過當你看到這張圖解理想與實際的軟體架構,就能大概知道開發一個軟體將有哪些狀況會發生。

此圖取自IT狗的俄羅斯方塊,很高興這張圖寫實地描繪出我所經歷過的狀況XD~

軟體界所謂的規格(Specs),以我過去的經驗來看,大致只有在初期開發時管用,新的技術、新的需求、新的人事物⋯⋯都會影響啊~

我常笑說,我寧願從無開始打造,也不想要去維護他人遺留下來的「毒(技術債)」。

(繼續閱讀…)

[App] Gyroscope (陀螺儀)

因為被臉書收購的Move App要「收攤」,我必須在2018年7月30日前備份我1206天的追蹤紀錄,讓我最近發現一個更好用且詳細的工具,是關於記錄人生歷程的平台Gyroscope (陀螺儀)。這個平台有Web、iOS App、Android App,還串接許多第三方來源的資料,比如:Apple Health、Instagram、Twitter、Fitbit、Strava、RescueTime等等。我發覺Gyroscope做得很符合我的需求,就將Move導出來的資料全數匯入Gyroscope

因為介面做的實在太吸引我,讓我很想要寫篇文章來推薦。首先我要介紹思維導圖 (Mindmap)

(繼續閱讀…)

[Zeplin] Objective C 語法

愛寫iOS App的我,總是要看設計圖,來跟設計師的美學溝通。近年來設計師能透過SketchZeplin合作無間,Zeplin更是能讓工程師立馬上手,就能輕易「看穿」設計師「別有用心」。

除了可以透過鼠標來查看元件相對應位置,還能透過外掛產生Objective C語法,當然還有其他語法如Swift、XML、CSS等等,大大方便工程師不必再自己打code囉~

參考:Zeplin, 跨越工程師與設計師的鴻溝

Sketch 60個設計畫面

因為小蕎流水需要接手前設計師的Sketch原稿,所以我特別測試最新的Sketch 49.1版,打開後赫然發現,總共有60個畫面!!!

Sketch上流社會60個畫面

真是佩服UI設計師可以做出那麼多畫面,也就是說若要App工程師刻出這60個畫面,將會更加有挑戰性~因為各個按鈕要跳轉到某一頁面,不同的情況會有不一樣的顯示。

Sketch 49.1

過去桌機霸橫世界時用得最多是Photoshop,現在手機引領天下後,視覺設計師多用Sketch,相信設計App畫面更加得心應手!

期待這款跨世紀社群App能盡快登場!

[Xcode] 安裝舊版Xcode

每次更新Xcode版本後,多少會出現一些不預期的狀況,如果時間緊迫的話,建議是先回歸到舊版Xcode來開發。那要如何安裝舊版Xcode?只要透過手動下載,新版和舊版的Xcode還能並存呢~畢竟從App Store下載來的軟體,一更新就無法降回原先的版本。

安裝舊版Xcode.png

Apple Developer軟體下載:Downloads for Apple Developers,要先登入Apple帳號才能進去喔~

剛好有用Cordova開發iOS App的朋友詢問,我在此做個紀錄。通常我會保留前一個版本的Xcode,以防新版Xcode出現問題時,還能轉用舊版Xcode繼續開發。

參考:如何安裝舊版Xcode? 如何在舊版Mac OS

[圖解] 新創工作者薪資調查

在臉書上偶然看到朋友Ariel分享Yourator台灣新創工作者大調查2017報告,才17張投影片就讓我大致上了解新創工作者薪資的分布狀況。如今從事第二份工作,我同樣也挑選自由度與發揮度相當高的新創公司,感謝在研究所的我發現自己的天性,提早體驗大公司螺絲釘的工作生活,如今才能堅定不移地往自我實現的路前進!

這份投影片好到我不能不分享,感謝同樣也是新創的Yourator,投影片傳送門

新創公司職位與薪資00002

身為軟體工程師的我當然認為軟體工作者的薪資應高於任何職務,若又加上以下幾個條件,更是可以往上提升:

  1. 熱情參與
  2. 興趣投入
  3. 教學相長
  4. 喜愛分享

新創公司職位與薪資00001

今日老闆在面試醫工剛畢業的女生,詳細地解說我們公司正在發展的方向,整整兩小時半,我邊coding邊聽老闆不厭其煩,甚至滿腔熱血地描繪事業藍圖。最後,女孩還是要問她在美國工作的爸爸,我猜她爸爸會希望她去穩定的大公司。

想要掌握自己的職涯,加入新創公司是成長最快的方式之一,一旦學有所成,能力、經驗、人脈、資源陸續到位,自己也能獨當一面,引領世界潮流,我期待那一天的到來~

參考:Yourator官網

標籤雲