🧪 วิทยาศาสตร์กับซอฟต์แวร์

ผมเคยบอกว่าซอฟต์แวร์คือศิลปะ และวันนี้ผมกำลังจะเล่าว่าซอฟต์แวร์ก็เป็นวิทยาศาสตร์เช่นกัน ไม่มากไปไม่น้อยไป … การสร้างซอฟต์แวร์ที่ยอดเยี่ยมเป็นทั้งศาสตร์และศิลป์

ย้อนเวลากลับไปเล็กน้อยสมัยเรียนวิทยาศาสตร์ พวกเราเรียนรู้ว่าวิทยาศาสตร์คือการทดลอง, เก็บผลลัพธ์และปรับปรุง พวกเราถูกสอนให้ตั้งสมมติฐานเป็นอย่างแรกแล้วจึงหาหลักฐานมาสนับสนุนหรือหักล้างสมมติฐานนั้น — น้ำเดือดที่อุณหภูมิ 100 องศาเซลเซียส หรือที่แอปเปิ้ลหล่นลงพื้นเพราะแรงดึงดูดบางอย่าง นั่นคือสมมติฐาน นั่นคือสิ่งที่นักวิทยาศาสตร์ต้องพิสูจน์

เพราะเหตุนี้วิวัฒนาการจึงเกิดขึ้นจากคนที่ตั้งสมมติฐานที่แตกต่างจากเดิม สมมติฐานที่ท้าทายกฎเกณฑ์เก่าที่มีมาก่อน สมมติฐานที่อยู่สุดขอบขององค์ความรู้ทั้งมวล นั่นคือสิ่งที่นักวิทยาศาสตร์ผู้กล้าหาญจะทำ ทั้งที่พวกเขารู้เต็มอกว่าโอกาสที่จะล้มเหลวนั้นสูงลิบลิ่วแต่พวกเขาอยากไปถึงในพื้นที่ที่ไม่เคยมีใครไปถึงมาก่อน

พวกเราผู้สร้างซอฟต์แวร์จะเรียนรู้อะไรจากเรื่องนี้ได้บ้าง ผมคิดแบบนี้ครับ ประเด็นแรกเราเริ่มต้นด้วยการตั้งสมมติฐานแบบไหน? ด้วยอะไรเดิมๆ ด้วยสิ่งที่เคยทำต่อกันมา ด้วยการมองตัวอย่างจากคู่แข่ง ด้วยการทำตามคำสั่งของลูกค้าเพียงอย่างเดียว หรือเราขวนขวายมองหาสมมติฐานใหม่ที่ผลักดันขอบเขตขององค์ความรู้เดิมที่เรารับรู้และเข้าใจ เรามองหาช่องทางเพื่อออกเดินทางไปยังพื้นที่ที่แตกต่างและไม่มีใครเคยไปถึง เราเตรียมใจพร้อมรับความผิดหวังเพื่อแลกมากับวิวัฒนาการที่งดงาม … ทุกวันนี้เราตั้งสมมติฐานแบบไหน?

ประเด็นที่สอง ถ้าเราเลือกที่จะผจญภัยไปสุดขอบโลกกับสมมติฐานที่แหวกแนว วันนี้เราหยุดตั้งคำถามและมองหาความแน่นอนของผลลัพธ์รึยัง? งานนี้ทำได้แน่ใช่มั้ย? งานนี้จะเสร็จสมบูรณ์เมื่อไร? งานนี้จะสำเร็จ 100% รึเปล่า? งานนี้จะขายได้ขายดีชัวร์ๆนะ? … ถ้าเรากำลังท้าทายวิทยาศาสตร์แบบเดิมๆ การต้องการเห็นซอฟต์แวร์ที่เวิร์คด้วยความพยายามครั้งแรกนั้นก็เหมือนการขอให้นักวิทยาศาสตรตั้งสมมติฐานที่การันตีผลลัพธ์ที่ถูกต้อง — มันเป็นคำขอที่ไม่ฉลาดเท่าไร ว่ามั้ย?

วิทยาศาสตร์คือเบื้องหลังของซอฟต์แวร์ที่ดีเสมอครับ นักวิทยาศาสตร์คือนักพัฒนา และนักพัฒนาที่ดีรู้ว่าการทดลองส่วนใหญ่นั้นล้มเหลว พวกเขาไม่กลัวการล้มเหลวแต่กลัวที่จะไม่ได้เรียนรู้อะไรเพิ่มเติม พวกเขาไม่กลัวที่จะตั้งสมมติฐานใหม่ๆแต่พวกเขากลัวที่จะถูกบังคับให้ต้องทำงานกับองค์ความรู้เดิมที่ไม่มีอะไรให้ค้นหาอีกแล้ว

นี่คือเหตุผลที่ผมคิดว่าซอฟต์แวร์คือวิทยาศาสตร์ … เพราะคนสร้างมันคือนักวิทยาศาสตร์ผู้หลงใหลในการทดลอง ใช่แล้ว เราคือนักวิทยาศาสตร์ผู้กล้าที่จะท้าทายสมมติฐานเดิม เราคือนักวิทยาศาสตร์ที่อย่างเห็นการวิวัฒในงานที่เราทำ

ใช่มั้ย? วันนี้เราเป็นนักวิทยาศาสตร์กันอยู่ใช่มั้ย?

Tags:

Leave a Reply

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