ปรับปรุง


สมัยเรียนมัธยมปลายแว๊บนึงของชีวิตเคยมีความคิดอยากเป็นสถาปนิก(Architect) เพราะเห็นพี่ชายเพื่อนเรียน ถาปัตย์จุฬา เห็นเขา sketch โน่นนี่นั่นแล้วมันเท่จริงๆเลย แต่ก็ค้นพบได้ด้วยตัวเองในเวลาไม่นานว่าคงไม่มีปัญญาได้เรียนคณะนี้เพราะไม่ เข้าใจการวาดภาพเลยและละแวกที่เรียนอยู่ไม่เปิดคณะนี้ เรื่องนี้เลยจบไป



ผ่านมานานอีกหลายปี ช่วงที่ทำงานใหม่ๆ พอดีว่าที่ทำงานมีออฟฟิศด้านบนทำงานเกี่ยวกับสถาปัตย์ และจะมีช่วงที่มีเด็กๆ มาฝึกงาน แน่นอนว่าเย็นๆ เราก็ตั้งวงกินเหล้ากันอย่างมีความสุขระหว่างสองออฟฟิศนี้และในหมู่มวลสถาปนิกจะมีบทสนทนาเรื่อง “บุคคลซึ่งเป็นแรงบันดาลใจ” เสมอ ซึ่งบุคคลเหล่านั้นมักจะมีวิธีคิดและวิธีออกแบบที่แตกต่างกันออกไป ที่ผมได้ยินเข้าหูก็จะมีหลายแนวเช่น Minimalist (แนวสร้างบ้านอยู่ยาก แอบแซว), Modern (นี่ก็อยู่ยากเพราะบ้านที่สร้างไม่สามารถเอาพัดลมจาก Macro, Lotus ไปวางได้ มันบาป) และอีกหลายๆ แนวที่ผมจำไม่ได้ แต่มีอยู่แนวหนึ่งที่ผมชอบและติดใจเป็นพิเศษคือ แนว Renovation (พวกชอบปรับอาคารบ้านเรือน โรงงาน เก่าๆ ให้ดูสวยแบบผสมผสาน) ซึ่งน้องๆ เขาก็เล่าให้ฟังว่าการสร้างและออกแบบตึกใหม่ไม่ท้าทายเท่ากับการทำให้สิ่งปลูกสร้างเก่าๆ กลับมาดูสวยได้ เพราะมันต้องอาศัยการออกแบบที่แยบยล การคิดอย่างรอบคอบ เพื่อให้สถาปัตยกรรมใหม่ที่ใส่เข้าไปส่งเสริมให้โครงสร้างเก่าที่มีอยู่ดูสวย นอกจากสถาปนิกแล้ว ช่างก่อสร้างก็เป็นคนสำคัญอีกคนที่ลงมือปรับปรุง เพราะช่างก่อสร้างนอกจากจะต้องมีความประณีตแล้ว ยังต้องเข้าใจโครงสร้างพื้นฐานเดิมของสิ่งปลูกสร้างเก่านั้นให้ดี ก่อนลงมือปรับปรุงตามที่สถาปนิกออกแบบไว้ เพราะแน่นอนว่าการปรับปรุงย่อมยากกว่าการทำลายแล้วสร้างใหม่หลายเท่าตัวนัก ซึ่งผมก็ไปไล่ดูใน internet และพบว่างานเหล่านี้มันดูสวยดีจริงๆ เพราะมันยังคงความขลังของโครงสร้างเดิม และเสริมความคมของสถาปัตยกรรมแบบใหม่ให้เข้ากันได้อย่างลงตัว ผมเชื่อว่าตึกหรือสิ่งปลูกสร้างเหล่านั้นจะถูกปรับปรุงไปเรื่อยๆ โดยจะคงโครงสร้างเก่าไว้แบบนั้นเป็นรุ่นๆไป
กลับมาเรื่องงาน ที่นั่งคิดเรื่องนี้ขึ้นมาได้เพราะถึงแม้ช่วงนี้จะไม่ค่อยได้เขียนโค้ดมาก แต่ก็มีโอกาสเข้าไปแตะสิ่งที่เรียกว่า Legacy Code (โค้ดที่ไม่มี test และเขียนแบบอ่านลำบาก) แรกๆ ก็รู้สึกในใจว่าทำไมไม่รื้อแล้วทำใหม่เลย แต่อีกใจก็คิดว่าถ้าลอง renovate มันใหม่แบบค่อยๆ ทำไปก็น่าจะสนุกไปอีกแบบนะ คิดอยู่หนึ่งคืนก็ได้ข้อสรุปกับตัวเองว่าจะลอง renovate มันให้สุดทางก่อน แรกๆ พบว่าโค้ดอ่านค่อนข้างยากเพราะผ่านมาหลายมือแล้ว เลยคิดในใจว่าอย่าไปโฟกัสทั้งหมด สนใจตรงไหนก็อ่านๆ ทำความเข้าใจแถวๆ นั้นแล้วค่อยๆ เขียน test เข้าไปครอบ ตั้งแต่ Automate Acceptance Test ไปจนถึง Unit Test ล๊อกส่วนที่สนใจไปเรื่อยๆ ค่อยๆ จับกลุ่มโค้ดที่ซ้ำๆ ย้ายออก นั่งปรับ dependency ให้ดีขึ้น นั่งเปลี่ยนให้โค้ดอ่านเป็นลำดับได้ใหม่ จนเราเริ่มเห็นของใหม่และของเก่าทำงานด้วยกันได้เป็นอย่างดีก็รู้สึกว่าสนุกมาก และที่สำคัญเราสามารถนำของสิ่งนี้ไปฝึกให้เราเข้าใจเรื่องพื้นฐานต่างๆ เช่น design pattern ใหม่ๆ ได้อีกด้วย เพราะเราจะเห็นปัญหาที่อยู่ในโค้ดของเราก่อน เราจึงจะเลือกว่าจะใช้ pattern ไหนเข้ามาช่วยแก้ปัญหาได้เป็นช่วงๆ ไป
ดังนั้นบทเรียนที่ได้เพิ่มกับการทำงานแบบนี้คือ “ค่อยๆ เปลี่ยนของเก่าให้ดูทันสมัยมากขึ้นเป็นงานที่สนุกและท้าทายมากกว่าการ สร้างของใหม่ตั้งแต่ศูนย์”

credit ภาพ http://www.yatzer.com/A-former-Cement-Factory-is-now-the-workspace-and-residence-of-Ricardo-Bofill

Comments

comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.