แผนการเรียนรู้
/

การทำงานร่วมกันในโครงการ
ด้วย GitHub

Pull Request • Issue • Collaboration Workflow

ผลลัพธ์การเรียนรู้

1
สร้าง repository ร่วมกันกับทีมได้
2
ใช้ pull request และ issue สำหรับการจัดการงานกลุ่มได้
3
ใช้ branch workflow เพื่อหลีกเลี่ยงความขัดแย้งของโค้ดได้
4
บันทึกและติดตามการเปลี่ยนแปลงของโครงการอย่างเป็นระบบ
สัปดาห์ที่ 4

การสร้างโปรเจกต์ & โฟลว์การทำงานร่วมกัน
บน GitHub

Repository • Branch • Pull Request Workflow

หัวข้อสำคัญของวันนี้

1
การสร้าง repository สำหรับงานกลุ่มและกำหนดโครงสร้างไฟล์
2
การสร้าง branch ตามหน้าที่ เช่น feature, bugfix, hotfix
3
การเปิด Pull Request (PR) พร้อมคำอธิบายและการ Review
4
การใช้ Issue เพื่อวางแผนงานและจัดลำดับความสำคัญ
5
การเชื่อมโยง Issue ↔ Pull Request เพื่อการติดตามงาน
6
การ Resolve conflict แบบพื้นฐานก่อน merge

ทำความเข้าใจ
Git Branch Workflow

Feature Branch • Main/Dev Branch • Merge Strategy

แนวทางการทำงาน

1
ใช้ Main Branch เป็นโค้ดเวอร์ชันเสถียรที่สุด
2
ใช้ Dev Branch สำหรับโค้ดที่กำลังพัฒนา
3
สร้าง Feature Branch สำหรับงานแต่ละฟีเจอร์
4
รวมงานผ่าน Pull Request พร้อมการ Review
5
ใช้ commit message แบบสั้น ชัดเจน และสม่ำเสมอ
6
แก้ conflict ก่อน merge เพื่อป้องกันปัญหาระยะยาว

ขั้นตอนการส่งงานด้วย
Pull Request (PR)

From Branch → Pull Request → Review → Merge

กระบวนการทำงาน

1
สร้าง branch ใหม่สำหรับงานที่รับผิดชอบ
2
เขียนโค้ดและ commit พร้อมข้อความที่อธิบายชัดเจน
3
เปิด Pull Request และเลือก branch ที่ต้องการ merge เข้า
4
ระบุคำอธิบายงาน เช่น ทำอะไร แก้บั๊กไหน หรือเพิ่มฟีเจอร์ใด
5
ให้เพื่อนร่วมทีมตรวจสอบ (Review) และแสดงความคิดเห็น
6
แก้ไขตามคำแนะนำแล้วกด “Update PR”
7
เมื่อทุกอย่างสมบูรณ์แล้ว กด Merge PR เพื่อรวมเข้ากับ branch หลัก

การจัดการงานด้วย
GitHub Issues

Task Tracking • Discussion • Project Planning

สิ่งที่ควรรู้

1
Issue ใช้สำหรับสร้าง “งาน” ที่ต้องทำ เช่น ฟีเจอร์ บั๊ก หรือไอเดีย
2
ตั้งชื่อ Issue ให้ชัดเจนและมีคำอธิบายที่เข้าใจง่าย
3
กำหนดผู้รับผิดชอบงาน (Assignee) และป้ายกำกับ (Labels)
4
ใช้ Checklists เพื่อติดตามความคืบหน้าแต่ละขั้นตอน
5
เชื่อมโยง Issue กับ Pull Request เพื่อให้เห็นว่าใครแก้อะไรอยู่
6
ปิด Issue เมื่อโค้ดที่เกี่ยวข้องถูก merged เรียบร้อยแล้ว

การแก้ไขปัญหา
Merge Conflict

Why Conflicts Happen • How to Resolve • Best Practices

แนวทางการจัดการ

