กระบวนการซอฟต์แวร์แบบ Agile และรูปแบบ Waterfall

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

ขั้นตอนใดต่อไปนี้ที่อยู่ในรูปแบบ Linear Sequential Model หรือ Waterfall Model

  • การสร้างต้นแบบ
  • การวิเคราะห์ความต้องการของซอฟต์แวร์ (correct)
  • การประเมินความเสี่ยง
  • วางแผน

Waterfall Model เหมาะสมที่สุดเมื่อความต้องการมีการเปลี่ยนแปลงบ่อยครั้ง

False (B)

ใน Waterfall Model ขั้นตอนใดที่ต้องเสร็จสิ้นก่อนเริ่มขั้นตอนถัดไป

ขั้นตอนก่อนหน้า

Waterfall Model ถูกกล่าวถึงครั้งแรกโดย Royce ตั้งแต่ปี ____

<p>1970</p> Signup and view all the answers

จับคู่ขั้นตอนใน Waterfall Model กับคำอธิบายที่ถูกต้อง:

<p>System/information and engineering modeling = การสร้างแบบจำลองระบบและข้อมูล Software Requirements Analysis = การวิเคราะห์ความต้องการของซอฟต์แวร์ Design = การออกแบบระบบ Code Generation = การสร้างโค้ด</p> Signup and view all the answers

ข้อใดคือข้อเสียของ Waterfall Model

<p>ไม่สามารถแสดงผลให้ลูกค้าเห็นได้จนกว่าจะถึงขั้นตอนสุดท้าย (D)</p> Signup and view all the answers

Prototyping Model เหมาะสำหรับการพัฒนาโครงการที่มีข้อกำหนดชัดเจนตั้งแต่เริ่มต้น

<p>False (B)</p> Signup and view all the answers

ใน Prototyping Model สิ่งใดเป็นตัวขับเคลื่อนการสร้าง Mock-up

<p>Customer test</p> Signup and view all the answers

เป้าหมายหลักของ Prototyping Model คือการสร้าง ____ เพื่อนำเสนอให้ลูกค้า

<p>Mock-up</p> Signup and view all the answers

องค์ประกอบใดต่อไปนี้มีความสำคัญใน Spiral Model

<p>การประเมินความเสี่ยง (D)</p> Signup and view all the answers

Agile ให้ความสำคัญกับกระบวนการและเครื่องมือมากกว่าปฏิสัมพันธ์ระหว่างบุคคล

<p>False (B)</p> Signup and view all the answers

Agile เหมาะกับการตอบสนองต่อสิ่งใด

<p>การเปลี่ยนแปลง</p> Signup and view all the answers

Agile คือการตอบสนองต่อการเปลี่ยนแปลงที่ ____ และ ____

<p>รวดเร็ว, ยืดหยุ่น</p> Signup and view all the answers

ข้อใดคือหลักการสำคัญของ Agile

<p>การส่งมอบซอฟต์แวร์ที่ใช้งานได้บ่อยครั้ง (D)</p> Signup and view all the answers

Timeboxing คือการกำหนดระยะเวลาในการพัฒนาที่ไม่แน่นอน

<p>False (B)</p> Signup and view all the answers

ระยะเวลาที่เหมาะสมสำหรับ Timebox โดยทั่วไปคือเท่าไร

<p>1-6 สัปดาห์</p> Signup and view all the answers

การปรับตัวตาม Feedback จากผู้ใช้งานในการพัฒนาซอฟต์แวร์คือหลักการของ ____

<p>Adaptive</p> Signup and view all the answers

หลักการ Iterative ในการพัฒนาซอฟต์แวร์หมายถึงอะไร

<p>การพัฒนาซ้ำๆ และปรับปรุง (B)</p> Signup and view all the answers

Incremental คือการส่งมอบทุก Functionality พร้อมกันในครั้งเดียว

<p>False (B)</p> Signup and view all the answers

BRUF ย่อมาจากอะไร

<p>Big Requirements Up Front</p> Signup and view all the answers

ข้อใดคือลักษณะของ BRUF (Big Requirements Up Front)

<p>การกำหนดข้อกำหนดทั้งหมดตั้งแต่เริ่มต้น (B)</p> Signup and view all the answers

Active Stakeholder Participation ไม่มีความสำคัญใน Agile

<p>False (B)</p> Signup and view all the answers

Active Stakeholder ควรมีส่วนร่วมในสิ่งใด

<p>Business-oriented modeling</p> Signup and view all the answers

Agile สนับสนุนการทำงานเป็น ____ มากกว่าการทำงานคนเดียว

<p>ทีม</p> Signup and view all the answers

ข้อใดคือ Agile Modeling Methodology

