เจาะลึกปัญหายอดนิยมของนักพัฒนาเว็บ

คอลเล็กชันข้อมูลเชิงลึกเกี่ยวกับปัญหาที่สำคัญของนักพัฒนาซอฟต์แวร์ ซึ่งรวบรวมจากการสนทนาจำนวนหนึ่งถึงหนึ่ง

เมื่อไม่กี่เดือนที่ผ่านมา Paul Kinlan ได้โพสต์เกี่ยวกับปัญหาของนักพัฒนาซอฟต์แวร์อันดับต้นๆ ในปี 2021 ดังนั้นจึงควรเริ่มอ่านบทความนี้ด้วยข้อมูลอัปเดตเกี่ยวกับช่วง 2 ไตรมาสที่ผ่านมา ตัวเลขมีการเปลี่ยนแปลงไปเล็กน้อย แต่การจัดอันดับไม่เปลี่ยนแปลง

ความท้าทาย ไตรมาส 1 ปี 2021 ไตรมาส 2 ปี 2021 ไตรมาส 3 ปี 2021 ไตรมาส 4 ปี 2021
การติดตามการเปลี่ยนแปลงของแพลตฟอร์มเว็บหรือมาตรฐานเว็บ 27% 26% 27% 22%
การติดตามเครื่องมือหรือเฟรมเวิร์กทั้งใหม่และที่มีอยู่จำนวนมาก 26% 26% 25% 21%
การออกแบบหรือประสบการณ์การใช้งานจะเหมือนกันในทุกเบราว์เซอร์ 26% 28% 24% 21%
การทดสอบในเบราว์เซอร์ต่างๆ 23% 24% 20% 20%
การทำความเข้าใจและใช้มาตรการรักษาความปลอดภัย 23% 25% 20% 19%

ดังที่กล่าวไว้ในบล็อกโพสต์ของ Paul ว่าเราต้องแก้ไขประเด็นปัญหาเหล่านี้ ด้วยความพยายามที่มากขึ้น เพื่อนร่วมงานของฉัน Kadir Topal และฉันได้สัมภาษณ์นักพัฒนาซอฟต์แวร์กว่า 18 คน เป้าหมายของเราคือการตรวจสอบและเริ่มต้นทำความเข้าใจเส้นทางในการแก้ไขประเด็นปัญหาของนักพัฒนาซอฟต์แวร์ยอดนิยม

การสนทนาของนักพัฒนาซอฟต์แวร์

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

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

สิ่งหนึ่งที่นักพัฒนาซอฟต์แวร์ทุกคนมักใช้ CMS หรือเฟรมเวิร์กในการทำงาน มีการกล่าวถึง Wordpress, React, Bootstrap, Angular และ Tailwind ทั้งหมดไม่มีนักพัฒนาซอฟต์แวร์คนใดที่ใช้แพลตฟอร์มเว็บวานิลลาในการสร้างเลย การเลือกเฟรมเวิร์กเมื่อเริ่มโปรเจ็กต์เป็นเรื่องที่ท้าทาย และนักพัฒนาซอฟต์แวร์มักคำนึงถึงข้อกำหนดที่ไม่ใช่ทางเทคนิคด้วย เช่น จะง่ายต่อการจ้างนักพัฒนาซอฟต์แวร์ให้ทำงานกับเฟรมเวิร์กนั้นหรือไม่ เราปรับปรุงประเด็นปัญหาของนักพัฒนาซอฟต์แวร์ไม่ได้หากไม่ได้รวมเฟรมเวิร์กและ CMS ไว้ในโซลูชัน

เมื่อพูดถึงแพลตฟอร์มเว็บ นักพัฒนาซอฟต์แวร์ส่วนใหญ่เข้าใจแพลตฟอร์มว่าเป็นสิ่งที่กำลังพัฒนา ซึ่งไม่เพียงมีคำจำกัดความแบบดั้งเดิมของแพลตฟอร์มเว็บเท่านั้น แต่ยังรวมถึง CMS, เฟรมเวิร์ก, เครื่องมือ และ Polyfills ด้วย ในหลายกรณี การตามทันทุกเหตุการณ์ถือเป็นปัญหาใหญ่ที่สุด การดําเนินการนี้เปลี่ยนแปลงการตีความคําถามนั้น และตอนนี้เราทราบแล้วว่าเราต้องอัปเดตแบบสํารวจเพื่อให้แบ่งย่อยออกเป็นส่วนต่างๆ ที่ไม่ชัดเจนน้อยลง

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

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

การติดตามฟีเจอร์และ API ที่ช่วยให้ใช้งาน Use Case ใหม่ๆ ได้นั้นปัญหาน้อยกว่า นักพัฒนาซอฟต์แวร์ประสบปัญหามากขึ้นเกี่ยวกับฟีเจอร์, API และการเปลี่ยนแปลงในแพลตฟอร์ม ซึ่งส่งผลให้มีการเปลี่ยนแปลงแนวทางปฏิบัติแนะนำ

นักพัฒนาซอฟต์แวร์ส่วนใหญ่เห็นด้วยว่าความเข้ากันได้เป็นความท้าทายที่ใหญ่ที่สุดอย่างหนึ่ง ทุกอย่างกำลังพัฒนาขึ้นผ่านความพยายามต่างๆ เช่น Compat 2021 และ Interop 2022 แต่เห็นได้ชัดว่านักพัฒนาแอปมองเรื่องนี้เป็นปัญหา

นักพัฒนาแอปส่วนใหญ่ใช้ Polyfill ด้วยวิธีใดก็ตาม อย่างไรก็ตาม ในหลายกรณี นักพัฒนาแอปจะมีความโปร่งใส เนื่องจากเครื่องมืออย่าง Babel หรือเฟรมเวิร์กสามารถเพิ่ม Polyfill ได้โดยอัตโนมัติ สำหรับผู้ที่จัดการ Polyfill ด้วยตนเอง กำลังพิจารณาว่า Polyfill นั้น "ดี" หรือไม่ ก็อาจเป็นปัญหา นักพัฒนาแอปกล่าวถึงการใช้จำนวนการติดตั้งบน NPM และผู้สร้าง Polyfill เป็นสัญญาณ นักพัฒนาซอฟต์แวร์ 2 รายกล่าวถึงการดำเนินการนำ Polyfill ออกทั้งหมดที่ไม่จำเป็นเนื่องจากไม่รองรับ IE 11

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

บทสรุป

การพัฒนาเว็บสมัยใหม่มีการเปลี่ยนแปลงมากมาย ไม่ว่าจะเป็นมาตรฐาน, เบราว์เซอร์, ไลบรารี, โพลีฟิลล์, CMS, เฟรมเวิร์ก, แนวทางปฏิบัติแนะนำ และเครื่องมือ ความหลากหลายนี้เป็นสิ่งหนึ่งที่ดีมากเกี่ยวกับเว็บ แต่ในปัจจุบัน ขึ้นอยู่กับนักพัฒนาซอฟต์แวร์แต่ละคนว่าแต่ละองค์ประกอบทำงานเข้ากันอย่างไร

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

หากมีมุมมองและความคิดเห็นที่ต้องการแชร์ ฉันอยากคุยกับคุณเหมือนกัน ฉันจะหาวิธีจองการสนทนาโดยตรงให้ แต่ระหว่างนี้ DM จะเปิดใน Twitter โปรดติดต่อเราเพื่อนัดเวลาพูดคุย