การล่มสลายของ Stack Overflow
(observablehq.com)- สมุดบันทึกข้อมูล Observable ที่ติดตามด้วยข้อมูลอนุกรมเวลาว่า ทราฟฟิกของ Stack Overflow ลดลงประมาณ 35% ในช่วง 1 ปีครึ่งที่ผ่านมา โดยแหล่งข้อมูลมาจาก stackoverflow.com/site-analytics
- ตอนแรกวัดได้ว่าลดลงประมาณ 50% แต่ราว 15% ของการสูญเสียที่สังเกตได้น่าจะเกี่ยวข้องกับ การจัดประเภทคุกกี้ของ Google Analytics ใหม่ราวเดือนพฤษภาคม 2022 จึงปรับแก้แผนภูมิให้รวมเฉพาะข้อมูลหลังการเปลี่ยนแปลงดังกล่าว
- การลดลงของทราฟฟิกสะท้อนออกมาเช่นเดียวกันในรูปของ จำนวนคำถาม·คำตอบที่ลดลงประมาณ 50% และจำนวนโหวตที่โพสต์ได้รับลดลง
- แผนภูมิแสดงการใช้งานเป็น ค่าเฉลี่ยเคลื่อนที่ 49 วัน ช่วงของชุดข้อมูลครอบคลุมตั้งแต่ 2008-07-31 ถึง 2023-07-23
- เนื้อหาประกอบด้วย เซลล์แผนภูมิ จำนวนมาก กราฟจึงไม่ถูกเรนเดอร์ในข้อความที่ให้มา และตรวจสอบได้เฉพาะค่าตารางดิบของชุดข้อมูล 3 ชุด ได้แก่ traffic / posts / votes
สรุปการเปลี่ยนแปลงสำคัญ
- ในช่วง 1 ปีครึ่งที่ผ่านมา ทราฟฟิกของ Stack Overflow ลดลงประมาณ 35%
- ค่าที่วัดได้ครั้งแรกคือ ลดลงประมาณ 50% แต่ได้รับการแก้ไขแล้ว
- ราว 15% ของการสูญเสียที่สังเกตได้น่าจะเกี่ยวข้องกับ การจัดประเภทคุกกี้ของ Google Analytics ใหม่ราวเดือนพฤษภาคม 2022 (การเปลี่ยนแปลงที่กำหนดและจัดเก็บเป็น strictly necessary)
- แผนภูมิได้รับการอัปเดตให้รวมเฉพาะข้อมูลหลังการเปลี่ยนแปลงดังกล่าว
- การลดลงของทราฟฟิกสะท้อนใน ตัวชี้วัดการใช้งานเว็บไซต์ เช่นเดียวกัน
- จำนวนคำถาม·คำตอบลดลงประมาณ 50%
- จำนวนโหวตที่โพสต์เหล่านั้นได้รับก็ลดลงด้วย
- การใช้งานในแผนภูมิแสดงเป็น ค่าเฉลี่ยเคลื่อนที่ 49 วัน
- แหล่งข้อมูลคือ stackoverflow.com/site-analytics
ข้อมูลทราฟฟิก (traffic)
- ชุดข้อมูล traffic_2008Jul31_2023Jul23 มีขนาด 418 แถว
- ประกอบด้วยวันที่และ ตัวชี้วัดจำนวนเต็ม 3 ค่า โดยช่วงค่าประมาณ 3M–22M / 1.5M–9.5M / 120k–520k
- ช่วงที่แสดงเป็นตัวเลขรายวันเริ่มตั้งแต่ 2022-06-01
- 2022-06-01 → 18,524,758 / 7,945,523 / 351,184
- 2022-06-14 → 20,002,931 / 8,485,223 / 390,082
- บางวัน เช่น 2022-06-04 บันทึกค่าประมาณ 6,346,105 ซึ่งต่ำกว่าวันทำการ
ข้อมูลโพสต์ (posts)
- ชุดข้อมูล posts_2008Jul31_2023Jul23 มีขนาด 1,992 แถว
- ประกอบด้วยวันที่และ คอลัมน์จำนวนเต็ม 3 คอลัมน์ โดยช่วงค่าประมาณ 4k–23k / 2k–12k / 1.5k–12k
- ช่วงที่แสดงเป็นตัวเลขรายวันเริ่มตั้งแต่ 2018-02-08
- 2018-02-08 → 21,397 / 10,148 / 11,249
- 2018-02-22 → 21,631 / 10,356 / 11,275
ข้อมูลโหวต (votes)
- ชุดข้อมูล votes_2008Jul31_2023Jul23 มีขนาด 1,991 แถว
- ประกอบด้วยวันที่และ คอลัมน์จำนวนเต็ม 4 คอลัมน์ โดยช่วงค่าประมาณ 400–3,600 / 10k–75k / 10k–65k / 2,000–9,500
- ช่วงที่แสดงเป็นตัวเลขรายวันเริ่มตั้งแต่ 2018-02-08
- 2018-02-08 → 3,347 / 65,834 / 57,278 / 8,556
- 2018-02-21 → 3,206 / 66,063 / 57,693 / 8,370
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ตัวเลขเหล่านี้แสดงให้เห็นว่าทราฟฟิกลดลง อย่างรวดเร็วและถาวร ในช่วงไม่กี่วันของเดือนพฤษภาคม 2022 ผู้เข้าชมใหม่ต่อวันลดจากราว 1 ล้านเหลือ 3 แสน, จำนวนการดูหน้าเพจรวมต่อวันลดจากราว 20 ล้านเหลือ 14 ล้าน, และเซสชันต่อวันลดจากราว 9.4 ล้านเหลือ 6.1 ล้าน
แต่ในช่วงเวลาเดียวกัน จำนวนโพสต์หรือโหวตไม่ได้ลดลงในระดับที่สอดคล้องกัน และยังค่อนข้างคงที่เมื่อหักความผันผวนตามฤดูกาลออกไป จนกระทั่งทั้งสองอย่างร่วงหนักในเดือนกุมภาพันธ์ 2023 ข้อมูลทราฟฟิกมาจาก Google Analytics ส่วนข้อมูลโพสต์/โหวตมาจากการคำนวณภายในของ StackOverflow ดังนั้นการร่วงหนักในเดือนพฤษภาคม 2022 อาจเป็นเพียง ผลลัพธ์จากการวัด ที่เกิดจาก Google Analytics เปลี่ยนวิธีติดตามทราฟฟิก/ผู้เข้าชมอย่างกะทันหันก็ได้
https://i.imgur.com/qMj7Lge.png
https://news.ycombinator.com/item?id=36856249
พนักงานชื่อ Catija ก็ตอบไว้ว่า “ระหว่างเดือนเมษายนกับพฤษภาคม 2022 ตัวเลข ‘ทราฟฟิก’ ลดลงสัปดาห์ละ 40 ล้าน และตอนนั้นการติดตามด้วยคุกกี้ก็เปลี่ยนไป หลังจากนั้นก็กลับสู่ภาวะปกติอีกครั้งจนถึงเดือนธันวาคม ก่อนเปลี่ยนคุกกี้ ทราฟฟิกอยู่ที่ราว 140–150 ล้านต่อสัปดาห์ แต่เรารู้เรื่องนี้และได้ ‘ปรับแก้’ มาตลอด”
คนกลุ่มนี้ไม่น่าจะโหวตหรือโพสต์มากนัก ดังนั้นการลดลงอย่างกะทันหันอาจหมายความว่าเกิดเรื่องแย่มากกับ ทราฟฟิกจากการค้นหาแบบออร์แกนิก เช่น การเปลี่ยนแปลงของ Google, กลยุทธ์ SEO ใหม่ที่ย่ำแย่, หรือหยุดซื้อโฆษณา สัดส่วนคอนเทนต์ใหม่ลดลงด้วยอัตราที่หดหู่และคงที่มานานแล้ว แต่ไม่กี่เดือนต้นปี 2023 นั้นหนักเป็นพิเศษ
สำหรับคำถามที่ยังไม่มีบน SO สิ่งที่ช่วยผมมากที่สุดกลับเป็น ความเข้มงวด ของพวกเขา กระบวนการเขียนคำถามคุณภาพสูงที่มีตัวอย่างทำซ้ำขั้นต่ำ กระบวนการคิดที่ชัดเจน และสิ่งที่ลองทำไปแล้ว ทำให้ส่วนใหญ่ผมแก้ปัญหาเองได้ก่อนจะโพสต์เสียอีก
https://en.m.wikipedia.org/wiki/Rubber_duck_debugging
บัญชี SO ของผมมีมาเกือบ 12 ปีแล้ว และมีรีพิวเทชันเกิน 2,000 มานิดหน่อย แต่ก็ไม่ได้ใส่ใจมาก ตอนนี้ผมก็ยังตอบคำถามพื้นฐานในแท็ก mobile development อยู่บ้าง และสิ่งเดียวที่ผมไม่พอใจเกี่ยวกับ SO คือ ความเป็นปรปักษ์ของผู้ดูแลบางคนที่มีรีพิวเทชันสูง
บางคนดูเหมือนจะสนุกกับมัน และลืมไปว่ารีพิวเทชันไม่ได้หมายถึงความเชี่ยวชาญ ตลอด 12 ปีที่ผ่านมา ปัญหานี้ก็ไม่เคยถูกแก้ ผมเห็นผู้ใช้ใหม่โพสต์คำถามที่สมเหตุสมผลมากแล้วก็ไม่กลับมาตอบสนองอีกทุกวัน เมื่อก่อนแม้แต่คำถามง่าย ๆ พื้นฐานก็ยังได้อัปโหวตกันอย่างใจกว้าง แต่ตอนนี้ไม่ใช่แล้ว
การเสื่อมถอยของฟอรัมก็ดูจะเกี่ยวข้องกับเรื่องนี้ด้วย Reddit ยังอยู่ได้เพราะแอปส่งแจ้งเตือนวันละ 200 ครั้ง แต่ถ้าไม่มีสิ่งนั้นก็คงไม่ดังเท่าทุกวันนี้ SO เป็นพื้นที่ที่ไม่เป็นมิตรกับการมีส่วนร่วมถ้าคุณไม่ใช่ผู้เชี่ยวชาญ ดังนั้นในมุมของมือใหม่ก็แทบไม่มีอะไรให้ทำนอกจากถามคำถามหรืออ่านเงียบ ๆ รู้สึกเหมือนไม่มีคุณสมบัติพอ
มีคนจำนวนมากที่มีรีพิวเทชันเกิน 100,000 จากการถามหรือตอบคำถามพื้นฐานเกี่ยวกับ JavaScript, Python, pandas, Git
ทุกครั้งที่ผมโพสต์บน SO หรือไซต์อื่นในเครือ SE ผมต้องเขียนให้ชัดเสมอว่า “ผมรู้ว่า A อาจไม่ใช่ความคิดที่ดี และ B อาจเป็นทางออกที่ดีกว่า แต่ในสถานการณ์เฉพาะของผม ผมอยาก ทำ A จริง ๆ”
แต่ถึงอย่างนั้นคนก็ยังพยายามปิดคำถามนั้นว่าเป็นคำถามซ้ำของ B
จากนั้นพอผมบอกว่าพวกเขามองข้ามสิ่งที่ผมเขียนไปทั้งหมด กลับกลายเป็นว่าผมถูกโทษว่าทำให้เข้าใจผิด และโดนดาวน์โหวต นั่นแหละวิถีของ SO
ดูเหมือนว่าปัญหาคือ Google กำลังแพ้สงครามกับพวกสแปมเมอร์ จนต้องใส่คำว่า stackoverflow ลงในคำค้นมาพักใหญ่แล้วเพื่อหลบเว็บคอนเทนต์ที่คัดลอกมา
สแปมเหล่านั้นอาจมี Google Ads/Analytics อยู่ และผู้ใช้กดเข้าเว็บสแปมแล้วกลับมาหน้าผลการค้นหาเพื่อลองอย่างอื่นต่อ ทำให้ engagement เพิ่มขึ้น ซึ่งหนึ่งในนั้นอาจเป็นผลลัพธ์โฆษณา ทั้งหมดนี้ล้วนเพิ่มรายได้ให้ Google
เมื่อหลายปีก่อน ถ้าค้นหาเรื่องการเขียนโปรแกรม Stack Overflow มักเป็นผลลัพธ์อันดับหนึ่งหรือสอง ตอนนี้ตำแหน่งบนสุด 2-3 อันดับกลับมี ขยะสแปม โผล่มาบ่อยมาก
ฉันเคยตอบคำถามคล้ายกันมาก่อนแต่จำไม่ได้ แล้วก็เขียนคำตอบใหม่ภายใน 2 นาที ก่อนจะโดนถล่ม downvote จนเลิกใช้ SO ไปเลย
เวลาที่ต้องเสียไปกับการค้นหาคำตอบเก่าของตัวเองน่าจะมากกว่าเวลาเขียนคำตอบใหม่เสียอีก ตอนฉันบอกว่าหน้าที่ในการหาคำถามซ้ำควรเป็นของผู้ถาม ไม่ใช่ผู้ตอบ ก็ยังถูกบอกว่าอย่างไรก็ต้องสละเวลา ไม่อย่างนั้นก็อย่าตอบ
ผู้ใช้ทุกคนคือผู้ดูแล มีทั้งผู้ดูแลอย่างเป็นทางการด้วย แต่คนเหล่านี้มักไม่ได้คอยปิดหรือกดโหวตลบอยู่บ่อย ๆ และไปจัดการปัญหาอื่นแทน ในเว็บเล็ก ๆ ก็เป็นแค่ผู้ใช้ทั่วไปที่มีสิทธิ์โหวตและปิดคำถามได้
SO ยังจะคงอยู่ในฐานะคลังสำหรับปัญหาที่เรายังไม่เคยเห็น และเดิมทีมันก็เหมาะกับบทบาทนั้นอยู่แล้ว
สำหรับฉัน บทความนี้เหมือนเป็นบทความเกี่ยวกับ การผงาดขึ้นมาของ ChatGPT แต่ก็เห็นด้วยเหมือนกันว่าการกลั่นกรองที่มากเกินไปเป็นปัญหาใหญ่
ฉันเคยมีประสบการณ์แย่ ๆ ตอนกำลังเรียน OpenGL ใน gamedev StackExchange แล้วติดปัญหา ผู้ดูแลปิดคำถามของฉันทันทีว่าเป็นคำถามซ้ำ โดยอ้างคำถามคล้ายกันเกี่ยวกับ OpenGL ES ทั้งที่ OpenGL ES จะเกี่ยวข้องกันก็จริง แต่เป็น API คนละตัว ฉันพยายามโต้แย้งแต่ก็ถูกเมิน ไม่นานหลังจากนั้นฉันก็เลิกทำเกมที่ทำมาหลายปี และการตัดสินใจของผู้ดูแลคนนั้นก็มีส่วนด้วย มันให้ความรู้สึกเหมือนมีกำแพงขวางอยู่หน้าทางที่จะได้คำตอบ การกลั่นกรองที่เกินพอดีไม่ใช่แค่ความไม่สะดวก แต่มันทำลายความสามารถของผู้ใช้ในการทำงานให้สำเร็จได้
กรณีส่วนใหญ่ที่ฉันเข้า Stack Overflow ก็เพราะพิมพ์คำถามลงในเสิร์ชเอนจินเหมือนกัน
ฉันจำได้ว่าราวปี 2013 พยายามเรียนฟรอนต์เอนด์ และหลงใหลกับ responsive web design กับ Twitter Bootstrap มาก ฉันโพสต์คำถามไว้ในเว็บนั้นสองสามข้อ แต่โดนเยาะเย้ยหลายครั้งว่าเป็นคำถามแบบมือสมัครเล่น หลังจากนั้นก็ไม่ใช้เว็บนั้นอีก และสุดท้ายก็ไม่ได้เรียนฟรอนต์เอนด์ต่อ
ฉันมีแต่ประสบการณ์ที่ดีกับ SO แต่ยังไงก็หวังว่าคนที่ค่าเฉลี่ยต่ำกว่าและยังจับทางไม่เก่งจะไม่หมดกำลังใจเพราะเรื่องพวกนี้
แม้จะมีนรกจากการกลั่นกรองอยู่ด้วย แต่เหตุผลหลักที่ฉันเลิกตอบคำถามบน SO คือแบบนี้ การเขียนคำตอบดี ๆ ต้องใช้เวลา ขณะที่คำตอบแบบรีบ ๆ คัดลอกแล้ววาง แม้จะผิดก็ยังได้ upvote และคนที่เลือก accepted answer จากหลายคำตอบก็มักเป็นผู้ถามที่ปกติไม่ได้มีความรู้พอจะตัดสินเรื่องนั้น
ยิ่งไปกว่านั้น บ่อยครั้งคำตอบก็ไม่ถูกเลือกเลยเพราะดูเหมือนผู้ถามจะไม่สนใจแล้ว เคยมีบทความเก่าที่วิจารณ์การทำคะแนน SO ให้กลายเป็นเกมอย่างหนัก แต่ SO ก็ปล่อยระบบที่พังนี้ไว้แทนที่จะพยายามแก้ไข เหมือนที่ SO เคยเป็นความเคลื่อนไหวเพื่อหนีจาก Experts Exchange ฯลฯ ตอนนี้จึงเป็นช่วงเวลาที่เหมาะที่ชุมชนจะเริ่มต้น เว็บไซต์ถาม-ตอบแบบ post-SO
ในทางกลับกัน ถ้าไปตอบเรื่องยาก ๆ ของซอฟต์แวร์ที่แทบไม่มีเอกสาร เช่นงานระดับ low-level ก็มากสุดแค่ไม่กี่โหวต ถ้าได้ accepted ก็ถือว่าโชคดีแล้ว ในแท็ก SO ที่ยากและคลุมเครือมีฮีโร่ไร้นามอยู่ไม่กี่คน พวกเขาทุ่มเวลาไปมาก แต่แทบไม่ได้อะไรตอบแทน สิ่งที่จะมาแทน SO ในอนาคตต้องหาวิธีแก้เรื่องนี้ให้ได้
ปัญหาที่รู้สึกได้จาก Stack Overflow มีหลายอย่างจนยากจะสรุปให้เหลือไม่กี่ข้อ แต่คร่าว ๆ ก็ประมาณนี้ เมื่อก่อน Google แสดงผลลัพธ์จาก SO ที่ตรงประเด็นมากได้ดี แต่ช่วงหนึ่งก็เลิกเป็นแบบนั้น และการกลั่นกรองของ SO ก็ยิ่งแย่ลงเรื่อย ๆ
นับครั้งไม่ถ้วนที่ผมเจอคำถามแปลก ๆ ตรงกับสิ่งที่กำลังหาอยู่พอดี แต่มีแค่คอมเมนต์เดียวที่น่าจะเป็นคำตอบ แล้วผู้ดูแลกลับปิดคำถามแบบเชิงรุกด้วยเหตุผลอย่าง “ไม่ตรงหัวข้อ” ผลคือคำตอบที่แม่นยำถูกฝังอยู่ในคอมเมนต์และมักโดนปฏิกิริยาเชิงลบด้วย พอหลายอย่างซ้อนกันเข้าก็ยิ่งกรองข้อมูลที่ต้องการออกจากสัญญาณรบกวนได้ยากขึ้นเรื่อย ๆ และสุดท้ายกลับไปหาคำตอบจากคอมเมนต์ใน GitHub หรือบล็อกสุ่ม ๆ ง่ายกว่า
การที่เดี๋ยวนี้ Google แนะนำ w3schools หรือแย่กว่านั้นคือ geeks4geeks ซึ่งเป็น ฟาร์มคอนเทนต์ มันแย่กว่า Stack Overflow เสมอ ไม่รู้ว่าอัลกอริทึมกำลังทำอะไรอยู่ แต่ดูเหมือนจะพยายามฆ่าการค้นหาของ Google ให้ตายให้เร็วที่สุดแน่ ๆ แม้แต่ค้นหา "[ภาษา] [สัญลักษณ์]" ก็ยังพาไปฟาร์มคอนเทนต์พวกนี้แทนเอกสาร ดูเหมือนเรื่องตลกไปแล้ว ทุกวันนี้หาสิ่งที่มีประโยชน์ด้วย Google ยากมากจริง ๆ
แต่ผมต้องการ X จริง ๆ ดังนั้นคำตอบพวกนั้นจึงไม่มีประโยชน์ จากนั้นพอไปหาคำถามอื่นที่ถามวิธีทำ X ก็จะโดนผู้ดูแลปิดว่าเป็นคำถามซ้ำของคำถามก่อนหน้า ถึงผู้ถามจะระบุชัดว่า “ผมต้องการ X จริง ๆ จึงไม่ใช่คำถามซ้ำของอันนั้น” ก็ยังโดนปิดอยู่ดี
คอมเมนต์ย่อยที่ถูกกลบใต้คำตอบยอดนิยม: “นั่นไม่ใช่สิ่งที่ถาม ถ้าจะทำ X ด้วย Y ให้ทำแบบนี้” แล้วคนที่ตอบคำถามจริง ๆ กลับโดนรุมโจมตีในคอมเมนต์ 10 อันเพราะไม่ได้ทำตามแนวทางของคำตอบที่ได้โหวตสูงสุด
ผมไม่ใช่นักพัฒนา SharePoint และก็เป็นครั้งแรก แต่คุ้นเคยกับวิธีแบบเก่าที่อ่านคู่มือหรือสเปกเพื่อทำความเข้าใจระบบอยู่แล้ว เคยทำทั้งฟอร์แมตบิตแมป อินเวอร์เตอร์พลังงานแสงอาทิตย์ ซอฟต์แวร์งานก่อสร้างแบบฝังตัว ฯลฯ ดังนั้น SharePoint ก็น่าจะง่าย แต่ถ้าไม่มี StackOverflow ก็คงทำไม่ได้ พอกลับมาจำเป็นต้องทำงานกับ SharePoint อีกครั้งในปี 2023 เอกสารทางการดีมากจนไม่ต้องใช้อย่างอื่นเลย นี่เป็นแค่ตัวอย่างเฉพาะกรณี แต่เกือบทุกอย่างที่ผมจับอยู่ทุกวันนี้ก็คล้ายกัน แม้ประสบการณ์ของผมจะมากขึ้นอีก 10 ปีด้วย แต่ผมคิดว่าผลกระทบใหญ่คือทั้งอุตสาหกรรมจัดการช่องทางทางการได้ดีขึ้นมาก ถ้ามีปัญหา ตอนนี้จะไป StackOverflow หรือจะไปที่อย่าง GitHub Issues แทน?
แต่ A1 ที่ได้โหวตเกิน 100 มีค่าหัว 50 และถูกยอมรับอัตโนมัติ กลับบอกว่า “ใช้ได้” พร้อมอธิบายยืดยาวเพียงบางส่วนของ F แบบตัดบริบททิ้ง โดยอิง libS ในบริบท Y คอมเมนต์จะมีคนบอกว่า “นี่ไม่ใช่คำตอบ ไปดู A15” และอีกคอมเมนต์ก็บ่นว่าหลักฐานเรื่อง U ใน A15 มาจากเว็บรองจึงไม่น่าเชื่อถือ A2~A7 เป็นการพูดซ้ำ A1, A8 แปะลิงก์คำถามในบริบท Y แล้วบอกว่าเป็นคำถามซ้ำ, A9~A14 ยกตัวอย่าง libT ที่ทำงานต่างออกไปแล้วบอกว่า “ใช้ได้” มีแค่ A15 เท่านั้นที่บอกว่า “คำถามถามถึง F สำหรับ libS ในบริบท X และระบุชัดว่าไม่ใช่ Y ดังนั้นถ้ามองในบริบท X ของ libS แล้ว ใช้ไม่ได้ เพราะ foo” พร้อมลิงก์ไปยังเอกสารของ libS หรือซอร์สโค้ด หรือตัวอย่าง จากนั้นพอหลายปีต่อมา libS vN+1 เพิ่ม F ในบริบท X ก็จะมีคอมเมนต์ว่า “คำตอบนี้ใช้ไม่ได้แล้ว” หลังจากนั้นก็ตามมาด้วยคำตอบสุ่ม ๆ อีกเรื่อย ๆ