<p>Scrum (B)</p> Signup and view all the answers

Ken Schwaber และ Jeff Sutherland เป็นผู้คิดค้น Waterfall

<p>False (B)</p> Signup and view all the answers

XP ใน Agile Modeling Methodology เรียกว่าอะไร

<p>Extreme Programming</p> Signup and view all the answers

Alistair Cockburn เป็นผู้คิดค้น ____

<p>Crystal Clear</p> Signup and view all the answers

ระยะเวลาที่แนะนำสำหรับ Sprint คือเท่าใด

<p>2-4 สัปดาห์ (B)</p> Signup and view all the answers

Scrum เหมาะสมกับโครงการขนาดเล็กเท่านั้น

<p>False (B)</p> Signup and view all the answers

ใครมีหน้าที่รับผิดชอบ Product Backlog ใน Scrum

<p>Product Owner</p> Signup and view all the answers

Scrum Master มีหน้าที่ช่วยเหลือทีมโดยการ ____

<p>ขจัดอุปสรรค</p> Signup and view all the answers

ข้อใดคือหน้าที่ของ Team ใน Scrum

<p>พัฒนาซอฟต์แวร์ (C)</p> Signup and view all the answers

Daily Scrum เป็นการประชุมเพื่อแก้ไขปัญหา

<p>False (B)</p> Signup and view all the answers

ใน Daily Scrum ทุกคนต้องตอบคำถามกี่ข้อ

<p>3</p> Signup and view all the answers

Sprint Review เป็นการนำเสนอสิ่งที่ทีมได้ทำสำเร็จในระหว่าง ____

<p>Sprint</p> Signup and view all the answers

Sprint Retrospective มีจุดประสงค์เพื่ออะไร

<p>เรียนรู้และปรับปรุงวิธีการทำงาน (A)</p> Signup and view all the answers

ขนาดของทีม Scrum ที่เหมาะสมคือ 20 คนขึ้นไป

<p>False (B)</p> Signup and view all the answers

ใน Sprint Planning Meeting ทีมจะเลือกรายการจากสิ่งใด

<p>Product backlog</p> Signup and view all the answers

เครื่องมือที่ใช้ติดตามความคืบหน้าของ Sprint เรียกว่า ____

<p>Burndown chart</p> Signup and view all the answers

อะไรคือเป้าหมายของ Sprint Goal

<p>คำอธิบายสั้นๆ ว่าจะทำอะไรใน Sprint นี้ (C)</p> Signup and view all the answers

Flashcards

Model แบบ Linear Sequential

Life Cycle แบบคลาสสิกหรือแบบ Waterfall ประกอบด้วยการสร้างแบบจำลองระบบ/ข้อมูล วิเคราะห์ข้อกำหนดของซอฟต์แวร์ ออกแบบ สร้างโค้ด ทดสอบ และสนับสนุน

Software Process ทั่วไป

ขั้น Definition เน้นที่การกำหนด WHAT, ขั้น Development เน้นที่ HOW และขั้น Maintenance เน้นที่ Change

Waterfall Model

Waterfall Model คือการที่แต่ละขั้นตอนจะเสร็จสิ้นก่อนที่จะเริ่มขั้นตอนถัดไป

Prototyping Model

Prototyping Model สร้าง Mock-up เพื่อให้ผู้ใช้รับรู้และให้ Feedback

Signup and view all the flashcards

Agile

Agile คือการตอบสนองต่อการเปลี่ยนแปลงอย่างรวดเร็วและยืดหยุ่น

Signup and view all the flashcards

Agile Manifesto

Agile ให้ความสำคัญกับ Individuals และ Interactions มากกว่า Processes และ Tools

Signup and view all the flashcards

ส่งมอบซอฟต์แวร์

การส่งมอบซอฟต์แวร์ที่ใช้งานได้บ่อย ๆ คือหัวใจของ Agile

Signup and view all the flashcards

ทำงานร่วมกัน

Business People และ Developers ต้องทำงานร่วมกันทุกวัน

Signup and view all the flashcards

การพัฒนาที่ยั่งยืน

Agile Processes ส่งเสริมการพัฒนาที่ยั่งยืน

Signup and view all the flashcards

Agile Documentation

Agile Documents ควรมีเป้าหมายที่ชัดเจน กระชับ และให้ข้อมูลที่จำเป็น

Signup and view all the flashcards

BRUF

BRUF (Big Requirements Up Front) คือการสร้าง Detailed Requirements Specification ตั้งแต่ต้น

Signup and view all the flashcards

Agile Requirements Management

Agile Requirements Management คือการจัดการ Requirement เพื่อให้รองรับการเปลี่ยนแปลง

Signup and view all the flashcards

Active Stakeholder Participation

