แนะนำโปรเจคของทีมเรากันก่อน BU Bus Tracker
ระบบ GPS ติดตามรถ โดยใช้บอร์ด LinkIt ONE ที่มีโมดูล GPS เชื่อมต่อผ่านเซิร์ฟเวอร์ ใช้เทคโนโลยี Internet of thing แสดงค่าเป็นตำแหน่งพิกัดบน Google Map ผ่านทางเว็บไซต์ โดยผู้ใช้งานสามารถทราบตำแหน่งปัจจุบันของรถได้ ผู้จัดทำได้นำอุปกรณ์ไปติดตั้งกับรถโดยสารในมหาวิทยาลัย เพื่ออำนวยความสะดวกในการเดินทางให้ทราบพิกัดของรถโดยสารสามารถประเมินเวลาในการรอคอยได้
Scrum คืออะไร??
Scrum เป็นหนึ่งในวิธีการพัฒนาของ agile เป็นรูปแบบการจัดการแบบที่เน้นให้สมาชิกในทีมทำงานร่วมกันและประชุมอย่างสม่ำเสมอ ในขั้นตอนการพัฒนาซอฟต์แวร์ สามารถนำไปปรับใช้ในการบริหารจัดการ และควบคุมทั้งโครงงานแบบทำซ้ำและแบบเพิ่มรายละเอียดในแต่ละขั้นตอน ส่วนสำคัญหลักๆ คือ Scrum Roles , กระบวนการทำงาน และการสาธิตและประเมินผลงาน ส่วนสำคัญหลักๆคือ Scrum Roles , กระบวนการทำงาน การสาธิต และประเมินผลงาน ในโพสนี้ผู้จัดทำจะมีการกล่าวถึงหลักของScrum และยกตัวอย่างการนำวิธีการนี้ไปประยุกต์ใช้ในโปรเจคด้วย
มาเริ่มกันเลย ก่อนอื่นต้องแบ่งหน้าที่กันให้ชัดเจน
1.Product Owner เป็นเจ้าของโปรเจค เป็นลูกค้าที่จ้างเราทำชิ้นงาน จะบอกสิ่งที่ต้องการ และรับมอบชิ้นงานที่สำเร็จแล้ว
2.Scrum Master เป็นผู้บริหารลูกทีม ให้ส่งมอบงานตามกำหนด คอยผู้ติดต่อประสานงาน
3.Scrum Team จะแบ่งหน้าที่การทำงานกันอย่างชัดเจน ว่าใครเป็นคนเขียนโปรแกรม ทำส่วนของฮาร์ดแวร์ หรือเซิร์ฟเวอร์
ยกตัวอย่างการแบ่งหน้าที่การทำงานในโปรเจคนี้
ตัวอย่างการใช้งานของแต่ละขั้นตอน
การพัฒนาแบบ Scrum ผู้ใช้ระบบ จะต้องทำงานร่วมกับทีมพัฒนาอย่างใกล้ชิด เพื่อที่จะระบุและจัดลำดับความสำคัญก่อนหลังของหน้าที่ของระบบ
เก็บรวบรวมไว้ในรูปแบบที่เรียกว่า Product Backlog
1.Product Backlog >> ต้องสร้าง User Story ด้วยนะ
มีการเก็บข้อมูลความต้องการของลูกค้า นำมาสร้าง User Story เป็นการบรรยายรายละเอียดสั้นๆของงาน ว่าต้องการให้ระบบซอฟต์แวร์ถูกพัฒนาในลักษณะใด ซึ่งจะบอกให้ทราบถึงความต้องการ รวมทั้งชนิดของเทคโนโลยีที่ลูกค้าต้องการใช้ ประโยชน์ที่จะได้รับจากชิ้นงาน วิธีนี้จะช่วยให้เราเข้าใจในงานมากยิ่งขึ้น ยกตัวอย่างเช่น
AS a …..Roles
ในฐานะที่ฉันเป็นผู้ใช้งานรถโดยสารสาธารณะในมหาวิทยาลัย
I want….Goals
ฉันต้องการทราบตำแหน่งพิกัดของรถโดยสาร บนแผนที่ว่ารถอยู่ไหนแล้ว ณ เวลานั้นๆ
So that….Benefit
ทำให้สามารถประเมินเวลาในการรอคอยรถโดยสารได้ มาขึ้นรถได้ทันเวลา
2.Sprint Planning Meeting เป็นการประชุมวางแผนSprint
What? ส่งมอบอะไรให้ลูกค้า
How? จะต้องทำอย่างไรบ้าง
อย่างน้อย 1 เดือนจะนำผลงานมาโชว์ครั้งหนึ่ง
ยกตัวอย่างเช่น จะส่งมอบชิ้นงานอุปกรณ์ติดตามรถให้ลูกค้าก็ต้องดูว่าส่งให้เมื่อไร ต้องวางแผน หาซื้ออุปกรณ์ ออกแบบวงจร เขียนโค้ด เขียนเว็บไซต์ เป็นต้น
3.Sprint Backlog การทำงานจริง ที่แตกคำสั่งย่อยๆใส่รายละเอียดขั้นตอนการทำงาน
ยกตัวอย่างเช่น ลูกค้าจะอ่านค่าพิกัดของรถในสมาร์ทโฟน
คำสั่ง
-สร้าง UI ของเว็บไซต์
-นำค่าละติจูด ลองติจูด ที่อ่านได้จากอุปกรณ์มาพลอตบนGOOGLE MAP
-ใช้งานGOOGLE API
-ทดลองติดอุปกรณ์กับรถโดยสารเพื่ออ่านผลลัพธ์
บอกรายชื่อผู้รับผิดชอบ
แต่ละงาน ต้องใช้เวลาทำงานกี่ชั่วโมง
รวมเวลาชั่วโมงทั้งหมด
นำค่าที่ได้มาพลอตกราฟBurndown Chart จะเป็นความสัมพันธ์ระหว่างชั่วโมงในการทำงาน และวันที่ทำ
กราฟจะบอกให้ทราบว่างานสำเร็จไปเท่าใด ยังเหลืออีกเท่าใด เพื่อให้ส่งงานได้ทันตามกำหนด
คลิ๊กเพื่อดูตัวอย่างการทำ Burndown Chart Template
4.Daily Scrum Meeting สมาชิกในทีมประชุมกันทุกวัน อย่างไม่เป็นทางการ เพื่ออัพเดทงาน
มี 3 คำถาม
- จากการประชุมครั้งก่อน มีอะไรเสร็จไปแล้วบ้าง
- คาดว่าจะทำอะไรให้เสร็จก่อนถึงการประชุมพรุ่งนี้
- ปัญหาอะไรที่ยังแก้ไขไม่ได้
5.Sprint Review ให้ลูกค้าประเมินผล ว่าได้ชิ้นงานตรงตามความต้องการหรือไม่
มีการตรวจสอบและปรับเพื่อให้ได้สิ่งที่สมบูรณ์ที่สุด
ยกตัวอย่างเช่น ทำการออกแบบหน้าเว็บไซต์เพื่อให้ลูกค้าดูเป็นตัวอย่าง หากมีอะไรให้เพิ่มหรือลดก็จะต้องปรับเปลี่ยนไปเรื่อยๆ สิ่งที่ต้องแก้ไขคือ
เมื่อรถสวนทางกันจะทราบทิศทางได้อย่างไร ทีมงานจึงต้องแก้ไขโดยเพิ่มอุปกรณ์เข็มทิศ และจะสร้างไอคอนเพื่อบอกทิศทางในลำดับต่อไป เป็นต้น
6.Sprint Restrospective >>ขั้นสุดท้าย พิจารณาว่า Sprint ที่ผ่านมาเป็นอย่างไรบ้าง
นำผลงานในขั้นสุดท้ายมาให้ลูกค้าได้ดู หากยังต้องปรับปรุงแก้ไข Product Backlog ก็จะทำซ้ำขั้นตอนต่างๆใหม่ตั้งแต่เริ่มต้น มีการประชุม สรุปผลตอบรับ และแก้ไขงาน ประเมินไปจนกว่าจะผ่านตามความต้องการของลูกค้า
สรุปข้อดีข้อด้อยของวิธีScrum
เหตุผลดีๆที่ควรเลือกใช้ Scrum
- โปรเจคขนาดใหญ่สามารถมีการจัดการได้ง่าย
- มีการพัฒนาและทดสอบอยู่ตลอด
- ทำงานได้อย่างมีประสิทธิภาพทำให้โปรเจคพัฒนาเสร็จไว
- ทีมจะมองเห็นภาพงานชัดเจนเพราะมีการประชุมอย่างสม่ำเสมอ
- มีการรับความคิดเห็นของลูกค้าอย่างสม่ำเสมอ
- เมื่อรับความคิดเห็นสามารถปรับเปลี่ยนโปรเจคได้ในระยะสั้น
- สมาชิกภายในทีมสามารถมองเห็นภาพงานได้โดยการประชุมทุกวัน (daily scrum meetings)
ข้อด้อยที่ไม่ควรมองข้าม
- โอกาสที่โปรเจคจะล้มเหลวสูง ถ้าทีมงานไม่มีความมุ่งมั่นและความเป็นมืออาชีพ
- การนำ วิธี Scrum มาเป็นกรอบในการพัฒนาในทีมที่มีขนาดใหญ่มีความท้าทาย
- มีการประชุมทุกวันทำให้สมาชิกมีความเบื่อหน่าย
- ถ้ามีใครสักคนออกจากโปรเจคกลางครัน มันมีผลกระทบอย่างมากต่อโปรเจค
- คุณภาพโปรเจคที่สูง ทีมต้องผ่านการทดสอบอย่างหนัก
แหล่งข้อมูลอ้างอิง
https://www.simplilearn.com/scrum-project-management-article
http://epf.eclipse.org/wikis/scrum/Scrum/guidances/templates/burndown_chart_D182CF23.html
สมาชิกในกลุ่ม Bu Bus Tracker
1.ชุติกาญจน์ ศิริวิมลวรรณ 1560900373
2.พีรวัฒน์ จิ้นสุริวงษ์ 1560900209
3.วีรวัฒน์ วงศ์รุจินันท์ 1560900621
4.สฤษฏ์รัฐ สวัสดิ์ภักดี 1560900795
5.จักรพรรดิ์ ธรรมบุญเรือง 1560900803