Back to notes
mastery-architecture

Agile & GitFlow: บริหารจัดการฟีเจอร์อย่างไรไม่ให้เกิด 'สงคราม Merge Conflict'

เจาะลึกการทำงานแบบ Agile และการใช้ GitFlow ในระดับมืออาชีพ เพื่อให้ทีมเดินหน้าได้อย่างรวดเร็วโดยไม่ต้องเสียเวลากับปัญหาไฟล์ทับกัน

February 6, 20262 min read readNNexis by Seereen

🛑 1. The Chaos: "ใครแก้ไฟล์นี้!?"

ในทีมที่ไม่มีระบบจัดการที่ดี ทุกคนจะรุมแก้โค้ดที่ไฟล์เดียวกันและส่งขึ้น main พร้อมกัน ผลลัพธ์คือ "Merge Conflict" ยาวเป็นกิโลเมตร และบางครั้งฟีเจอร์ที่ยังทำไม่เสร็จก็เผลอหลุดไปหน้า Production จนเกิดบั๊กมหาศาล

Senior Solution: เราต้องใช้แนวคิด Agile เพื่อแบ่งงานเป็นส่วนย่อยๆ และใช้ GitFlow เพื่อควบคุม "กระแส" ของโค้ดให้ไหลไปในทางที่ถูกต้องครับ


💡 2. Real-Life Analogy: การก่อสร้างรถไฟฟ้า vs การสร้างตึก

  • Waterfall (แบบเก่า): เหมือนการสร้างตึก 50 ชั้น ต้องเสร็จฐานก่อนถึงทำเสา ถ้าแบบผิดตอนชั้น 40 ต้องทุบทิ้งทุกชั้น (เปลี่ยนยาก แพง และช้า)
  • Agile (แบบใหม่): เหมือนการทำรถไฟฟ้าทีละสถานี พอสถานีแรกเสร็จก็เปิดใช้งานได้เลย (MVP) แล้วค่อยต่อขยายสถานีถัดไป ผู้ใช้ได้รับบริการเร็วขึ้น และทีมได้รับ Feedback ทันที
  • GitFlow: เหมือน "เลนถนน". มีเลนสำหรับรถวิ่งปกติ (Production), เลนสำหรับเตรียมตัว (Develop), และเลนสำหรับซ่อมแซมเร่งด่วน (Hotfix) เพื่อไม่ให้รถชนกันกลางถนนครับ

🚀 3. Execution Journey: GitFlow แบบฉบับ Senior Developer

ในการทำงานจริง ผมมักจะวางระบบ Git ให้เป็นสากลดังนี้ครับ:

🛠 Step-by-step:

  1. Main Branch: เก็บโค้ดที่ "เสถียรที่สุด" และใช้งานจริงบน Production เท่านั้น ห้ามใครแก้ที่นี่โดยตรง!
  2. Develop Branch: เป็นศูนย์รวมของฟีเจอร์ใหม่ๆ ที่เทสต์ผ่านแล้วแต่ยังไม่ถึงรอบ Release
  3. Feature Branches: เมื่อจะเริ่มงานใหม่ (เช่น feature/login-system) ทุกคนต้องแยกกิ่งออกไปทำคนเดียว เมื่อเสร็จแล้วค่อยส่ง Pull Request (PR) กลับมา
  4. Code Review: ก่อนจะ Merge โค้ดเข้า Develop ต้องมี Senior อีกคนมาช่วยตรวจ (Peer Review) เพื่อหาบั๊กที่มองข้ามไป
  5. Hotfix: ถ้ามีบั๊กวิกฤตบน Production เราจะแยกกิ่งมาแก้และส่งกลับไปทั้ง Main และ Develop ทันที
HLJS BASH
# ✅ ลำดับคำสั่งมาตรฐานเมื่อเริ่มฟีเจอร์ใหม่
git checkout develop
git pull origin develop
git checkout -b feature/aura-payment-integration
# ... เขียนโค้ด ...
git add .
git commit -m "feat: implement stripe payment gateway"
git push origin feature/aura-payment-integration