Active Stakeholder Participation คือการดึง Stakeholder เข้ามามีส่วนร่วม

Signup and view all the flashcards

Model With Others

Agile แนะนำให้ทำงานเป็นคู่ หรือเป็นทีม

Signup and view all the flashcards

Scrum

Scrum คือกระบวนการ Agile ที่ช่วยให้เน้นส่งมอบ Business Value สูงสุดในเวลาที่สั้นที่สุด

Signup and view all the flashcards

Sprint

Sprint ใน Scrum คือช่วงเวลาสั้น ๆ (2-4 สัปดาห์) ที่ทีมมุ่งเน้นการทำงาน

Signup and view all the flashcards

Sprint

การทำงานใน Scrum ต้องไม่มีการเปลี่ยนแปลง Requirement ในระหว่าง Sprint

Signup and view all the flashcards

Scrum Roles

Product Owner, Scrum Master และ Team คือ Roles หลักใน Scrum

Signup and view all the flashcards

Scrum Ceremonies

Sprint Planning คือการวางแผน Sprint, Sprint Review คือการนำเสนอผลงาน และ Sprint Retrospective คือการทบทวน

Signup and view all the flashcards

Scrum Artifacts

Product Backlog, Sprint Backlog และ Burndown Charts คือ Artifacts หลักใน Scrum

Signup and view all the flashcards

Product Owner

Product owner คือคนที่รับผิดชอบในการ Define Features, กำหนด Release Date และ Prioritize Features

Signup and view all the flashcards

ScrumMaster

ScrumMaster คือคนที่คอยสนับสนุนให้ทีมทำตาม Scrum Values และ Practices

Signup and view all the flashcards

Scrum Team

Team ใน Scrum ควรมีขนาด 5-9 คน และ Cross-Functional

Signup and view all the flashcards

Sprint Planning Meeting

Sprint Planning Meeting คือการเลือกงานจาก Product Backlog และสร้าง Sprint Goal

Signup and view all the flashcards

Daily Scrum

Daily Scrum คือการประชุมสั้น ๆ 15 นาที เพื่ออัปเดตความคืบหน้า

Signup and view all the flashcards

Sprint Review

Sprint Review คือการนำเสนอสิ่งที่ทำเสร็จใน Sprint

Signup and view all the flashcards

Sprint Retrospective

Sprint Retrospective คือการทบทวนวิธีการทำงาน

Signup and view all the flashcards

Product Backlog

Product Backlog คือรายการของ Requirements ที่เรียงตาม Priority

Signup and view all the flashcards

Sprint Goal

Sprint Goal คือเป้าหมายของ Sprint

Signup and view all the flashcards

Sprint Backlog

Sprint Backlog คือรายการ Task ที่ทีมต้องทำใน Sprint

Signup and view all the flashcards

Sprint Burndown Chart

A sprint burndown chart is a visual tool used to track the progress of work during a sprint.

Signup and view all the flashcards

Self-organizing teams

Self-organizing teams can determine how best to accomplish their work, rather than being directed by others.

Signup and view all the flashcards

What is Agile?

The ability to create and respond to change in order to succeed in an uncertain and turbulent environment

Signup and view all the flashcards

Study Notes

กระบวนการซอฟต์แวร์แบบ Agile

  • นำเสนอโดย Wiwat V.

แบบจำลองลำดับเชิงเส้น (Linear Sequential Model)

  • วงจรชีวิตแบบคลาสสิกหรือแบบจำลอง Waterfall ประกอบด้วยกิจกรรมต่างๆ ได้แก่ การสร้างแบบจำลองระบบ/ข้อมูลและวิศวกรรม, การวิเคราะห์ความต้องการของซอฟต์แวร์, การออกแบบ, การสร้าง Code, การทดสอบ และการสนับสนุน

ภาพรวมทั่วไปของกระบวนการซอฟต์แวร์

  • คำจำกัดความ (Definition) มุ่งเน้นไปที่ "อะไร" (WHAT)
  • การพัฒนา (Development) มุ่งเน้นไปที่ "อย่างไร" (HOW)
  • การบำรุงรักษา (Maintenance) มุ่งเน้นไปที่ "การเปลี่ยนแปลง" (Change)

