โอเพนซอร์ส (Open Source) คืออะไร?
โอเพนซอร์สหมายถึงซอฟต์แวร์โอเพนซอร์ส (OSS) ในโลกซอฟต์แวร์ คือซอฟต์แวร์ที่เผยแพร่ฟรีบนอินเทอร์넷 ให้ใช้, แก้ไข, ทดสอบ, พัฒนาต่อได้ตามต้องการ OSS สะดวกกว่าสำหรับผู้ใช้ทั่วโลก เพราะปรับเปลี่ยนได้ ผู้ใช้เลือกเพิ่ม/ลบแพตช์ตามความต้องการ
สิ่งนี้เปลี่ยนโลกซอฟต์แวร์อย่างมาก ไม่ว่าจะเป็นโปรแกรมเมอร์, นักพัฒนา, ทีสเตอร์ ที่ลองมีส่วนร่วมในโอเพนซอร์ส
ทำไมต้องมีส่วนร่วม?
- เพื่อพัฒนาความรู้และทักษะการสอน
หากคุณมีความรู้ในโดเมน, ภาษา, ซอฟต์แวร์ใดๆ ต้องการเรียนรู้เพิ่ม ให้เชี่ยวชาญด้วยการฝึกฝน เรียนรู้สิ่งใหม่ มีส่วนร่วมในโปรเจกต์ที่เกี่ยวข้อง ทำให้ผู้อื่นเข้าใจดีขึ้น เมื่อพัฒนาตนเองแล้ว สามารถสอนผู้อื่นผ่านเซสชัน, เว็บбинар, คลาสออนไลน์ ทุกการมีส่วนร่วมมีความหมาย
- ปรับปรุงซอฟต์แวร์
หากคุณเป็นผู้ใช้ซอฟต์แวร์ตัวใดตัวหนึ่งอย่างสม่ำเสมอ และรู้สึกว่าความคิดเห็นของคุณทำให้มันดีขึ้น สะดวกขึ้น สามารถมีส่วนร่วมโดยเสนอไอเดีย, ออกแบบอินเทอร์เฟซใหม่, เพิ่มประสิทธิภาพ, สร้างแพตช์ รายงานบั๊กที่ไม่เคยรายงานก่อน จะช่วยผู้อื่นในอนาคต
- เป็นส่วนหนึ่งของชุมชน
การเป็นสมาชิกชุมชนใหญ่ ทำให้เรียนรู้ทักษะทางสังคมมากมาย ช่วยเหลือกันและกัน ทำให้เติบโตทั้งทางส่วนตัวและวิชาชีพ การเปลี่ยนแปลงเล็กน้อยก็ให้ความมั่นใจ เพราะส่งผลต่อซอฟต์แวร์ที่เปิดให้สาธารณะ ใช้ประโยชน์หลายล้านคนพร้อมกัน
จะมีส่วนร่วมอะไรได้บ้าง?
ความเชื่อผิดทั่วไปคือ การมีส่วนร่วมในซอฟต์แวร์ต้องเขียนโค้ดเท่านั้น การสร้างซอฟต์แวร์ต้องการการออกแบบอินเทอร์เฟซ, เอกสาร, รวบรวมความต้องการ, グラフィックดีไซน, การนำเสนอ, แผนภาพ ฯลฯ หลังพัฒนาเสร็จก็มีการทดสอบ, การตลาด, โฆษณา ฯลฯ
- เขียนโค้ด (Coding)
หากเก่งภาษาโปรแกรมมิ่งเฉพาะ สามารถมีส่วนร่วมเขียนโมดูล, แพตช์, ส่วนของโปรแกรม เลือกโปรเจกต์ที่ตรงทักษะและเริ่มต้น
- วางแผนจัดงาน (Event Planning)
จัดงานอภิปราย, สัมมนาในโรงเรียน/มหาวิทยาลัย จัดแฮกกาธอนให้นักศึกษาและนักพัฒนา ตั้งแต่จองสถานที่, ส่งเชิญ, จัดผู้เข้าร่วม, ความปลอดภัย, อุปกรณ์เทคโนโลยี สาธิตทักษะการจัดการ
- ออกแบบ (Design)
ออกแบบหน้าจอผู้ใช้, โลโก้, อินเทอร์เฟซ, โมเดลฮาร์ดแวร์ ปรับปรุงอินเทอร์เฟซเก่า ออกแบบเสื้อ, แบนเนอร์ ทักษะการวาด, HTML, CSS, Angular ช่วยชุมชนได้ สิ่งสำคัญคือจินตนาการ
- เขียนเอกสาร (Documentation)
หากคุณอธิบายได้ดี สามารถมีส่วนร่วมเขียนเอกสารโปรเจกต์ เช่น จดหมายข่าว, บทความ, คู่มือซอฟต์แวร์/ผู้ใช้, SRS, SDD, บทเรียน, คู่มือผู้ใช้ขั้นตอน, สไลด์นำเสนอ ฯลฯ
- วิธีอื่นๆ
- รีวิวโค้ด, เอกสาร
- ตอบคำถามในเว็บไซต์ เช่น Stack Overflow, Quora
- สาธิตผ่านวิดีโอ
- สอนคลาสออนไลน์
- ไม่ได้เป็นซอฟต์แวร์อย่างเดียว หนังสือ, สูตรอาหาร ก็เป็นส่วนหนึ่งของโอเพนซอร์ส
วิธีเริ่มต้นมีส่วนร่วม
- ค้นหาเว็บไซต์โอเพนซอร์สที่มีโปรเจกต์
- ลงทะเบียนเป็นผู้มีส่วนร่วม
- ค้นหาหัวข้อที่สนใจ
- ทุกโปรเจกต์มีไดเรกทอรีผู้มีส่วนร่วม
- ตรวจสอบ Issues ที่เปิดอยู่
- เรียนรู้ผ่านแชทและการอภิปรายเกี่ยวกับโปรเจกต์
- เข้าใจลึกก่อนเริ่มต้น
- ยืนยันว่าโปรเจกต์ถูกต้อง/น่าเชื่อถือ
- พร้อมเริ่มต้นแล้ว
ตัวอย่างแพลตฟอร์มโอเพนซอร์ส
- GitHub Explore
- Open Source Friday
- First Timers Only
- CodeTriage
- 24 Pull Requests
- Up For Grabs
- Contributor-ninja
- First Contributions
- SourceSort