What are Agile and Scrum · • Product Owner – User...

Preview:

Citation preview

What are Agile and Scrum ?

What ‘s an AGILE ?

ปัจจุบันวงการพัฒนาระบบ ก าลังสนใจ keyword ต่างในกระบวนการพัฒนา Software ในปัจจุบันเช่น Agile, Scrum, Scrum Master, Sprint แต่ละค าคืออะไรและน าไปใช้ในจัดการโครงการอย่างไร

แต่เดิมนั้น การพัฒนา Software มักจะเป็นขั้นตอนต่างๆ ดังนี้ 1. เก็บรวบรวม Requirements จากลูกค้า, ประเมินความเป็นไปได้ และ ประเมินทรัพยากรที่ต้องใช้ในโครงการ 2. วิเคราะห์และออกแบบ ส่วนต่างๆของ Software ผ่าน Diagram ต่างๆ 3. Implementation หรือจะเรียกว่า Coding ตามที่ได้ออกแบบไว้ 4. Verification ทดสอบและยืนยัน ว่าระบบท างานถูกต้องตาม Requirement หรือไม่

What ‘s an AGILE ?

ขั้นตอนที่กล่าวมานั้น มันเหมาะสมกับโครงการที่มี Requirement ชัดเจนแล้ว ก็สามารถท าตาม Document นั้นได้เลย แต่ถ้าโครงการที่ต้องเจอนั้นเกิดปัญหาเหล่านี:้ • การเปลี่ยนแปลง Requirement ตลอดเวลา • User ไม่รู้ว่าตัวเองต้องการอะไร • User อยากได้ระบบที่ใช้งานได้เร็วที่สุด (ยังไม่ครบฟังก์ชันก็ได้) • ความสัมพันธ์ภายในทีมงานไม่ค่อยดี • ไม่รู้ว่าคนอื่นภายในทีมก าลังท าอะไรกันอยู่

What ‘s an AGILE ?

“Agile จึงเป็นทางออก” ซึ่งเป็นรูปแบบหนึ่งในการพัฒนา Software ซึ่งค าแถลงอุดมการณ์แห่งอไจล ์(Agile Manifesto) ซึ่งสรุปมี 4 ข้อเป็นหลักในการปฏิบัติดังนี้ 1) ซอฟต์แวร์ที่น ำไปใช้งำนได้จริง มากกว่าเอกสารที่ครบถ้วนสมบูรณ์

• เน้นความพึงพอใจของลูกค้าที่มีต่อ Software ซึ่งมีคุณภาพตั้งแต่เริ่มจนจบ • ส่งมอบ Software ที่ใช้งานได้จริงอย่างสม่ าเสมอต่อลูกค้า

2) กำรตอบรับกับกำรเปลี่ยนแปลง มากกว่าการท าตามแผนที่วางไว้ • ยอมรับการเปลี่ยนแปลงความต้องการของลูกค้าแม้ในช่วงท้ายของการพัฒนา เพราะ Agile เข้าใจความต้องการที่เปลี่ยนแปลงได้ตลอดตามสถานการณ์ของลูกค้าในการแข่งขันกับคู่แข่ง

What ‘s an AGILE ?

3) ร่วมมือท ำงำนกับลูกค้ำ มากกว่าการต่อรองให้เป็นไปตามสัญญา • มีการพูดคุยกับฝ่ายลูกค้ากับฝ่ายพัฒนาอย่างสม่ าเสมอเพื่อให้ม่ันใจว่าสิ่งที่ก าลังท านั้นเป็นสิ่งที่

ฝ่ายลูกค้าต้องการจริงๆ

4) คนและกำรมีปฎสิัมพันธ์กัน มากกว่าการท าตามขั้นตอนและเครื่องมือการพูดคุยกันในทีม คือสิ่งส าคัญ เพื่อเป็นการถ่ายทอดข้อมูลให้กันและกัน ว่าใครท าอะไรอยู่ ปัญหาที่พบเจอในทีมคืออะไร โดยเน้นการพูดคุยซึ่งหน้าเป็นส าคัญ

How to use AGILE ?

การน า Agile ไปใช้งานจะมีหลายเทคนิค เช่น XP (Extreme Programming) หรือ Scrum หรือ

TDD (Test-Driven Development) หรืออ่ืนๆ โดยวิธียอดนิยมนั่นคือ Scrum

What’s a SCRUM ?

