Just My Life & My Work

Archive for the ‘工作’ Category

App 產品歷經十年的挑戰與困難

我想是可以分享的時候了~

2019 年我進入一家 2009 年成立的公司,是以 Web 起家,2012 年開始研發 App,據傳當時僅有一為 App 工程師,同時要寫 iOS 和 Android,這讓聽到的我感到不可思議,一方面佩服該工程師偉哉之處,一方面擔心若該工程師發生意外,有人能夠接手處理嗎?🤔

我接手 iOS 專案時,已經不再是由一人同時研發兩平台,所以我能專注在我熱愛的平台 iOS,首先評估當前專案狀況。

iOS App 歷代開發者接手時間

  • 第四人:2019/09 就是我~🙃
  • 第三人:2017/04
  • 第二人:2014/03
  • 第一人:2012/07

接手別人寫的專案有好處嗎?有~但壞處也不少喔!

好處是不必再想架構,基本上照著前人已制定好的架構繼續做即可。
若有新的功能,則視情況發展自己的邏輯架構。

壞處則是首先要熟悉前人的程式邏輯,我必須瞻前顧後,確定不會影響舊有功能為前提,才能繼續開發新的功能。
由於 App 已有久遠歷史,專案有數量眾多檔案與複雜邏輯,每次編譯會花費 1-5 分鐘不等(端視筆電規格與有無快取)。
有可能踩到前人不小心埋的坑,導致增修功能後,產生不預期的問題,甚至可能難以除錯。

(繼續閱讀…)

第一次去學校當演講者

2022 年 11 月才回母校師大資工,參加兩位同學的演講活動,主題是類似勸退大一新生(115 級,天哪~我已畢業那麽久了),當時心想,若換我受邀回母校系演講,我會想要分享什麼主題呢?🤔

其實在 7 月的時候,我就有收到誠摯的邀請,是我 2014 年去成功嶺當兵時,認識的同梯夥伴阿宏。心想,難得有機會上台演說,就把握這個機會,體驗一下站在眾人面前演說的感受。

沒有思考太久,我便答應在中原資工當教授的阿宏,跟他簡單說明我十年的工作經歷,並選擇 12/28 週三這一天,前往中原大學給個演說,講題大方向是分享:我為何當行動工程師。

(繼續閱讀…)

什麼是 Scrum 團隊?

目前我們研發團隊已經跑了兩個 Sprint,想要陸續來了解一些跟 Scrum 有關的定義和規則。

原本以為【敏捷開發】可以加速開發,畢竟叫做【敏捷】,但查了網路文章,有經驗人士分享,結果根本就不是啊⋯⋯🤪

這讓我對敏捷開發幻滅,身為我這種生產力極高的工程師說,實際跑才兩個 Sprint 就發現,此模式是會拖慢我開發效率的⋯⋯不過還是希望習慣此開發模式之後,會逐漸加快吧~

這次就來理解什麼是 Scrum 團隊

看了這張圖,就能了解 Scrum 團隊包含哪些角色,目前看起來 Scrum Master 和 Product Owner 相當重要,我們團隊是由有三年跑 Scrum 研發經驗的工程師翔所領導。趁這時候聽話照著做,肯定能學到許多!😎

我們工程師有 Web、iOS、Android、Flutter、Backend、Architect、DevOps 等。而設計師、需求者(市場、業務、產品等)等不在我們 Scrum 團隊中。

(繼續閱讀…)

軟體外包風險評估

由於市場業務部不斷提出新的需求,迫使我們設計研發部必須加速實現,但當前人力有限,勢必得尋找新的人力資源,有兩種方式:

  • 招募人才
  • 外包團隊

當下狀況是,來不及招募到合適人才,而市場業務部恰好有認識的外包團隊(中國與台灣各一),長官們決定嘗試接洽,然因為長官不熟開發知識與技術,於是就請我來當窗口,向兩個外包團隊說明我們想要使用的技術與達成的結果。🤔

(繼續閱讀…)

[圖解] 專案計畫與實際

這次執行的區塊鏈平台產品,沒有足夠時間可以完整進行:分析、設計、實作、測試、釋出

看到下方這張時程圖-專案計畫與實際,發覺我們正面臨的狀況,正好只有兩個月的時間,就要釋出給大眾使用,全部時程都擠在一起,這樣成果品質是不會太好的⋯⋯

我想主要原因在於,我們接手前人所寫的解決方案,尚未了解此 Code Base 架構與品質,就率先決定產品推出日期。

當我們人力陸續到位,能夠開始部署,才陸續遇到問題,光是要將缺陷給修正就要花點時間,再來還要新增需求。時間有限之下,需要有所取捨,如此就會造成混亂,每次局部測試一直遇到狀況,修正後還是會偶發狀況,表示整個系統是相當不穩定。

我主要心力放在 App 開發,我所在乎的後端,就是期待 API 能正確運作。於是我要先走一步,提早研究將來會使用到的技術。

期待接下來的時程能順利囉~🤪

