
Agile คืออะไร
หลายคนอาจจะได้ยินคำว่า Agile อาจจะโดยบังเอิญหรือตั้งใจ หรือบางคนอาจได้สัมผัสหรือใช้งานอยู่จริงๆ ในที่ทำงาน แต่ก็ยังไม่แน่ใจว่าจริงๆ แล้ว Agile มันคืออะไรกันแน่ ผมเลยอยากจะมาแชร์ความเข้าใจของผมจากประสบการณ์ตรงที่ผมได้ประสบมา
คำว่า Agile เป็นคำในภาษาอังกฤษ แปลว่า ความคล่องแคล่ว ว่องไว ซึ่งโดยทั่วไปจะใช้กับนักกีฬา โดยนักกีฬาที่มีความคล่องแคล่วสามารถที่จะปรับกลยุทธ์ได้ทันทีทันใดตามสถานการณ์ ก็จะถือว่าเป็นนักกีฬาที่มีความ Agile อย่างเช่น ในกีฬาบาสเกตบอล ผู้เล่นที่มีความ Agile ก็จะสามารถเข้าทำคะแนนได้หลากหลายรูปแบบโดยมีเป้าหมายเดียวคือการทำคะแนนะให้ได้
Agile กับการพัฒนา Software
ในวงการ Software ก็ได้มีการนำคำว่า Agile เข้ามาใช้งาน โดยเริ่มต้นจากผู้นำทางความคิดทางด้านการพัฒนา Software ได้รวมตัวกันและรวบรวมแนวความคิดในการทำ Software ที่ดีและได้ผลลัพธ์ เป็น Agile Manifesto ซึ่งได้รับความนิยมในหมู่ผู้พัฒนา Software รวมถึงบริษัทที่เกี่ยวข้องกับการพัฒนา Software อย่างแพร่หลาย
ความหมายของคำว่า Agile ในการพัฒนา Software โดยหลักการแล้วก็ยังคงเป็น ความคล่องแคล่ว ว่องไว ในเป็นความคล่องแคล่วในการพัฒนา Software โดยมีเป้าหมายคือการผลิต Software ที่มีประโยชน์ให้กับผู้ใช้งาน แทนที่จะเป็นการทำคะแนนเหมือนกับเป้าหมายของนักกีฬา
ตัวอย่าง Agile กับการผลิต Software
ตัวอย่างความคล่องแคล่วในการผลิต Software เช่น การที่เราสามารถปรับเปลี่ยน Software ให้ตรงกับความต้องการใช้งานจริงของผู้ใช้งาน บางท่านที่อาจจะไม่เคยทำงานด้านพัฒนา Software อาจจะสงสัยว่า มันก็ควรจะเป็นอย่างนั้นอยู่แล้วไม่ใช่หรือ แต่ในความเป็นจริงในขบวนการพัฒนา Software โดยทั่วไป เราจะมีการตกลงกับผู้ใช้งานว่าจะผลิต Software ออกมาอย่างไรล่วงหน้า ซึ่งอาจจะนานเป็นเดือนๆ หรือเป็นปีเลยก็ได้ หมายความว่าเมื่อถึงเวลาที่พัฒนา Software เสร็จแล้ว ความต้องการใช้งานอาจจะเปลี่ยนไปแล้วก็เป็นได้ หรือบางครั้งผู้ใช้งานอาจจะพบว่าสิ่งที่ตัวเองบอกไปไม่ใช่สิ่งที่ต้องการหลังจากที่ได้ลองใช้จริง (อันนี้ท่านอาจจะมีประสบการณ์ตรงที่บางครั้งตอนที่เราบอกความต้องการไป เราอาจจะยังไม่แน่ใจว่าต้องการอะไรจริงๆ ก็เป็นได้ จนกว่าจะได้เห็นของจริง)
แล้วเราจะผลิต Software ให้ Agile ได้อย่างไร
ความจริงแล้วการที่เราจะพัฒนา Software ให้ Agile ก็มีพื้นฐานเดียวกับนักกีฬา กล่าวคือ นักกีฬามีเป้าหมายคือการทำคะแนน โดยที่ไม่ได้มีวิธีการทำคะแนนที่ตายตัว แต่ขึ้นอยู่กับสถานการณ์นะเวลานั้น ดังนั้น การผลิต Software ให้ Agile ก็ต้องสามารถที่จะปรับเปลี่ยนวิธีการพัฒนา Software ได้ตามสถานการณ์ โดยยึดเป้าหมายซึ่งก็คือ Software ที่สร้างประโยชน์กับผู้ใช้งานได้จริง ตัวอย่างเช่น การพัฒนา Software แบบ waterfall ซึ่งจะแบ่งการพัฒนา Software เป็นช่วงเวลา Requirement, Design, Build, Test, Deliver โดยจะไปขั้นต่อไปได้จะต้องทำขั้นก่อนหน้าให้เรียบร้อยก่อน แต่ปัญหาก็คือ ระยะเวลาระหว่าง Requirement กับ Deliver เพื่อใช้งานจริงนั้นมีระยะเวลาที่ห่างกันมาก ทำให้เมื่อผู้ใช้งานได้เห็น Software ที่สำเร็จแล้วและพบว่าไม่เป็นอย่างที่คิด ก็อาจจะสายไปแล้ว หากจะกลับไปแก้ไขจะต้องมีต้นทุนจำนวนมาก
จากตัวอย่างนี้จะพบว่า หากเราสามารถทำให้ผู้ใช้งานได้เห็น Software ได้เร็วที่สุดเท่าที่จะเป็นไปได้ก็จะแก้ปัญหานี้ได้ โดยวิธีการคือ แทนที่เราจะแบ่งการทำงานเป็นแบบ waterfall เราก็สามารถแบ่งงานตามคุณค่าของงาน เช่น แทนที่เราจะทำฟังก์ชันงานบันทึกข้อมูลและออกรายงาน จนเสร็จทั้งหมดแล้วจึงให้ผู้ใช้งานได้ใช้ เราก็สามารถทำเฉพาะส่วนบันทึกข้อมูลก่อนเพื่อให้ผู้ใช้งานได้ทดลองใช้ก่อน เท่านี้ก็จะช่วยลดระยะเวลาที่จะเห็นข้อผิดพลาดของ Software ได้เร็วขึ้น
ความสำคัญของ Agile
เมื่อท่านอ่านมาถึงตรงนี้ ก็จะพบว่าพื้นฐานของ Agile นั้น ไม่ได้จำกัดอยู่ที่ กีฬา หรือการพัฒนา Software เท่านั้น แต่สามารถที่จะประยุกต์ใช้ได้กับทุกๆ เรื่องที่เราเกี่ยวข้อง เพราะว่าโลกในปัจจุบันนี้มีการเปลี่ยนแปลงอย่างรวดเร็วมากขึ้นทุกๆ วัน และผมก็เชื่อว่ามันจะยังคงเป็นไปอย่างนี้ เพราะว่าความต้องการของพวกเราเปลี่ยนแปลงไปทุกๆ วันไม่มีที่สิ้นสุด ดังนั้น เราจึงจำเป็นที่จะต้องมีความ Agile เพื่อที่จะได้ปรับตัวให้เข้ากับสถานการณ์ของโลกที่เปลี่ยนแปลงอยู่ตลอดเวลาได้อย่างดี
ตัวอย่าง Agile กับชีวิตประจำวัน
คุณคุยวางแผนกับเพื่อนๆ ว่าจะไปเที่ยวทะเลเดือนหน้า แต่ยังไม่ได้กำหนดวันที่ชัดเจน คุณก็คิดได้ว่าครีมกันแดดของคุณหมด คุณจึงใช้เวลาเสาร์อาทิตย์ถัดไปของคุณไปเดินหาซื้นครีมกันแดด และเมื่อคุณกลับมาทำงานวันจันทร์ คุณก็พบว่าทริปของคุณได้ล่มไปเรียบร้อยแล้ว เนื่องจากเพื่อนๆ ไม่สามารถหาเวลานัดที่ตรงกันได้ ซึ่งคุณได้เสียเวลาและเงินไปกับการซื้นครีมกันแดด ที่ไม่รู้จะได้ใช้หรือไม่ไปเรียบร้อยแล้ว ซึ่งหากคุณมีความ Agile คุณก็จะรอให้ใกล้เวลาที่จะไปเที่ยวทะเลก่อน จึงค่อยซื้อครีมกันแดด
หวังว่าท่านจะได้ประโยชน์จากบทความนี้ไม่มากก็น้อยนะครับ และเมื่อท่านจะตัดสินใจทำอะไรไม่ว่าจะเป็นเรื่องงานหรือเรื่องส่วนตัว ก็อย่าลืมถามตัวเองว่า “นี่มัน Agile หรือเปล่านะ”