รูปแบบ Waterfall

  • ถูกกล่าวถึงโดย Royce ตั้งแต่ปี 1970
  • ขั้นตอนต่างๆ แสดงให้เห็นว่ามีการไหลต่อเนื่อง (cascading) จากขั้นตอนหนึ่งไปยังอีกขั้นตอนหนึ่ง
  • แต่ละขั้นตอนควรจะเสร็จสมบูรณ์ก่อนที่จะเริ่มขั้นตอนถัดไป
  • ถูกใช้เป็นพื้นฐานสำหรับสิ่งที่ต้องส่งมอบ (deliverables) ในสัญญาของกระทรวงกลาโหมสหรัฐฯ ซึ่งกำหนดไว้ใน DOD2167-A
  • สิ่งที่ต้องส่งมอบ (Deliverables) จะถูกสร้างขึ้นในแต่ละกระบวนการ
  • รูปแบบ Waterfall มีประโยชน์ในการช่วยเหลือผู้พัฒนาในการวางแผนสิ่งที่พวกเขาต้องทำ

ข้อเสียของรูปแบบ Waterfall

  • แสดงให้เห็นว่าแต่ละเฟสสิ้นสุดลงเมื่อมีการสร้างบางสิ่ง (artifact) แต่ไม่ได้ให้ข้อมูลเชิงลึกว่าแต่ละกิจกรรม (activity) เปลี่ยน artifact หนึ่งไปสู่อีก artifact หนึ่งได้อย่างไร
  • ไม่มีคำแนะนำว่าจะจัดการกับการเปลี่ยนแปลงผลิตภัณฑ์และกิจกรรมอย่างไร
  • การแสดงผลิตภัณฑ์ให้ลูกค้าเห็นนั้นสายเกินไป

ปัจจัยที่ขัดขวางข้อกำหนดเบื้องต้นที่น่าเชื่อถือ

  • ลูกค้าหรือผู้ใช้ไม่แน่ใจว่าพวกเขาต้องการอะไร
  • พวกเขามีปัญหาในการระบุสิ่งที่พวกเขาต้องการและรู้
  • รายละเอียดหลายอย่างของสิ่งที่พวกเขาต้องการจะถูกเปิดเผยในระหว่างการพัฒนา
  • รายละเอียดมีความซับซ้อนมากเกินไปสำหรับผู้คน
  • เมื่อพวกเขาเห็นผลิตภัณฑ์พัฒนา พวกเขาเปลี่ยนใจ

รูปแบบ Prototyping

  • เริ่มต้นด้วยการรับฟังลูกค้า
  • สร้างและแก้ไข Mock-up
  • Customer test drives mock-up
  • แนะนำ Mock-up ของแต่ละฟังก์ชันที่จะพัฒนา

รูปแบบ Spiral

  • รูปแบบนี้จะเน้นที่การประเมินความเสี่ยง (Risk Assessment) ในแต่ละขั้นตอนของการพัฒนา

แนวทางปฏิบัติขั้นพื้นฐานบางประการสำหรับกระบวนการซอฟต์แวร์

  • Timeboxing: กำหนดช่วงเวลาในการพัฒนา (1-6 สัปดาห์ต่อ timebox)
  • Adaptive: ปรับตัวตามข้อเสนอแนะจากงานก่อนหน้า จากผู้ใช้, การทดสอบ, ผู้พัฒนา ฯลฯ
  • Iterative: อธิบายและควบคุมทุกการเคลื่อนไหวที่เราทำในเกือบทุกด้านของการเปลี่ยนความคิดให้เป็นผลิตภัณฑ์
  • Incremental: “คุณลักษณะนั้นจะพร้อมใช้งานในส่วนที่เพิ่มขึ้นถัดไปของผลิตภัณฑ์”

Agile คืออะไร?

  • Agile = ว่องไว แข็งขัน กระฉับกระเฉง
  • Agile = การตอบสนองที่รวดเร็วและยืดหยุ่นต่อการเปลี่ยนแปลง

Manifesto for Agile Software Development

  • เน้นที่บุคคลและการมีปฏิสัมพันธ์กัน มากกว่ากระบวนการและเครื่องมือ
  • เน้นที่ซอฟต์แวร์ที่ใช้งานได้ มากกว่าเอกสารที่ครอบคลุม
  • เน้นที่การทำงานร่วมกันกับลูกค้า มากกว่าการเจรจาสัญญา
  • เน้นที่การตอบสนองต่อการเปลี่ยนแปลง มากกว่าการทำตามแผน