從外商公司拿到的紅包

最近手頭很緊,先前才把現在公司陸續給的紅包拿出來用,其實很捨不得花掉超級新的鈔票,不過鈔票本質就是錢,更透徹來說就只是個「數字」,需要的時候就拿出來用掉吧~

即將要搬家,在整理塑膠衣櫃,發現有許多物品被我遺忘,甚至連前公司外商的紅包都沒動過,拿起來的感覺居然還有鈔票⋯⋯如獲至寶的我,想說這個是及時雨,只是四張紅包裡頭的鈔票,加起來也才1600元,人家都說外商福利好,這⋯⋯

四張紅包分別是在何時拿到呢?

  • 辦公室遷移到101大樓斜對面的大樓,辦理剪綵儀式時
  • 尾牙後隔一天
  • 新年第一天上班時
  • 端午節放假前

未來希望公司能多給獎金,看能否至少1/4月薪,再不然就去找額外收入啦~

[iOS] Facebook SDK 出包

辛苦一週的週五傍晚,應是期待放假的好時候,下班前居然出現不明原因,使得我們家App在開啟的時候crash,而且是持續不斷。起初還以為是自己不小心改到什麼,或是自家的後台發生狀況,查詢後才發現,竟然是Facebook SDK出包⋯⋯

可以看到程式碼crash在Facebook SDK之中,回傳這個NSNull物件⋯⋯

(繼續閱讀…)

[iOS] 烏龍審核 (Oolong Review)

我目前負責維護開發自家產品App,平均每一週都要送審一次,若有緊急bug需要修正,則會在改完後當天送審!

送審是App一大關卡,要是被擋下來,則可能至少需要一天來改善,隔天才會順利趕上再次審核。

我發現⋯⋯審核員並不是每次都是同一位,我有遇到上個版本沒問題的功能,下個版本居然被擋,當時我可是要緊急修正bug呢!

審核員一向根據Apple審核規範來審核App,規則可是相當嚴謹。一旦審核被拒,對開發者如我來說會相當緊張,就是怕影響到產品發佈時程!

這次我遇到烏龍審核被拒,稍微花點時間重現被拒原因,才發現是系統跳出的提示,是網路狀況有問題,然而審核員以為是我Sign In With Apple有問題。讓我差點要把iPhone升級到iOS 13.5.1,才能找出關鍵原因!

(繼續閱讀…)

[圖解] 工程師的思考模式

身為工程師的我,不斷地學習新技術,有時候也是需要吐點東西出來分享,內化之後才算真的是自己的!

還是認為每天寫一篇文章是最棒的日常生活~否則呀⋯⋯會覺得自己一整天沒啥收穫,畢竟人是健忘的動物,若能回頭看自己隨意留下的字句,又能抓回些什麼呢~

這次也又看見讓人會心一笑的漫畫工程師的思考模式,可以清楚說明為何工程師認真工作起來,是很難被打斷的!不是工程師太過高傲不想理你,而是他們還在深沈的思考中,無法一下子就變得舌燦蓮花。

假如工程師認真工作時被打擾,就能與人溝通無礙,那麼肯定他不認真工作XD~

其實厲害的工程師是辯才無礙,可以進化成專案經理型工程師,這個階段可以靠「嘴巴」工作。若是程式設計師進化來的專案經理型工程師,就會用「嘴巴」寫程式!

我自許成為成長駭客 (Growth Hacker),除了動手寫程式外,還要能動口宣傳產品,這正是我現階段的工作職務!

另外2013年就看過的這張圖,描寫工程師思索程式碼如何實現功能,突然被同事打攪後,剛才想到的解法就被「黑洞」吸走了XD~

期許工作一直有源源不斷的靈感與成就感:)~

參考:工程師的思考模式This is why you shouldn’t interrupt a programmer

[圖解] 手癢優化程式

有時候跟親友講自己的工作任務難以一次說明完全,若能有日常生活中的例子,就能讓外行人立馬了解!在「靠北工程師」看到一張畫,隨意加個註解,這讓我會心一笑,確實手癢優化程式,真的是沒事找事做XD~

我現在的工作主要是維護產品,次要則是開發功能。有時候看到前人寫的code有點冗贅,就會想要濃縮得更精準。然而前人之所以會那麼寫,也許是因為各種面向考量,無法以精簡的方式解決,每個case就會分開撰寫,乍看之下十分不聰明,但長時間運行沒有出現問題。

對於超過五年的專案,基本架構早已運行良久,基本上不太需要去更動,我的任務是針對用戶回饋的問題加以改進。若想要增加「大功能」,架構勢必得調整,這對過去的版本將造成不相容,一想到可能會導致銷量降低,我就打消大幅度優化的計畫XD~

想要增加自己對產品的貢獻,優化舊有的程式碼不是件聰明事兒,除非這個優化結果能讓用戶「有感」,於是就能邀功XD~

期待自己能練就⋯⋯飛機正在飛行,我能邊飛行邊修理:P~

標籤雲

%d 位部落客按了讚: