ไม่คิดว่าจะเขียนเรื่องนี้เพราะเรื่องโอเพนซอร์สซอฟต์แวร์และวงจรเชิงบวก สมบูรณ์ หรือ Completeness Positive Cycle for Open Source Software นี้เป็นเรื่องที่เข้าใจได้ยาก ออกจะขวางโลกธุรกิจ ขวางโลกในมุมมองของคนในธุรกิจซอฟต์แวร์พอสมควร เพราะธุรกิจซอฟต์แวร์ที่เอาซอฟต์แวร์โอเพนซอร์สไปใช้หรือนำไปจำหน่ายมักเน้น ไปในแนวทางธุรกิจในแบบที่เห็นแก่ตัว บางคนก้อเรียกให้สวยหรูว่ามันเป็น Business Model อย่างหนึ่ง ซึ่งผมเองไม่ค่อยเห็นด้วยสักเท่าไร หากคุณยังนึกภาพไม่ออกผมจะยกตัวอย่างง่ายๆ ให้ทำความเข้าใจกัน

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

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

โอเพนซอร์ส ซอฟต์แวร์และวงจรเชิงบวกสมบูรณ์ในระดับชุมชนและนักพัฒนาจะเกิดขึ้นอย่าง สมบูรณ์ ผมขอยกตัวอย่างที่เห็นได้ชัดซึ่งเกิดเมื่อไม่นานมานี้ Ubuntu Intrepid Ibex ในรุ่น Beta ไม่สามารถพิมพ์ภาษาไทยโดยลำดับของการพิมพ์อักขระจะผิดเพี้ยนไป บักนี้ถูกแจ้งไปยังกลุ่มนักพัฒนาซึ่งนักพัฒนาก้อได้รับไปแก้ไข ซึ่งคาดว่าจะแก้ไม่ทันในรุ่น release อย่างแน่นอน แต่ชุมชนผู้ใช้ต่างพยายามอธิบายในกรณีต่างๆ ว่าเกิดเหตุการณ์เช่นนี้ได้อย่างไร ก้อทำให้นักพัฒนาสามารถปะติดปะต่อหาจุดแก้ไขจนเจอและแก้ไขได้ทันท่วงที นี่เป็นตัวอย่างที่สื่อถึงวงจรเชิงบวกสมบูรณ์ในระดับชุมชนและนักพัฒนาเห็น ได้ชัดเจน ในปัจจุบันโอเพนซอร์สซอฟต์แวร์ไม่ได้มองในระดับระดับชุมชนและนักพัฒนา เท่านั้น ยังมีกลุ่มธุรกิจที่ต้องการเข้ามาหยิบนวตกรรมใหม่ที่เกิดจากชุมชนโอเพนซอร์ส โดยใช้หลากหลายวิธีการซึ่งวิธีการยอดนิยมก้อคงเป็นการเอาโอเพนซอร์ส ซอฟต์แวร์มาใช้ ประยุกต์ แก้ไข ปรับแต่ง เปลี่ยนเป็นบริการและโซลูชั่น ต่างๆ โดยที่ชุมชนและนักพัฒนาไม่ได้มีส่วนในซอฟต์แวร์นั้นเลย นวตกรรม (หรืออาจไม่มีนวตกรรมเลยก้อได้) ที่กลุ่มธุรกิจเอาไปแสวงหาผลประโยชน์ไม่ได้ถูกนำมาป้อนกลับให้ชุมชนและนัก พัฒนาแข็งแรงมากขึ้นแต่กลับอ่อนแอลง เพราะการทำแบบนี้เป็นการฆ่าชุมชนและนักพัฒนาทางอ้อม

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

คิดว่าจะไม่มาเขียนเรื่องนี้อีกก้ออดไม่ได้ครับ เพราะว่าแนวคิดในบ้านเรามันออกจะขัดกับแนวคิดโอเพนซอร์สและหลักปรัชญาที่ควรจะเป็นเสียมากซึ่งผมมองว่าอุตสาหกรรมซอฟต์แวร์ในบ้านเราจะไม่ได้อะไรเลยนอกจากการดาวน์โหลดโค้ดแล้วปะยี่ห้อใหม่ขายหรือทำได้เท่าที่มีคนทำให้ ไม่เกิดสิ่งใหม่ไม่เกิด innovation ใหม่ๆ ซึ่งเป็นเรื่องที่น่าเสียดาย ผมได้พูดคุยกับผู้ประกอบการหลายรายที่อยู่ใน Software Park ซึ่งส่วนใหญ่เป็น Tailor-Made หรือรับจ้างทำของตั้งแต่ต้นเริ่มจากศูนย์ บางรายก้อ reuse โครงการของอีกที่นึงมา modified ให้ใช้ได้กับอีกที่หนึ่ง บางรายก้อใช้โอเพนซอร์สซอฟต์แวร์นี่แหละเอาไปทำให้ดูค้า เช่น เว็บไซต์ ระบบงานเอกสาร ระบบคลังความรู้ ฯลฯ เอาล่ะคุณน่าจะมองเห็นภาพของธุรกิจอุตสาหกรรมซอฟต์แวร์ใมนบ้านเราบ้างนิดๆ หน่อยๆ พอหอมปากหอมคอ อ้อ อันนี้ไม่รวมถึงพวก partner จากบริษัทยักษ์ใหญ่ข้ามชาตินะครับ ฮะๆ ธุรกิจซอฟต์แวร์ในบ้านเรามีคู่แข่งเยอะจริงๆ

