矽谷敏捷軟體開發

Post on 26-Jun-2015

4.155 views 2 download

description

Slides created for C.C. Agile #15 - 那些老師沒有教的矽谷敏捷軟體開發經驗分享。https://www.facebook.com/groups/268206229913141/

Transcript of 矽谷敏捷軟體開發

那些老師沒有教的矽谷敏捷軟體開發經驗分享

By Wen Hsu

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