12 หลักการของ Agile Software

  • ความสำคัญสูงสุดคือการสร้างความพึงพอใจให้กับลูกค้าผ่านการส่งมอบซอฟต์แวร์ที่มีคุณค่าอย่างรวดเร็วและต่อเนื่อง
  • ยอมรับการเปลี่ยนแปลงข้อกำหนด แม้ในช่วงท้ายของการพัฒนา กระบวนการ Agile จะควบคุมการเปลี่ยนแปลงเพื่อสร้างความได้เปรียบในการแข่งขันให้ลูกค้า
  • ส่งมอบซอฟต์แวร์ที่ใช้งานได้บ่อยๆ จากช่วงสองสัปดาห์ถึงสองเดือน โดยมีความต้องการในช่วงเวลาที่สั้นกว่า
  • ผู้คนทางธุรกิจและผู้พัฒนาต้องทำงานร่วมกันทุกวันตลอดโครงการ
  • สร้างโครงการโดยมีพื้นฐานจากบุคคลที่มีแรงจูงใจ ให้สภาพแวดล้อมและการสนับสนุนที่พวกเขาต้องการ และเชื่อใจพวกเขาให้ทำงานให้เสร็จ
  • วิธีการที่มีประสิทธิภาพและประสิทธิผลมากที่สุดในการถ่ายทอดข้อมูลไปและภายในทีมพัฒนาคือการสนทนาแบบเห็นหน้ากัน
  • ซอฟต์แวร์ที่ใช้งานได้คือตัวชี้วัดหลักของความคืบหน้า
  • กระบวนการ Agile ส่งเสริมการพัฒนาที่ยั่งยืน ผู้สนับสนุน ผู้พัฒนา และผู้ใช้ควรรักษาระดับการทำงานที่คงที่ไปเรื่อยๆ ได้อย่างไม่สิ้นสุด
  • การใส่ใจอย่างต่อเนื่องในความเป็นเลิศทางเทคนิคและการออกแบบที่ดี ช่วยเพิ่มความคล่องตัว
  • ความเรียบง่าย (Simplicity) คือศิลปะของการเพิ่มปริมาณงานที่ไม่ต้องทำให้มากที่สุด ถือเป็นสิ่งจำเป็น
  • สถาปัตยกรรม ข้อกำหนด และการออกแบบที่ดีที่สุดเกิดขึ้นจากทีมที่จัดการตนเอง
  • ในช่วงเวลาปกติ ทีมจะพิจารณาถึงวิธีการที่จะมีประสิทธิภาพมากขึ้น แล้วปรับและปรับพฤติกรรมของตนเองตามนั้น

Agile Documentation

  • เน้นที่การเดินทางแบบเบาๆ, เอกสาร Agile ควรกระชับ, เติมเต็มวัตถุประสงค์, อธิบายข้อมูลที่ไม่น่าจะเปลี่ยนแปลง, อธิบาย "สิ่งที่ดีที่ควรรู้", มีลูกค้าเฉพาะและอำนวยความสะดวกในการทำงานของลูกค้านั้น, มีความถูกต้อง สอดคล้อง และละเอียดเพียงพอ และจัดทำดัชนีอย่างเพียงพอ
  • เหตุผลที่ถูกต้องในการทำเอกสาร ได้แก่ ผู้มีส่วนได้ส่วนเสียในโครงการของคุณต้องการ, เพื่อกำหนดรูปแบบสัญญา, เพื่อสนับสนุนการสื่อสารกับกลุ่มภายนอก และเพื่อคิดให้รอบคอบ

ค่าใช้จ่ายของ BRUF แบบดั้งเดิม (Big Requirements Up Front)

  • โครงการที่ "ประสบความสำเร็จ" ก็ยังมีของเสียจำนวนมาก โดย 45% ของฟังก์ชันที่ส่งมอบไม่เคยถูกใช้งานจริง

Big Requirements Up Front (BRUF) Approach

  • BRUF เป็นแนวทางที่สร้างข้อกำหนดโดยละเอียดในช่วงต้นของวงจรชีวิตการพัฒนาซอฟต์แวร์
  • ต้องมีกระบวนการจัดการการเปลี่ยนแปลงเพื่อหลีกเลี่ยง "การเพิ่มขอบเขต" ตลอดทั้งโครงการ
  • Big design up front (BDUF) คือแนวทางที่คุณพยายามระบุสถาปัตยกรรมของคุณโดยละเอียดก่อนที่จะเริ่มเขียนโค้ด

Agile Software Requirements Management

  • การเปลี่ยนแปลงข้อกำหนดถือเป็นข้อได้เปรียบในการแข่งขัน หากคุณสามารถดำเนินการตามนั้นได้
  • แต่ละรอบจะนำข้อกำหนดที่มีลำดับความสำคัญสูงสุดไปใช้
  • ข้อกำหนดใหม่แต่ละข้อจะถูกจัดลำดับความสำคัญและเพิ่มลงใน Stack
  • ข้อกำหนดอาจถูกจัดลำดับความสำคัญใหม่ได้ตลอดเวลา
  • ข้อกำหนดอาจถูกลบออกได้ตลอดเวลา

Active Stakeholder Participation

  • ผู้มีส่วนได้ส่วนเสียในโครงการควรให้ข้อมูลอย่างทันท่วงที, ตัดสินใจอย่างทันท่วงที, และมีส่วนร่วมในการสร้างแบบจำลองที่มุ่งเน้นธุรกิจ