เอาล่ะจากการโหมโรงเมื่อหลายปีก่อนเกี่นสกับโอเพนซอร์สได้มีการนำเอาซอฟต์แวร์โอเพนซอร์สไปใช้งานกันมากขึ้น ไม่ว่าจะเป็นธุรกิจซอฟต์แวร์แบบจ้างทำของ หรือการบริการแบบครบวงจรอย่างธุรกิจบริการพื้นที่เว็บไซต์ รับทำเว็บ ฯลฯ เท่าที่สังเกตจากช่วงเปลี่ยนผ่านของ CMS รายหนึ่งในต่างประเทศ ไม่ต้องอ้อมค้อมละกัน จาก Mambo ไปเป็น Joomla การเปลี่ยนผ่านครั้งนั้นสร้างผลกระทบหลายอย่างซึ่งไม่ได้เป็นผลกระทบทางตรงแต่เป็นทางอ้อม คือแนวทางการพัฒนา component ของ Mambo ก่อปัญหาเกิดช่องโหว่ของ component หลายตัวทำให้เกิดการ crack เว็บครั้งใหญ่โดยการยิง script ไปยังเว็บต่างๆ ที่ใช้ Mambo เรียกได้ว่าเจ็บตัวกันไปหลายรายเลยทีเดียว และที่แน่นอนผู้ประกอบการหลายรายในไทยก้อโดนโวยจากลูกค้าที่ส่งมอบงานไปแล้ว ซึ่งผู้ประกอบการหลายรายก้อได้มาปรึกษาผมเช่นกัน (ไม่ขอเอ่ยชื่อละกันนะ) ถามไปถามมาปรากฏว่าผู้ประกอบการเองก้อยังไม่เข้าใจการพัฒนาซอฟต์แวร์แบบโอเพนซอร์ส และยังไม่เข้าใจโอเพนซอร์สเสียด้วยซ้ำซึ่งเป็นเรื่องน่าตกใจ เขาเพียงบอกกับผมว่ามันมีให้ดาวน์โหลดมาใช้ มันง่ายดี แต่ไม่รู้ทำไมโดนแฮ็ก

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

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

1. เข้าร่วมกลุ่มเมล์ หรือ เมลลิงลิส เพื่อดูความเคลื่อนไหวของโครงการ แสดงความเห็น หรือแนวคิดใหม่ในกลุ่มเมล์
2. เข้าร่วมกลุ่มฟอรัม อาจเป็นฟอรัมของผู้ใช้ หรือผู้พัฒนาตามความต้องการหรือความสามารถที่จะช่วยเหลือได้
3. เข้าร่วมงานประชุมสัมนาหรืองานที่จัดโดยชุมชนเพื่อคุณจะได้พบตัวเป็นๆ ของนักพัฒนา หรือคนที่อยู่ในชุมชน คุณจะได้กลุ่มเพื่อนนักพัฒนาและกลุ่มผู้ใช้ที่เห็นหน้าเห็นตากันอย่างชัดเจน
4. รายงานข้อผิดพลาดต่างๆ ผ่านทาง bug tracker และติดตามการแก้ไขอย่างใกล้ชิด
5. หากทีมพัฒนาของคุณสามารถแกะโค้ด ดีบักในจุดบกพร่องต่างๆ ควรแจ้งวิธีการแก้ไข หรือ patch ของคุณให้กับทีมพัฒนาต้นน้ำ ไม่ต้องกลัวว่าโค้ดไม่สวย หากคุณสามารถอธิบายได้ว่าปัญหาเกิดจากอะไร และจะแก้ไขโดยวิธีใดได้บ้าง ทีมนักพัฒนาต้นน้ำจะสามารถไล่ปัญหาและ submit patch ของคุณได้ทันท่วงที
6. หากคุณไม่ต้องการลงแรงมาก สามารถลงขันเป็น sponsor ของชุมชนซอฟต์แวร์นั้นๆ ในการจัดกิจกรรมต่างๆ
7. หากคุณไม่อยากลงขัน คุณสามารถช่วยกระจายความรู้โดยการถ่ายทอดความรู้ให้กับ user group โดยการอบรม การบรรยายพิเศษ ฯลฯ

เอา 7 ข้อง่ายๆ แค่นี้คุณก้อสามารถเป็นส่วนหนึ่งของวงวรป้อนกลับเชิงบวกสมบูรณ์ได้แล้วครับ มาลงในรายละเอียดใน 7 ข้อข้างต้นกันดีกว่าครับว่าคุณจะได้เรียนรู้อะไรบ้างจาก 7 ข้อนี้

เริ่มจากการเข้าร่วมกลุ่มเมล์ เมล์ลิงลิส กลุ่มฟอรัม คุณจะรู้จักคนในชุมชนมากขึ้น ทั้งนักพัฒนา ผู้ใช้งาน ปัญหาที่เกิดขึ้น ฯลฯ คุณสามารถช่วยเหลือพวกเขาได้ และเป็นส่วนหนึ่งในการผลักดันให้เกิดการพัฒนาสิ่งใหม่ๆ ในสิ่งที่คุณคิดต่อยอดได้โดยที่คุณไม่ต้องลงมือทำเลยก้อได้ แต่การรู้จักผู้ใช้หรือนักพัฒนามากขึ้นคุณจะรู้ว่ากลไกในการพัฒนาซอฟต์แวร์ตัวนั้นเป็นอย่างไร ขั้นตอน วิธีการ ระเบียบ ฯลฯ ถ้าคุณเป็นผู้ประกอบการรายใหม่ที่ไม่คุ้นกับการ release เวอร์ชั่นเป็นตัวเลขหลักพัน คุณก้อจะได้เห็นกันคราวนี้แหละครับ การเข้าร่วมงานประชุมสัมนาหรืองานที่จัดโดยชุมชน คุณจะได้เรียนรู้และได้รับ feed back จากกลุ่มผู้ใช้และคุณสามารถเสนอไอเดียใหม่ๆ ได้ด้วย การรายงานข้อผิดพลาด การดีบักโค้ด ตลอดจนการ patch ในโครงการซอฟต์แวร์นั้นๆ คุณจะได้เรียนรู้ขั้นตอนการพัฒนา การ submit code ของทีมพัฒนาหลัก วัฒนธรรมการทำงาน ฯลฯ การเป็น sponsor ใจป้ำในงานหรือกิจกรรมต่างๆ ของชุมชนคุณสามารถประกาศตัวเองได้ว่าเป็นผู้สนับสนุนรายหนึ่งของชุมชนและเป็นหนึ่งในกลุ่มพวกเขาได้ การถ่ายทอดความรู้สู่ชมชนผ่านทาง wiki หรือการจัดสัมนาหรือบรรยายพิเศษเป็นโอกาสหนึ่งในการพบปะกลุ่มผู้ใช้หรือกลุ่มคนที่จะหันมาใช้งานซอฟต์แวร์โอเพนซอร์สที่คุณได้มีส่วนร่วมซึ่งมากบ้างน้อยบ้าง ก้อจะทำให้คุณประมาณจำนวนจำนวนผู้ใช้ และกลุ่มผู้ใช้ซอฟต์แวร์อื่นๆ ได้คร่าวๆ เอาล่ะครับทุกอย่างมันมีข้อดีและข้อเสียแต่อย่างว่าล่ะครับ ผมอยากให้ผู้ประกอบการลงมาเล่นกับซอฟต์แวร์โอเพนซอร์สอย่างจริงจังไม้ว่าจะเป็นการ contributor หรือการ sponsor ทั้งทางตรงและทางอ้อมคุณจะเข้าใจได้ว่าโอเพนซอร์สซอฟต์แวร์เป็นอย่างไร วัฒนธรรมการทำงาน และการพัฒนาซอฟต์แวร์แบบโอเพนซอร์สเป็นอย่างไร เอาล่ะครับให้ผมเขียนออกมาทั้งหมดคุณคงไม่ได้อะไรจากการอ่านบทความที่ผมเขียนหรอกครับ ลองเลือกซอฟต์แวร์โอเพนซอร์สที่คุณทำตลาดอยู่สิครับแล้วเล่นกับมันให้เต็มที่