PlusMagi's Blog By Pitt Phunsanit Backend การกำหนด BATNA (Best Alternative to a Negotiated Agreement: ทางเลือกที่ดีที่สุดหากการเจรจาล้มเหลว)

การกำหนด BATNA (Best Alternative to a Negotiated Agreement: ทางเลือกที่ดีที่สุดหากการเจรจาล้มเหลว)

การเจรจาต่อรองที่ประสบความสำเร็จไม่ได้ขึ้นอยู่กับทักษะการพูดหรือเสน่ห์ส่วนตัวเพียงอย่างเดียว แต่รากฐานที่แข็งแกร่งที่สุดคือ การเตรียมพร้อม การเข้าใจถึงมูลค่าของตนเองและทางเลือกอื่น ๆ ที่มีอยู่นอกเหนือจากโต๊ะเจรจา คือสิ่งที่กำหนดขอบเขตอำนาจในการต่อรองของเรา ในโลกของข้อมูลและการพัฒนาระบบ การกำหนด BATNA (Best Alternative to a Negotiated Agreement) ก็คือการที่เราต้องทราบว่า ‘ทางเลือกที่ดีที่สุด’ ของเราคืออะไร หากแผนหลักที่เราวางไว้ไม่สามารถทำงานได้จริง

BATNA คืออะไรในมุมมองของ System Specialist?

ในทางทฤษฎี การเจรจาต่อรองคือการหาจุดร่วมระหว่างคู่กรณี แต่ในทางเทคนิคและสถาปัตยกรรมระบบ (System Architecture) การเจรจาอาจหมายถึงการเลือกใช้เทคโนโลยี, การตัดสินใจเลือกฐานข้อมูล, หรือการเลือกแนวทางการประมวลผลข้อมูล (Data Processing Strategy) หากทางเลือกหลักที่เราวางแผนไว้ (เช่น การใช้ PostgreSQL ในโหมด A) ล้มเหลวหรือไม่ตอบโจทย์ด้านประสิทธิภาพ เราต้องมี BATNA ที่ชัดเจน นั่นคือทางเลือกสำรองที่ดีที่สุด เช่น การเปลี่ยนไปใช้ NoSQL หรือการปรับปรุง Query ให้มีประสิทธิภาพสูงขึ้น

การกำหนด BATNA ที่แข็งแกร่งในบริบทของ PostgreSQL คือการที่เราต้องสามารถวิเคราะห์และเปรียบเทียบทางเลือกทางสถาปัตยกรรมหลายรูปแบบ เพื่อให้แน่ใจว่าเราจะไม่ยอมรับ ‘ข้อเสนอ’ ทางเทคนิคที่ด้อยกว่าความสามารถที่แท้จริงของระบบ

การใช้ PostgreSQL เพื่อกำหนดและเปรียบเทียบทางเลือก (BATNA Analysis)

เราสามารถใช้พลังของ PostgreSQL ในการจำลองสถานการณ์การเปรียบเทียบทางเลือกได้ โดยการสร้างตารางที่เก็บคะแนนหรือต้นทุนของทางเลือกต่าง ๆ (Alternatives) จากนั้นใช้คำสั่ง SQL เพื่อหาค่าที่เหมาะสมที่สุด (Optimal Value) ซึ่งเป็นหัวใจของการหา BATNA

ตัวอย่าง: การเปรียบเทียบประสิทธิภาพของ Data Source

สมมติว่าเราต้องเลือกระหว่างการดึงข้อมูลจาก 3 แหล่ง (A, B, C) และต้องการหาแหล่งข้อมูลที่มีความเสถียรและประสิทธิภาพสูงสุด (BATNA) เราสามารถใช้โค้ดดังนี้:

SQL

-- สร้างตารางจำลองสำหรับเก็บคะแนนทางเลือก (Alternative Score) และต้นทุน (Cost)
CREATE TABLE alternative_paths (
    path_name VARCHAR(50),
    stability_score INT,
    query_cost DECIMAL(10, 2)
);

-- ใส่ข้อมูลทางเลือก 3 แบบ (A, B, C)
INSERT INTO alternative_paths (path_name, stability_score, query_cost) VALUES
('Source A: JOIN', 85, 150.50),
('Source B: UNION ALL', 92, 120.00),
('Source C: View Query', 78, 180.75);

-- ค้นหาทางเลือกที่ดีที่สุด (BATNA) คือทางเลือกที่มีคะแนนเสถียรภาพสูงที่สุดและต้นทุนต่ำที่สุด
SELECT
    path_name,
    stability_score,
    query_cost
FROM alternative_paths
ORDER BY
    stability_score DESC,
    query_cost ASC
LIMIT 1;

จากโค้ดข้างต้น ผลลัพธ์ที่ได้จะชี้ให้เห็นถึง Source B: UNION ALL ว่าเป็นทางเลือกที่ดีที่สุด (BATNA) เพราะมีคะแนนเสถียรภาพสูงที่สุด (92) และมีต้นทุนที่สมเหตุสมผลที่สุด (120.00) เมื่อเทียบกับทางเลือกอื่น ๆ

บทสรุป: BATNA คือความรู้เชิงลึก

การกำหนด BATNA ไม่ใช่แค่การมีแผนสำรอง แต่คือการมี ความรู้เชิงลึก (Deep Knowledge) ในระบบของเราเอง ไม่ว่าจะเป็นการเจรจาทางธุรกิจหรือการออกแบบระบบฐานข้อมูล การที่เราสามารถวิเคราะห์ทางเลือกทั้งหมดด้วยเครื่องมืออย่าง PostgreSQL ได้อย่างแม่นยำ จะช่วยให้เราสามารถตั้งขีดจำกัด (Walk-away point) ทางเทคนิคได้อย่างมั่นใจ และไม่ยอมรับโซลูชันที่ต่ำกว่ามาตรฐานที่ระบบของเราสมควรได้รับ

Exit mobile version