🪤 4. The Junior Trap: "Giant Commits" (Commit เดียวเปลี่ยนโลก)

จูเนียร์มักจะทำงานทุกอย่างให้เสร็จในอาทิตย์เดียวแล้วถึงค่อย Commit ครั้งเดียว:

  • ปัญหา: ถ้าโค้ดพัง คุณจะย้อนหลัง (Revert) แทบไม่ได้เลย และคนตรวจโค้ด (Reviewer) จะปวดหมองมากเพราะไฟล์ที่เปลี่ยนมันเยอะเกินไป
  • ✅ การแก้ไข: จงใช้หลักการ "Commit Early, Commit Often". แบ่งงานเป็นชิ้นเล็กๆ ที่ทำงานได้จริง (Atomic Commits) เพื่อให้ง่ายต่อการติดตามและแก้ไขครับ

⚖️ 5. The Management Matrix: จะเลือก Process แบบไหน?

หัวข้อScrum (Agile ที่นิยม)Kanban (เน้นไหลลื่น)
รอบการทำงานมี Sprint ชัดเจน (เช่น 2 สัปดาห์)ทำงานไปเรื่อยๆ ตามลำดับความสำคัญ
ความยืดหยุ่นเปลี่ยนแปลงงานระหว่าง Sprint ยากสูงมาก (หยิบงานใหม่ได้ทันที)
เหมาะสำหรับการพัฒนา Product ใหม่ที่มี Roadmapงานแก้บั๊ก หรือ Support ที่มาไม่เป็นเวลา

🎓 6. Senior Mindset Summary

กระบวนการ (Process) ไม่ได้ถูกสร้างมาเพื่อขัดขวางความเร็ว แต่มันถูกสร้างมาเพื่อ "ความยั่งยืน" ครับ การที่ผมเข้าใจ GitFlow และ Agile อย่างลึกซึ้ง ทำให้ผมสามารถคุมทีมให้ส่งงานได้ต่อเนื่องโดยที่ระบบไม่พังและทีมไม่ Burnout ความเป็น Senior วัดกันที่ "ความสม่ำเสมอของผลงาน (Predictability)" มากกว่าความเร็วชั่วคราวครับ!

## References

Share this note

Related notes

View all notes
mastery-architecture
Intermediate

CI/CD: เปลี่ยนการ Deploy ที่แสนน่ากลัว ให้เป็นเรื่องอัตโนมัติเพียงแค่คลิกเดียว

เจาะลึกระบบการส่งมอบซอฟต์แวร์ยุคใหม่ที่ช่วยให้โปรเจกต์ของคุณปลอดภัยและรวดเร็ว ด้วยการใช้ Pipeline อัตโนมัติ

February 6, 20262 min read
mastery-architecture
Advanced

The Testing Pyramid: ทำไมการเทสต์ 100% ถึงอาจเป็นกับดักที่ทำให้โปรเจกต์ล่าช้า?

เจาะลึกกลยุทธ์การออกแบบระบบทดสอบให้คุ้มค่าที่สุด ด้วยหลักการ Testing Pyramid เพื่อให้แอปของคุณเสถียรโดยไม่ต้องเสียเวลาเขียนเทสต์จนไม่ได้เขียนโค้ดจริง

February 6, 20262 min read
mastery-architecture
Advanced

Modern SDLC: จาก Database Schema สู่ Production ในฐานะ Fullstack Engineer

เจาะลึกมหากาพย์การสร้าง Digital Product ตั้งแต่การวาด ER Diagram ไปจนถึงการทำ CI/CD และทำไมการเข้าใจ 'วงจรชีวิต' ถึงทำให้คุณเหนือกว่าแค่การเป็นคนเขียนโค้ด

February 5, 20263 min read

© 2026 My Notes by Seereen