Monday, May 26, 2008

ROLLBACK - กลับสู่จุดเดิม

หนึ่งในกระบวนการทำงานโดยเฉพาะการ upgrade ระบบที่กำลังทำงานอยู่ ไปอีกระบบนึง จุดมุ่งหมายๆ อาจจะเพื่อให้การทำงานดีขึ้น หรือจำเป็นต้อง upgrade เพื่อใช้ function แปลกใหม่ที่ระบบเดิมไม่รองรับ อาจจะเป็นระบบที่ทำงานมานาน จนเก่า เมื่อมีอะไรใหม่ๆมาเชื่อต่อ การเชื่อต่อใหม่กับเก่าก็อาจจะสร้างปัญหา โดยเนื้องแท้ของการพัฒนาผู้พัฒนามักจะพัฒนาให้รองรับระบบเก่าให้ได้มากที่สุด แต่ก็เป็นการสิ้นเปลืองคนและเวลาพอสมควรอีกทั้งเรื่องของความเข้ากันได้แบบสมบูรณ์ซึ้งเป็นเรื่องยากลำบากเอาการ ดังนั้นการเลือกที่จะ upgrade หรือ migrate ของเดิมเพื่อให้เป็นของใหม่ ก็เป็นทางเลือกที่ดี
ในการวางแผนเพื่อนการ migrate ระบบสิ่งนึงที่ต้องอยู่ในแผนคือ แผนการนำมันกลับมาสู่การทำงานแบบเดิมให้ได้ เรียกกันว่า ROLLBACK หมายความว่าถ้าเราไม่สามารถที่จะทำให้มันทำงานกับระบบใหม่ได้ เราก็ต้องนำมันกลับมาเพื่อให้ใช้งานได้เหมือนเดิม ตามธรรมชาติของผม ผมไม่ค่อยคิดถึงเรื่อง ROLLBACK เมื่อทำอะไรแล้วมันต้องทำให้สำเร็จ นั่นคือชิวิตวัยรุ่น ไม่มีแผนว่าทำไม่ได้แล้วจะทำไง ใช้ของเดิม? มั๊ย ผมเคยยอมให้ตัวเองอยูในสภาพบีบคั้นจากการฝืนลักษณะนี้ มาหลายครั้ง สิ่งผมได้ก็คือ ระบบใหม่ที่ขึ้นมาพร้อมกับความไม่มั่นใจของผู้ที่มีส่วนเกี่ยวข้อง ถึงแม้มันจะทำงานได้ดี แต่ความสั่นคลอนในช่วง migrate มันทำให้คนที่เกี่ยวข้องขาดความมั่นใจ ถึงระบบนิ่งดีแล้ว แต่ก็ต้องทิ้งระยะนานพอสมควรเพื่อให้ความมั่นใจกลับคืนมา
เรื่องของเรื่องผมพึ่งจะทำงาน ROLLBACK ระบบไป หลังจากผ่านกระบวนการนี้สิ่งที่ติดค้างให้ความคิดของผมคือ เห้ย เราทำมันไม่ได้เหรอวะ ถ้ามีเวลาอีกสักหน่อย เราจะทำมันได้หรือเปล่าวะ มันวนเวียนในหัวผมตลอดเวลา ว่าอะไรเป็นสาเหตุของระบบที่ไม่สามารถทำงานได้อย่างที่หวัง ขนาดหลับตายังฝันถึง มันไปใกล้ความสำเร็จมาก แทบชะเง้อคอเห็น แต่สุดท้ายผมก็ต้องเดินกลับมายืนอยู่ที่เดิม บางครั้งชิวิตมันก็ต้องมีการ ROLLBACK เหมือนกัน บางครั้งเมื่อเดินอย่างไรก็คลำหาปลายทางไม่เจอ เมื่อถึงจุดนึงคุณอาจจะต้องตัดสินใจ ROLLBACK เพื่อกลับมาทบทวนกระบวนการอีกครั้ง ทบทวนทุกขั้นตอน ความผิดพลาดทั้งหมด ถึงตอนนั้นคุณจะได้ตระหนักว่า อะไรคือสาเหตุของความผิดพลาดนั้น สำหรับการ migrate ครั้งต่อไป มันก็อาจจะทำให้คุณสามารถ upgrade ระบบใหม่ได้ การ migrate ที่ไม่สมบูรณ์มันสร้างความไม่มั่นใจให้คนที่ใช้ระบบ แต่การ ROLLBACK มันก็สร้างความไม่มั่นใจให้คนดูแลระบบเช่นเดียวกัน อย่าลืมว่าการ rollback มันเป็นสิ่งที่เกิดขึ้นได้ในชิวิตเราเสมอ ถึงคุณจะรู้สึกว่ามันไม่เหมือนเดิมหลังจาก rollback กลับมาก็เถอะ แต่สิ่งที่คุณได้คือคุณได้ลิ้มลองประสบการณ์ของการ migrate ไปแล้ว คุณได้ลองระบบใหม่กับสภาพการใช้งานที่แท้จริง ได้เห็นทุกกลไกการทำงานของมัน บางครั้งมันก็แตกต่างจากการทำงานในสภาพแวดล้อมของการทดสอบโดยสิ้นเชิง ...

No comments: