3 คะแนน โดย GN⁺ 2025-08-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เมื่อไม่นานมานี้มีเสียงวิจารณ์ต่อการใช้งาน ซอฟต์แวร์โอเพนซอร์สที่สร้างโดยนักพัฒนาชาวรัสเซีย
  • ในความเป็นจริง โครงการโอเพนซอร์สเกือบทั้งหมดส่วนใหญ่ ถูกดูแลโดยผู้ดูแลเพียงคนเดียว
  • ไม่ใช่แค่ NPM แต่รวมถึงหลายอีโคซิสเต็ม ที่มีกรณีจำนวนมากซึ่งผู้ดูแลเพียงคนเดียวจัดการแพ็กเกจยอดนิยม
  • ปัญหาของโครงสร้างนี้คือ ภาระที่หนักเกินไปของผู้ดูแลเพียงคนเดียว และความเสี่ยงด้านซัพพลายเชน
  • แก่นแท้ของปัญหาไม่ใช่เรื่องสัญชาติ แต่คือ ทรัพยากรและการสนับสนุนที่ไม่เพียงพอในความเป็นจริง

บทนำ: โอเพนซอร์สกับข้อถกเถียงล่าสุด

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

ความเป็นจริงของโอเพนซอร์ส: โครงสร้างแบบ 'คนคนเดียว'

  • ตามข้อมูล โครงการโอเพนซอร์สเกือบทั้งหมดถูกดูแลโดยคนเพียงคนเดียว
  • โครงการ ecosyste.ms รวบรวมข้อมูลโครงการโอเพนซอร์สราว 11.8 ล้านโครงการ
    • ในจำนวนนี้ราว 7 ล้านโครงการเป็นโครงการที่มีผู้ดูแลเพียงคนเดียว
    • อีกประมาณ 4 ล้านโครงการไม่ทราบจำนวนผู้ดูแล แต่คาดว่าจำนวนมากก็น่าจะมีเพียงคนเดียวเช่นกัน
    • มีเพียงส่วนน้อยมากของโครงการเท่านั้นที่มี ผู้ดูแลนับร้อยคน

แม้แต่โครงการยอดนิยมก็ไม่ใช่ข้อยกเว้น

  • หลายคนคิดว่า "โอเพนซอร์สที่สำคัญหรือโครงการยอดนิยมคงมีหลายคนดูแล" แต่ในความเป็นจริง อีโคซิสเต็มหลักอย่าง NPM ก็ไม่ได้ต่างกัน
  • ภายในอีโคซิสเต็ม NPM มี โครงการที่มีผู้ดูแลเพียงคนเดียวมากกว่า 4 ล้านโครงการ
  • แม้ในบรรดาแพ็กเกจ NPM ที่มียอดดาวน์โหลดเกิน 1 ล้านครั้งต่อเดือน ประมาณครึ่งหนึ่งก็ยังดำเนินการโดยผู้ดูแลเพียงคนเดียว
    • หากเพิ่มเกณฑ์ยอดดาวน์โหลดเป็น 1 พันล้านครั้ง จะมีความแตกต่างอยู่บ้าง แต่ก็ยังคงมีแพ็กเกจที่มีผู้ดูแลเพียงคนเดียวอยู่
  • ผู้คนที่ดูแล 4 ล้านโครงการแบบผู้ดูแลเดี่ยวใน NPM มีจำนวนจริง ประมาณ 9 แสนคน (หมายความว่า 1 คนรับผิดชอบหลายโครงการ)

แก่นแท้ของปัญหา: ไม่ใช่ประเทศ แต่คือการขาดแคลนทรัพยากร

  • ขนาดทางเศรษฐกิจของโอเพนซอร์สคือ รากฐานที่มีมูลค่าระดับหลายล้านล้านดอลลาร์ (อ้างอิงงานวิจัยของ Harvard, 8.8 ล้านล้านดอลลาร์)
  • โครงการแบบผู้ดูแลเดี่ยวส่วนใหญ่ ขาดทรัพยากร และมีความเสี่ยงด้านซัพพลายเชน
  • ความเสี่ยงที่ใหญ่ที่สุด ไม่ใช่ประเทศใดประเทศหนึ่ง แต่คือ 'ผู้ดูแลเพียงคนเดียว' ที่ทำงานหนักเกินไปและไม่ได้รับค่าตอบแทนอย่างเหมาะสม
  • การที่สื่อหรือฝ่ายต่าง ๆ พุ่งเป้าไปที่ผู้ดูแลรายบุคคลไม่ใช่วิธีแก้ปัญหา