Scrum Process (Credit – http://www.neonrain.com/)

What’s a SCRUM ?

บุคคลที่เกี่ยวข้องใน Scrum Project จะประกอบไปด้วย • Product Owner – User หรืออาจจะเป็นคนที่คอยจัดการ Product Backlog ของ Software • The Team – Developer •Scrum Master – คนที่ประสานระหว่าง Project Owner กับ Team Member ซึ่งก็คล้ายๆ Project Manager

ขั้นตอนการท างาน เริ่มจาก •Product Backlog – เป็น list ของ feature ที่ผู้ใช้ต้องการ รวมถึง bug fix ด้วย โดยคนท าคือ product owner ซึ่งจะจัดล าดับ feature ตามความส าคัญและจัดท า User Stories ของแต่ละ Feature ด้วย •Tool ที่ใช้ ณ ตอนนี้คือ Teamwork เป็นเครื่องมือจัดการ Project

What’s a SCRUM ?

Sprint คือรอบการท างานสั้นๆไม่เกิน 30 วัน เพื่อให้ทีมงานสามารถ Deliver งานให้ลูกค้าดูได้อย่างรวดเร็วและสม่ าเสมอ รวมถึงจะได้รับ Feedback มาจากลูกค้าได้รวดเร็วอีกด้วย

• Sprint Planning Meeting – ต่อมา Scrum master จะเป็นคนน า feature ใน Product Backlog เอามาใส่ใน Sprint Backlog และแตกย่อยเป็น task รวมถึงประมาณเวลาที่ใช้ในแต่ละ task โดยเลือกดูตามความส าคัญของ feature สุดท้ายจะได้ task และ Sprint Backlog ออกมา

What’s a SCRUM ?

• Scrum – เริ่มท างานในแต่ละ Sprint ได้ส่วนนี้อาจจะมีเทคนิคเข้ามาช่วยในการท างานเช่น Pair Programming ท างานสองคนช่วยกันท า ช่วยกัน review หรือ Test-Driven Development คือการท า testing ก่อนการ coding เป็นต้น •Scrum Board – เอาไว้ track งานว่าสถานะถึงไหนบ้างแล้ว จะมีสถานะเช่น Todo, Doing Done, Testing เป็นต้น

What’s a SCRUM ?

•Daily Scrum Meeting – เป็นการ Daily Meeting ไม่เกิน 15 นาทีโดยจะพูดกัน 3 หัวข้อ • เมื่อวานท าอะไรไปบ้าง ? • วันนี้จะท าอะไร ? • เจอปัญหาอะไรบ้างในการท างาน ?

ส่วนนี้ท าเพื่อให้คนในทีมรู้ว่าแต่ละคนท าอะไรกันอยู่ เพื่อจะได้ลดการท างานซ้อน รวมถึงช่วยให้ทุกคนช่วยกันแก้ปัญหาที่เจอในการท างาน ส่วนตัวไม่ได้ท าหัวข้อนี้ แต่ใช้ Weekly Meeting แทนซึ่งเป็นการ update งานแต่ละคนในอาทิตย์ที่ผ่านมารวมถึงวางแผน assign งานในสัปดาห์ต่อมา

What’s a SCRUM ?

• Sprint Review – หลังจบทุก Sprint จะมีการ Sprint Review โดยจะพูดถึง Feature ที่เสร็จแล้วใน Sprint ก่อนๆและ Sprint นี้ เพื่อให้ Product Owner หรือ User ทดลองใช้งานและ Feedback กลับมา • Sprint Retrospective – ทุกๆก่อนจบ Sprint ต้องมีช่วงเวลาในการที่ประชุมและบอกให้ได้ว่า Sprint ที่ผ่านมานั้น อะไรท าได้ดี – อะไรท าได้แย่หรือไม่ดี – และอะไรที่อยากจะน ามาใช้ในการท างานรอบถัดไป (Good – Bad – Try) เพื่อพัฒนาการท างานในรอบถัดๆไปให้ดีขึ้น

What’s a SCRUM ? ที่กล่าวมาทั้งหมดคือกิจกรรมที่ Scrum Project และอีกกิจกรรมหนึ่งที่ส าคัญเช่นกัน คือ • Burn-Down Chart – การวัดผลความคืบหน้าของ Project ในแต่ละ Sprint โดยมันคือ กราฟแสดงจ านวนวันในแต่ละ Sprint ในแกน x กับ จ านวน Task ที่เหลือในแกน y โดยจะ update กราฟในแต่ละ Daily Scrum เพื่อให้เห็นความคืบหน้าของงานใน Sprint นั้นๆ

Recommended