Model With Others

  • การสร้างแบบจำลองเทียบเท่ากับการเขียนโปรแกรมแบบคู่
  • คุณมีความเสี่ยงอย่างแท้จริงเมื่อใดก็ตามที่ใครบางคนทำงานด้วยตัวเอง
  • หลายหัวดีกว่าหัวเดียว

ประสิทธิภาพของเทคนิคการรวบรวมข้อกำหนด

  • การมีส่วนร่วมของผู้มีส่วนได้ส่วนเสียอย่างแข็งขัน: ผู้มีส่วนได้ส่วนเสียอยู่ที่ไซต์งาน
  • การออกแบบแอปพลิเคชันร่วมกัน (JAD)
  • กลุ่มเป้าหมาย
  • การสังเกตการณ์
  • การสัมภาษณ์แบบเห็นหน้ากัน
  • การสัมภาษณ์ทางอิเล็กทรอนิกส์
  • การวิเคราะห์ Code เดิม
  • การอ่าน

Agile Approach

  • แบบดั้งเดิมกิจกรรมจะเป็นแบบครั้งเดียว แต่แบบ Agile จะเป็นกิจกรรมต่อเนื่อง

Agile Modeling Methodology

  • Scrum โดย Ken Schwaber และ Jeff Sutherland, 1990
  • eXtreme Programming (XP) โดย Kent Beck, 1996
  • Feature Driven Development (FDD) โดย Jeff De Luca, 1999
  • Crystal Clear: A Human-Powered Methodology for Small Teams โดย Alistair Cockburn, 2004

Scrum

  • Scrum เป็นกระบวนการแบบ Agile ที่ช่วยให้มุ่งเน้นไปที่การส่งมอบมูลค่าทางธุรกิจสูงสุดในเวลาที่สั้นที่สุด
  • ช่วยให้สามารถตรวจสอบซอฟต์แวร์ที่ใช้งานได้จริงอย่างรวดเร็วและซ้ำๆ (ทุกสองสัปดาห์ถึงหนึ่งเดือน)
  • ธุรกิจกำหนดลำดับความสำคัญ ทีมจัดการตนเองเพื่อกำหนดวิธีที่ดีที่สุดในการส่งมอบคุณสมบัติที่มีลำดับความสำคัญสูงสุด
  • ทุกๆ สองสัปดาห์ถึงหนึ่งเดือน ใครๆ ก็สามารถเห็นซอฟต์แวร์ที่ใช้งานได้จริงและตัดสินใจว่าจะเผยแพร่แบบที่เป็นอยู่หรือดำเนินการปรับปรุงต่อไปในการ Sprint อื่น

ที่มาของ Scrum

  • Jeff Sutherland ได้เริ่มต้น Scrum ครั้งแรกที่ Easel Corp ในปี 1993
  • IDX และผู้คนกว่า 500 คนกำลังทำ Scrum
  • Ken Schwaber ได้นำเสนอ Scrum ในงาน OOPSLA 95 ร่วมกับ Sutherland
  • Ken Schwaber เป็นผู้แต่งหนังสือสามเล่มเกี่ยวกับ Scrum
  • Mike Beedle มี Scrum patterns ใน PLOPD4
  • Ken Schwaber และ Mike Cohn ร่วมกันก่อตั้ง Scrum Alliance ในปี 2002 ซึ่งเดิมอยู่ใน Agile Alliance

องค์กรที่ใช้ Scrum

  • Microsoft
  • Yahoo
  • Google
  • Electronic Arts
  • High Moon Studios
  • Lockheed Martin
  • Philips
  • Siemens
  • Nokia
  • Capital One
  • BBC
  • Intuit
  • Intuit
  • Nielsen Media
  • First American Real Estate
  • BMC Software
  • Ipswitch
  • John Deere
  • Lexis Nexis
  • Sabre
  • Salesforce.com
  • Time Warner
  • Turner Broadcasting
  • Oce

Scrum ถูกนำไปใช้สำหรับ

  • ซอฟต์แวร์เชิงพาณิชย์
  • การพัฒนาภายในองค์กร
  • การพัฒนาตามสัญญา
  • โครงการราคาคงที่
  • แอปพลิเคชันทางการเงิน
  • แอปพลิเคชันที่ได้รับการรับรอง ISO 9001
  • ระบบฝังตัว
  • ระบบ 24x7 ที่มีเวลาทำงาน 99.999%
  • the Joint Strike Fighter
  • การพัฒนาวิดีโอเกม
  • ระบบที่ได้รับการอนุมัติจาก FDA ซึ่งมีความสำคัญต่อชีวิต
  • ซอฟต์แวร์ควบคุมดาวเทียม
  • เว็บไซต์
  • ซอฟต์แวร์พกพา
  • โทรศัพท์มือถือ
  • แอปพลิเคชันสวิตชิ่งเครือข่าย
  • แอปพลิเคชัน ISV
  • แอปพลิเคชันที่ใหญ่ที่สุดบางส่วนที่ใช้งานอยู่