1
Conflict เกิดขึ้นเมื่อไฟล์เดียวกันถูกแก้ไขในตำแหน่งเดียวกัน
2
ใช้คำสั่ง git pull เพื่อดึงโค้ดล่าสุดก่อนเริ่มทำงาน
3
เมื่อเกิด conflict ให้เปิดไฟล์เพื่อดูส่วนที่ Git ทำเครื่องหมายไว้
4
เลือกว่าจะใช้โค้ดของตัวเอง ของเพื่อน หรือรวมเข้าด้วยกัน
5
แก้ไขเสร็จแล้วให้ commit ใหม่เพื่อยืนยันการแก้ conflict
6
หลีกเลี่ยง conflict ด้วยการซิงก์โค้ดบ่อย ๆ และใช้ branch แยกงาน

แนวทางการทำงานร่วมกัน
อย่างมีประสิทธิภาพ

Communication • Workflow Discipline • Responsibility

ข้อควรปฏิบัติ

1
กำหนดมาตรฐานการตั้งชื่อ branch, commit และ PR ให้เหมือนกันทั้งทีม
2
อัปเดตสถานะงานใน Issue หรือ Project Board อยู่เสมอ
3
เปิด PR เล็ก ๆ บ่อย ๆ แทน PR ใหญ่ที่ตรวจสอบยาก
4
Review โค้ดของเพื่อนด้วยความสุภาพ พร้อมคำแนะนำที่สร้างสรรค์
5
แก้ conflict ให้เร็วที่สุดเมื่อมีคำขอจากผู้ร่วมงาน
6
ร่วมสื่อสารผ่านช่องทางกลาง เช่น Discord, LINE Group, GitHub Discussions

กิจกรรมปฏิบัติ
Workshop: GitHub Collaboration

Branch • Issue • Pull Request • Conflict Resolution

สิ่งที่นักศึกษาต้องทำ

1
สร้าง repository กลุ่มพร้อม README เบื้องต้น
2
เปิด Issue เพื่อแบ่งงานตามความรับผิดชอบของแต่ละคน
3
สร้าง feature branch และพัฒนาโค้ดอย่างน้อย 1 ส่วน
4
เปิด Pull Request พร้อมคำอธิบายงานที่ทำ
5
ให้เพื่อน review PR และแสดงความคิดเห็น
6
แก้ conflict (ถ้ามี) และ merge PR เข้าสู่ branch หลัก

การวางแผนงานด้วย
GitHub Project Board

Kanban • Task Flow • Tracking Progress

สิ่งที่ควรใช้งาน

1
สร้างบอร์ดแบบ Kanban (To Do / In Progress / Done)
2
เชื่อมโยง Issue กับการ์ดบนบอร์ดเพื่อการติดตามที่ง่ายขึ้น
3
ย้ายการ์ดเมื่อเริ่มทำ–กำลังทำ–เสร็จสิ้น เพื่ออัพเดตสถานะ
4
ใช้ Labels เพื่อแบ่งหมวดงาน เช่น feature, bug, documentation
5
มอบหมายงานให้สมาชิกทีมผ่านการ์ดอย่างชัดเจน
6
ใช้ Automation ของ GitHub เพื่อย้ายการ์ดอัตโนมัติเมื่อ PR ถูก merged

สรุปสาระสำคัญของการทำงานร่วมกันด้วย
Git & GitHub

Collaboration • Workflow • Productivity

จุดสำคัญที่ต้องจำ

1
ใช้ branch แยกงานเสมอเพื่อหลีกเลี่ยง conflict และทำงานคู่ขนาน
2
Pull Request คือหัวใจของการตรวจสอบคุณภาพโค้ด (Review)
3
Issue ช่วยให้การแบ่งงานและติดตามความคืบหน้าเป็นระบบ
4
Project Board ทำให้เห็นภาพรวมของงานทั้งหมดในทีม
5
สื่อสารกันเสมอเพื่อลดความคลาดเคลื่อนและทำงานได้รวดเร็วขึ้น
6
Commit บ่อย ๆ เขียนข้อความให้ชัดเจนและมีความหมาย

