จะทราบได้อย่างไรว่าโครงการโอเพ่นซอร์สนั้นมีผู้ใหญ่เพียงพอที่จะใช้ในผลิตภัณฑ์หรือไม่?


15

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

ตอนนี้ฉันกังวลเล็กน้อยเกี่ยวกับปริมาณความเสี่ยงที่ฉันสัมผัสโดยใช้โครงการโอเพ่นซอร์สของโจ - โบล ถ้าใช้ฉันไปถึง 95% ของที่นั่นบางทีที่เหลืออีก 5% อาจเพิ่มหรือแก้ไขได้ง่าย บางทีมันอาจจะไม่สำคัญ

ผู้คนจะทราบได้อย่างไรว่าโครงการโอเพ่นซอร์สนั้นมีผู้ใหญ่พอที่จะใช้ในผลิตภัณฑ์

นี่ไม่ใช่โครงการงานอดิเรกดังนั้นความเสถียรการบำรุงรักษา ฯลฯ จึงเป็นสิ่งสำคัญยิ่ง


คุณไม่มีทางรู้แน่นอน Windows มีความสมบูรณ์เพียงพอหรือไม่ ทดสอบและพยายามติดต่อผู้พัฒนา - ผู้ติดต่อส่วนบุคคล (อีเมล?) สามารถพูดได้มากเกี่ยวกับสติ / วุฒิภาวะของโครงการที่พวกเขาสร้าง
SChepurin

3
สิ่งสำคัญเพียงอย่างเดียวคือไม่ว่าจะเหมาะกับความต้องการของคุณ ถ้าใช่คุณก็ใช้มัน หากยังไม่ "ครบกำหนด" (คำจำกัดความที่เป็นที่ถกเถียงกัน) คุณสามารถเริ่มมีส่วนร่วมกับรหัส / discussion / docs / community / bugs / xyz เพื่อทำให้เป็นผู้ใหญ่
treecoder

1
เขียนชุดการทดสอบหน่วยที่ดีจริง ๆ ก่อนที่คุณจะรวมไลบรารีใหม่ในผลิตภัณฑ์จริงของคุณ
Jim ในเท็กซัส

@greengit: มันไม่จำเป็นต้องตรงกับความต้องการทั้งหมดตราบใดที่ไม่มีทางเลือกที่เหมาะกับพวกเขาดีกว่า
Jan Hudec

คำตอบ:


17

เกณฑ์ที่ฉันใช้หากโครงการนั้นตรงกับความต้องการของฉัน:

  1. มีชุมชนที่ใช้งานอยู่กับผู้คนสามารถให้ความช่วยเหลือได้หรือไม่?
  2. ใบอนุญาตเหมาะสมกับการพัฒนาของฉันหรือไม่
  3. ผลิตภัณฑ์ยังอยู่ภายใต้การพัฒนาที่ใช้งานอยู่หรือไม่?
  4. มันเป็นกรอบที่ใช้กันทั่วไป?
  5. ฉันสามารถหาบทวิจารณ์ / บล็อกโพสต์ / อื่น ๆ ของผลิตภัณฑ์ได้หรือไม่

4 & 5 ไม่ได้ช่วยโครงการเฉพาะอย่างซึ่งดูเหมือนว่าคุณเป็น

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

ในตอนท้ายของวันหากมีบางสิ่งบางอย่างที่มาเปิดที่ 90% ของสิ่งที่คุณทำมันแยกเพิ่มฟังก์ชั่นพิเศษและส่งกลับไปยังชุมชน ฉันเคยทำสิ่งนี้มาก่อนในโครงการเชิงพาณิชย์


6
อย่าลืมว่า 95% ที่ทำไปแล้วหมายความว่ามีเหลืออีกเพียง 95% ที่ต้องทำ ....
mattnz

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

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

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

สำหรับห้องสมุดขนาดใหญ่สิ่งต่าง ๆ ยากขึ้น การเข้ามามีส่วนร่วมมากขึ้นโดยทั่วไปห้องสมุดที่มีขนาดใหญ่โชคดีที่ไม่เคลื่อนไหวเร็วเท่าที่ควร

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


3

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


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

ที่จริงแล้วฉันคิดว่ามันโอเคถ้าแม้กระทั่งตั๋วส่วนใหญ่เปิดให้ใช้งานได้สักพักและไม่ได้รับการแก้ไข นี่อาจเป็นตัวบ่งชี้ขนาดและการมีส่วนร่วมของฐานผู้ใช้มากกว่าสิ่งใด ๆ เกี่ยวกับซอฟต์แวร์เอง เพิ่มเติมเกี่ยวกับหัวข้อที่นี่: rants.org/2010/01/bugs-users-and-tech-debt
Karl Fogel

1

ข่าวไม่ดี แต่นั่นไม่ได้หมายความว่ามันไม่ถูกต้อง: คุณไม่รู้

หากมีการใช้งานแบบอะนาล็อกในการผลิตคุณจะรู้ว่ามันเป็นไปได้ แต่อย่างที่คุณบอกว่าไม่มี "ผู้เล่นหลัก" ใช้งานโครงการ

หากคุณพัฒนาขึ้นเองคุณก็จะรู้ แต่อย่างที่คุณพูดคุณไม่มีทรัพยากร

มันสมเหตุสมผลที่จะอยากรู้ แต่ ... คุณทำไม่ได้

ฉันหวังว่าคำตอบนี้จะช่วยได้เพราะคุณควรมีแผนฉุกเฉินในการดึงปลั๊กกับเทคโนโลยีใด ๆ ที่คุณพึ่งพา แต่ไม่ควบคุม ... และรู้ว่าคุณไม่รู้ว่ามันน่าเชื่อถือหรือไม่เป็นขั้นตอนในทิศทางนั้น


1

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

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.