ลักษณะ

  • ทีมที่จัดการตนเอง
  • ผลิตภัณฑ์มีความคืบหน้าในชุดของ "sprints" เป็นเวลาหนึ่งเดือน
  • ข้อกำหนดจะถูกบันทึกเป็นรายการในรายการ "product backlog"
  • ไม่ได้กำหนดแนวทางปฏิบัติทางวิศวกรรมที่เฉพาะเจาะจง
  • ใช้กฎ generative เพื่อสร้างสภาพแวดล้อมแบบ Agile สำหรับการส่งมอบโครงการ
  • Scrum เป็นหนึ่งใน "กระบวนการแบบ Agile"

Agile Manifesto

  • ให้ความสำคัญกับบุคคลและการมีปฏิสัมพันธ์ มากกว่ากระบวน และเครื่องมือ
  • ให้ความสำคัญกับซอฟต์แวร์ที่สามารถใช้งานได้ มากกว่าเอกสารครอบคลุมรายละเอียดทั้งหมด
  • ให้ความสำคัญกับการร่วมมือกับลูกค้า มากกว่าการต่อรองสัญญา
  • ให้ความสำคัญกับการตอบสนองต่อการเปลี่ยนแปลง มากกว่าการทำตามแผนที่วางไว้

ระดับเสียงของโครงการ

  • มีความซับซ้อนสูงหากเทคโนโลยีและความต้องการอยู่ในความไม่แน่นอน

Scrum สรุป

  • ในแต่ละ Sprint:
    • มีเป้าหมายของ Sprint
    • Sprint Backlog
    • จะมีการผลิต Product Increment ที่สามารถส่งมอบได้ (Potentially Shippable Product Increment)

Sprints

  • โครงการ Scrum มีความคืบหน้าในชุดของ "sprints"
    • คล้ายคลึงกับการทำซ้ำ Extreme Programming
  • ระยะเวลาโดยทั่วไปคือ 2-4 สัปดาห์หรือหนึ่งเดือนตามปฏิทิน
  • ระยะเวลาคงที่นำไปสู่จังหวะที่ดีขึ้น
  • ผลิตภัณฑ์ได้รับการออกแบบ เขียนโค้ด และทดสอบระหว่าง Sprint

ลำดับเทียบกับการพัฒนาที่ทับซ้อนกัน

  • Scrum เน้นที่การทำทุกอย่างทีละเล็กละน้อยตลอดเวลา (Overlapping Development) มากกว่าการทำสิ่งหนึ่งให้เสร็จก่อนแล้วค่อยทำอย่างอื่น (Sequential)

การเปลี่ยนแปลงระหว่าง Sprint

  • ไม่มีการเปลี่ยนแปลงเกิดขึ้นในระหว่าง Sprint
  • ควรวางแผนระยะเวลาของ Sprint ให้สอดคล้องกับระยะเวลาที่คุณสามารถรักษาสภาพแวดล้อมที่ไม่เปลี่ยนแปลงได้

โครงสร้าง Scrum

  • บทบาท (Roles):
    • Product owner
    • ScrumMaster
    • Team
  • พิธีการ (Ceremonies)
    • Sprint planning
    • Sprint review
    • Sprint retrospective
    • Daily scrum meeting
  • สิ่งประดิษฐ์ (Artifacts)
    • Product backlog
    • Sprint backlog
    • Burndown charts

Product Owner

  • กำหนดฟีเจอร์ของผลิตภัณฑ์
  • ตัดสินใจเกี่ยวกับวันที่เผยแพร่และเนื้อหา
  • รับผิดชอบต่อผลกำไรของผลิตภัณฑ์ (ROI)
  • จัดลำดับความสำคัญของคุณสมบัติตามมูลค่าตลาด
  • ปรับคุณสมบัติและลำดับความสำคัญใหม่ทุกครั้งที่ทำซ้ำตามต้องการ
  • ยอมรับหรือปฏิเสธผลการทำงาน

ScrumMaster

  • เป็นตัวแทนของการจัดการต่อโครงการ
  • รับผิดชอบในการประกาศใช้ Scrum values และแนวทางการปฏิบัติ
  • กำจัดอุปสรรค
  • ตรวจสอบให้แน่ใจว่าทีมทำงานได้อย่างสมบูรณ์และมีประสิทธิภาพ
  • ช่วยให้เกิดความร่วมมืออย่างใกล้ชิดในทุกบทบาทและหน้าที่
  • ปกป้องทีมจากการรบกวนภายนอก

