矽谷敏捷軟體開發
-
Upload
ya-wen-hsu -
Category
Technology
-
view
4.155 -
download
2
description
Transcript of 矽谷敏捷軟體開發
那些老師沒有教的矽谷敏捷軟體開發經驗分享
By Wen Hsu
關於我
● 矽谷資深軟體工程師● 網頁軟題開發,B2B經驗● 就職於Switchfly● https://www.facebook.
com/yawenhsu● http://www.linkedin.
com/in/yawenhsu365● [email protected]
Outline● 敏捷開發. 當傳統遇上敏捷?● 團隊合作● Extreme/Pair programming● 讓你半夜睡得好的幫手 - 測試!● 讓你半夜睡得更好的決策 - 如何找到對的人● 公司 tech stack
傳統流程 - Waterfall錯一步,就得打掉重練
http://en.wikipedia.org/wiki/Waterfall_model
傳統流程 - 問題在哪?
每個人的理解不同
傳統流程軟體開發時間難以預估,太常失敗
Agile導入
強調從早期開始跨部門,以及部門間溝通 (green lines)
*http://www.ambysoft.com/essays/whyAgileWorksFeedback.htm
當傳統遇上敏捷?
建議直接執行敏捷的流程。逼不得已時,在從傳統導入敏捷的過程,時間可以小時和點數同時預估,幾次之後對於多少點數換算成多少時間會較準確。
Waterfall Agile
需求 (Requirement) Up-front Evolve with time/iterations
進度 (Progress, Blocks) N Daily standup, scrum board
所需時間 (Design & Estimate) Hours Points
秋後算賬 (Retrospectives) N Y
部門間合作 Cross Teams
- 綠色為agile流程,全部以點數計算
- 省略原有的D&E過程,直接開始coding
流程 Requirement
D&E D&E review
Development
Demo Biz acceptance
QA測試 客戶測試
參與人 - Biz Owner- Dev- QA
Dev - Dev- Biz Owner- QA- SME
Dev DevBiz OwnerQA
Biz Owner
QA Client
Extreme/Pair Programming● 開放空間● 雙銀幕● 兩張椅子● 白板 + Scrum板● 兩個人做同一件事● 輪流主導,一起討論
http://www.codinghorror.com/blog/2007/11/pair-programming-vs-code-reviews.html
Pair Programming - why?● 提高程式品質● 縮短研發時間● Knowledge transfer● 訓練溝通能力● 專心於解決問題本身,而不是deadline
Code Review● Just do it!● http://www.codinghorror.
com/blog/2006/01/code-reviews-just-do-it.html
遠距合作
● 同一或相近時區● 快速回應● Skype● 螢幕分享
○ Screenhero○ Readytalk
● Pair programming的文化讓遠距合作變得容易
半夜睡得好的幫手 - 測試!
● Study conducted by NIST in 2002. Software bugs cost the U.S. economy
$59.5 billion annually● http://en.wikipedia.org/wiki/Software_testing
完整測試讓問題在這一階段就找到
半夜睡得好的幫手 - Testing!● Unit Test (TDD):最小的
邏輯單位● Integration Test:一套系
統如何運作● System (Selenium)
Test:一套組合系統的運作
完整測試的好處
● 減少開發時間:測試feedback快,不需手動測試
● 鼓勵Refactoring:如果改了其他處有問題,測試可以幫你抓包!
● 測試可以幫助對程式的瞭解:e.g. 測試名shouldIncludePromotionWhenTravelWithPartner()
● 回家作業 - 寫程式習慣● 電話面試 - 溝通能力,技術能力
○ 約一小時, 刪掉約一半人選
● 面試 - 思考過程,臨時應對能力○ 至少跟3位會一起工作的工程師面試○ Pairing exercise (鼓勵google)
● Hire or no hire?● http://www.joelonsoftware.com/articles/guerrillainterviewing3.html
睡得更好的決策 - 對的人
Tech Stack● Documentation: Confluence● Bug tracking: TargetProcess● Skype● Email● IDE: IntelliJ Idea
● Apache● Spring MVC (Java)● Ember (Javascript)● Freemarker (Template rendering)● Coldfusion (big no no)● Couchbase● Postgres● Git● Maven & Ant● Jenkins● PgBouncer
謝謝聆聽,Q&A