ความหมายของเทคโนโลยีที่น่าเบื่อ (Boring tech)
- การที่ NetBSD "น่าเบื่อ" ถือเป็นคำชมสูงสุด
- สิ่งที่ผู้ดูแลระบบต้องการคือความคาดเดาได้ ไม่ใช่ความประหลาดใจ
- การที่เทคโนโลยีน่าเบื่อ หมายความว่ามันมีความน่าเชื่อถือสูง
- เป็นผลลัพธ์จากการที่ผู้คนจำนวนมากได้ทดสอบและปรับแต่งแล้ว
- มีโอกาสน้อยที่จะเกิดพฤติกรรมที่ไม่คาดคิดหรือปัญหาจากการมีเอกสารไม่เพียงพอ
- เมื่อเกิดปัญหา ก็มีชุมชนหรือแหล่งข้อมูลให้ขอความช่วยเหลือ
ความซับซ้อนของสภาพแวดล้อมทางเทคนิค
- เทคโนโลยีไม่ได้อยู่โดดเดี่ยว แต่ ทำงานโต้ตอบกับระบบหลากหลาย
- ยิ่งมีองค์ประกอบมากเท่าไร โอกาสเกิดปัญหาที่ไม่คาดคิดก็ยิ่งเพิ่มขึ้น
- เทคโนโลยีใหม่ไม่ได้ดีที่สุดเสมอไป และ เทคโนโลยีที่ผ่านการพิสูจน์แล้วและมีเสถียรภาพอาจเป็นตัวเลือกที่ดีกว่า
- มี กรณีที่แทนที่ Kubernetes cluster ด้วย virtual machine ไม่กี่เครื่องแล้วเพิ่มความเสถียรได้
ข้อโต้แย้งและการตีความเกี่ยวกับ "เทคโนโลยีที่น่าเบื่อ"
- ข้อเสนอของ Robert Roskam
- สมมติฐานที่ว่าเทคโนโลยีที่ "น่าเบื่อ" = เทคโนโลยีที่มีมานาน อาจไม่ถูกต้อง
- ความแพร่หลายไม่ได้รับประกันความเข้าใจเสมอไป
- เทคโนโลยีเก่าไม่ได้หมายความว่าจะดูแลรักษาได้เสมอไป (เช่น ระบบ COBOL)
- ข้อโต้แย้งกลับ
- เก่าไม่ได้แปลว่าน่าเบื่อเสมอไป (เช่น Oracle มีความซับซ้อนและดูแลรักษายาก)
- BSD เป็นเทคโนโลยีที่น่าเบื่อ แต่ก็ไม่ได้แพร่หลายเท่า Linux
- สิ่งสำคัญไม่ใช่อายุ แต่คือ ความสุกงอม (maturity)
บทสรุป: "เทคโนโลยีที่น่าเบื่อ" = เทคโนโลยีที่สุกงอม
- เทคโนโลยีเก่า ≠ เทคโนโลยีที่สุกงอม
- เทคโนโลยีที่สุกงอม = เทคโนโลยีที่สั่งสมทั้งโค้ด เอกสาร ชุมชน และประสบการณ์การปฏิบัติการ
- การที่ NetBSD น่าเบื่อ หมายถึง มันมีความน่าเชื่อถือและเสถียรภาพสูง ซึ่งเป็นคำยกย่องสูงสุด
5 ความคิดเห็น
คำว่าเทคโนโลยีที่น่าเบื่ออาจให้ความรู้สึกในเชิงลบอยู่บ้าง ดังนั้นใช้คำว่าสุกงอมแล้วก็ดูโอเคนะ
Oracle ซับซ้อนและดูแลรักษายากมาก T_T
ความสัมพันธ์ที่น่าเบื่อไม่ใช่ความสัมพันธ์ที่เก่า แต่เป็นความสัมพันธ์ที่เติบโตเต็มที่
ทำให้นึกถึงโพสต์ใน GeekNews เมื่อก่อน
หัวข้อ สิ่งที่มุมมองเปลี่ยนไปหลังอยู่ในวงการมา 10 ปี (https://th.news.hada.io/topic?id=19081)
ที่บอกว่า
Java เป็นภาษาที่ยอดเยี่ยมก็เพราะมันไม่น่าตื่นเต้น
ความคิดเห็นจาก Hacker News
เหตุผลที่คิดว่าเทคโนโลยีที่ "น่าเบื่อ" นั้นดี เป็นเพราะมันทำให้เราสามารถโฟกัสกับเทคโนโลยีจริงของตัวผลิตภัณฑ์ได้ ขณะดูแลแอป SaaS อยู่ ก็รู้สึกว่ากำลังทำงานล้ำสมัยในหลายด้านที่เกี่ยวกับผลิตภัณฑ์ สิ่งที่ทำงานอยู่ "เบื้องหลัง" อย่างฐานข้อมูลหรือแบ็กเอนด์เฟรมเวิร์กนั้น อยากให้มันน่าเบื่อและเสถียรที่สุดเท่าที่จะทำได้ เวลาเราทำโปรเจกต์คนเดียว เวลามีจำกัดมาก อยากเอาเวลาไปพัฒนาฟีเจอร์ใหม่ที่น่าสนใจของผลิตภัณฑ์ มากกว่าจะไปแตะส่วนที่ลูกค้าไม่ได้สนใจ ลูกค้าไม่รู้หรอกและไม่ได้สนใจว่าฉันใช้ Deno หรือ Bun แทน Node หรือใช้ pnpm แทน NPM สิ่งที่พวกเขารู้คือแอปของฉันทำงานดีแค่ไหน และมีฟีเจอร์อะไรบ้าง
เห็นด้วยกับความเห็นนี้ แต่จากประสบการณ์ส่วนตัว อยากเสนออีกมุมหนึ่งที่ตรงข้ามกัน ในหลายสถานการณ์ เวลาใครสักคนอยากให้เลือกแนวทางของตัวเอง หรืออยากให้องค์กรเลือกตามความชอบด้านซอฟต์แวร์ส่วนตัวของตน เขามักเรียกสิ่งนั้นว่าเป็นตัวเลือกที่ "น่าเบื่อ" การเรียกว่าน่าเบื่อทำให้ ความชอบ ของเขาถูกวางภาพว่าเป็นการตัดสินใจที่สุกงอมและชัดเจนซึ่งคนส่วนใหญ่ยอมรับ ส่วนทางเลือกอื่นก็ถูกทำให้ดูเหมือนเป็นแค่วิศวกรซอฟต์แวร์ที่วิ่งไล่ของแวววาว ความจริงเกือบตลอดเวลาซับซ้อนกว่านั้น ทั้งสองทางเลือกต่างก็มีข้อดีข้อเสีย เป็นการแลกเปลี่ยนคุณค่าที่สะท้อนกับแต่ละคนไม่เท่ากัน เราควรระวังคำกล่าวแบบ "น่าเบื่อ เลยดีกว่าอย่างชัดเจน" มันไม่ควรกลายเป็นวิธีเอาความชอบของตัวเองไปแทนที่ความชอบของคนอื่นโดยไม่ถกกันอย่างลึกซึ้ง ไม่อย่างนั้นก็ไม่ต่างจากความพยายามหยิ่งยโสแบบอื่น ๆ ที่อยากชนะข้อโต้แย้งโดยไม่ต้องเสนอเหตุผลที่มีสาระจริง
อยากเติมคำว่า "มั่นคง" ให้กับเทคโนโลยีที่ "น่าเบื่อ" โดยเฉพาะอย่างยิ่ง คำว่า "มั่นคง" ในที่นี้ไม่ได้หมายถึง "ไม่ล่ม" แต่หมายถึง "ไม่เปลี่ยน" ซึ่งโดยทั่วไปเรามักเห็นสิ่งนี้ในของเก่าที่เป็นที่ยอมรับแล้ว แต่ก็ไม่มีอะไรรับประกันสิ่งนั้นได้ มันมักเป็นผลจากการที่ผู้ดูแลเทคโนโลยีนั้นเลือกดำเนินการบางอย่าง ซึ่งบ่อยครั้งอธิบายได้ในแง่ของ backward compatibility นี่เป็นการกระทำที่ชัดเจนซึ่งทำได้เพื่อให้ได้มาซึ่งความมั่นคง แต่ก็อาจถูกมองว่าเป็นการจำกัดขอบเขตอย่างมากด้วย เช่น เราชอบพูดเรื่องสเกลกันมาก แต่เราไม่จำเป็นต้องออกแบบและสร้างเพื่อรองรับสเกลที่เราอาจไม่มีวันได้เห็นเลยก็ได้
ข้อถกเถียงที่มีตลอดกาลไม่ใช่เรื่องของเก่ากับของใหม่ หรือน่าเบื่อกับน่าตื่นเต้น ความสุกงอมก็คือความสุกงอม ไม่เกี่ยวกับอายุ ระบบที่พังเมื่ออัปเดต dependency, นำพฤติกรรมที่ไม่คาดคิดเข้ามาผ่านค่าเริ่มต้นที่กำกวม, หรือบังคับให้คุณต้องไล่สำรวจชั้น abstraction ต่าง ๆ นั้นไม่สุกงอม... (กำลังมองไปที่ระบบนิเวศของ Spring และ Java) มันเก่าแต่ไม่มั่นคง ความมั่นคง ความคาดเดาได้ และความเรียบง่ายที่ออกแบบมาอย่างดีต่างหากที่นิยามความสุกงอม ไม่ใช่อายุเพียงอย่างเดียว Python สุกงอมและน่าเบื่อไหม? มันมีปัญหาเรื่อง toolchain และเรื่องน่าปวดหัวอีกหลายแบบ... ส่วนภาษาใหม่กว่าอย่าง Go หรือ Rust กลับแก้ปัญหา toolchain พวกนี้ได้หมด และทำให้มัน "น่าเบื่อ" อย่างแท้จริงในแบบที่ดีที่สุด
ความน่าเบื่อนั้นดี เว้นแต่ว่าคุณกำลังหางาน ถ้าคุณยึดติดกับเทคโนโลยีที่น่าเบื่อมากเกินไป คุณเสี่ยงจะค่อย ๆ ตัดตัวเองออกจากตลาดงาน นายจ้างคนต่อไปไม่ได้สนใจว่าคุณส่งมอบคุณค่าทางธุรกิจได้ยอดเยี่ยมแค่ไหน ส่วนใหญ่พวกเขาอยากได้ของใหม่แวววาว พออ่านประกาศรับสมัครของนายจ้างปัจจุบันของฉันแล้ว ฉันยังไม่คิดเลยว่าตัวเองจะถูกจ้าง
ใน GitHub แยกได้ยากว่าโปรเจกต์หนึ่งสุกงอมแล้วหรือว่าตายไปแล้ว ไม่ว่าคอมมิตจะมีไว้ทำอะไร อย่างน้อยมันก็เป็นสัญญาณว่ามีคนกำลังดูแลและบำรุงรักษาอยู่ และมีโอกาสที่ปัญหาใหม่ ๆ จะถูกแก้ได้อย่างรวดเร็ว นั่นหมายความว่าสิ่งใหม่ ๆ จะมีข้อได้เปรียบในจุดนี้อยู่เสมอ
ไม่มีใครได้เลื่อนตำแหน่งหรือได้งานเพราะใช้เทคโนโลยีที่น่าเบื่อ ผมคิดว่าสาเหตุที่ผมแทบไม่ได้รับคำตอบจากการสมัครงานจำนวนมาก เป็นเพราะงานส่วนใหญ่ที่ผมทำเป็นงานที่ "น่าเบื่อ" และโค้ดโอเพนซอร์สส่วนใหญ่ที่ผมเขียนก็เป็นเชลล์สคริปต์ ทุกอย่างทำงานได้ยอดเยี่ยม ไม่มีบั๊กและแทบไม่มีต้นทุนการบำรุงรักษาเลย แต่ไม่น่าดึงดูด ความเป็นชนชั้นนำทางปัญญาได้กำหนดบทบาทของผมไว้ ("DevOps Engineer" ก็คือ "ผู้ดูแลระบบในคลาวด์" แบบตรงตัว แต่เราไม่สามารถพูดแบบนั้นได้ เพราะเราควรจะ <i>ละอาย</i> กับการบอกว่าเราดูแลระบบ); ผมมั่นใจว่าถ้าเรซูเม่ของผมมี "Go และ Rust" มากกว่า "Python และ Shell" ผมคงถูกจ้างทันที
เทคโนโลยีที่น่าเบื่อช่วยให้งานเสร็จ และทำให้เราโฟกัสกับปัญหาที่เราพยายามแก้ได้ แทนที่จะไปทำงานที่ไม่จำเป็น
ผมกำลังจะตั้ง Ask HN เกี่ยวกับหัวข้อนี้ แต่คิดว่าโพสต์นี้เหมาะมากที่จะถามคำถามของผม อะไรคือเทคโนโลยีที่น่าเบื่อจนคุณขาดมันไม่ได้? คุณใช้มันมานานแค่ไหนแล้ว? สำหรับผมคือ Vim, C, Python, Fedora, mutt และใช้มาราว 25-30 ปี แล้วของคุณล่ะ?
ถ้าข้อดีของเทคโนโลยีใหม่มีมากกว่าความเสี่ยง ผมก็จะใช้มัน ความท้าทายคือการประเมินหลักฐาน เทคโนโลยีใหม่มักโฆษณาข้อดีของตัวเอง แต่ข้อเสียไม่ค่อยถูกพูดถึงมากนัก และมักจะเพิ่งถูกค้นพบหลังจากลงทุนลงแรงไปแล้ว คำว่า "น่าเบื่อ" หรือ "น่าตื่นเต้น" เป็นกรอบการมองที่ผิด