敏捷開發相關

Wrightlt發表於2018-10-17
  • 什麼是敏捷
    • 敏捷就是一種思想
    • 敏捷開發是基於敏捷的一種實踐
  • 一些關於敏捷的名詞
    • retro
    • tdd
    • code review
    • points
    • 結對程式設計
    • mvp
    • 反饋
    • Story Point:功能需求點
    • VoC(客戶的聲音)
    • Unit Test
    • Functional Test(功能測試)
    • show case
    • small commit
    • MVP:最小可行性產品
  • 敏捷宣言
      個體和互動 高於 流程和工具
      工作的軟體 高於 詳盡的文件
      客戶合作 高於 合同談判
      響應變化 高於 遵循計劃
    複製程式碼
  • 敏捷開發12原則
    • 1 我們最重要的目標,是通過持續不斷地及早交付有價值的軟體使客戶滿意。
    • 2 欣然面對需求變化,即使在開發後期也一樣。為了客戶的競爭優勢,敏捷過程掌控變化。
    • 3 經常地交付可工作的軟體,相隔幾星期或一兩個月,傾向於採取較短的週期。
    • 4 業務人員和開發人員必須相互合作,專案中的每一天都不例外。
    • 5 激發個體的鬥志,以他們為核心搭建專案。提供所需的環境和支援,輔以信任,從而達成目標。
    • 6 不論團隊內外,傳遞資訊效果最好和效率最高的方式是面對面的交談。
    • 7 可工作的軟體是進度的首要度量標準。
    • 8 敏捷過程倡導可持續開發。責任人、開發人員和使用者要能夠共同維持其步調穩定延續。
    • 9 堅持不懈地追求技術卓越和良好設計,敏捷能力由此增強。
    • 10 以簡潔為本,它是極力減少不必要工作量的藝術。
    • 11 最好的架構、需求和設計出自自組織團隊。
    • 12 團隊定期地反思如何能提高成效,並依此調整自身的舉止表現。(即retro)

【敏捷實踐】

  • scrum

    • scrum: Scrum是迭代式增量軟體開發過程,通常用於敏捷軟體開發。
    • Product Owner: 負責維護產品訂單的人,代表利益相關者的利益。
    • scrum master: 為Scrum過程負責的人,確保scrum的正確使用並使得Scrum的收益最大化。一般不翻譯
    • team:開發團隊,由負責自我管理開發產品的人組成的跨職能團隊,團隊擁有交付可用軟體需要的各種技能。在一定的週期限制內,開發團隊則會建立可用的、 並且可以隨時推出的軟體成品。
    • scrum要素:
      • sprint: 衝刺,一個固定的時間週期,(通常在2周到1個月之間),開發團隊會在此期間內完成所承諾的一組訂單項的開發。(迭代)
      • user story: 使用者故事 (task)
      • points: 故事點塑,代表故事的大小,這裡的大小不代表開發時間,只是故事的複雜度,工作量的大小。points是用來評估team的交付能力的
      • backlog: 待辦事項集合。可以預知的所有任務,包括功能性的和非功能性的所有任務
      • sprint backlog: 每個迭代的開發列表
      • release planning: 發版計劃
  • scrum meeting

    • stand up - 站會
    • sprint planning meeting - 迭代計劃會議,確認迭代要做的,以及優先順序,識別task的風險和依賴,以及是否要去調研等等,以便做好迭代開發的前期準備
    • showcase - 展示迭代完成的功能,目的是及時同需求方確認功能是否和需求吻合
    • retrospective - 就是retro,總結前一個迭代好的和不好的,指定action和負責人,以便在之後去進行改進和保持。
  • scrum價值觀

    • 專注 - 把你的心思和能力都用到你承諾的工作上去
    • 勇氣 - 有勇氣去面對各種挑戰
    • 公開 - 把專案中的一切開放給每個人看(包括進展、問題、阻礙)
    • 承諾 – 願意對目標做出承諾(作為一個自組織團隊,在迭代開始的時候做出承諾,並在迭代中全力完成)
    • 尊重– 每個人都有他獨特的背景和經驗。(團隊是長期坐到一起,並且穩定的,有助於加深彼此的瞭解和溝通)

【敏捷實踐】

  • 極限程式設計
    • TDD:測試驅動開發
    • CI/CD:持續整合/持續部署
    • refactoring:重構
    • code review:程式碼審查
    • pair programming
  • 看板方法:
    • 限制WIP
    • 減小批量
    • 視覺化
    • 管理度量佇列
  • 反饋:
    • 產品的反饋:MVP
    • 團隊的反饋:Retro
    • 專案的反饋:TDD CI/CD
    • 個人的反饋:舒適區

相關文章