Team

  • โดยทั่วไปมี 5-9 คน

Amazon Jeff Bezos’ Two Pizza Team

ถ้า Basic two pizza team size = 6 แล้ว communication links = 15 ถ้า team size = 12 then links = 66

Sprint Planning Meeting

  • Team capacity

Sprint Prioritization

  • วิเคราะห์และประเมิน Product Backlog
  • เลือก Sprint Goal

Sprint Planning

  • ตัดสินใจวิธีการเพื่อให้บรรลุ Sprint Goal (Design)
  • สร้าง Sprint Backlog (Task) จาก Product Backlog Items (User stories / Features)
  • ประมาณการ Sprint Backlog เป็นชั่วโมง

Sprint Planning

  • ทีมคัดเลือกงานต่าง ๆ จาก Product Backlog ที่พวกเขาสามารถ Commit ได้ว่าจะทำให้งานเสร็จสมบูรณ์
  • Sprint Backlog ถูกสร้างขึ้น
    • งาน (Tasks) ถูกระบุ และแต่ละงานถูกประมาณค่า (Estimated 1-16 ชั่วโมง)
    • ทำงานร่วมกัน ไม่ได้ทำคนเดียวโดย Scrum Master การออกแบบระดับสูงจะถูกพิจารณา

Daily Scrum

  • พารามิเตอร์
    • รายวัน 15-นาที ยืนขึ้น
      • สถานที่เดียวกัน (แนะนำ)
  • ไม่ใช่สำหรับการแก้ปัญหา
    • ทั้งโลกได้รับเชิญชวน
      • เฉพาะสมาชิกในทีม, Scrum Master, Product Owner ที่สามารถพูดคุย
  • ช่วยหลีกเลี่ยงการประชุมที่ไม่จำเป็นอื่น ๆ

สิ่งที่ทุกคนต้องตอบคำถาม 3 ข้อ

  • เราได้ทำอะไรไปแล้วเมื่อวานนี้?
  • เราจะทำอะไรวันนี้?
  • มีอะไรเป็นอุปสรรคต่อคุณหรือไม่?
    • เหล่านี้ไม่ใช่ Status สำหรับ Scrum Master
      • พวกเขาคือคำมั่นสัญญาต่อหน้าเพื่อนร่วมงาน

Sprint Review

  • Team นำเสนอสิ่งที่พวกเขาสำเร็จในระหว่าง Sprint
  • โดยปกติจะอยู่ในรูปแบบของการ Demo ฟีเจอร์ใหม่, รูปแบบทางสถาปัตยกรรม
  • ไม่เป็นทางการ - กฎเวลาเตรียมการ 2-ชั่วโมง - ไม่มีสไลด์
  • ทั้งทีมมีส่วนร่วม
    • เชิญโลกทั้งใบ
  • ปัญหา "Pig และ Chicken"

Sprint Retrospective

  • พิจารณาเป็นระยะว่าอะไรคืออะไรและอะไรที่ไม่ใช่
  • โดยปกติ 15-30 นาที ทำเสร็จหลังจากทุก Sprint ทีมทั้งหมดมีส่วนร่วม - ScrumMaster - Product Owner - ทีม - ลูกค้าและคนอื่น ๆ สามารถมีส่วนร่วม

เริ่ม / หยุด / ทำต่อ

  • ทีมงานทั้งหมดจะรวมตัวกันและหารือว่าพวกเขาต้องการอะไร
  • Start Doing
    • Stop Doing
  • ดำเนินการต่อ
    • นี่เป็นเพียงหนึ่งในหลายวิธีในการทำ Sprint Retrospective

Product Backlog

  • Product Backlog - เป็นข้อกำหนด (The Requirements)
    • A List of all desired work on the project
      • ตามหลักการ, แต่ละรายการได้แสดงออกถึงคุณค่าของผู้ใช้งานหรือลูกค้า
        • ถูกจัดความสำคัญโดย Product Owner.
      • ทำใหม่ในช่วงเริ่มต้นของแต่ละ Sprint

Agile Estimates

-ชอบการวัดขนาด มากกว่าการวัดเวลา
-ชอบ Relative score มากกว่า Absolute score
-การใช้ "STory Point" ที่สัมพันธ์กัน (บ่งชี้ขนาด) ของผู้ใช้

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Métodos de Desarrollo de Software
26 questions
Software Development Models
50 questions

Software Development Models

LowRiskChalcedony8367 avatar
LowRiskChalcedony8367
Use Quizgecko on...
Browser
Browser