2 คะแนน โดย GN⁺ 2023-08-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Arthur Westbrook ประกาศเกษียณก่อนกำหนดเมื่ออายุ 58 ปี และทำงานอยู่กับ โค้ดเบสมรดกตกทอด ที่ว่ากันว่าใช้ขับเคลื่อนซอฟต์แวร์ทางการแพทย์บางตัวมานาน 35 ปี
  • โค้ดที่เขามีส่วนเขียนระหว่างทำงานมีเพียงไม่กี่ร้อยบรรทัด แต่ก็มีการพูดเชิงเสียดสีว่า ครั้งหนึ่งเขาเคยไปแตะ โค้ดมรดกตกทอด แล้วบริษัทก็ยังไม่ล่มสลาย
  • Westbrook เชื่อว่าตัวเองเข้าใจโค้ดเบสทั้งหมดมากกว่า 4% และอดีตเพื่อนร่วมงานคนหนึ่งเรียกมันว่า “War & Peace ที่เขียนด้วย wingdings
  • ภายในบริษัท เขาเป็นที่รู้จักในฐานะ “หนึ่งในโปรแกรมเมอร์ของทีม” และผู้จัดการประเมินว่าเขามีพรสวรรค์ในการอยู่รอดได้นานโดยไม่ต้องมีทักษะที่ถ่ายโอนไปใช้อย่างอื่นได้
  • เสียงตอบรับต่อการเกษียณของเขาค่อนข้างเย็นชา และ Westbrook วางแผนจะทำการแสดงเปิดหมวก คุ้ยถังขยะ และฝึกปรุงอาหารที่ผสม Soylent กับ Whole Foods Premium Adult Cat Salmon Mix ต่อไป

โค้ดเบสมรดกตกทอดอายุ 35 ปี

  • Arthur Westbrook ประกาศ เกษียณก่อนกำหนด ในสัปดาห์นี้ขณะมีอายุ 58 ปี
  • เขาทำงานอยู่กับโค้ดเบสที่ว่ากันว่าใช้ขับเคลื่อนซอฟต์แวร์ทางการแพทย์บางตัวมานาน 35 ปี
  • ตลอดช่วงเวลาที่ทำงาน เขาเขียนโค้ดเพิ่มไป หลายร้อยบรรทัด
  • ครั้งหนึ่งเขาเคยแตะโค้ดมรดกตกทอด แต่บริษัทก็ยังไม่พังพินาศ
  • Westbrook เชื่อว่าตัวเองเข้าใจโค้ดเบสทั้งหมด มากกว่า 4%
  • อดีตเพื่อนร่วมงานคนหนึ่งเรียกโค้ดเบสนี้ว่า “War & Peace ที่เขียนด้วย wingdings”

ปฏิกิริยาของบริษัทและแผนหลังเกษียณ

  • ในบริษัท Westbrook เป็นที่รู้จักในฐานะ “หนึ่งในโปรแกรมเมอร์ของทีม”
  • ผู้จัดการบอกว่า Westbrook มีพรสวรรค์ในการทำงานหนักโดยไม่ต้องเรียนรู้ทักษะที่นำไปใช้ต่อได้
    • เขาเสริมว่า หากจะหาคนมาแทน ต้องใช้ “นักพัฒนาระดับจูเนียร์สองคนกับ Keurig หนึ่งเครื่อง”
  • เพื่อฉลองการทำงานมาหลายทศวรรษ เพื่อนร่วมงานคนหนึ่งบอกว่าจะเลี้ยงเหล้าให้ “ประมาณเดือนหน้า”
  • ไม่มีสมาชิกทีมคนใดตอบกลับความคิดเห็นดังกล่าว
  • หลังเกษียณ Westbrook วางแผนจะลอง การแสดงเปิดหมวก และ คุ้ยถังขยะ
  • เขายังวางแผนจะขัดเกลาสูตรอาหารที่ผสม Soylent กับ Whole Foods Premium Adult Cat Salmon Mix ต่อไป

