แผนการเรียนรู้
/
การทำงานร่วมกันในโครงการ
ด้วย 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