1 คะแนน โดย GN⁺ 2024-04-22 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ต่างจากความสนุกของการเขียนโปรแกรมเอง ผู้เขียนรู้สึกว่าสถานที่ทำงานด้านซอฟต์แวร์เป็นสภาพแวดล้อมที่เรียกร้องให้ ผลิตโค้ดให้มากขึ้น มากกว่าจะถามถึงเป้าหมายของการออกแบบและเกณฑ์ของความสำเร็จ
  • ประสบการณ์จากการดูประกาศรับสมัครงานอยู่หลายสัปดาห์ในปี 2023 ทำให้ความคาดหวังว่าจะมี “ที่ที่ดีกว่า” พังทลายลง โดยเฉพาะ วัฒนธรรมสตาร์ตอัป ที่แสดงท่าทีแบบ “ถามให้น้อยลง ผลิตให้มากขึ้น” อย่างตรงไปตรงมา
  • แม้แต่ในบริษัทเทคขนาดใหญ่ นักพัฒนาก็ถูกปฏิบัติเป็นเพียง ตัวเลข เช่น ขนาดของ backend stack คะแนนสัมภาษณ์ และคะแนนประเมินผลงาน ทำให้วิจารณญาณส่วนบุคคลต่อวิธีการเขียนโค้ดยิ่งไร้ความหมาย
  • ท่าทีแบบ “สร้างให้มากขึ้น ถามให้น้อยลง” อาจเพิ่มปริมาณโค้ดได้ แต่ก็นำไปสู่ซอฟต์แวร์ที่แย่ลง และเทคโนโลยีกระแสกับความเฉื่อยก็แทรกซึมไปถึงภาษา ไลบรารี เฟรมเวิร์ก และแพตเทิร์นของโค้ด
  • งานที่ผู้เขียนต้องการคือการแก้ ปัญหาทางวิศวกรรม ที่เริ่มต้นจากความต้องการซึ่งมีอยู่แล้วในสังคม และคำว่า “ทำไม” ของระบบควรเป็นตัวกำหนดไปถึงภาษา พาราไดม์ สถาปัตยกรรม และไวยากรณ์

ความไม่สอดคล้องที่รู้สึกได้ในที่ทำงานสายซอฟต์แวร์

  • ผู้เขียนบอกว่าตนไม่เคยเข้ากับงานวิศวกรรมซอฟต์แวร์ที่เคยผ่านมาสักที่
  • เมื่อเข้าใจตรรกะภายในของ codebase ได้ระดับหนึ่งแล้ว ด้านเทคนิคก็เริ่มน่าเบื่อ และหลังจากนั้นก็อยาก ทำให้ต่างออกไป มากกว่าทำให้มากขึ้น
  • ผู้เขียนตั้งคำถามต่อการตัดสินใจด้านการออกแบบและเป้าหมายอยู่เสมอ
    • ทำไมเราถึงทำสิ่งนี้
    • ทำไมต้องทำด้วยวิธีนี้
    • มีวิธีที่ดีกว่านี้ไหม
    • เราใช้ตัวชี้วัดอะไรในการตัดสินความสำเร็จ และทำไมถึงใช้มัน
  • แม้ไม่ได้พูดคำถามเหล่านี้ออกมาทุกครั้ง แต่ก็เคยได้ยินว่าตัวเอง “คิดมากเกินไป” และ “ใส่ใจมากเกินไป” ทั้งที่เวลานั้นสามารถใช้ไปกับการปั๊มโค้ดให้ได้มากขึ้น
  • ปัญหาไม่ใช่แค่พรสวรรค์กับงานไม่เข้ากัน แต่เป็นเพราะยากจะเห็นด้วยกับวิธีที่องค์กรดำเนินไป และผู้เขียนอยากเปลี่ยนมันมากกว่าจะคงมันไว้

ประกาศรับสมัครงานของสตาร์ตอัปและ “สร้างให้มากขึ้น ถามให้น้อยลง”

  • ประสบการณ์จากการไล่ดูประกาศงานอยู่หลายสัปดาห์ในปี 2023 ทำลายความหวังว่า “น่าจะมีที่ที่ดีกว่า”
  • ผู้เขียนประเมินว่า 90% ของคำอธิบายตำแหน่งงานเป็นโค้ดที่คนซึ่งได้รับเลือกจะต้องเขียน โดยดูห่างไกลจากปัญหาสำคัญทั้งของมนุษยชาติและของตัวบุคคล
  • วัฒนธรรมสตาร์ตอัปถูกยกเป็นตัวอย่างที่เปิดเผยที่สุดของท่าที “ผลิตโค้ดให้มากขึ้นและถามให้น้อยลง” ในอุตสาหกรรม
  • สตาร์ตอัปจำนวนมากถูกวิจารณ์ว่าเป็นการโยกย้ายเงินของนักลงทุน พร้อมพยายามโน้มน้าวผู้ใช้ว่าพวกเขาต้องการผลิตภัณฑ์ที่มีประโยชน์อย่างจำกัด เพื่อให้ได้ผู้ใช้แบบจ่ายเงิน
  • สตาร์ตอัป ส่วนใหญ่มักล้มเหลว และผลลัพธ์ที่เหลืออยู่คือสปาเกตตีโค้ดที่ดูแลรักษายาก ซึ่งถูกกดดันให้เขียนเสร็จภายในไม่กี่สัปดาห์ ไม่ใช่ไม่กี่เดือน
  • โค้ดแบบนั้นมักไม่ได้ถูกกลับไปดูอีก นอกจากใช้เป็นตัวอย่างของแนวปฏิบัติการเขียนโค้ดที่แย่ เวลาาของวิศวกรก็สูญเปล่า และเงินทุน venture capital ก็ไหลกลับไปหาคนที่มีทุนอยู่มากแล้ว เพื่อนำไปลงในสตาร์ตอัปอื่นต่อ
  • ผู้เขียนวิจารณ์ว่าประกาศรับสมัครงานพยายามห่อหุ้มงานลักษณะนี้ให้ดูเหมือนเป็นงานน่าตื่นเต้น ที่ช่วยเติมเต็มชีวิตผู้คนและกระตุ้นการเติบโตทางวิศวกรรม

อำนาจตัดสินใจที่หายไปแม้ในบริษัทเทคขนาดใหญ่

  • บริษัทเทคที่ตั้งมั่นแล้วอาจมีโครงสร้างองค์กรและการเงินต่างจากสตาร์ตอัป แต่ในเชิงวัฒนธรรมกลับไม่ได้ต่างกันมาก
  • โค้ดที่เขียนใน FAANG อาจไปถึงผู้ใช้จริงได้ แต่ความคิดส่วนบุคคลต่อแง่มุมใด ๆ ของการเขียนโค้ดกลับยิ่งไม่เกี่ยวข้อง
  • ผู้เขียนวิจารณ์ว่านักพัฒนากลายเป็น ฟันเฟืองของเครื่องจักร ผ่านวิธีต่อไปนี้
    • ผลิตภัณฑ์อาจกำลังทำให้ ด้านที่เลวร้ายที่สุด ของทุนนิยมถูกทำให้เป็นอัตโนมัติในรูปแบบที่แนบเนียนยิ่งขึ้น
    • ในทางปฏิบัติ นักพัฒนากลายเป็นตัวเลขอย่างขนาด backend stack คะแนนสัมภาษณ์ทางเทคนิค และคะแนนประเมินผลงาน
  • ปัญหาไม่ได้อยู่แค่ที่ความจริงแบบนี้เอง แต่ยังรวมถึงการที่วิศวกรถูกคาดหวังให้โหยหางานซ้ำซากที่ว่างเปล่าและทำให้ต่ำต้อยนี้มากกว่าแรงงานกลุ่มอื่น และถูกกดไม่ให้ตั้งคำถามต่อมันในทุกด้านอย่างหนักกว่าเดิม

วิศวกรรมที่ตัดการคิดเชิงวิพากษ์ออกไป

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

โค้ดมากขึ้น แต่ซอฟต์แวร์แย่ลง

  • ท่าทีแบบ do-more-ask-less ของอุตสาหกรรมเทคอาจทำให้สร้างโค้ดได้มากขึ้น แต่ในขณะเดียวกันก็นำไปสู่ ซอฟต์แวร์ที่แย่ลง
  • แม้ทุนและเงื่อนไขภายนอกจะเปิดช่องให้สร้างซอฟต์แวร์ที่ยั่งยืน เป็นบวก หรืออย่างน้อยมีประโยชน์ใช้สอยจริงได้ แต่บ่อยครั้งก็ไม่ทำเช่นนั้นเพราะความเฉื่อย
  • การไหลตามกระแสและผลิตซ้ำสภาพเดิมเป็นทางเลือกที่ง่ายกว่าและมักเป็นไปได้มากกว่า
  • ความเฉื่อยแบบเดียวกันนี้ยังแทรกซึมไปทั่วเทคสแตกของผลิตภัณฑ์ที่ไร้คุณค่าทางสังคม
    • ภาษา
    • ไลบรารี
    • เฟรมเวิร์ก
    • แพตเทิร์นของโค้ด
  • แนวโน้มที่ให้ความสำคัญกับความใหม่และลูกเล่นมากกว่านวัตกรรมจริงสร้างปัญหาให้ทั้งอุตสาหกรรม และหากไม่ได้แก้ปัญหาที่ไม่ปกติ ก็ไม่จำเป็นต้องมีวิศวกรรมที่ไม่ปกติเช่นกัน

เกณฑ์ของวิศวกรรมแบบที่ต้องการ

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

คำขอให้พบคนที่มีคุณค่าแบบเดียวกัน

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

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

 
GN⁺ 2024-04-22
ความเห็นจาก Hacker News
  • สิ่งที่ OP เกลียดนั้น ถ้าจะให้พูดให้ตรงกว่าไม่ใช่ “อุตสาหกรรมการเขียนโปรแกรม” แต่คือ โลกขององค์กร มากกว่า ฉันเคยทำงานกับนักพัฒนาที่คาดหวังไม่ตรงกับสิ่งที่ “โลกความเป็นจริง” เรียกร้องจากนักพัฒนา และฉันเองก็เคยเป็นแบบนั้น
    องค์กรไม่ได้สนใจความประณีต ความเป็นนามธรรม โค้ดที่เฉียบคมหรือสวยงาม แต่ต้องการนักพัฒนาที่สามารถปั๊มฟีเจอร์ตามความต้องการทางธุรกิจได้
    คนแต่ละคนในฟันเฟืองอย่างผู้จัดการ ผู้บริหาร หรือเพื่อนร่วมงาน อาจพูดได้ว่าจะเปิดทางให้คุณได้ทำ “ศิลปะ” ของการเขียนโปรแกรม แต่ถ้าคุณไม่สามารถสร้างคุณค่าทางเศรษฐกิจให้บริษัทได้ สุดท้ายคุณก็จะถูกมองว่าเป็นภาระ
    ทางที่ดีกว่าคือไปหาความสุขและความเป็นศิลปะของการเขียนโปรแกรมนอกโลกองค์กร และอย่าคาดหวังว่า “วงการ” จะสนใจวิธีการหรือเหตุผลของการเขียนโปรแกรม มันสนแค่ว่าจะเปลี่ยนตัวอักษรที่พิมพ์ลงจอให้กลายเป็นเงินสดได้หรือไม่ ถ้ายอมรับข้อนี้ได้ ชีวิตจะอึดอัดน้อยลงมาก และอาจยังหาความสนุกจากงานได้ด้วย เพียงแต่มันอาจไม่ใช่ “ศิลปะ” ก็ได้

    • ฉันคิดว่าคำว่า “วงการ” นั้นมีความหมายไปทาง โลกขององค์กร อย่างชัดเจน
      แต่พอได้ยินว่า “องค์กรไม่สนใจความประณีต ความเป็นนามธรรม ความเฉียบคม หรือโค้ดที่สวยงาม” ก็ทำให้ฉันรู้สึกว่า งั้นฉันเองก็คือโลกองค์กรหรือเปล่า
      สิ่งที่ฉันอยากบอกเพื่อนร่วมงานคือ ก่อนจะพยายามทำให้ประณีต เป็นนามธรรม เฉียบคม หรือสวยงาม จงทำให้มัน ทำงานตามสเปก ก่อน ไม่อย่างนั้นทั้งหมดก็ไร้ค่า
      ต้องชำนาญพอสมควรในการทำให้มันทำงานถูกต้องก่อน แล้วค่อยทำให้มันถูกวิธี และบางทีค่อยทำให้มันเร็วขึ้นได้
    • ถ้ามองให้เรียบง่ายกว่านั้น สิ่งที่น่าประหลาดใจก็คือ งานสนุกน้อยกว่างานอดิเรก
      ต่อให้เอาสิ่งที่ชอบไปทำเป็นธุรกิจของตัวเอง เช่น ทำเฟอร์นิเจอร์ ก็ยังต้องเจอลูกค้าที่อยากได้สิ่งที่ “ผิด” หรือไม่ยอมจ่ายค่าวัสดุหายากที่ดีกว่า
      การได้ทำสิ่งที่ตัวเองชอบอย่างบริสุทธิ์ในฐานะงานอดิเรกที่ไม่มีองค์ประกอบของงานปะปนอยู่ ย่อมดีกว่าเสมอ
    • คำว่า “ไปหาความปลอบใจจากการเขียนโปรแกรมนอกโลกองค์กร” คือ ความจริงอันขมขื่น ที่ฉันได้เรียนรู้จากการทำงานในวงการตลอด 10 ปีที่ผ่านมา
      เหตุผลที่เราได้รับเงินก็เพื่อส่งมอบงาน เรื่องว่ามันมีประสิทธิภาพไหม แก้ปัญหาได้ไหม ทำเงินได้ไหม หรือแค่ติ๊กเช็กบ็อกซ์ครบหรือไม่ ไม่ใช่เรื่องที่ฉันต้องกังวลหรือควบคุม สิ่งที่ต้องทำคือวางแผนงาน ทำงานนั้น ปฏิบัติต่อผู้คนอย่างสุภาพ และเลิกงานตอน 5 โมง
      ไม่ใช่ว่าควรเขียนโค้ดแย่ ๆ หรือทำแบบขอไปทีโดยไม่สนผลกระทบปลายน้ำของการตัดสินใจ เพราะมีคนถูกไล่ออกด้วยเหตุผลแบบนั้นเหมือนกัน
      แต่สิ่งที่สำคัญกว่าคืออย่าทุ่มเกินไป อย่าพยายามคาดเดาว่าผลิตภัณฑ์จะพัฒนาไปทางไหนจนต้องรองรับทุกสถานการณ์ อย่าผลักดันดีไซน์ที่เห็นชัดว่าดีกว่า อย่าพยายามส่งมอบให้เร็วขึ้น และไม่ควรรีบแก้บั๊กอื่นที่บังเอิญเจอระหว่างทำงานที่ได้รับมอบหมาย การไล่ล่าการเลื่อนตำแหน่งเป็นหนึ่งในความเครียดที่แย่ที่สุดที่ฉันสร้างให้ตัวเอง
      คุณต้องดูให้ออกว่าโปรเจกต์ที่ตัวเองอยู่เป็นงานความเข้มข้นสูง ช่วงเติบโตสูง ระยะสุกงอม หรือเป็นทีมที่ใกล้จะถูกปลด แล้วค่อยปรับพฤติกรรมให้เหมาะ
      และคุณต้องทำให้ตัวเองมีผลงานและเป็นที่สังเกต ทำเดโมไตรมาสละครั้ง รีวิวโค้ดของคนอื่น เข้าประชุมออกแบบแล้วถามคำถาม ตอบอีเมลหรือข้อความที่เข้ามาก่อน 5 โมงเย็นให้ไว และส่งมอบสิ่งที่รับปากไว้ ทำตัวให้ดูเป็นทรัพยากรที่มีประโยชน์ แต่ถ้ามีสัญญาณกดดันเรื่องการส่งมอบแม้แต่น้อย ก็ต้องผลักกลับด้วยการกระทำ
      สุดท้ายแล้ว ควรเตรียมตัวให้พร้อมเสมอที่จะไป สัมภาษณ์งานครั้งถัดไปภายใน 2 สัปดาห์
      ที่ทำงานก็เป็นแค่ที่ทำงาน ไม่ใช่ครอบครัว และไม่ใช่บริษัทจัดหางานชั่วคราว
    • ฉันรู้สึกว่าวิธีคิดแบบนี้แหละคือเส้นทางที่จะกลายเป็น Boeing พอดี
      เหมือนบอกว่าเพราะการที่ปีกยังติดอยู่ระหว่างบินไม่ได้ช่วยเพิ่มตัวชี้วัดผลงานหลัก งั้นก็ไล่คนที่เสียเวลากับความกังวลไม่เกี่ยวข้องแบบนั้นออกให้หมด
    • ถ้าเห็นว่าเกี่ยวข้องมากพอจนพอจะโปรโมตตัวเองได้ ฉันทำ Handmade conference เป็นงานหลักอยู่ก็เพราะเหตุผลนี้ และงานนี้ เข้าฟรีโดยไม่มีสปอนเซอร์ https://handmadecities.com/about
      เป้าหมายแฝงคืออยากให้มันแพร่หลายมากพอ จนโปรแกรมเมอร์พร้อมใจกันเห็นว่าควรมีอำนาจต่อรองใน “โลกองค์กร” เช่น เรียกร้องให้ลดความเร็วในการ “ปั๊ม” ฟีเจอร์ใหม่ และลงทุนกับคุณภาพซอฟต์แวร์ให้มากขึ้น
  • ทำงานเป็นนักพัฒนามากว่า 30 ปีแล้ว แต่ก็น่าเสียดายที่แทบไม่มีอะไรให้โต้แย้งจากโพสต์ของ OP ได้มากนัก อยากจะโต้แย้งได้เหมือนกัน
    คนหนุ่มสาวถูกสอนว่างานด้านเทคโนโลยีและการสร้างซอฟต์แวร์เป็นกิจกรรมสร้างสรรค์ที่ได้ปลดปล่อยความหลงใหลโดยกำเนิด คนที่มีวิธีคิดบางแบบซึ่งดึงดูดกับสัญลักษณ์ ความเป็นนามธรรม และงานที่ทำซ้ำ ๆ จะมารวมตัวกันในงานนี้ พอเวลาผ่านไป ผู้ถือหุ้นก็อ้วนพีขึ้น
    ความจริงคือการพัฒนาซอฟต์แวร์แทบจะเป็นกิจกรรมทางเศรษฐกิจล้วน ๆ และยังมีลักษณะเชิงเอารัดเอาเปรียบด้วย สภาพแวดล้อมการทำงานดีกว่าการขุดทองหรือบอกไซต์แน่นอน แต่โดยมากเราก็กำลังขุดโค้ดจากสายแร่โค้ดเพื่อทำให้คนอื่นรวยขึ้น คนที่นั่งอยู่ในห้องทำงานมุมอาคาร รวมถึงคนที่อยู่เหนือขึ้นไปอีกซึ่งมีเรือยอชต์
    พวกเขาไม่สนใจว่าเราทำอะไร ไม่สนใจท่าทีเสแสร้งที่เรามองว่าสิ่งนี้เป็นศิลปะหรือฝีมือเชิงช่าง และไม่สนใจสิ่งที่เราคิดว่าสำคัญ ที่จริงแล้วส่วนใหญ่พวกเขาคิดว่าเราเป็นพวกขี้แพ้ที่เสียเวลาไปวัน ๆ https://ribbonfarm.wpenginepowered.com/wp-content/uploads/2009/10/hughMcLeodCompanyHierarchy.jpg
    อย่างที่คนอื่นพูดกันในที่นี้ ข้อผิดพลาดพื้นฐานคือการพยายามหาความหมายจากงานในองค์กร แต่คนเราก็ต้องการความหมาย และเมื่อเราต้องใช้เวลาในชีวิตที่มีเพียงครั้งเดียวไปกับงานมากเกินไป ก็แทบไม่มีทางเลือกนัก ผมเองก็ไม่รู้คำตอบ

    • การที่ว่า “พวกเขาคิดว่าเราเป็นพวกขี้แพ้ที่เสียเวลา” เป็นสิ่งที่เกิดขึ้นจริงในหลายที่พอสมควร
      อย่างน้อยก็มีคนอยู่สองประเภทที่มอง “ชนชั้นล่าง” ของซอฟต์แวร์ว่าเป็นพวกขี้แพ้
      พวกแรกมองว่างานนี้ต้องใช้ทักษะ คนทำงานมีความเชี่ยวชาญที่มีคุณค่า และควรค่าแก่การรับฟัง ถึงอย่างนั้นก็ยังเป็นแค่สินค้าแรงงานที่รับเงินเดือน ไม่ใช่ผู้เล่นตัวจริงที่ได้เป็น “คนที่ฉลาดที่สุดในห้อง” หรือ “ผู้นำ” แบบพวกเขาและได้รับผลตอบแทนก้อนโต จึงยังถูกมองว่าเป็นพวกขี้แพ้
      อีกพวกมองว่างานซอฟต์แวร์เป็นงานจิปาถะทักษะต่ำ คนทำงานเป็นเพียงสิ่งจำเป็นชั่วคราวที่น่ารำคาญ และยังหยิ่งผยองไม่รู้ที่ต่ำที่สูงในเรื่องค่าตอบแทนกับความภักดี พวกนี้เห็นว่าความเห็นของพนักงานไม่มีค่า แน่นอนว่าในโลกธุรกิจ คนงานซอฟต์แวร์ก็ยังถูกมองว่าเป็นพวกขี้แพ้ เพราะไม่ได้เล่นเกมแบบผู้เล่นตัวจริงและไม่สามารถตักตวงผลประโยชน์เข้าตัวเองได้
      แบบหลังนี่แย่กว่ามาก
    • การ “ขุดโค้ดจากสายแร่โค้ดเพื่อทำให้คนอื่นรวยขึ้น” นั่นแหละคือสิ่งที่มักเรียกกันว่างาน เราทำสิ่งนั้นเพื่อให้มีของดี ๆ และมีสังคมอยู่ได้
      ถ้าสิ่งที่ผมสร้างทำให้คนอื่นรวยขึ้น ผมก็โอเค เพราะนั่นหมายความว่าสิ่งที่ผมสร้างมีคุณค่า ผมอยากให้ทุกสิ่งที่ผมสร้างมีคุณค่า
      สักวันหนึ่งถ้าฝึกฝน เรียนรู้ สะสมประสบการณ์และเงินเก็บมากพอ ผมก็หวังว่าจะสามารถจ้างคนอื่นอย่างมีความรับผิดชอบได้
      ถ้ามีไอเดียดีและทำได้ถูกทาง ผมเองก็อาจมีเรือยอชต์ลำนั้นได้เหมือนกัน เราเรียกสิ่งนี้ว่าแรงจูงใจทางเศรษฐกิจ หรือก็คือแรงจูงใจ
  • ผมมองว่า “ทิศทางที่อุตสาหกรรมกำลังมุ่งไป” คือกระบวนการที่ถูกพวกนักต้มตุ๋นแทรกซึมมานานแล้ว มูลค่าที่สร้างได้จากการเขียนซอฟต์แวร์นั้นมหาศาล และเงินเดือนสูงในวงการเทคโนโลยีก็สะท้อนสิ่งนั้น ความมั่งคั่งนี้ดึงดูดนักต้มตุ๋นทุกประเภทเข้ามา
    เรื่องนี้เห็นได้ชัดที่สุดในเกมแมวจับหนูของการคัดเลือกวิศวกรที่มีคุณสมบัติเหมาะสม อัตราส่วนระหว่างต้นทางกับปลายทางของ funnel การจ้างงานสูงกว่าที่เคยเป็นมา
    ในแบบที่เห็นไม่ชัดนัก ก็คือการเกิดขึ้นของ “บทบาทนักต้มตุ๋น” ทั้งชุด เช่น product manager, scrum master พอเข้ามาได้แล้ว ยิ่งมีจำนวนมากก็ยิ่งปลอดภัย ก็เลยพากันดึงเข้ามาเพิ่ม
    คนฉลาดที่น่าจะสร้างนวัตกรรมได้ ตอนนี้กลับต้องจูงมือพาคนไร้ความสามารถผ่านกระบวนการของความคิดสร้างสรรค์ นวัตกรรม การวิจัย การค้นพบ และวิศวกรรม เพราะคนไร้ความสามารถเหล่านั้นมักเป็นผู้มีอำนาจตัดสินใจสุดท้ายว่าคนฉลาดควรใช้เวลาไปกับอะไร
    ถ้าคุณเคยเจอประชุมที่วิศวกรรู้ตั้งแต่นาทีที่ 10 แรกแล้วว่าจะแก้ปัญหาลูกค้าอย่างไร แต่ product manager ต้องผลัดกันถูกจูงมือพาไปจนถึงข้อสรุปเดียวกัน นั่นแหละคือภาพของสิ่งนี้

    • การแทรกซึมของนักต้มตุ๋นยังมีผลที่แนบเนียนกว่านั้นอีก มันทำให้เกิดซอฟต์แวร์ที่ภายนอกดูยอดเยี่ยม แต่จริง ๆ แล้วแย่มากเมื่อถึงเวลาต้องใช้งาน เพราะความสามารถของคนสร้างคือการทำให้มันดูดี ไม่ใช่การสร้างซอฟต์แวร์ที่ดี
      ปัญหาด้านประสิทธิภาพ ช่องโหว่ความปลอดภัย การขาด observability การขยายระบบได้แย่ รวมถึงปัญหาการตั้งค่าหรือ dependency ที่ไร้สาระจึงตามมา
      โดยเฉพาะบริษัท FAANG เต็มไปด้วยขยะพวกนี้ โค้ดที่เขียนขึ้นไว้สำหรับ “โพสต์อวด” เพื่อเลื่อนตำแหน่ง แล้วก็แทบถูกทิ้งไว้เฉย ๆ เพราะคนเขียนย้ายหนีก่อนที่ทางลัดราคาถูกจะถูกเปิดโปง
      วาทศิลป์ลื่นไหลกลายเป็นทักษะที่มีค่าที่สุดสำหรับวิศวกรซอฟต์แวร์ มากกว่าการออกแบบที่แข็งแรง และผลลัพธ์ก็ปรากฏให้เห็นไปทั่ว
  • หลังจากพัฒนาซอฟต์แวร์องค์กรมากว่า 10 ปี ผมก็เลิกสนใจแล้วว่าผลลัพธ์จะเป็นอย่างไร หรือคณะละครสัตว์นี้จะไปจบตรงไหน
    ตอนนี้สิ่งที่ผมสนใจก็มีแค่เงินเดือนที่ตัวเลขสูงแบบเหลือเชื่อเท่านั้น

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

  • แม้แต่ตอนทำงานให้เหล่าผู้กุมอำนาจขององค์กร การเขียนโปรแกรมก็ยังเติมพลังให้ได้ งานโน้มน้าวให้เครื่องทำตามที่เราต้องการเป็นสิ่งที่ไม่เคยเบื่อ ทำได้ทั้งวันก็อาจไม่เหนื่อย
    ในช่วงที่หาได้ยากที่ต้องเขียนโปรแกรมหนัก ๆ ก็มักจะมารู้ตัวอีกทีว่าทำต่อเนื่องไป 15 ชั่วโมงโดยไม่ทันสังเกต เวลาผ่านไปแบบนี้มาเกือบ 20 ปีแล้ว
    น่าเสียดายที่การเขียนโปรแกรมเป็นเพียงส่วนเล็ก ๆ ของงานเท่านั้น และยิ่งชัดเจนขึ้นเมื่อประสบการณ์มากขึ้น บางครั้งเวลาที่ได้เขียนโค้ดจริง ๆ มีแค่อาทิตย์ละหนึ่งหรือสองชั่วโมง
    ที่เหลือหมดไปกับการประชุมไร้สาระ การคอยจูงมือพาคนที่ไม่อ่านเอกสาร การโน้มน้าวให้คนอื่นไปโน้มน้าวเครื่องต่ออีกทีให้ทำสิ่งที่ต้องการ “การวางแผน” และเสียงรบกวนทำนองเดียวกัน ส่วนเดียวที่รู้สึกคุ้มค่าคือการเป็นเมนเทอร์ให้โปรแกรมเมอร์รุ่นใหม่
    เหตุผลที่ยังทำต่อก็เพราะมันเป็นเส้นทางที่ปลอดภัยไปจนถึงวัยเกษียณ และตอนนี้ก็มาเกือบถึงแล้ว แผนหลังเกษียณคือเขียนโปรแกรมสิ่งที่ฉันอยากสร้างเพื่อความสนุกล้วน ๆ

  • คิดว่าส่วนหนึ่งของปัญหาคือ นักพัฒนาหลายคนอยากรักษาระดับเงินเดือนที่ตอนนี้ได้จาก $FAANG หรือระดับหุ้นที่อาจได้จาก $STARTUP เอาไว้ พร้อมกับอยากทำงานกับ โปรเจกต์ที่มีความหมาย และคนที่ดี
    ในความเป็นจริง พนักงานจำนวนมากมองความหมาย ความเป็นอิสระ อำนาจในการตัดสินใจ และสมดุลงานกับชีวิตเป็นเหมือนสกุลเงิน และยอมลดเงินเดือนเพื่อให้ได้งานที่มีความหมาย
    มีงานที่ดีกว่านี้อยู่จริง ฉันเองก็หาเจอ แต่ถ้าตอนนี้คุณทำงานอยู่ในบริษัท ad tech หรือสตาร์ทอัป AI ก็แทบจะแน่นอนว่าต้องเตรียมใจเห็นตัวเลขเงินเดือนที่ต่ำกว่าสิ่งที่คุ้นเคยมาก

    • ถ้าเพื่อสุขภาพจิตแล้ว สำหรับฉัน 9 ครั้งจาก 10 ก็ยินดีรับ การลดเงินเดือน ก้อนใหญ่พอสมควร
      ฉันโตมาในครอบครัวรายได้น้อย และหลังเป็นผู้ใหญ่ก็เคยอยู่ด้วยเงินน้อยมากหลายครั้ง เลยรู้สึกเป็นเรื่องธรรมชาติ ในบางแง่แทบจะชอบมากกว่าด้วยซ้ำ
      สุขภาพจิตของฉันถูกคุกคามจากความเครียดเกินพอดีหรือความไร้ความหมายได้ง่ายกว่างบประมาณที่ตึงมือ
      กรณีเดียวที่การฝืนทำงานที่ไม่ได้รู้สึกบวกนัก หรือแย่กว่านั้นคือมีแต่ความรู้สึกลบ จะพอฟังขึ้นได้ ก็คือต้องมีแผนที่ชัดเจนมากสำหรับเงินที่หาได้เพิ่ม และมีโอกาสสูงมากที่จะทำตามแผนนั้นได้จริง
      วิธีใช้ชีวิตแบบนี้อาจไม่เหมาะกับทุกคน แต่ถ้าคุณเป็นคนที่วัตถุนิยมน้อยกว่าค่าเฉลี่ย หรือไม่กลัวการใช้ชีวิตแบบประหยัดขึ้น ก็อยากแนะนำอย่างมากให้ลองพิจารณา โดยเฉพาะถ้าช่วงนี้คุณถามตัวเองเกินสัปดาห์ละครั้งว่า “งานดี ๆ นี้” จะทนต่อไปได้อีกนานแค่ไหนโดยไม่พังเสียก่อน
    • ฉันทำงานเป็นวิศวกรซอฟต์แวร์ในบริษัทก่อสร้างขนาดใหญ่ และงานของฉัน มีความหมายอย่างลึกซึ้ง
      เครื่องมือที่เราสร้างช่วยให้คนที่ลงมือสร้างของจริงทำงานได้ปลอดภัยและมีประสิทธิภาพมากขึ้น การได้เห็นโปรเจกต์ที่จับต้องได้จริง ๆ ถูกสร้างขึ้นเป็นอะไรที่เปิดตาสุด ๆ และยอดเยี่ยมมาก
      จริงอย่างที่ว่า ค่าตอบแทนแบบ FAANG สูงกว่ามาก แต่ที่ที่ฉันทำอยู่ตอนนี้ดีมากจริง ๆ และเป็นครั้งแรกในรอบนานมากที่ฉันไม่รู้สึกอยากหาที่ใหม่หลังผ่านไปไม่กี่ปี
    • เห็นด้วย ยังมีบริษัทเล็ก ๆ อีกมาก มีทั้งสตาร์ทอัประยะเริ่มต้น บริษัทที่ยังหาหรือเพิ่งหา product-market fit เจอ
      ส่วนใหญ่ไม่มีศักยภาพจะจ่ายเงินเดือนก้อนโต ต้องการคนที่สนใจจริงและมีแรงขับในตัวเอง รวมถึงพร้อมยืดหยุ่นได้หลายด้าน และในบริษัทเล็กก็มีหลายอย่างที่ต่อรองกันได้มากกว่า
      บริษัทแบบนี้ไม่ได้โผล่มาให้เห็นตรงหน้าอย่างง่าย ๆ คุณต้องออกไปหาเอง
  • ทางออกคือ ออกมาเป็นอิสระ สร้างไอเดียของตัวเองแล้วขายให้ผู้บริโภค อาจเป็นสตาร์ทอัปของตัวเองก็ได้ แต่สำหรับฉันคือการเป็นนักพัฒนาเกมอินดี้
    เกมหนึ่งของฉันชื่อ YOYOZO ได้รับเลือกเป็น “Best Video Games of 2023” ของ Ars Technica เลยทำให้รู้สึกว่าการตัดสินใจของฉันถูกต้อง

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

    • ตอนอธิบายความรู้สึกที่มีต่อวงการ ฉันก็ใช้คำเปรียบเทียบเกือบแบบเดียวกันนี้ตลอด
  • ฉันก็รู้สึกคล้ายกันกับ LeetCode
    ฉันชอบวิศวกรรมซอฟต์แวร์ แต่ LeetCode ทำให้เกลียดวิศวกรรมซอฟต์แวร์
    ฉันแค่อยากสร้างของเจ๋ง ๆ ไม่ได้อยากท่องจำแล้วเขียน LRU cache หรือโจทย์ LeetCode ระดับกลางถึงยากอีกข้อให้เสร็จใน 40 นาที

    • ก็แค่ปฏิเสธไปเลย ฉันประกาศไว้ชัดเจนบน LinkedIn แบบสาธารณะ และตอนนี้ก็เพิ่มไว้บน GitHub ด้วย ว่าจะไม่รับการสัมภาษณ์แบบ LeetCode หรืออะไรทำนองนั้น แล้วหลังจากนั้นก็มีความสุขขึ้น https://github.com/mihaitodor
      แน่นอน อาจมีบริษัทที่เพราะแบบนี้แล้วไม่อยากคุยกับฉัน แต่ก็ไม่เป็นไร ยังไงฉันก็ไม่เคยผ่านสัมภาษณ์แบบนั้นอยู่แล้ว และสุดท้ายก็ต้องหางานที่ไม่บังคับให้ live coding ระหว่างสัมภาษณ์เสมอ
    • ครั้งล่าสุดที่คุณใช้ bubble sort ในโปรเจกต์ side project ทำ clone ของ Linktree คือเมื่อไหร่?
    • ปัญหาของการสัมภาษณ์แบบนี้คือมันไม่ได้ทดสอบด้วยซ้ำว่าคุณคิดปัญหาและออกแบบวิธีแก้ได้ดีแค่ไหน
      ความคาดหวังที่แท้จริงแทบจะเป็นการท่องจำคำตอบที่ดีที่สุดให้แม่นเป๊ะ ซึ่งคำตอบนั้นก็มักเป็นสิ่งที่คนระดับปริญญาเอกที่ศึกษาด้านอัลกอริทึมหามาได้
      สุดท้ายแล้วคุณก็แค่ไปนั่งทำ endpoint สำหรับ CRUD ที่มีผู้ใช้ต่อเดือน 1,000 คนเท่านั้น