บทสรุปและประเด็นที่ควรลงมือทำ

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

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

 
GN⁺ 2025-08-29
ความคิดเห็นใน Hacker News
  • รู้สึกว่ามีความเข้าใจผิดเกี่ยวกับประเด็นนี้ในชุมชนซอฟต์แวร์อยู่มาก จริงๆ แล้วความเสี่ยงด้านซัพพลายเชนดูจะเป็นปัญหาเรื่องธรรมาภิบาลมากกว่าจะเป็นปัญหาซอฟต์แวร์หรือวิศวกรรม
    ต่อให้ไม่มีใครมีเจตนาร้าย โปรเจกต์ก็อาจเกิดความเสี่ยงด้านซัพพลายเชนได้ และแต่ละคนที่ประเมินความเสี่ยงด้านซัพพลายเชนก็มีมุมมองและเกณฑ์ด้านความปลอดภัยต่างกัน
    DoD (กระทรวงกลาโหมสหรัฐฯ) มองความเสี่ยงจากมุมที่ต่างจากนักพัฒนาทั่วไปโดยสิ้นเชิง และหลายโปรเจกต์ที่มีคนดูแลคนเดียวก็ถือว่าเป็นความเสี่ยงเพียงเพราะมีผู้รับผิดชอบแค่คนเดียว
    ถ้า ‘bus factor’ เท่ากับ 1 นั่นก็เป็นความเสี่ยงด้านซัพพลายเชนในตัวมันเอง
    คนส่วนใหญ่คงไม่ได้คิดถึงสถานการณ์สงครามตอนเลือกแพ็กเกจ แต่กองทัพอาจต้องคำนึงถึงเรื่องนั้น
    ถ้าเกิดสงครามขึ้น โปรเจกต์โอเพนซอร์สที่ปกติบริหารกันอย่างอิสระก็อาจเปลี่ยนสถานการณ์ไปอย่างรวดเร็ว
    หลายประเทศก็มีกฎหมายที่บังคับให้ภาคเอกชนหรือโปรเจกต์ส่วนบุคคลต้องให้ความร่วมมือในช่วงสงครามจริงๆ ดังนั้นจึงมีหน่วยงานอย่าง DoD ที่นับเรื่องแบบนี้เป็นความเสี่ยงด้านความปลอดภัยด้วย

    • ทุกคนครับ ช่วยตะโกนไปพร้อมกันว่า: ต้อง vendor package! จง vendor มัน!
    • แต่ถึงอย่างนั้นก็ยังรู้สึกขมขื่นที่ยังมีการโหมโฆษณาเกินจริงทำนองว่า "นักพัฒนาคนเดียวก็สร้างบริษัทซอฟต์แวร์มูลค่าพันล้านได้ในไม่ช้า"
    • ถ้าเป็น DoD ผมคิดว่าคงไม่ใช้แพ็กเกจนั้นเลย ถ้ายังไม่พร้อมจะไล่อ่านโค้ดทั้งหมดของมัน ล็อกการอัปเดตไว้ และเตรียมแพตช์เองเมื่อจำเป็น
      คงไม่ดำเนินการในภาวะสงครามแบบคิดว่า "ถ้ามีอีกสักคนที่เราไม่ไว้ใจเลยมาช่วยก็คงดี"
  • เคยมีข้อมูลว่าบน NPM มีโปรเจกต์แบบคนเดียวดูแลอยู่ 4 ล้านโปรเจกต์ และมีคนราว 9 แสนคนที่ดูแลโปรเจกต์เหล่านั้น เลยสงสัยว่านี่เป็นประเด็นสำคัญมากจริงหรือเปล่า

    • แม้จะไม่ได้พูดตรงๆ แต่ดูน่าจะหมายถึงแบบนี้
      คือมูลค่าทางเศรษฐกิจของโอเพนซอร์ส (Harvard ประเมินไว้ที่ 8.8 ล้านล้านดอลลาร์) ส่วนใหญ่ถูกสร้างโดย "โปรเจกต์คนเดียวดูแล" และแทบไม่มีใครในนั้นได้รับทรัพยากรสนับสนุนอย่างเหมาะสม
      ถ้าพูดถึงความเสี่ยงด้านซัพพลายเชน สิ่งที่อันตรายจริงๆ คือผู้ดูแลคนเดียวที่ค่าตอบแทนต่ำและทำงานหนักเกินไป
      คนคนนั้นมาจากประเทศไหนจริงๆ แล้วอาจไม่ใช่ประเด็นสำคัญนัก
  • สงสัยว่ามีสถิติไหมว่าเมื่อผู้ดูแลคนเดียวประสบอุบัติเหตุแบบกะทันหันหรือเลิกทำโปรเจกต์ไปแล้วจะเกิดอะไรขึ้น
    ถ้ามีข้อมูลมากขนาดนี้ก็น่าจะเอาไปวิจัยได้
    อยากรู้ว่าจะมีนักพัฒนาคนใหม่มารับช่วงต่อ มีโปรเจกต์คล้ายกันมาแทน หรือมันหายไปเลย

    • มันขึ้นอยู่กับสถานการณ์
      ในความเป็นจริง สิ่งที่พบบ่อยกว่าการโดนรถชนคือ "ผู้ดูแลหมดความสนใจหรือไม่มีเวลาแล้วจึงเลิกทำ"
      สถานการณ์ที่เกิดขึ้นบ่อยในกรณีนี้คือ
      1. มีคน fork แล้วสุดท้าย fork นั้นมาแทนต้นฉบับ
      2. มีโปรเจกต์ใหม่ที่ทำหน้าที่เดียวกันได้รับความนิยมและเข้ามาแทนโปรเจกต์เดิม
      3. ผู้ดูแลเดิมส่งต่อการดูแลโปรเจกต์ให้คนอื่น
      4. ไม่มีใครดูแลแล้วแต่ก็ยังถูกใช้อยู่ และพอมีปัญหาแต่ละคนก็ fork ไปแก้เอง แต่ fork เหล่านั้นไม่ได้กลายเป็นกระแสหลัก
        จุดแข็งของโอเพนซอร์สคือ ต่อให้ผู้สร้างหายไป เปลี่ยนไปในทางแย่ หรือเปลี่ยนไลเซนส์ ก็ยังมีคน fork เพื่อรักษามันไว้ได้
        ตรงกันข้ามกับซอฟต์แวร์เชิงพาณิชย์ ไม่ว่าผู้สร้างจะเป็นบริษัทหรือบุคคล ถ้าหายไปหรือเปลี่ยนเนื้อหาก็จบเลย
        อย่างมากก็ต้องไปหาผลิตภัณฑ์ทดแทน
    • ถ้ามีซีรีส์ตอนสั้นที่เล่าเรื่องการส่งต่อโปรเจกต์โอเพนซอร์สยอดนิยมพวกไลบรารี/เครื่องมือ/แอป/เว็บไซต์ จากผู้ดูแลคนหนึ่งไปสู่อีกคนหนึ่ง ผมดูแน่
      นี่ก็เป็นอีกเหตุผลว่าทำไมผมถึงไม่ได้บริหาร Netflix
    • จากประสบการณ์ของผม ทั้งสามกรณีก็เคยเห็นมาจริง
      สุดท้ายแล้วมันขึ้นกับจำนวนผู้ใช้ ความซับซ้อนของ codebase และการมีหรือไม่มีตัวเลือกทดแทน
    • ตัวอย่างที่ใกล้เคียงที่สุดที่นึกออกคือ Hans Reiser/Reiserfs
      เป็นเรื่องราวที่ประหลาดกว่าการ "โดนรถบัสชน" มาก และสุดท้ายโปรเจกต์นั้นก็สลายไป
    • สิ่งที่คนมักมองข้ามคือ ถ้าโค้ดเป็นโอเพนซอร์ส ต่อให้ใช้เวลา อย่างแย่ที่สุดก็ยัง fork ได้เสมอ
  • แม้แต่โปรเจกต์ที่มีคนดูแลมากกว่าสองคน ส่วนใหญ่แล้ว commit จริงๆ จำนวนมากก็มักมาจากคนเพียงคนเดียวอยู่ดี

    • เพราะแบบนี้ผมเลยเลี่ยงใช้ 11ty กับเว็บส่วนตัวและเลือก Jekyll แทน
      ลิงก์ที่เกี่ยวข้อง: https://github.com/11ty/eleventy/graphs/contributors
  • น่าเสียดายที่แค่เช็กความเคลื่อนไหวก็น่าจะเห็นได้ทันทีแล้วว่าครึ่งหนึ่งของโปรเจกต์ทั้งหมดมีผู้ดูแล 0 คน

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

    • ก็ชวนให้สงสัยว่าทำไม
      DoD เป็นหนึ่งในองค์กรที่ใหญ่ที่สุดในโลก จึงมีงานอย่างเว็บส่งจดหมายข่าวหรือหน้าเว็บสำหรับจองทัวร์ค่ายลูกเสือด้วย
      งานแบบนั้นใช้ node ก็คงไม่เป็นไร
      ระบบพวกนี้ทำงานแยกจากระบบสำคัญอย่างการยิงขีปนาวุธ และต่อให้หน้าเว็บสมัครกิจกรรมถูกทำให้เสียหายก็ไม่ได้เป็นปัญหาใหญ่อะไร
    • DoD ใหญ่มากจนดูเหมือนว่าจะใช้แทบทุกแพลตฟอร์มหลักอยู่แล้ว
  • คิดว่าโปรเจกต์ GitHub แบบคนเดียวดูแลจำนวนมากจริงๆ แล้วก็เป็นแค่การทดลองส่วนตัวหรือของเล่นแนว "hello world"
    ไม่แน่ใจว่า npm เป็นยังไง แต่ใน PyPI ก็มีตัวอย่างแบบนี้เต็มไปหมด
    ลองกด ‘browse projects’ เองแล้วเจอแบบนี้: https://pypi.org/project/helloworld-eduardo/
    ต่อให้เมาแค่ไหนก็คงไม่มีใครคิดจะเอาของแบบนี้ไปใช้ในโปรดักชัน

  • DoD เก่งมากในการได้ของฟรีมา แล้วโน้มน้าวทุกคนว่า "ทุกฝ่ายได้ประโยชน์ร่วมกัน" ก่อนสุดท้ายจะไปจ้างผู้รับเหมาภายนอกด้วยเงินอยู่ดี

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

  • เคยได้ยินเรื่องดีๆ มากมายเกี่ยวกับผลงานที่คนชื่อ Linus สร้างไว้ และก็น่าจะเคยใช้มันมามากพอสมควร
    เขามาจากประเทศที่มีพรมแดนติดกับรัสเซีย เลยอดสงสัยไม่ได้ว่าต้องกังวลเรื่องนี้ด้วยไหม
    ผมทำโอเพนซอร์สมาหลายสิบปี ส่วนใหญ่ก็ทำคนเดียวหรือบางครั้งก็ตั้งทีมอาสาสมัครขึ้นมา
    ใครที่เคยทำงานกับทีมอาสาสมัครคงรู้ว่ามันไม่ง่ายเลย
    แน่นอนว่าไม่ถึงกับเป็นไปไม่ได้ แต่ก็ไม่ได้เวิร์กบ่อยอย่างที่คนคิด
    เวลามันเวิร์ก ส่วนใหญ่มักมี "BDFL (ผู้นำแบบเผด็จการโดยความยินยอม)" หรือไม่ก็ทุกคนขยับไปในทิศทางเดียวกันตามเป้าหมายเดียว
    สำหรับผม ส่วนใหญ่จะเป็นแบบหลัง

    • (นอกประเด็น) พ่อแม่ของ Linus ก็เคลื่อนไหวทางการเมืองด้วย และตัว Linus เองตอนเด็กก็เคยอยู่ในองค์กรเยาวชนคอมมิวนิสต์ (คล้ายลูกเสือ)
      พ่อของเขาเองก็เคยใช้ชีวิตอยู่ในมอสโกหลายปี
    • Linux เป็นโปรเจกต์ที่มีผู้ดูแลและการสนับสนุนขนาดใหญ่ จึงต่างจากโปรเจกต์แบบคนเดียวพัฒนาโดยสิ้นเชิง