[สรุปหนังสือ XP 2nd Edition by Kent Beck] : บทที่ 1 What is XP?

Suthasinee Lieopairoj
Nov 4 · 2 min read
ปกหนังสือ

Extreme Programming (XP) คือ เป็นระเบียบวิธี (Methodology) หนึ่งในการพัฒนาซอฟเเวร์ โดยจุดเด่นที่เเตกต่างจากระเบียบวิธีอื่น คือ

  1. รอบการพัฒนาที่สั้นลง (Short Development Cycle) ทำให้เห็นผลเร็ว, ชัดเจน เเละให้ feedback อย่างต่อเนื่อง
  2. เป็นวิธีการทำงานเเบบค่อยๆ เพิ่ม (Incremental Planning Approach)
  3. ตารางการทำงานสามารถปรับเปลี่ยนได้ตามความต้องการของธุรกิจที่เปลี่ยนไป (Flexible Schedule Ability Responding to Business Change)
  4. ใช้ Automated Test (ที่เขียนโดยโปรเเกรมเมอร์, ลูกค้า หรือเทสเตอร์) ในการมอนิเตอร์กระบวนการพัฒนา
  5. ใช้การพูดคุยเเบบเห็นหน้าเห็นตากัน (Oral Communication), Test, เเละ Source Code ในการสื่อสารเกี่ยวกับระบบ
  6. ใช้กระบวนการการออกเเบบอย่างค่อยเป็นค่อยไป (Evolutionary Design Process)
  7. เน้นที่การร่วมมือกันทำงานอย่างใกล้ชิดของทุกคนที่เกี่ยวข้อง

ใน 2nd Edition เล่มนี้ ได้อธิบายความเกี่ยวกับ XP เพิ่มเติมจาก 1st Edition ว่า

  • XP is lightweight => ใน XP จะทำงานเท่าที่จำเป็นเพื่อที่จะส่งคุณค่าให้ลูกค้า เเละไม่สามารถทำงานทีละมากๆ เเละเร็วๆ ได้ เเต่ในขณะเดียวกันก็จะไม่หยุดกระบวนการทำงานกลางคัน ทำให้จำเป็นต้องศึกษาเกี่ยวกับความรู้ทาง Technical ให้เข้าใจทั้งหมดการเริ่มกระบวนการ
  • XP is a methodology addressing for software development => XP เป็นระเบียบวิธีที่เน้นข้อจำกัดเรื่องการพัฒนาซอฟเเวร์, เเต่ไม่ได้มีข้อกำหนดปฎิบัติเกี่ยวกับ Project Management, Financial justification of Projects, operations, marketing, or sales
  • XP can work with team of any size => XP สามารถใช้ได้กับการทำงานในทุกๆ ขนาดโครงการ (เเต่การปฎิบัติงานอาจจะปรับเปลี่ยนไปตามจำนวนคนที่เข้าร่วมโครงการ)
  • XP adapts to vague or rapidly changing requirements => XP ปรับเปลี่ยนไปได้ตามสถานการณ์ เเละความต้องการที่เปลี่ยนไป

นอกจากนี้ XP ยังเป็นวิธีการทำงานในโลกการทำงานพัฒนาซอฟเเวร์ในโลกยุคสมัยปัจจุบัน ที่เน้นทางทั้งเรื่องของทักษะการทำงานที่ดี เเละการประสบความสำเร็จในความสัมพันธ์ระหว่างคนทำงานด้วย

XP จะตั้งสมมติฐานว่า

  1. คนในทีมต้องมองตัวเองเป็นส่วนหนึ่งของทีม โดยมีเป้าหมาย (One Goal) การทำงาน เเละเเผนการทำงานที่พร้อมปฎิบัติเดียวกัน
  2. คนในทีมทุกคนอยากทำงานร่วมกัน
  3. การเปลี่ยนเเปลงสามารถเกิดขึ้นได้โดยที่มีต้นทุนไม่เเพง
  4. ทุกคนในทีมต้องการเติบโตขึ้น, พัฒนาทักษะการทำงาน เเละความสัมพันธ์
  5. ทุกคนในทีมต้องการสร้างการเปลี่ยนเเปลงเพื่อให้ไปถึงเป้าหมายที่ตั้งไว้ร่วมกัน

