[Agile Thailand 2012] Release planning & estimation the agile way

Preview:

DESCRIPTION

Planning ในแบบ Agile แตกต่างจาก planning ในแบบเก่าอย่างไร? ทำไมมันถึง work? แล้วมันช่วยบอกว่า release จะเสร็จเมื่อไรได้ดีขึ้นจริงรึ? แล้ว Story Point คืออะไร? ใช้ยังไง? เกี่ยวอะไรกับการ plan และการ estimate? คุณจะได้เรียนรู้และลองใช้กันใน session นี้ เหมาะกับคนที่เพิ่งได้ค้นพบ Agile และอยากจะนำไปใช้จริง

Citation preview

Release planning & Estimation the Agile Way

The Bible

บทท 1, 2, 3, 4, 6, และ 23 (Case Study)

ท ำไม Plan แบบเกำถง Fail

• Plan ดวย activities

o activities ไมไดเกยวโดยตรงกบ Feature

o activities ไมเคยเสรจกอนเวลำ o activities หลงตองรอ activities ขำงหนำเสรจกอน

o ถำ activities ดำนหนำชำ ทเหลอกจะชำตำมกนไปหมด

• ไมไดเนนกำรท ำ Feature ทส ำคญทสดกอน

• หลอกตวเองวำ Plan นเจงทสดแลว และท ำตำมมนอยำงเครงครด

o เสรจวนท xx/xx/xx แนนอน!

• ไมไดรวมควำมไมแนนอนเขำไปใน Plan

o บำงคนกอำจจะรวมดวยกำรใส buffer เอำ <-- แตนมนกนงเทยนเอำชดๆ

ท ำไม Plan แบบ Agile ถง Work

• สรำง Plan ทรวำใชไดตอนน แลวก update มนอยเรอยๆ

• จบ Effort ทใชในกำรท ำงำน กบเวลำในกำรท ำงำนแยกออกจำกกน

o มนไมเกยวกนจรงๆนะ

• ม Plan หลำยๆ level

o level สงๆ กไมตองละเอยดมำก เสยเวลำ • บอกอยำงชดเจนวำมนมควำมไมแนนอนอยนะ

• Plan ดวย Features ไมใช Activities

• ใหควำมส ำคญกบควำมส ำคญ

• มนโปรงใส!

User Stories

• เขยน requirement จำกมมมองของผไดประโยชนจำก requirement นนๆ โดยใชภำษำทใครๆกไดเขำใจ

• As a <stakeholder>, I want <goal> so that <reason>.

• Exit Criteria

• Estimate

• Discussion

A User Story

I.N.V.E.S.T.

Independent

จบไดดวยตวเอง Negotiable

จะเอาจกรยาน รถเบนซ หรอยานอวกาศ

Valuable

มคณคา Estimable

estimate ได

Small

เลกทสดเทาทจะท าได ในเวลานนๆ

Testable

test ได

ใหทำยวำผพดสงเทำไหร

จะเลนตวเองท ำไมมทรำบ

ทำยวำผพดสงเปนกเทำของโตะ

Story Points

• Relative estimate

o อนนเปนกเทำของอนนนนำำ?

• คดรวมทง Dev และ Test

o จงพงคดอยเสมอวำ งำนจะไมเสรจถำไมผำน test

• เลอกใชเซตของตวเลขทจะไมท ำใหตองมำนงเถยงกนดวยควำมตำงเลกๆนอย ๆ

o ญาต Fibonacci : 1, 2, 3, 5, 8, 13, 21, etc…

o Cohn's : 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100, ?

o Simple : 0, 1, 2, 3, 5, 8, BIG

• มนไมไดเกยวอะไรกบจ ำนวนวน ณ ตอนท estimate

Planning Poker

วธเลน Planning Poker

1. ทกคนมกำรด Planning Poker 1 ส ำรบ

2. Facilitator อำนรำยละเอยดของ User Story ทตองกำรจะ vote

3. Facilitator เปดโอกำสใหทกคนถำมค ำถำม เพอใหเขำใจ story มำกขน

4. เมอทกคนพรอมทจะ vote ใหแตละคนเลอกกำรดของตวเองไว ไมบอกใคร

5. Facilitator ใหสญญำณ เพอใหทกคน show กำรดของตวเองออกมำพรอมๆกน

6. ถำมคนไมตรง ใหคนทใหมำกทสดกบนอยทสด พดวำท ำไมตวเองถงใหเทำนน

7. เมอเขำใจกนมำกขน กให vote ใหม

8. ท ำจนกวำทกคนจะ vote เหมอนกนหรอสำมำรถยอมรบคำใดคำหนงได

Velocity & Release Planning

• Velocity คอ คำเฉลยของจ ำนวน story points ทท ำไดตอ iteration

o ในวนแรกของกำรท ำ project เรำอำจจะใช estimated velocity แตพอท ำไปซกพก ตองใชคำเฉลยจรง

• Release คอ เซตของ User Stories ทควรคำตอกำรน ำออกไปสสำยตำสำธำรณะชน

• Velocity จะเปนตวทน ำไปสกำรบอกวำ Release นจะเสรจเมอไหร

o กำรเดำ vs กำรคนพบ

สงส ำคญในกำร Plan Release

• เลอกวำจะเอำ stories ไหนเขำ release บำง

o อะไรทจะเปนเปำหมำยของ release น

• ไดท ำกำร estimate user stories ไวเรยบรอย

• เลอกระยะเวลำของ iteration

o iteration ควรจะมควำมยำวคงททง release

• เลอก estimate velocity

o ยงไมรวำของจรงจะเปนเทำไหร

o ใชจำกในอดตของ project ทใกลเคยงกนกได

o ค ำนวณจำก stories ทคดวำนำจะท ำไดใน 1 iteration

• ตองมกำรจดล ำดบควำมส ำคญของ stories ไวดวย

• อยำใชเวลำในกำรลง details กบสงทไมจ ำเปนส ำหรบกำร plan

release

o อยำจบ story ยดใส iteration หรอ ใสมอใคร

ถง Release

Prioritization

• หวใจของกำรท ำ Agile อยำงหนงคอกำรจดล ำดบควำมส ำคญของ Feature

o เรำมกจะมของทใหท ำ มำกกวำเวลำทมเสมอ

o ใหนกไวเสมอวำ ตงคจะหมดไดทกเมอ

• จดล ำดบควำมส ำคญโดย

o ท ำสงทให Value กบลกคำมำกทสดกอน

o ท ำสงทมควำมเสยงสงกอน เชน ของทไมรวำจะท ำไดจรงรเปลำ o ท ำสงทจะเพมควำมรใหน ำไปใชในภำยภำคหลงได

Burndown Chart

• สงส ำคญมำกๆๆๆ ทจะตอบโจทยเรอง

o กำร update plan อยำงสม ำเสมอ

o ควำมโปรงใส

o ทกคนเหนภำพเดยวกนของ release

• กรำฟ

o แกน X: เวลำ o แกน Y: จ ำนวน story points ของ release ทยงท ำไมเสรจ ณ

เวลำใดๆ

Burndown Chart (simple)

Burndown Chart (fancy)

สรป

• เขยน requirement ดวย user stories

• ใช relative estimate e.g. story points

• จดล ำดบควำมส ำคญของ user stories ทจะเอำเขำมำใน

release และคอยจดใหมตำมควำมเปนจรงนะปจจบนอยำงสม ำเสมอ (หนำท Product Owner)

• Update Burndown Chart ทกๆ iteration และใชเปนเครองมอสอสำรเพอใหทกคนเหนภำพของ release

ตรงกน

Recommended