談軟體開發之前,你需要知道的事 ft. Hogan Lin
軟體開發流程 Scrum 流程實踐
瀑布式開發
Hogan的合作經驗:成大、永豐、好想工作室
在開發流程的時候發現用戶流程用起來怪怪的,可能是因為在Design 階段設計得不夠完善
傳統的瀑布式開發不夠彈性
敏捷式開發
Hogan的合作經驗:鈦坦、汽車公司
- Scrum框架
- 在每次sprint前,PO就會先確定這次sprint的目標會做什麼
- 面臨的挑戰:
- 每次sprint都會常常開會,有時候實際的開發時間可能只有一半
- 每次需要先定義什麼樣是Done,因為PO跟開發者可能會認知不同
敏捷式的價值絕不是「快」,而是可以隨時接受改變
流程:
- PO列出產品待辦清單的所有item的話,在part 1會議工程師們會討論各個item的可行性如何
- 在part2 會議,工程師們會討論各項任務的難易度與優先度。在鈦坦工作時,會以費氏數列(1,1,2,3,5,8…)來決定難易度。每位工程師會一起投票討論,並評估任務的難易度
- 實際開發,Pair programming:一位工程師負責口述引導,一位負責coding。
軟體面試、如何準備?
什麼是軟體工程師?該具備什麼
軟: 領導力、協作、溝通、問題解決
硬: 架構系統、測試、資結、演算法
面試環節
-
基礎技能
- 資料結構
- leetcode
- 演算法
- 作業系統
- 網際網路
-
專業知識
- 前端、後端、全端
- 先專注在自己想要的職位,去培養相對的技能
- 實習很注重這方面,會問比較深
-
系統設計
- 多裝置都可以使用,垂直擴展
- 減少伺服器的負擔
- 面試過程:
- 縮小問題範圍,確認具體需求:DAU MAU(月活躍用戶)要多少
- 先提出一個簡單的解決方案
- 提出減少耗能的解決方案
- 主動提出不同設計的優缺點
-
行為面試
- 為何離開前公司?
- 如何解決溝通衝突?
- 為何加入我們公司?
再回答問題前,應該先用公司文化去優化自己的答案
e.g. 谷歌:多元性、包容
使用"STAR"法明確回答
每家公司注重的環節都不一樣,也取決於應徵職位
不同職位