agile

ก่อนอื่นต้องขอบคุณท่านอาจารย์ Roy ที่นำคำพูดนี้มาให้ติดหู แล้วท่านอาจารย์ก์ยังทวงถามความเข้าใจ จากเราอยู่เสอมน่ะครับ (ไม่ได้หาคำตอบไปซะที)

ตอนที่ได้ฟังคำว่า agile นี้ครั้งแรก เล่นเอามึนไปแปดด้าน เลยครับ คำศัพท์อะไรเนี้ย งัย มัน ไม่สื่อไปทางไหนให้เดาได้ต่อเลยเนี้ยครับ ตอนนั้นยิ่งกระแส Ajax มาแรงแซงโค้ง ปาดซ้าย ปาดขวา ขึ้นมาเป็นเทคโนโลยี ที่อยู่ในแถวหน้าที่นำมาใช้พัฒนา เว็บกัน ก็คิดเอาเองว่า เอาละนะมันต้องเกี่ยวข้องกันแน่ ๆ

พอได้รับคำอธิบายเพิ่มเติม ก็ทำให้ที่เรารู้จากความเดิมมันห่างไกลจากความเป็นจริง คลาดเคลื่อนไปมากที่เดียว ว่าแล้วก็ได้ฤกดิ์ค้นๆๆ คุ้ย พอจะได้ข้อมูล เอามาชี้แจงแถลงไข กันซะหน่อยว่า

 

agile คืออะไร

Agile เป็นแนวคิดใหม่สำหรับการพัฒนาซอฟต์แวร์ ที่พยายามที่จะแทรกตัวเข้าไปใน methodology แบบเดิม เพื่อให้งานสั้นลง

เป็นหลักการในการพัฒนา software แบบใหม่ที่เน้น...

  • Rapid and flexible response to change
  • ทำให้การพัฒนาว่องไว
  • มีการทำเรื่อยๆไม่ต้องหยุด แม้มีอะไรมากระทบก็ไม่เป็นไร
  • เมื่อมีการเปลี่ยนแปลง เราสามารถรองรับความเปลี่ยนแปลงนั้นได้อย่างรวดเร็ว ไม่ตายตัว

วัตถุประสงค์ของ Agile

  1. เน้นว่าใครถนัดอะไร และการพูดคุยสื่อสารกัน มากกว่า การยึดติดที่เครื่องมือและกระบวนการ เช่นเปลี่ยนให้โปรแกรมเมอร์ไปคุยกับลูกค้าแทน ลูกค้าบอกอะไรมาก็ทำตามนั้นได้เลย
  2. ให้ทำงานโดยยึดที่ผลผลิตหรือ software เป็นหลัก เช่น เดิมเน้นเอกสารแต่ Agile ไม่สนมากนัก แต่สนทีี่ว่าเรามี sw หรือของส่งให้ลูกค้าหรือยัง
  3. ให้ความสำคัญเรื่องของการติดต่อสื่อสาร เช่น เดิมมีสัญญาหรือ contact กันแต่ Agile ไม่สนใจ ให้มองที่ความสัมพันธ์ระหว่างผู้พัฒนาและลูกค้า
  4. ยอมรับความเปลี่ยนแปลง เช่น เดิมต้องวางแผนให้ครบเป็นอย่างดี และทำตามแผน(gantt chart) ให้ได้ แต่ Agile ไม่ต้องทำตามแผนแต่เน้นการสนองความเปลี่ยนแปลงที่เกิดขึ้นได้

Note: ถ้าเรามีโปรเจคเก่าที่สามารถต่อเนื่องได้ ดังนั้นแสดงว่าเรามี Asset เดิมเพื่อมาตั้งต้นทำโปรเจคใหม่ เพราะฉะนั้นงานใหม่เราก็สามารถนำ Asset มาส่งมอบไปก่อนก็ได้

 นี้ก็เป็นบทความที่ค้นมาจากอินเตอร์เน็ตที่ทำให้ความเข้าใจของตัวเองจากเดิมกระจ่างขึ้นมาอีกเยอะคัรบ หวังว่าจะมีผู้สนใจเรื่องเดียวกัน จะได้ มาช่วยๆ กันสานต่อแนวคิดนี้ให้ลองใช้งานได้จริงในประเทศไทย (ซึ่งคาดว่าจะมีการนำมาใช้แล้ว )