精誠隨想行動科技股份有限公司 1091721 龐達業
姓 名:龐達業
學 號:1091721
指導教授:林耀欽
實習部門:Martech研發處B
一、工作環境
我的上班地點是在精誠資訊的子公司—精誠隨想,在距離精誠總公司走路5 ~ 10分鐘的一棟辦公大樓,公司離捷運港墘站走路大概10分鐘,附近也有美食街,在交通和吃飯算是非常方便。上班時間是8:30 ~ 9:30,有1個小時的彈性時間,對於要通勤上班的人來說,上班比較不會那麼趕。
二、工作內容
我們部門是Martech研發處,主要是在做金融產業的App開發及維護,包括iOS以及Android。今年公司開始有舉辦技術分享會,分別在2月和5月舉辦過2次,每個部門會分別派一個人準備一個技術相關的議題和大家分享,負責iOS或負責Android的同事也可以了解不同平台的新技術。或者是個部門最近遇到開發上的問題,也可以提出來大家一起討論。
1. 教育訓練 2/1 ~ 2/9
進到公司的第一個禮拜,為了熟悉公司的coding style還有iOS App的開發流程,我的mentor請我做了一個Bingo App,必須要根據使用者輸入的數值,動態配置Bingo的格子,並且判斷輸贏。除了要動態配置畫面上的格子,還要記錄兩方玩家點選的區塊,並且使畫面上呈現的和玩家遊玩紀錄同步,一開始不太知道要怎麼做出來,但是因為以前就對開發iOS App有了解,所以我的進度很快,大概一個禮拜之後就接下了投保App的專案。
2. 投保App 2/9 ~
這個App是設計給保險業務員使用,可以離線輸入要保人個人資料以及保險合約,最後將這些資訊套印至要保書,並且可以在連線時將資料上傳。主要的工作內容是維護專案及依照客戶需求新增或修改功能。
這個專案是一個很老的專案,已經有了10年以上的歷史,超過10萬行程式碼,自從Objective-C MRC(手動記憶體管理)時代就已經存在,經過了許多不同人維護,現在已經不太會有大幅度的功能新增,以小幅度的需求修改為主。
接到這個專案的第一天,我和mentor在會議室裡面,mentor打開需求書和配合這次需求要新增的商品Excel檔,一個一個告訴我受益人數量、告知事項、要保書版本、需要附加的文件等等要怎麼修改商品資料庫和專案程式碼,但是因為那個時候我對保險完全不了解,所以我出了會議室之後大部分幾乎都忘光了,那一天下午就一直跑到mentor的位子,詢問他要怎麼修改。這是第一次讓我感受到一個公司專案的規模是如此巨大。
每個月客戶會有2次需求,所以每次需求大概2週(6個工作天)要完成,需求內容大多為新增商品、更新要保書、UI更新、檢核邏輯修改等等。一般情況我可以在需求的期限前一天完成所有需求的內容,有時候因為下一個需求要修改的內容比較多,會比較早收到下一次的需求內容,或者是上一次需求已經完成,但是後來發現有一些Bug要修正或套印的位置要調整,會有一段時間需要同時處理兩次需求的內容,工作會變比較忙。
專案維護流程是對專案程式碼和資料庫新增需求中的新商品,如果有要保書要更新,需要在另外一個公司內部處理套印的專案上更新要保書的套印,UI更新和檢核邏輯修改也會需要改動到資料庫新增需求中的新商品。
投保App需要把業務員填入的資訊套印在要保書上,所以除了投保App之外的專案,我還有維護一個公司內部的專案,這個專案會紀錄每個要保書要套印和要簽名的位置,並且產生XML檔,提供投保App套印的時候使用,當有要保書更新時,就要去更新這個專案,修改套印的位置。
3. 暑假期間
暑假期間不用到學校上課,上班時間從原本的一週3天變成5天,每天通勤3~4個小時上班的日子,夏天的大太陽和午後雷陣雨,還有偶爾襲來的颱風和放到颱風假的小確幸,讓我體會到了每天通勤上班人們的辛苦。
之前維護的投保App專案,在暑假期間繼續由我來完成每次需求新增的內容,因為暑假期間變成一週5天上班,但是投保App一樣是維持和原本一樣一個月2次的需求新增,所以一次需求就從原本6個工作天要完成,變成10個工作天,時間也就變得沒那麼趕,做完也有比較多時間可以檢查程式邏輯、套印有沒有問題。
三、學習
1. 保險
以前我對保險完全沒有概念,一開始接這個專案的時候,除了要看專案的程式碼之外,還要了解保險在做什麼、要保書還有各種附加文件等等,到現在完成了好幾次需求,雖然說對保險還是沒有到很了解,但是至少對各種不同保險的商品和要保書有一些概念。
2. 提高效率的方法
新增保險商品時,客戶會傳一份Excel檔,記錄了每個商品的受益人數量、告知事項、要保書版本、需要附加的文件等等…,這些資料要一個一個輸入到資料庫中。剛開始就發現這樣一個一個手動新增非常容易出錯,而且也不知道到底新增了什麼,很容易少新增或重複新增。
經過幾次出錯之後,我開始思考如何解決這樣的問題,我很難避免自己粗心,但是電腦可以。所以我寫了一個小程式,讀取Excel檔,並轉成SQL指令,不僅可以檢查哪些商品已經加入資料庫、提升工作效率、還可以減少出錯的機會。
3. 專案維護
以前在學校寫程式大多都是自己寫,但是到了公司,除了要看以前的人寫的大量的程式碼,同時其他同事也在共同維護這個專案,在改動專案的同事,還要避免和其他同事修改的地方衝突,這段時間我也學會了許多使用git的技巧。
因為專案很大,很多程式碼是以前已經離職的同事寫的,我如果有遇到不懂的地方,mentor也沒辦法馬上回答我,只能請我先看一下程式碼是怎麼寫這段邏輯的,所以在這段時間,我也學會了如何使用LLDB來debug、查看每個變數在runtime的資料。
四、自我評估及心得感想
到公司的第一天,HR告訴我們:「上班之後時間就會過得飛快,所以要好好把握現在的青春。」,那個時候我覺得應該差不多吧,還不理解為什麼上班之後會感覺時間過得變快。從實習開始到現在,我已經完成了投保App 20次需求的內容,從完全不了解保險,到現在可以了解保險的種類、受益人、要保書以及其他附加文件,並且完成所有需求修改的內容,其實我也成長了許多,回過頭來,從冬天到了夏天,又到了下一個冬天,我覺得現在的我能夠理解當時HR所說的話。
投保App這個專案,除了對iOS App開發的專業知識之外,還要會SQL、git,甚至是保險領域的專業知識,讓我的實習生活非常的忙碌、也很充實,我覺得這個和在學校寫程式的作業是差非常多的。App的中文是應用程式,指的就是在一個特定應用領用所設計的程式,所以他所需要的就不僅是程式開發的能力,對於應用領域的專業知識也一樣重要,我覺得這個是在學校所學不到的。
五、對系上的建議
我覺得系上的實習制度已經施行了很多年,制度已經算是很完整。如果要提一些建議,我覺得校外實習學分比校內實習多一點會比較好,因為校外實習有3天不在學校,能選的課就會比較受限,增加校外實習的學分也有可能吸引更多學弟妹選擇校外實習。