XP ได้ออกเเบบการทำงานเพื่อครอบคลุมความเสี่ยงในกระบวนการพัฒนาซอฟเเวร์ครอบคลุมประเด็นต่างๆไว้ดังนี้

  • ตารางการทำงานเลื่อน / Schedule Slips -> เนื่องจาก XP จะเเบ่งการทำงานเป็น Cycle สั้นๆ ดังนั้นขอบเขตในการเลื่อนจำกัดอยู่เเค่ในช่วงเวลา เช่นในเเต่ละรอบการทำงาน(Iteration) XP จะวางเเผนเป็นงานสั้นๆ ดังนั้นทีมจะเเก้ไขได้ในระหว่าง cycle โดยต้องเลือกการทำงานที่สำคัญมากที่สุดก่อน (High Priority Feature First)
  • ยกเลิกโครงการ / Project Canceled -> เนื่องจากปกติ XP จะเน้นการทำงานที่เอาส่วนของธุรกิจนำส่วนของงานพัฒนาโดยการเลือกทำงานที่ตอบโจทย์ทางธุรกิจมากที่สุดก่อน ดังนั้นจะมีความผิดพลาดได้น้อย
  • ระบบใช้งานไม่ได้ / System goes sour -> XP จะเน้นที่การสร้างเเละใช้ Automated Test ที่เน้นการทดสอบเป็นส่วนๆ (ซึ่งทำให้สามารถทดสอบระบบได้ทุกๆ ครั้งที่มีการเปลี่ยนเเปลง) ถ้ามีปัญหาก็จะค่อยๆเเก้ไม่สะสมปัญหา
  • ระบบมีข้อบกพร่อง / Defect Rate -> ใน XP จะทดสอบการทำงานทั้งในมุมมองของโปรเเกรมเมอร์ที่ทดสองเเบบฟังก์ชันต่อฟังก์ชัน เเละมุมของลูกค้าที่ทดสอบทุกฟีเจอร์งาน ดังนั้นข้อบกพร่องในมุมต่างๆ จะถูกพบได้เร็ว
  • ความเข้าใจผิดทางธุรกิจ / Business Misunderstood -> ใน XP จะกำหนดให้คนทางภาคธุรกิจเป็นคนสำคัญอันดับเเรกอยู่เเละ โดยสเปกของโครงการจะสามารถเปลี่ยนเเปลงได้ระหว่างการพัฒนาโดยการเรียนรู้จากคนจากภาคธุรกิจ เเละทีมพัฒนาจะปรับงานให้ทันเมื่อธุรกิจเปลี่ยน
  • ทำผิดฟีเจอร์ / False Feature Rich -> ใน XP จะทำงานโดยเรียงตามลำดับความสำคัญอยู่เเล้ว
  • คนทำงานลาออก / Staff Turnover -> ใน XP จะมีการกำหนดข้อตกลงให้โปรเเกรมเมอร์ต้องรับผิดชอบที่จะทำงานให้เสร็จ เเละมีการกำหนดประมาณการณ์ช่วงเวลาไว้ตลอด ดังนั้นจึงมีโอกาสน้อยที่คนจะออกไปกลางคัน นอกจากนี้ XP ยังสนับสนุนการสื่อสารของ เเละการประสานงานของคนในทีม

โดยสรุปเเล้ว XP คือ

  • การยกเลิกการทำงานเก่าที่ไม่มีประสิทธิภาพทั้งในด้านเทคนิค เเละความสัมพพันธ์ของคนทำงาน เเละเเทนที่ด้วยวิธีการทำงานเเบบใหม่
  • เน้นให้คนทำงานพอใจกับตัวเองในพยายามของวันนี้
  • เน้นการเติบโต พัฒนาให้ดีขึ้นเรื่อยๆ
  • เน้นให้ทุกคนมุ่งมั่นเพื่อเป้าหมายร่วมของทีม
  • เน้นการสนองความต้องการของคนโดยผ่านการพัฒนาซอฟเเวร์

Suthasinee Lieopairoj

Written by

Interested in Biz, Tech, Books, Movies. Contact me : www.linkedin.com/in/suthasineelieo OR www.facebook.com/suthasinee.lieopairoj.1

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade