You ain’t gonna need it

หลายคนพอได้อ่านเกี่ยวกับ อไจล์ หรือ XP ก็จะได้ผ่านตาตัวย่อว่า YAGNI ซึ่งมากจากสโลแกนว่า “You aren’t gonna need it” หรือแปลว่า “คุณจะไม่ต้องการมันหรอก” ก็จะเข้าใจว่าเป็นคำพูดที่เอาไว้บอกลูกค้าเวลาพวกเขาต้องการฟีเจอร์ที่ไม่เข้าท่า ซึ่งความจริงไม่ถูกต้องเสียทีเดียวนัก

ความจริง แล้ว YAGNI เป็นแนวคิดของ XP ที่พัฒนามาจากลีนว่าด้วยเรื่องของหลักการหนึ่งของ 5S ที่บ้านเราเรียกว่า 5ส ขอออกตัวก่อนว่า บ้านเรานี่ไปเอาของเขามาแบบไม่ค่อยอธิบายกัน แล้วกลายเป็นว่า 5ส แปลว่าจัดโต๊ะก่อนกลับบ้านไม่งั้นจะมีคนมาตรวจแล้วรายงาน ไปเสีย ซึ่งห่างไกลจากหลักการจริงอยู่มากทีเดียว

5ส ถูกคิดครั้งแรกเพื่อสร้างระบบการจัดการแบบ “ทันเวลาพอดี” หรือ Just In Time (JIT) ขอไม่กล่าวถึงทั้งหมดเพราะหาอ่านได้ง่าย ทั้งที่เป็นภาษาอังกฤษและภาษาไทย หรือถ้าใครถนัดญี่ปุ่น ก็มีมากมาย แต่จะเจาะลงไปถึงต้นกำเนิดของ YAGNI นั่นคือ ส ตัวแรกใน 5ส นั่นคือ สะสาง

พอพูดว่าสะสาง หลายคนก็จะคิดถึง การจัดโต๊ะอีกนั่นแหละ ซึ่ง อย่างที่บอกว่า บ้านเราทำมันซะเสีย คนเอือมระอาไปหมด ไปดูต้นฉบับดีกว่าว่า จริง ๆ มันคืออะไร ซึ่งไม่ใช่การจัดโต๊ะแน่ ๆ

ความจริง ส หรือ S ตัวแรกมาจากภาษาญี่ปุ่นว่า Seiri (整理) คือการกำจัดสิ่งที่ไม่จำเป็นทิ้งไป เหลือแต่สิ่งที่จำเป็นจริง ๆ แล้ว จัดเรียงลำดับความสำคัญของสิ่งจำเป็นเหล่านั้น เพื่อให้สิ่งสำคัญที่สุดได้รับการเข้าถึงได้เร็วที่สุด

คุ้น ๆ มั้ยครับ มันคือการทำ prioritization ใน agile planning อย่างไรล่ะ YAGNI เป็นคำเตือนว่า คุณจะไม่สามารถจัดลำดับความสำคัญของสิ่งต่าง ๆ ใน Product Backlog ได้ง่าย ๆ ถ้าหากเราไม่เริ่มต้นด้วยการกำจัดสิ่งที่ไม่สำคัญออกไปก่อน เพราะ มันจะทำให้ backlog มีขนาดใหญ่เกินไป จนทำให้เราไม่สามารถ รักษา priority ของ ส่ิงต่าง ๆ ได้ถูกต้อง

หลังจากนั้นพอกำจัด ของไม่จำเป็นออกไปหมดแล้ว เราก็จะเริ่มเห็นภาพชัดเจนขึ้นว่า อะไรที่สำคัญที่สุด และ อะไรที่สำคัญรอง ๆ ลงมา ที่สำคัญลำดับความสำคัญของสิ่งต่าง ๆ นี่มันเปลี่ยนแปลงตลอดเวลา ของบางอย่าง ด้วยความรู้ ณ เวลาหนึ่ง มันสำคัญ แต่พอเวลาผ่านไปเรารู้มากขึ้น ชัดเจนขึ้น ก็อาจจะกลายสิ่งที่ไม่สำคัญแล้วก็ได้ เราจึงต้อง คอยตรวจสอบอยู่ตลอดเวลาว่า อะไรบ้างที่ไม่สำคัญแล้ว สามารถ “ทิ้งได้” แล้วทิ้งไปเสีย ไม่เช่นนั้นแล้ว ค่าใช้จ่ายในการดูแล list ทั้งหมด จะขึ้นไปมหาศาลจนไม่คุ้มค่าต่อสิ่งที่จะได้กลับมาจากการลงแรงนั้น

วันก่อนผมพยายามสอนน้องคนหนึ่ง ถึงกระบวนการ YAGNI ว่า เราควรเลือกทิ้งสิ่งที่เราคิดว่า “อาจไม่สำคัญ” มากกว่า เลือกเก็บสิ่งที่คิดว่า “อาจจะสำคัญ” โดย ผมคว้า กระดาษโน้ตที่แปะบนบอร์ดของทีมอีกทีมหนึ่ง แล้วถามว่า ถ้าผมทิ้งกระดาษนี้ไป เจ้าของมันจะมาตามหาภายในกี่วัน ซึ่ง ได้รับคำตอบว่า สองวัน ผมจึงพนันน้ำอัดลมหนึ่งกระป๋องกับเขา (คำเตือน: การพนันเป็นอบายมุขเยาวชนห้ามเลียนแบบ)

ผลหรือครับ ผมได้ “น้ำอัดลมฟรี” น่ะสิ

Advertisements

ใส่ความเห็น

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s