1 ความคิดเห็น

 
GN⁺ 2023-08-04
ความคิดเห็นบน Hacker News
  • รู้สึกว่าในทุกบริษัทที่ผมเคยทำงานด้วย ต้องมีคนแบบนี้อยู่เสมอ
    เวลาเจอ โค้ดเลกาซี ที่ไม่รู้เลยว่ามันทำงานยังไง แล้วไปถามคนคนนั้น คุณจะได้ฟังเลกเชอร์ประวัติศาสตร์ 2 ชั่วโมงเกี่ยวกับการเมืองภายใน 10 ปี และโปรเจกต์ replatform ที่ล้มเหลว แต่ถึงอย่างนั้นก็เกลียดเขาไม่ลง

    • “...แล้วพวก เครื่อง AIX นี่เป็นสัตว์ประหลาดของจริงเลยนะ มีอยู่ 20 เครื่อง แต่ละเครื่องกินวงจร 20 แอมป์แยกกัน เคสเหล็กมักจะกราวด์หลุดบ่อย ๆ และถ้าจะอัปเกรดก็ต้องหยิบถุงมือหนังหนา ๆ มาก่อน...”
    • ผมรู้เลยว่าคุณล้อเลียนผมอยู่ ;)
      รู้ไหมว่าทำไมผมถึงเล่าประวัติศาสตร์ยาว 2 ชั่วโมง? หนึ่ง เพราะมนุษย์ยังต้องมีปฏิสัมพันธ์กัน แต่ผมไม่ได้ชอบคนเป็นพิเศษ สอง เพราะผมอยากให้คุณ เรียนรู้และเข้าใจ มากกว่าท่องจำแล้วพูดซ้ำ เพื่อครั้งหน้าจะได้แก้เองโดยไม่มากวนผม ไปได้แล้ว โควตาเข้าสังคมของสัปดาห์นี้หมดแล้ว /ล้อเล่น — หรืออาจจะไม่ได้ล้อเล่นจริง ๆ?
    • ผมเคยเจอคนแบบนี้อยู่หลายคน บางคนมีค่าดั่ง ทองคำ เลยทีเดียว แต่ส่วนใหญ่ยึดติดกับวิธีของตัวเอง เพราะบาดแผลจากการคอยพยุงทุกอย่างไม่ให้พังมานาน และแทบทุกคนหยุดนิ่งจนไม่สามารถนำไอเดียใหม่ ๆ เข้ามาได้ หลายคนแบกรับความผิดปกติของบริษัทมานานเกินไป และยึดมันไว้เหมือนเป็นปัญหาของตัวเอง จนในแง่ความเป็นมนุษย์แทบเหลือแต่เปลือก
    • คนแบบนั้นโดยทั่วไปก็มักเป็น วิศวกรที่ยอดเยี่ยม ด้วย การเขียน 1.0 ของอะไรสักอย่างใหม่ซ้ำไปซ้ำมานั้นง่ายกว่ามาก การปรับปรุงระบบที่ถูกพัฒนามาหลายสิบปีให้ดีขึ้นอีก เป็นโจทย์วิศวกรรมที่ยากโหดจริง ๆ ในบริษัทที่มีอายุเกิน 30 ปี คนเหล่านี้สำคัญที่สุด แต่แทนที่จะได้รับความเคารพ กลับได้บทความดูแคลนแบบบทความที่ลิงก์มา
    • ดูไม่ใช่ทางเลือกที่แย่นะ ถ้าบริษัทมั่นคงพอ ได้เงินเดือนวิศวกรมาตลอด 25 ปี แถม ความมั่นคงในงาน ดีแบบสุด ๆ ก็เป็นเส้นทางที่โอเค
      ดูดีกว่าการอายุ 50 แล้วต้องพยายามทำให้ผู้สัมภาษณ์วัย 28 ประทับใจกับทักษะเฟรมเวิร์กล่าสุดที่เพิ่งออกมา
  • คนคนหนึ่งใช้ชีวิตโดยโน้มน้าวตัวเองว่าเหตุผลที่เขาย้ายงานไปเรื่อยตลอดอาชีพคือ “คนอื่นเขียนโค้ดห่วย”
    Karl Hackerman บ่นในทุกประชุม เขาดูเซ็ง ๆ เพราะไม่ได้รับอนุญาตให้เขียนระบบใหม่ด้วย Rust เขารู้จักเฟรมเวิร์กล่าสุดและ best practices มากมาย และหงุดหงิดอยู่เสมอที่ใช้สิ่งเหล่านั้นในที่ทำงานไม่ได้ เขาคิดว่าคนอื่นยอมเป็นทาสค่าแรง แทนที่จะพยายามเป็นโปรแกรมเมอร์ที่ดีที่สุด เหตุผลที่ทุกคนทนเขาได้ ก็เพราะรู้ว่าอีก 6 เดือนเขาก็คงลาออกแล้ว ตอนนี้ Karl อายุ 47 ปี และไม่เคยอยู่ที่ไหนเกินไม่กี่ปี ช่วงหลังเขาทำงานฟรีแลนซ์เป็นหลัก และพยายามขายหนังสือเกี่ยวกับเทคโนโลยีและเฟรมเวิร์กที่ตอนนี้ไม่มีใครสนใจแล้ว

    • ผมเป็นผู้เขียนเอง! อันนี้ดีมาก ผมก็เคยเป็นคนแบบนี้เต็ม ๆ เหมือนกัน :) การเรียนรู้ว่าจะไม่กลายเป็น คนอวดเก่งจนน่าทนไม่ไหว นั้นเป็นโจทย์ที่ยากกว่าที่คิด
      ผมกำลังเขียนนิยายยาวสไตล์ Confederacy of Dunces เกี่ยวกับวิศวกรสารพัดรู้ที่กระตือรือร้นเกินเหตุด้วย ใส่วิญญาณของผมลงไปมากเกินไป คงยังเขียนไม่จบไปอีกพักใหญ่
    • ไม่คิดเลยว่าตื่นขึ้นมาแล้วจะโดนโจมตีแบบนี้ โดยไม่มีคำเตือน โหดร้ายมาก
      แต่ผมยังไม่ถึงวัย 40 ดังนั้นยังพอมีเวลาให้ฟื้นตัวจากเส้นทางที่หลงไป
    • อันนี้ดี
      ช่วงแรก ๆ ผมก็รู้สึกแบบนี้ แต่ไม่นานก็เรียนรู้ว่าในงานประจำ ให้หาความพึงพอใจจากการ ปล่อยของออกสู่ผู้ใช้ ล้วน ๆ ส่วนความลี้ลับของวิทยาการคอมพิวเตอร์ก็ไปสำรวจในเวลาส่วนตัวเป็นหลัก บางครั้งสองอย่างนี้ก็ทับซ้อนกันบ้าง แต่จากประสบการณ์ของผม แม้งานที่ดีก็ยังน่าเบื่ออยู่ 80%
    • ผมหลุดขำตรง “best practices” นี่แหละ เคยทำงานกับคนแบบนี้มาก่อน เขาใช้คำนี้ทุกครั้งที่ไม่มีเหตุผลรองรับที่ดี ซึ่งจริง ๆ แล้วก็แทบจะตลอดเวลา ยิ่งเรื่องไม่สำคัญ เขายิ่งมีความเห็นแรงที่สุด
    • บันทึกไว้ว่า Karl กลับชาติมาเกิดเป็น MyCurrentIntern แล้ว
  • เคยทำงานอยู่ 10 ปีกับโค้ดเบส C++ ที่ไม่ใช้ไลบรารี third-party ใด ๆ เลย แม้แต่ STL ก็ไม่ได้ใช้ เพราะตอนนั้นต้องการ string และ map ที่เร็วกว่าและ thread-safe กว่า Boost? นั่นคืออะไรเหรอ?
    มีทั้ง messaging middleware ที่สร้างเองบน socket, ระบบจัดการ process แบบกระจายที่ทำเองด้วย Unix system calls และไม่มี HTML หรือ Java แม้แต่บรรทัดเดียว เป็นชีวิตที่สบายและเงินเดือนสูง ได้แก้ปัญหาล้ำ ๆ อย่าง high-frequency trading และ distributed/concurrent computing ในปี 2013 ผมบังคับตัวเองให้ออกจากงานเพื่อหนีชะตากรรมนี้ ย้ายไปบริษัทเล็กที่จ่ายเงินเดือนให้แค่ครึ่งเดียว แล้วเรียนเว็บเทคโนโลยีสแต็กตั้งแต่ศูนย์ อยากคิดว่าตัวเองทำสำเร็จแล้ว

    • ผมไม่คิดว่าคนที่ทำ C++ ระดับล่างใน high-frequency trading จะเจอชะตากรรมคล้าย ๆ กัน ทักษะส่วนใหญ่ที่ได้จากงานแบบนั้นดูเหมือนจะ ถ่ายโอนได้ ค่อนข้างสูง บทความดูจะใกล้กับงานที่ 95% ของงานคือการ implement CRUD ตาม business logic เฉพาะของบริษัทมากกว่า
      เหตุผลที่จะเปลี่ยนงานแบบนั้นที่นึกออกก็มีแค่เพื่ออยู่ให้พ้นช่วงชดเชยของ non-compete แต่ผมไม่ได้อยู่ในวงการนี้ เลยอาจมีอะไรที่ผมพลาดไปก็ได้
    • “ผมพยายามเรียนเว็บเทคโนโลยีสแต็กตั้งแต่ศูนย์ เพื่อหลีกเลี่ยงชะตากรรมนี้ อยากคิดว่าตัวเองทำสำเร็จแล้ว”
      ไม่ค่อยแน่ใจว่านี่เป็นมุกที่ตั้งใจเล่นหรือเปล่า
    • ผมก็มีประสบการณ์ค่อนข้างคล้ายกัน ทำงานเป็นผู้รับเหมาช่วงให้บริษัทโทรคมนาคมรายใหญ่ 7 ปี ต้องใช้ไลบรารี CORBA, pthreads, ACE reactor สัปดาห์แรกผมใส่ sleep call เข้าไปตัวหนึ่งในโค้ดเบส แล้วทำให้บริการ call center ทั้งหมดในสภาพแวดล้อม UAT หยุดทำงาน หลายปีต่อมา ผม debug core dump ที่มี thread เป็นพัน ๆ ตัวได้อย่างคล่อง เข้าใจ semaphore กับ reentrancy และอธิบายความแตกต่างระหว่าง POA กับ BOA Orbix adapter ได้
      ผมค่อย ๆ กลายเป็นบุคคลระดับตำนานที่รู้ทุกอย่าง แต่ไม่ใช่เพราะเก่งทางเทคนิคเป็นพิเศษ หากเป็นเพราะเข้าใจธุรกิจ และรู้ว่ามัน map เข้ากับองค์ประกอบสถาปัตยกรรมต่าง ๆ อย่างไร แล้วก็เริ่มรู้สึกว่าอาจจะต้องอยู่ที่นั่นไปตลอดชีวิต จึงคิดว่ายังมีโลกกว้างที่เรียกว่าเว็บอยู่ และเริ่มเรียน PHP ในปี 2004 หลังจากเดโม Rails ระดับตำนาน “บล็อกใน 5 นาที” ออกมา ผมก็ย้ายงานในปี 2007 และไม่เคยมองย้อนกลับไปอีก
    • C++ เป็นงานที่เหนื่อยจริง ๆ ทุกคนคิดว่าตัวเองทำได้ดีกว่า และไม่เชื่อโค้ดของคนอื่น สุดท้ายก็เกิด monolith ขนาดมหึมาที่เต็มไปด้วยโค้ดแบบ NIMBY และ build configuration ที่เข้าใจยาก code review ก็เจ็บปวดมากด้วยเหตุผลแบบ C++ เดียวกัน ทุกอย่างสามารถส่งผลต่อทุกอย่างได้ และเมื่อเริ่มพึ่งพาผลของพฤติกรรมตามหน่วยความจำ เวลา และลำดับ แนวคิดเรื่อง encapsulation ก็มักพังทลาย การเปลี่ยนแปลงทุกครั้งคือกระสุนที่จะยิงเท้าตัวเองใน production เมื่อเงื่อนไขเหมาะสม
      ถ้าเชื่อไม่ได้ว่าภาษา เครื่องมือ หรือ developer คนอื่นถูกต้อง ก็ยากที่จะทำงานให้ productive
    • ผมก็ทำคล้าย ๆ กัน คิดว่า C++ จะเสื่อมความนิยม ตอนนี้ผมชำนาญ Java กับ JavaScript และสร้างแอป full-stack ดี ๆ ได้ แต่ตำแหน่ง C++ ใน high-frequency trading จ่ายเงินสองเท่า เลยกำลังคิดว่าจะกลับไปดีไหม แม้ระบบจะน่าเบื่อก็ตาม
  • อย่าใช้ชีวิตเพื่อทำงาน แต่จงทำงานเพื่อใช้ชีวิต ผมเดาว่าเมื่อก่อน Arthur คงไปสนุกสุดเหวี่ยง นอนไม่พอแล้วมาทำงาน และแอบงีบระหว่าง retrospective กับ refinement meeting เขาอาจเป็น developer ที่มีประโยชน์น้อยที่สุด แต่ที่ Burning Man เขาอาจเป็นราชาก็ได้ ตอนนี้เขาอาจเกษียณพร้อม 401k ก้อนโต แล้วทำตุ๊กตาไม้ตัวเล็ก ๆ ไปขายที่ตลาดเกษตรกร จริง ๆ แล้วเขาอาจแค่อยากเล่าให้คนอื่นฟังเรื่องปลาตัวใหญ่ที่สุดที่เคยจับได้ หรือความฝันว่าจะเปิดรถขายราเม็งถ้าครอบครัวฝ่ายภรรยาร่วมลงทุนด้วย Arthur ได้ใช้ชีวิตแล้ว — แค่ไม่ใช่ที่ที่ทำงานเท่านั้น

    • ถ้าชีวิตส่วนใหญ่คือการทำงาน มันก็ทำแบบนั้นได้ยาก หลังหักเวลาทำงานประจำ ออกกำลังกาย สุขอนามัยส่วนตัว กินข้าว ออกจากเวลาที่ตื่นอยู่แล้ว ผมรู้สึกว่าหา พื้นที่สำหรับชีวิตจริง ได้ยากมาก โดยพื้นฐานก็เหลือวันละประมาณ 2 ชั่วโมงกับวันหยุดสุดสัปดาห์เท่านั้น และวันหยุดก็มักถูกใช้ไปกับการจัดการเรื่องที่ทำไม่เสร็จในวันธรรมดา
      ผมไม่ชอบความคิดที่ว่าชีวิตของผมจะเพิ่งเริ่มหลังเกษียณ โดยเฉพาะถ้าอายุเกษียณตามกฎหมายในที่ที่ผมอยู่คือ 67 ปี
    • ถึงจะเป็นตัวอย่างที่แต่งขึ้น แต่รายละเอียดเล็ก ๆ ดีมากจริง ๆ แม้จะบังเอิญก็รู้สึกคล้ายเรื่องของผมมาก และทำให้รู้สึกเหมือนได้รับการยอมรับ :)
    • ถ้าเป็นอย่างนั้นจริงก็คงดีมาก และหวังว่าความเป็นจริงของคุณ A จะเป็นรูปแบบหนึ่งแบบนั้น
      แต่โดยทั่วไปมันไม่ได้สวยงามขนาดนั้น Arthur อาจเป็นคนอ้วนเกิน มีปัญหาสุขภาพมากมาย อยู่คนเดียว และยึดติดกับ XYZ อย่างไม่ดีต่อสุขภาพ เช่น อนิเมะหรือเกมก็ได้ แต่ถ้าเขามีลูกและเลี้ยงดูมาดี ในฐานะพ่อแม่ ผมก็เคารพเขามากเพียงแค่นั้นแล้ว เมื่อมองย้อนกลับไป เรื่องอื่น ๆ ก็เป็นแค่รายละเอียด
  • คนมีความสามารถมีอยู่ทุกที่ และโอกาสที่จะกลายเป็นสิ่งที่แหวกแนวและส่งผลกระทบต่อโลกนั้นเล็กจนน่าขัน ถ้าเอาคุณค่าของตัวเองไปผูกกับเป้าหมายนั้น สุขภาพจิต จะสั่นคลอนมาก
    หลังมีลูก ระดับความทะเยอทะยานและความดื้อดึงของผมเปลี่ยนไปอย่างชัดเจน เมื่อก่อนเคยหมกมุ่นกับการเป็นคนที่เก่งที่สุด แต่ตอนนี้ใกล้เคียงกับ “เอาเงินมาให้ก็พอ” และให้ความสำคัญกับการมีเวลาว่างให้ครอบครัวกับเพื่อนให้มากที่สุด ผมคิดว่าอาชีพแบบ Mr. Westbrook ก็ไม่เลวนะ โชคดีที่ตลอดอาชีพของผมไม่ได้เจอเพื่อนร่วมงานแย่ ๆ แบบเขามาตลอด แต่ละคนต้องการไม่เหมือนกัน จึงไม่จำเป็นต้องตัดสิน อย่างที่นักคิดผู้ยิ่งใหญ่ Alicia Keys เคยพูดไว้ว่า “ใช้ชีวิตในแบบของคุณ”

    • ผมได้รู้ว่า แทนที่จะพยายามเป็นที่สุด แค่ ดีกว่าตัวเองเมื่อวาน ก็ไปได้ไกลมากแล้ว
      ผมไม่เคยแข่งขันกับใคร แค่ทำงานของตัวเองไปเรื่อย ๆ แล้วก็พบว่าตัวเองรู้มากกว่าและก้าวหน้าไปไกลกว่าหลายคนที่เคยเป็นแรงบันดาลใจให้ผมแล้ว แต่ถึงอย่างนั้นมันก็ไม่เคยเป็นเป้าหมาย และตอนนี้ก็ยังไม่ใช่ ผมเป็นแค่นักพัฒนาสายมืดคนหนึ่งเท่านั้น แค่ทำงานของตัวเอง พยายามทำให้ดีขึ้นทุกครั้ง และไม่สนใจหอเกียรติยศอะไรทั้งนั้น ไม่ว่าจะเป็นเรื่องเบา ๆ หรือจริงจังก็ตาม
    • ผมยังคงอยู่ในสภาพ แกว่งไปมาเหมือนลูกตุ้ม กับประเด็นนี้ หมายถึงไม่ใช่เป้าหมายแบบ “แหวกแนวระดับโลก” หรือ “ส่งผลต่อโลก” แต่เป็นความอยากทำงานที่ “ยอดเยี่ยม” ภายในขอบเขตความสามารถของตัวเอง
      ตอนมีลูกคนแรก ผมเอนไปทางที่ไม่ต้องการอะไรจากงานเลยอย่างมาก นอกจากดูแลปากท้องครอบครัวและมีเวลาอยู่ด้วยกัน แน่นอนว่าอยู่ในขอบเขตที่ยังสนับสนุนเพื่อนร่วมงานและไม่ทำลายความไว้วางใจ แต่เมื่อลูก ๆ โตขึ้นและเป็นอิสระมากขึ้น ผมก็เข้าสู่ช่วงที่มีพื้นที่ทางใจและพลังงานเพิ่มขึ้น และตอนนี้ผมกลับมารู้สึกตื่นเต้นอีกครั้งกับการนำพลังนั้นไปใช้กับงานที่มีอิทธิพล เพียงแต่สิ่งสำคัญคือ ผมมีปัญญามากขึ้นมากในการหาวิธีสร้างสมดุลที่ดีต่อสุขภาพและมีความสุขสำหรับตัวเองกับครอบครัว ผมไม่ได้คิดอย่างไร้เดียงสาว่ามันจะง่าย และเห็นว่าต้องพยายามต่อไป แต่พอหลุดออกมาจากหมอกมึน ๆ ของการเลี้ยงทารกแล้ว ก็กลับมาเห็นชัดอีกครั้งว่า ทั้งการทุ่มทั้งหมดให้ครอบครัวอย่างเดียว หรือทุ่มทั้งหมดให้งานอย่างเดียว ต่างก็ไม่ใช่ทางของผม
    • ผมมองตรงกันข้าม สังคมและชีวิตสมัยใหม่มีแง่มุมมากมายเหลือเกิน และทุกปีก็มีเส้นทางกับสาขาใหม่ ๆ เกิดขึ้น การหางานที่ เขย่าโลก ซึ่งยังไม่มีใครทำในชุมชนหรือกลุ่มเฉพาะบางแห่งจึงจริง ๆ แล้วค่อนข้างง่าย
      งานที่เขย่าโลกสำหรับทุกคนนั้นถูกยกย่องเกินจริงไปมาก
    • เห็นด้วย ผมไม่รู้ว่าประเด็นของบทความนี้คืออะไร ดูเหมือนไม่มีอะไรนอกจากความหัวสูงแบบเหน็บแนมนิด ๆ หวังว่าผู้เขียนต้นฉบับจะรู้สึกดีขึ้นบ้าง
    • ผมไม่เห็นด้วยกับคำพูดที่ว่าคนมีความสามารถมีอยู่ทุกที่ สำหรับคนอย่าง Jonathan Blow, Salvatore Sanfilippo(redis), Mike Pall(LuaJIT) หนึ่งคน น่าจะมีนักพัฒนาธรรมดา ๆ ที่ทำงานใน feature factory อยู่เป็นพันคน ซอฟต์แวร์ที่น่าทึ่งไม่ได้สร้างขึ้นได้ด้วยโชคเพียงอย่างเดียว หัวหน้าที่ GenericCo ก็จะไม่จงใจเดินมาหาแล้วขอให้คุณสร้างสิ่งที่คุณใฝ่ฝันมาตลอด
      คุณเลือกที่จะสร้างซอฟต์แวร์ที่น่าสนใจ หรือเลือกที่จะใช้ชีวิตเล็ก ๆ ด้วยเหตุผลที่สมเหตุสมผลอย่างยิ่งนับพันข้อ ถ้าคิดว่าตัวเองยอดเยี่ยมขนาดนั้น ก็อย่าโทษบริษัทว่า “ไม่ให้โอกาส” เครื่องมือที่จำเป็นสำหรับการเขียนโค้ดคุณก็มีครบอยู่แล้ว สร้างของเจ๋ง ๆ ขึ้นมาก็พอ
  • ตลกดีอยู่ แต่ถ้า Arthur มีความสุขหรือกำลังมีความสุขอยู่ตอนนี้ ก็ไม่มีปัญหาอะไร ตรงส่วนนั้นไม่ได้กล่าวไว้ในบทความ

    • ใช่เลย เขาอาจใช้เวลาหลายปีในงานที่มั่นคงและสบาย รู้จักโค้ดเบสกับเทคโนโลยีมากพอจนมีเวลาให้ครอบครัว เพื่อน และงานอดิเรกเยอะมาก ผมรู้สึกว่า ปฏิกิริยาของ HN น่ากลัวกว่าเรื่องนี้เสียอีก
    • มีปัญหาสิ
      นี่คือปี 2023 และทุกวันนี้บริษัทต่าง ๆ พร้อมจะเลิกจ้างคุณทันทีที่ตัดสินว่าคุณไม่ทำกำไร ตัวละครสมมตินี้ไปถึงวัยเกษียณได้ ก็ถือว่าโชคดี แต่คนที่ทำตามกลยุทธ์นี้มา 15 ปี แล้วตอนนี้กำลังหางานเพราะบริษัทต้องลดพนักงาน 18% ล่ะ? มีช่องว่างใหญ่ในทักษะที่ใช้งานได้จริง และยังเหลืออีกหลายสิบปีกว่าจะเกษียณ คนนั้นลำบากจริง ๆ
    • นายจ้างมีความสุขด้วยหรือไม่ก็สำคัญเหมือนกัน เขาอยู่มา 35 ปี แปลว่าก็คงมีความสุขนั่นแหละ
    • 35 ปีในบทบาทง่าย ๆ งานมั่นคงดี แถมเกษียณก่อนกำหนด Arthur มีความสุข
    • แต่… เขากินอาหารแมวอยู่นะ คุณรู้จักคนมีความสุขที่กินอาหารแมวเยอะไหม?
  • บริษัทของเราทำ อุปกรณ์การแพทย์ เป็นสายงานที่วงจรชีวิตการพัฒนาซอฟต์แวร์เข้มงวดมาก เพื่อนร่วมงานคนหนึ่งย้ายไปบริษัทอุปกรณ์การแพทย์อีกแห่งที่ใหญ่กว่ามาก และเมื่อเจอกันหลายปีต่อมา เขาบอกว่าพอมองย้อนกลับไป บริษัทของเรานั้นเป็นองค์กรสมรรถนะสูงที่คล่องตัวสุด ๆ บริษัทใหม่ของเขาใช้เวลาหนึ่งปีสำหรับการเปลี่ยนโค้ดสองบรรทัดที่ไม่ได้เปลี่ยนอะไรจริง ๆ แค่เพิ่มอะไรบางอย่างเข้าไป ทั้งที่เขาผลักดันอย่างต่อเนื่องแล้วก็ตาม
    ถ้าพูดอย่างเป็นธรรม การแก้ไขระบบฟอกเลือดด้วยไตเทียมก็ไม่ใช่เรื่องเล่น ๆ

    • ในอดีต ชุมสาย AT&T 5ESS ก็มีบรรยากาศคล้าย ๆ กัน ตอนนี้ไม่รู้แล้ว กฎคือห้ามลบฟีเจอร์ ดังนั้นแทนที่จะลบฟังก์ชัน ก็ลบโค้ดภายในฟังก์ชันออกแทน ผมจำได้ว่าเคยอ่านบทความที่บอกว่ามีคนเก่งมากจาก Bell Labs อยู่ในทีม 5ESS และเพราะกฎสารพัดเพื่อป้องกันความขัดข้องครั้งใหญ่ของระบบโทรศัพท์ เขาจึงเขียนโค้ดได้จำนวนน้อยจนน่าขันต่อปี
    • มันต้องมีการวิเคราะห์จำนวนมากตามมา ผมเคยทำงานทั้งด้านอุปกรณ์การแพทย์และการขนส่ง โดยเฉพาะระบบสัญญาณของยานพาหนะราง การเคลื่อนย้ายก้อนโลหะขนาดมหึมาที่มีคนอยู่ข้างในไม่ใช่เรื่องเล่น ๆ อย่างเด็ดขาด
  • นี่เหมือนบทกวี The Unknown Citizen ของ WH Auden เวอร์ชันโปรแกรมเมอร์ [0]
    ตอนอ่านครั้งแรก ผมคิดว่าเป็นบทกวีเศร้าเกี่ยวกับคนที่เสียชีวิตไปกับสิ่งธรรมดา ๆ ในชีวิตประจำวัน ตอนนี้ผมมองว่าเป็นบทกวีเชิงบวกมากกว่า: แม้ภายนอกเขาจะใช้ชีวิตแบบคนทั่วไป แต่ก็มีความเป็นไปได้สูงว่าเขามีชีวิตภายในที่รุ่มรวยซึ่งไม่ได้แบ่งปันให้โลกเห็น และเราไม่ควรคาดหวังตัวชี้วัดที่วัดได้จากภายนอกว่าใครยิ่งใหญ่แค่ไหน อีกอย่างที่ยอดเยี่ยมคือแพสชันของชายคนนี้คือส่วนผสมอาหารแมว Soylent สำหรับมนุษย์ เขาทำงานมาตลอดหลายปีทั้งหมดนั้น แล้วในที่สุดก็ได้รับอิสระเพื่อทำตามแพสชันของตัวเอง
    [0] https://poets.org/poem/unknown-citizen

    • นึกถึง Sisyphus ด้วยเหมือนกัน
      แนวคิดที่ว่าชีวิตไร้ความหมาย และเราควรมีความสุขอยู่ในความยากลำบากหรือความซ้ำซาก แทนที่จะเป็นเช่นนั้นก็ควรพึงพอใจกับ “การเดินทาง” และทุก ๆ ขณะ แนวคิดนี้พบได้ทั่วไปมากในวรรณกรรมและประวัติศาสตร์ คนยุคใหม่ที่มีเทคโนโลยีอยากคิดว่าตัวเองแตกต่างออกไป somehow กำลังไปถึงระดับใหม่และค้นพบจุดมุ่งหมาย แต่ตอนนี้ผมก็ไม่แน่ใจแล้ว บางทีเราก็ยังแค่ใช้ชีวิตไปวัน ๆ แล้วก็ตายเท่านั้นเอง
      https://en.wikipedia.org/wiki/Sisyphus
      https://en.wikipedia.org/wiki/The_Myth_of_Sisyphus
    • ฟังดูเหมือนเป็นชีวิตที่ดีกว่าค่าเฉลี่ยมากนะ ไม่มีปัญหาใหญ่ และเป็นสมาชิกของสังคมที่ทำหน้าที่ได้ดีในทุกด้าน? ความสัมพันธ์ที่ดี? ลูกห้าคน?
      แม้บรรทัดสุดท้ายของบทกวีจะว่าอย่างนั้น แต่ดูชัดเจนว่าเขามีความสุขจริง ๆ ถ้าไม่ใช่ เขาคงระเบิดอารมณ์ในที่ทำงาน กลายเป็นคนติดเหล้า หรือหย่าร้างไปแล้ว หรือไม่ก็เป็นสโตอิกขั้นสุด
    • เป็นท่อนเก่า ๆ ที่เข้ากับกระแสความคิดของยุคนี้พอดี

      Our researchers into Public Opinion are content
      That he held the proper opinions for the time of year;
      When there was peace, he was for peace: when there was war, he went.

  • ถ้านี่เป็นบทความที่จิกกัดสิ่งที่เรียกว่าโปรแกรมเมอร์ธรรมดา ๆ ก็ไม่สนุกเท่าไร
    ผมมีเพื่อนคนหนึ่ง ขอเรียกว่า AP เขาทำงานเป็นโปรแกรมเมอร์ที่บริษัทพัฒนา Java ในท้องถิ่น เขาทำงานที่เดิมมา 12 ปีหลังเรียนจบ และเข้ากับคำบรรยายในบทความนี้อยู่บ้าง แต่เขาเป็นหนึ่งในคนที่มีความสุขที่สุดเท่าที่ผมรู้จัก เขามีรายได้สูงกว่าค่าเฉลี่ย งานง่ายและไม่ได้โหดมาก รู้จัก codebase อย่างทะลุปรุโปร่ง และเข้ากับเพื่อนร่วมงานได้ดี นอกเวลางานก็ไปปั่นจักรยานหรือดื่มเบียร์กับเพื่อน ๆ และเดินทางรอบโลกกับภรรยา คนเราให้ความสำคัญกับสิ่งต่าง ๆ ไม่เหมือนกัน และไม่ใช่ทุกคนจะหมกมุ่นกับการโดดเด่นในงาน

    • บทความนี้จิกกัดพนักงานที่อยู่รอดไปวัน ๆ ด้วยความพยายามขั้นต่ำมาหลายปีหรือหลายสิบปีต่างหาก ประโยคที่ว่า “โค้ดหลายร้อยบรรทัด” เป็นสัญญาณบอกเรื่องนั้น
      มีวิศวกรเก่ง ๆ จำนวนมากที่ทำงานกับ codebase ที่น่าเบื่อและผุพัง นั่นไม่ใช่เรื่องน่าอาย
    • ผมเป็นผู้เขียนเอง! เห็นด้วยครับ :) บริบทเพิ่มเติมอยู่ที่นี่
      [0] https://news.ycombinator.com/item?id=36985316
  • ใคร ๆ ก็สร้างสิ่งใหม่เอี่ยมแวววาวบน greenfield ได้ ถ้ามันไปไม่รอด ก็ยังหาคนหรือสิ่งที่จะโทษได้เสมอ เพราะสิ่งที่ตั้งใจจะสร้างแต่แรกนั้นเป็นความพยายามที่ยิ่งใหญ่และล้ำสมัยมาก[1] อยู่แล้ว เมื่อเวลาผ่านไป การย้ายไปทำสิ่งใหม่เอี่ยมแวววาวอย่างอื่นก็ไม่เพียงไม่เป็นไร แต่ยังเป็นสิ่งที่ถูกคาดหวังด้วย
    ในทางกลับกัน การ ยึดอยู่กับสิ่งหนึ่งจนถึงที่สุด ผ่านช่วงเวลาดีและร้าย ไม่ใช่สิ่งที่หลายคนทำได้ ส่วนใหญ่แล้วแค่นั้นอาจไม่พอ แต่ดูเหมือนจะเป็นสิ่งจำเป็นสำหรับความสำเร็จที่ยั่งยืน ตัวอย่างเช่น Guido van Rossum[2], Linus Torvalds, Daniel Stenberg
    [1] ไม่จำเป็นต้องเขียนตัวเล็ก ๆ ว่ามีลักษณะ “เสี่ยงสูง” ด้วยซ้ำ เพราะทุกคนก็เข้าใจแบบนั้นอยู่แล้ว
    [2] ผมหาแหล่งอ้างอิงไม่เจอ แต่จำได้ว่ามีบทสัมภาษณ์ที่ Guido ถูกถามถึงจุดทะลุทะลวงของ Python แล้วเขาบอกว่าไม่มีอะไรแบบนั้น มันแค่เติบโตอย่างสม่ำเสมอต่อเนื่องเท่านั้น

    • ตัวอย่างเหล่านั้นแทบไม่เกี่ยวกับโครงการ IT ขององค์กรทั่วไปเลย ขอบเขตก็ต่างกัน นิยามของความสำเร็จ ก็ต่างกัน และนิยามของ “เสร็จสิ้น” ก็ต่างกัน
      ถ้าบริษัทกำลังสร้างภาษาโปรแกรมหรือระบบปฏิบัติการ ก็ควรแน่ใจว่านั่นเป็นงานที่คุณรักจริง ๆ