มอบหมายงานกลุ่ม
GitHub Collaboration Project

Repository • Project Board • Agile Planning

รายละเอียดงานที่ต้องทำ

1
สร้างกลุ่ม 4–5 คน
2
ให้ตัวแทนสร้าง private Repository ชื่อ dstoolbox68prj
3
เพิ่มสมาชิกทุกคนเป็น collaborator และเพิ่ม wichit2s
4
สร้าง GitHub Project ชื่อเดียวกับ repository และเชื่อม/นำเข้า issues จาก dstoolbox68prj
5
ตั้งค่าบทบาทสมาชิกใน Project ให้ทุกคน (รวม wichit2s) เป็น admin
6
เลือกเว็บไซต์ประกาศหางานที่ต้องการ scrape ข้อมูล
7
เขียนแผนการดำเนินโครงงานและการแบ่งงานตามหลัก SCRUM / Agile
8
เขียนข้อมูลโครงงาน รายชื่อสมาชิก เว็บประกาศงาน และการแบ่งงานลงใน README.md

ทำความรู้จัก
Agile Development

Flexible • Fast Delivery • Continuous Improvement

แนวคิดสำคัญของ Agile

1
การพัฒนาแบบยืดหยุ่น ปรับเปลี่ยนตามความต้องการได้
2
แบ่งงานออกเป็นรอบสั้น ๆ (Iterations / Sprints)
3
เน้นการสื่อสารร่วมกันในทีมอย่างต่อเนื่อง
4
ส่งมอบงานได้เร็ว มองเห็นความคืบหน้าชัดเจน

Scrum Framework
Roles • Events • Artifacts

Simple Yet Powerful Team Process

องค์ประกอบหลักของ Scrum

1
Product Owner – กำหนดความต้องการและลำดับความสำคัญ
2
Scrum Master – สนับสนุนทีมและแก้ปัญหาอุปสรรค
3
Development Team – ลงมือทำงานจริง
4
Sprint – รอบการทำงาน 1–2 สัปดาห์
5
Daily Scrum – ประชุมรายวัน 15 นาที
6
Review & Retrospective – ตรวจงานและวางแผนพัฒนา

Backlogs
Product vs Sprint

Organizing Work with Priority

สอง Backlog สำคัญ

1
Product Backlog: รายการงานทั้งหมดของโปรเจกต์ จัดลำดับโดย Product Owner
2
Sprint Backlog: งานที่ทีมเลือกมาทำใน Sprint นั้น ๆ
3
Backlog ควรมีคำอธิบายชัดเจน พร้อม Acceptance Criteria

User Stories
& Acceptance Criteria

Clear • Simple • User-Focused

รูปแบบของ User Story

As a (user type)
I want (functionality)
So that (benefit)
1
ควรสั้น กระชับ และเน้นผู้ใช้เป็นศูนย์กลาง
2
Acceptance Criteria คือเงื่อนไขการทำงานที่ถือว่าทำสำเร็จแล้ว
3
ควรเขียนเป็นข้อ ๆ เช่น “ระบบต้องแสดงรายการงานทั้งหมดได้”

GitHub Project Management
แบบ Agile / Scrum

Boards • Issues • Milestones • Automation

GitHub ช่วยทีมได้อย่างไร?

1
ใช้ Project Board (Kanban) ติดตามงานของ Sprint
2
ใช้ Issues แทน User Stories/Tasks
3
สร้าง Milestones เพื่อกำหนดรอบ Sprint
4
เชื่อมโยง PR ↔ Issues เพื่อดูความคืบหน้าอัตโนมัติ
5
ใช้ Automation เพื่อย้ายการ์ดเมื่อ PR ถูก merged
6
ทบทวนงานหลัง Sprint ผ่าน Review & Retrospective