เคยได้ยินคำว่า Gold Plating กันบ้างมั้ยครับ? มันเป็นคำศัพท์ที่ไม่คุ้นเคยแต่อยู่ใกล้ตัวเรามาก นิยามจากวิกิพีเดีย:
“Gold plating in software engineering or Project Management (or time management in general) refers to continuing to work on a project or task well past the point where the extra effort is worth the value it adds (if any). After having met the requirements, the developer works on further enhancing the product, thinking the customer would be delighted to see additional or more polished features, rather than what was asked for or expected. The customer might be disappointed in the results, and the extra effort by the developer might be futile.” — Wikipedia
“ฉาบทอง (แปลมันตรงๆเลย 😑) ในวิศวกรรมซอฟต์แวร์หรือการบริหารโครงการ (หรือการบริหารเวลาโดยทั่วไป) คือการที่เรายังคงทำงานต่อเนื่องในโปรเจกต์หรืองานที่มันเลยจุดที่การทำงานต่อไปนั้นไม่ได้สร้างประโยชน์อะไรแล้ว หลังจากที่เราทำได้ตามความต้องการของลูกค้า เดฟเวลอปเปอร์ยังคงทำงานต่อไปเรื่อยๆเพื่อทำให้โปรดักส์ดีขึ้นโดยคิดไปเองว่าลูกค้าจะชอบใจที่ได้เห็นฟีเจอร์ที่เพิ่มขึ้นหรืองดงามขึ้น แต่ลูกค้าอาจจะผิดหวังกับผลลัพธ์และความพยายามเกินจำเป็นของเดฟเวลอปเปอร์ก็อาจจะไร้ประโยชน์” — วิกิพีเดีย
อย่างที่เคยเล่าไปครับว่าการพัฒนาซอฟต์แวร์มันท้าทายตรงการสร้างความสมดุลของปัจจัยต่างๆ ไม่ว่าจะเป็นสโคป เวลา งบประมาณ คุณภาพ … บทความนี้ว่ากันเรื่องสโคปที่น้อยไปก็ไม่ได้ (ทำไม่ได้ตามความต้องการของลูกค้า) หรือสโคปที่มากไปจากความคิดของเราเองก็ไม่ดีเช่นกัน เหมือนเหตุการณ์ฉาบทองอันนี้แหละ
ผมเข้าใจคนทำงานทุกคนครับ ผมเองก็เป็นคนนึงที่เมื่อเห็นความต้องการตั้งต้นของลูกค้าแล้วมันคันไม้คันมือคันปากอยากทำระบบที่มันดีกว่านั้น ฉลาดกว่านั้น เริ่ดหรูกว่านั้น แต่เหตุการณ์แบบนี้มันต้องยับยั้งชั่งใจให้มากๆเพราะผลได้มันอาจจะไม่คุ้มเสีย การที่เราตัดสินใจอะไรแทนลูกค้าโดยพลการนั้นไม่ใช่เรื่องสมควรเท่าไรเพราะการเพิ่มอะไรเข้ามาในโปรเจกต์มันหมายถึง
- การทดสอบที่เพิ่มขึ้น
- เอกสารที่ต้องแก้ไขเพิ่มเติม
- เวลาที่มากขึ้น
- และงบประมาณที่บานปลาย
ทั้งหมดนั้นเป็นอำนาจตัดสินใจโดยตรงของลูกค้าเขาว่าจะเลือกอะไร ส่วนหน้าที่โดยตรงของเราหรอ? ก็พยายามทำให้ลูกค้าพอใจในสินค้าและบริการของเรา ถ้าเขาแฮปปี้กับความต้องการเพียงแค่นั้น — เราก็ควรจะแฮปปี้กับการทำระบบที่ตอบสนองความต้องการแค่นั้นเป็นจุดเริ่มต้น เป็นเบสไลน์ เป็นเป้าหมายแรกของทีมงาน
ไม่ได้แปลว่าห้ามไม่ให้เรามีความคิดที่ก้าวหน้า — แน่นอนที่สุดเราคิดได้ครับ สิ่งที่เราทำได้เพียงอย่างเดียวคือเสนอคำแนะนำนี้ให้ลูกค้ารับทราบ ให้เขาพิจารณาถึงข้อดีข้อเสียและตัดสินใจด้วยตัวเองว่าฟีเจอร์แบบนี้มันคุ้มค่าและดีกว่าสิ่งที่เขาคิดไว้ตอนแรกหรือไม่
กับงานที่ผมทำอยู่ หลายครั้งมากที่มีไอเดียทำอะไรที่อลังการ เพื่อนผมก็เสนอแนวคิดอะไรเทพๆมากมาย มันทำได้ในทางเทคนิคแต่ความคุ้มค่าทางธุรกิจนั้นยังเป็นคำถาม ทุกครั้งที่มีข้อสงสัยประเภทนี้เกิดขึ้นในทีมของผม ผมมักจะแนะนำอย่างฝืนใจว่า “เออ มันดีนะ แต่เอาง่ายๆแค่นี้พอก่อน”
คำว่า Scope Creep ที่แปลว่าการที่สโคปของงานเปลี่ยนแปลงและขยายขนาดขึ้นจนเกินความควบคุมนั้นเป็นเรื่องทุกคนเคยเจอมา เป็นที่น่าสังเกตว่าสาเหตุของเรื่องนี้อาจจะไม่ใช่ที่ลูกค้าอยากได้นั่นนี่เพิ่มเติม … มันอาจจะเป็นเพราะทีมเราเองอยากใส่นั่นนี่เข้าไปจนล้นเกินความจำเป็นก็ได้ 🤔