Try   HackMD

談軟體開發之前,你需要知道的事 ft. Hogan Lin


軟體開發流程 Scrum 流程實踐

瀑布式開發

Hogan的合作經驗:成大、永豐、好想工作室

在開發流程的時候發現用戶流程用起來怪怪的,可能是因為在Design 階段設計得不夠完善
傳統的瀑布式開發不夠彈性

敏捷式開發

Hogan的合作經驗:鈦坦、汽車公司

  • Scrum框架
    • ToDo
    • Doing
    • Done
  • 在每次sprint前,PO就會先確定這次sprint的目標會做什麼
  • 面臨的挑戰:
    • 每次sprint都會常常開會,有時候實際的開發時間可能只有一半
    • 每次需要先定義什麼樣是Done,因為PO跟開發者可能會認知不同

敏捷式的價值絕不是「快」,而是可以隨時接受改變

流程:

  1. PO列出產品待辦清單的所有item的話,在part 1會議工程師們會討論各個item的可行性如何
  2. 在part2 會議,工程師們會討論各項任務的難易度與優先度。在鈦坦工作時,會以費氏數列(1,1,2,3,5,8)來決定難易度。每位工程師會一起投票討論,並評估任務的難易度
  3. 實際開發,Pair programming:一位工程師負責口述引導,一位負責coding。

軟體面試、如何準備?

什麼是軟體工程師?該具備什麼
軟: 領導力、協作、溝通、問題解決
硬: 架構系統、測試、資結、演算法

面試環節

  1. 基礎技能

    • 資料結構
    • leetcode
    • 演算法
    • 作業系統
    • 網際網路
  2. 專業知識

    • 前端、後端、全端
    • 先專注在自己想要的職位,去培養相對的技能
    • 實習很注重這方面,會問比較深
  3. 系統設計

    • 多裝置都可以使用,垂直擴展
    • 減少伺服器的負擔
    • 面試過程:
      • 縮小問題範圍,確認具體需求:DAU MAU(月活躍用戶)要多少
      • 先提出一個簡單的解決方案
      • 提出減少耗能的解決方案
      • 主動提出不同設計的優缺點
  4. 行為面試

    • 為何離開前公司?
    • 如何解決溝通衝突?
    • 為何加入我們公司?

    再回答問題前,應該先用公司文化去優化自己的答案
    e.g. 谷歌:多元性、包容
    使用"STAR"法明確回答

每家公司注重的環節都不一樣,也取決於應徵職位

不同職位

  • 前端工程師