10.12 ওপেন সোর্স বনাম ক্লোজড সোর্স
পরিচিতি ও প্রেরণা
প্রায় প্রতিটি আধুনিক সিস্টেম আপনার লেখা সফটওয়্যার, আপনার কেনা সফটওয়্যার এবং আপনার বিনামূল্যে নেওয়া সফটওয়্যারের মিশ্রণ। এর মধ্যে দুটির সঙ্গে একটি মৌলিক পছন্দ আসে: সফটওয়্যারটি ওপেন সোর্স না ক্লোজড সোর্স? ওপেন-সোর্স সফটওয়্যার (OSS) এমন লাইসেন্সে বিতরিত যা সবাইকে সোর্স কোড, প্রোগ্রাম সংজ্ঞায়িত মানুষ-পাঠযোগ্য নির্দেশ, ব্যবহার, অধ্যয়ন, পরিবর্তন ও পুনঃবিতরণের অধিকার দেয়। ক্লোজড-সোর্স সফটওয়্যার, যাকে মালিকানাধীন সফটওয়্যারও বলা হয়, একটি সমাপ্ত পণ্য হিসেবে বিতরিত যার সোর্স কোড বিক্রেতা গোপন রাখে। আপনি একটি লাইসেন্সের অধীনে এটি চালানোর অধিকার পান, কিন্তু এটি কীভাবে কাজ করে তা পরীক্ষা বা বদলানোর নয়। একটি মধ্যবর্তী বিভাগ, সোর্স-উপলব্ধ সফটওয়্যার, পড়ার জন্য সোর্স প্রকাশ করে কিন্তু ব্যবহার, পরিবর্তন বা পুনঃবিতরণ সীমিত করে। এটি দৃশ্যমান কিন্তু মান সংজ্ঞা অনুযায়ী উন্মুক্ত নয়।
তুলনার আগে দুটি স্পষ্টীকরণ গুরুত্বপূর্ণ। প্রথমত, “ফ্রি” দ্ব্যর্থক। সম্প্রদায় স্বাধীনতা-অর্থে-ফ্রি (পরিবর্তন ও ভাগ করার স্বাধীনতা, কখনো “libre” লেখা) এবং দাম-অর্থে-ফ্রি (শূন্য খরচ, “gratis”) আলাদা করে। ওপেন সোর্স স্বাধীনতা সম্পর্কে, অবশ্যম্ভাবীভাবে দাম নয়। দ্বিতীয়ত, ওপেন-সোর্স লাইসেন্স দুটি পরিবারে বিভক্ত। অনুমোদনমূলক লাইসেন্স (যেমন MIT, BSD ও Apache 2.0) আপনাকে প্রায় সবকিছু করতে দেয়, কোডকে একটি ক্লোজড পণ্যে এম্বেড করাসহ। কপিলেফট লাইসেন্স (যেমন GNU General Public Licence, GPL) প্রয়োজন করে যে আপনি যে ডেরিভেটিভ কাজ বিতরণ করেন তাও একই উন্মুক্ত শর্তে প্রকাশিত হবে, একটি পারস্পরিকতার নিয়ম যাকে সমালোচকরা কখনো “ভাইরাল” ও সমর্থকরা “শেয়ার-অ্যালাইক” বলেন।
এই অধ্যায় পছন্দটি দুই দিক থেকে দেখে। একজন ভোক্তা হিসেবে আপনি ঠিক করেন একটি ওপেন-সোর্স বা মালিকানাধীন উপাদান গ্রহণ করবেন কি না। একজন উৎপাদক হিসেবে আপনি ঠিক করেন আপনার গড়া সফটওয়্যার ওপেন-সোর্স করবেন কি না। বড় এন্টারপ্রাইজ এবং বিশেষত সরকারের জন্য উভয় সিদ্ধান্ত লাইসেন্স ফাইলের চেয়ে অনেক বেশি ওজন বহন করে। তারা ক্রয় (অধ্যায় 10.3), ডিজিটাল সার্বভৌমত্ব (অধ্যায় 10.11), সরবরাহ-শৃঙ্খল নিরাপত্তা (অধ্যায় 4.2), আন্তঃচালনযোগ্যতা (অধ্যায় 3.8) এবং গড়া-বা-কেনা হিসাব (অধ্যায় 6.1) স্পর্শ করে।
মূল নীতিসমূহ
- “উন্মুক্ত” সংজ্ঞায়িত করে লাইসেন্স, দাম নয়। লাইসেন্স পড়ুন; বিনামূল্যে এবং ওপেন-সোর্স ভিন্ন দাবি।
- কোনো মডেলই সহজাতভাবে বেশি নিরাপদ নয়। দুটিই চমৎকার বা অবহেলাপূর্ণ হতে পারে; কোডের চারপাশের চর্চা এর উন্মুক্ততার চেয়ে বেশি গুরুত্বপূর্ণ।
- উন্মুক্ততা একটি নির্ভরতা-হ্রাস লিভার। সোর্সে প্রবেশাধিকার বিক্রেতা লক-ইন-এর বিরুদ্ধে চূড়ান্ত সুরক্ষা।
- পরিচালনাগত বোঝা সবসময় আপনার। পাওয়ার জন্য-ফ্রি কখনো চালানোর জন্য-ফ্রি নয়; মালিকানার মোট খরচ প্রকৃত গল্প বলে।
- পৃথককারী ক্লোজড থাকে; পণ্যায়িত খুলতে পারে। যা আপনাকে আলাদা করে না তা ওপেন-সোর্স করুন; যা করে তা পাহারা দিন।
- কপিলেফটের পরিণতি আছে। আপনি বিতরণ করা পণ্যে কপিলেফট কোড এম্বেড করার আগে পারস্পরিকতা বাধ্যবাধকতা বুঝুন।
- একটি জীবন্ত সম্প্রদায় সম্পদ; একটি পরিত্যক্ত রিপোজিটরি দায়। কেবল লাইসেন্স নয়, প্রকল্প বিচার করুন।
সুপারিশ
কেবল লাইসেন্স নয়, প্রকল্প দিয়ে একটি উপাদান মূল্যায়ন করুন
যেকোনো নির্ভরতা, ওপেন-সোর্স বা মালিকানাধীন, গ্রহণের আগে তার স্বাস্থ্য মূল্যায়ন করুন: রিলিজ ছন্দ, রক্ষণাবেক্ষণকারীর সংখ্যা ও বৈচিত্র্য, নিরাপত্তা প্রতিবেদনে সাড়াশীলতা, এবং গ্রহণের বিস্তৃতি। একটি একক-রক্ষণাবেক্ষণকারী ওপেন-সোর্স লাইব্রেরি এবং একটি ছোট মালিকানাধীন বিক্রেতা একই বাস-ফ্যাক্টর ঝুঁকি বহন করে (একজন বা কয়েকজন মূল ব্যক্তি ছেড়ে গেলে প্রকল্প ধসে পড়ার বিপদ)। বিস্তৃত অবদানকারী ভিত্তিসহ বা আর্থিকভাবে সুস্থ বিক্রেতার উপাদান পছন্দ করুন, এবং মূল্যায়ন যথাযথ অনুসন্ধানের অংশ হিসেবে রেকর্ড করুন (অধ্যায় 10.2, 4.2)।
লাইসেন্স প্রথম-শ্রেণির বাধ্যবাধকতা হিসেবে পড়ুন ও অনুসরণ করুন
প্রতিটি উপাদান ও তার লাইসেন্সের একটি তালিকা রাখুন, এবং কোন লাইসেন্স পরিবার কোন ব্যবহারের জন্য গ্রহণযোগ্য তার একটি নীতি প্রয়োগ করুন। জটিল পার্থক্য হলো কপিলেফট। অনুমোদনমূলক কোড (MIT, Apache 2.0) সাধারণত ক্লোজড পণ্যে অবাধে এম্বেড করা যায়। শক্তিশালী কপিলেফট (GPL) আপনাকে আপনার নিজের বিতরিত ডেরিভেটিভ একই শর্তে প্রকাশ করতে বাধ্য করতে পারে। স্বয়ংক্রিয় সফটওয়্যার কম্পোজিশন অ্যানালাইসিস (SCA) ব্যবহার করুন, যে টুল আপনার নির্ভরতা স্ক্যান করে উপাদান, লাইসেন্স ও জানা দুর্বলতা শনাক্ত করে, এবং একটি সফটওয়্যার বিল অব ম্যাটেরিয়ালস (SBOM) তৈরি করুন, একটি পণ্যের প্রতিটি উপাদানের একটি আনুষ্ঠানিক তালিকা (অধ্যায় 10.3, 4.2)।
নিরাপত্তা উন্মুক্ততা নয়, চর্চা দিয়ে বিচার করুন
“অনেক চোখ” যুক্তি (লিনাসের সূত্র: “যথেষ্ট চোখ থাকলে সব বাগ অগভীর”) কারণে ধরে নেবেন না ওপেন সোর্স নিরাপদ। এবং অস্পষ্টতার মাধ্যমে নিরাপত্তা (সোর্স লুকালে ত্রুটি লুকায় এমন ত্রুটিপূর্ণ বিশ্বাস) দিয়ে মালিকানাধীন কোড নিরাপদ ধরে নেবেন না। অনেক চোখ কেবল তখনই সাহায্য করে যখন যোগ্য মানুষ আসলে দেখে, এবং অনেক ব্যাপকভাবে ব্যবহৃত প্রকল্প পাতলাভাবে রক্ষণাবেক্ষিত। দুটি মডেলই সরবরাহ-শৃঙ্খল ঝুঁকি বহন করে: ওপেন সোর্স আপসকৃত বা পরিত্যক্ত নির্ভরতার মাধ্যমে, মালিকানাধীন অস্বচ্ছ কোড ও আপডেট চ্যানেলের মাধ্যমে যা আপনি পরীক্ষা করতে পারেন না। মডেল নির্বিশেষে সংস্করণ পিন করুন, উৎপত্তি যাচাই করুন, নিরন্তর স্ক্যান করুন এবং পরামর্শ পর্যবেক্ষণ করুন (অধ্যায় 4.2)।
প্রস্থান ও আন্তঃচালনযোগ্যতার জন্য নকশা করুন
যে উপাদান উন্মুক্ত মান ও বহনযোগ্য ডেটা ফরম্যাটে কথা বলে তা পছন্দ করুন, যাতে পরে প্রতিস্থাপন করতে পারেন (অধ্যায় 3.8, 10.11)। ওপেন সোর্সে আপনি চূড়ান্ত প্রস্থান পান: একটি প্রকল্প থমকে গেলে আপনি তা ফর্ক করতে পারেন (আপনার নিজস্ব কপি তৈরি ও রক্ষণাবেক্ষণ)। মালিকানাধীন সফটওয়্যারে আগে সুরক্ষা আলোচনা করুন: উন্মুক্ত ফরম্যাটে ডেটা রপ্তানি, নথিবদ্ধ API, এবং সোর্স-কোড এসক্রো (একটি আইনি ব্যবস্থা যেখানে বিক্রেতা তৃতীয় পক্ষের কাছে সোর্স জমা দেয়, বিক্রেতা ব্যর্থ হলে আপনাকে ছাড়া হয়)। এমনভাবে নকশা করুন যাতে কোনো একক উপাদান, কোনো ধরনেরই, আপনার সিস্টেমকে জিম্মি করতে না পারে।
স্টিকার মূল্য নয়, মালিকানার মোট খরচ ওজন করুন
কেবল লাইসেন্স ফি নয়, অধিগ্রহণ, একীকরণ, পরিচালনা, সহায়তা, প্রশিক্ষণ, আপগ্রেড এবং শেষ পর্যন্ত প্রতিস্থাপনসহ পূর্ণ আজীবন খরচ, মালিকানার মোট খরচ (TCO) দিয়ে বিকল্প তুলনা করুন। ওপেন সোর্স প্রায়ই লাইসেন্সিং খরচের বদলে উচ্চতর পরিচালনাগত ও কর্মী খরচ নেয়। মালিকানাধীন সফটওয়্যার প্রায়ই পূর্বাভাসযোগ্য সাবস্ক্রিপশন ফির বদলে লক-ইন ও কম নিয়ন্ত্রণ নেয়। মডেলের নিজস্ব খরচ অন্তর্ভুক্ত করুন: স্ব-সমর্থিত ওপেন সোর্স অভ্যন্তরীণ দক্ষতা চায়, আর মালিকানাধীন সফটওয়্যার বিক্রেতা-ব্যবস্থাপনা সামর্থ্য চায়।
উৎপাদক হিসেবে, যা আপনাকে আলাদা করে না তা ওপেন-সোর্স করুন
আপনার নিজস্ব সফটওয়্যারকে যা প্রতিযোগিতামূলক বা মিশন সুবিধা দেয় এবং যা অপৃথককারী নল-কাজ তাতে শ্রেণিবদ্ধ করুন। পৃথককারী মালিকানাধীন রাখুন। পণ্যায়িত অবকাঠামো ওপেন-সোর্স করার কথা ভাবুন, যেখানে একটি সম্প্রদায় রক্ষণাবেক্ষণ ও উন্নতি ভাগ করতে পারে। সরকারের জন্য স্বচ্ছতা, পুনঃব্যবহার ও সার্বভৌমত্বের চালক হিসেবে “জনগণের অর্থ, জনগণের কোড” (করদাতাদের অর্থায়িত সফটওয়্যার ডিফল্টে সর্বজনীনভাবে উপলব্ধ হওয়া উচিত এই নীতি) ওজন করুন (অধ্যায় 10.5, 10.11)। সুচিন্তিতভাবে লাইসেন্স বাছুন: গ্রহণ সর্বাধিক করতে অনুমোদনমূলক, ইকোসিস্টেম উন্মুক্ত রাখতে কপিলেফট।
ট্রেড-অফ: সুবিধা ও অসুবিধা
| মাত্রা | ওপেন সোর্স | ক্লোজড / মালিকানাধীন |
|---|---|---|
| অধিগ্রহণ খরচ | সাধারণত পেতে শূন্য | লাইসেন্স বা সাবস্ক্রিপশন ফি |
| মালিকানার মোট খরচ | খরচ পরিচালনা ও কর্মীতে সরে | আরও পূর্বাভাসযোগ্য, কিন্তু লক-ইন প্রিমিয়াম |
| নিয়ন্ত্রণ ও কাস্টমাইজেশন | পূর্ণ: আপনি সোর্স পড়তে ও বদলাতে পারেন | বিক্রেতা যা উন্মুক্ত করে তাতে সীমিত |
| সহায়তা ও জবাবদিহি | সম্প্রদায়, বা অর্থ-প্রদত্ত তৃতীয় পক্ষ; কোনো একক দায়ী নেই | চুক্তিগত সহায়তা ও একজন স্পষ্ট জবাবদিহিযোগ্য পক্ষ |
| নিরাপত্তা অবস্থান | নিরীক্ষণযোগ্য; সত্যিই রক্ষণাবেক্ষিত হলে “অনেক চোখ” | বিক্রেতা-পরিচালিত; অস্বচ্ছ; অস্পষ্টতা সুরক্ষা নয় |
| দীর্ঘায়ু / পরিত্যাগ | রক্ষণাবেক্ষিত হলে ফর্ক করা যায়; তবু শুকিয়ে যেতে পারে | বিক্রেতার কার্যক্ষমতা ও রোডম্যাপের ওপর নির্ভর করে |
| বিক্রেতা লক-ইন | নিম্ন: সোর্স ও উন্মুক্ত ফরম্যাট প্রস্থান সম্ভব করে | মান ও এসক্রো দিয়ে প্রশমিত না হলে উচ্চ |
| ইকোসিস্টেম | উন্মুক্ত সম্প্রদায় ও আন্তঃচালনযোগ্যতা | বাছাই করা, সমন্বিত, কখনো প্রাচীরঘেরা |
পুনরাবৃত্ত টানাপোড়েন নিয়ন্ত্রণ বনাম সুবিধা ও জবাবদিহি। ওপেন সোর্স নিয়ন্ত্রণ, নিরীক্ষণযোগ্যতা ও লক-ইন থেকে মুক্তি সর্বাধিক করে, কিন্তু এটি আপনাকে সামর্থ্য, একীকরণ ও সহায়তা নিজে সরবরাহ করতে বলে। মালিকানাধীন সফটওয়্যার একটি সমর্থিত, সমন্বিত, জবাবদিহিযোগ্য পণ্য ডেলিভার করে যার একটি প্রয়োগযোগ্য চুক্তি আছে, কিন্তু এটি নিয়ন্ত্রণ ছেড়ে দেয় ও লক-ইন আমন্ত্রণ করে। সমাধান কদাচিৎ সব-বা-কিছু-না। বেশিরভাগ পরিণত সম্পত্তি ওপেন-সোর্স ভিত্তির সঙ্গে মালিকানাধীন সিস্টেম মেশায় যেখানে সহায়তা, জবাবদিহি বা বিশেষায়িত সামর্থ্য ট্রেড-অফ ন্যায্য করে।
আপনার দলের সঙ্গে আলোচনার প্রশ্ন
আমরা কি পাইপলাইনে স্বয়ংক্রিয় SCA ও SBOM দিয়ে একটি লাইসেন্স নীতি প্রয়োগ করি, বিশেষত পাঠানোর আগে শক্তিশালী কপিলেফট ধরতে? একটি বিতরিত মালিকানাধীন পণ্যে একটি GPL লাইব্রেরি এম্বেড করা আপনাকে নিজের সোর্স প্রকাশ করতে বাধ্য করতে পারে, এবং সেই চমক সাধারণত দেরিতে ভেসে ওঠে, যখন পূর্বাবস্থায় ফেরানো ব্যয়বহুল। প্রতিটি উপাদান ও তার লাইসেন্সের একটি তালিকা রাখুন, কোন লাইসেন্স পরিবার কোন ব্যবহারের জন্য গ্রহণযোগ্য তা প্রয়োগ করুন, এবং স্বয়ংক্রিয়ভাবে সফটওয়্যার কম্পোজিশন অ্যানালাইসিস চালান যাতে পাইপলাইন লঙ্ঘন আটকায়, পাঠানোর সময় একজন আইনজীবী ধরার বদলে। নিয়মমাফিক SBOM তৈরি করুন। একটি বড় বা সরকারি সম্পত্তির জন্য এটি সরবরাহ-শৃঙ্খল স্বাস্থ্যবিধিও এবং প্রায়ই ক্রয় প্রয়োজন। আপনার বর্তমান লাইসেন্স তালিকা, বা না থাকার ঘটনা, আনুন এবং নীতির মালিক কে ঠিক করুন।
একটি নির্ভরতা গ্রহণ করলে আমরা কি যথাযথ অনুসন্ধান হিসেবে প্রকল্প স্বাস্থ্য ও বাস-ফ্যাক্টর মূল্যায়ন করি? একটি একক-রক্ষণাবেক্ষণকারী ওপেন-সোর্স লাইব্রেরি এবং একটি ছোট মালিকানাধীন বিক্রেতা একই ঝুঁকি বহন করে: একজন বা কয়েকজন মূল ব্যক্তি ছেড়ে গেলে প্রকল্প ধসে পড়ে। কিছু গ্রহণের আগে রিলিজ ছন্দ, রক্ষণাবেক্ষণকারীর সংখ্যা ও বৈচিত্র্য, নিরাপত্তা প্রতিবেদনে সাড়াশীলতা এবং গ্রহণের বিস্তৃতি মূল্যায়ন করুন, এবং মূল্যায়ন রেকর্ড করুন। কোনো মডেলই ডিফল্টে নিরাপদ নয়; “অনেক চোখ” কেবল তখনই সাহায্য করে যখন যোগ্য মানুষ আসলে দেখে, এবং অনেক ব্যাপকভাবে ব্যবহৃত প্রকল্প পাতলাভাবে রক্ষণাবেক্ষিত। আপনার পণ্য সবচেয়ে বেশি যে তিন বা চারটি নির্ভরতার ওপর নির্ভর করে তা আনুন এবং প্রতিটির জন্য জিজ্ঞাসা করুন এটি আপনার সমস্যা হওয়ার আগে কতজন মানুষকে চলে যেতে হবে। উত্তর দিতে না পারলে সেই মূল্যায়নটিই আপনি নিজের কাছে ঋণী।
মালিকানাধীন কেনার সময় আমরা কি আগেই প্রস্থান সুরক্ষা নিশ্চিত করি? মালিকানাধীন সফটওয়্যার নিয়ন্ত্রণের বিনিময়ে জবাবদিহি ও সুবিধা দেয়, এবং লুকানো খরচ লক-ইন: সুইচিং খরচ যা একজন বিক্রেতাকে সামান্য প্রতিকারে মূল্য বাড়াতে বা সেবা খারাপ করতে দেয়। স্বাক্ষরের আগে যখন এখনো আপনার লিভারেজ আছে তখন সুরক্ষা আলোচনা করুন: উন্মুক্ত ফরম্যাটে ডেটা রপ্তানি, নথিবদ্ধ API, এবং বিক্রেতা ব্যর্থ হলে সোর্স ছাড়া সোর্স-কোড এসক্রো। ওপেন সোর্সে আপনার প্রস্থান ফর্ক করার সামর্থ্য; মালিকানাধীনে আপনাকে চুক্তিতে প্রস্থান লিখতে হয়। আপনার সবচেয়ে জটিল মালিকানাধীন সিস্টেম আনুন এবং জিজ্ঞাসা করুন বিক্রেতা দাম দ্বিগুণ করলে বা ডুবে গেলে আসলে কী হয়। উত্তর যদি “আমরা আটকা” হয়, নবায়নে চুক্তি ঠিক করুন।
আমরা নিজেরা যে সফটওয়্যার গড়ি তার জন্য কী ওপেন-সোর্স ও কী ক্লোজড রাখব তা কীভাবে ঠিক করি, এবং সেই সিদ্ধান্ত নেওয়ার কর্তৃত্ব কার? এক দিকে ভুল করলে আপনি ঠিক সেই কোড বিলিয়ে দেন যা আপনাকে আলাদা করে; অন্য দিকে ভুল করলে আপনি পণ্যায়িত নল-কাজ আঁকড়ে ধরেন যার রক্ষণাবেক্ষণ একটি সম্প্রদায় আনন্দে ভাগ করত। প্রতিদ্বন্দ্বী চাপ প্রকৃত: ইঞ্জিনিয়াররা একটি সর্বজনীন রিপোজিটরির নিয়োগ ও সুনামের সুবিধা চায়, যখন পণ্য ও আইন প্রতিদ্বন্দ্বীদের সুবিধা দেওয়া বা একটি নিরাপত্তা-সংবেদনশীল হিউরিস্টিক উন্মুক্ত করা নিয়ে চিন্তিত। আপনার সিস্টেমের মিশন-পৃথককারী বনাম অপৃথককারী অবকাঠামোয় একটি সৎ শ্রেণিবিন্যাস আনুন, এবং রিলিজ অনুমোদনকারী ব্যক্তি বা বোর্ডের নাম দিন, কারণ রিপোজিটরি যে ঠেলেছে তার করা অ্যাড হক সিদ্ধান্তই মুকুট-রত্ন ফাঁসের উপায়। একটি বড় এন্টারপ্রাইজের জন্য প্রশ্নটি পোর্টফোলিও কৌশল, এবং সরকারের জন্য তা “জনগণের অর্থ, জনগণের কোড”-এর সঙ্গে সংঘর্ষ করে, করদাতা-অর্থায়িত সফটওয়্যার ডিফল্টে সর্বজনীন হওয়া উচিত এই নীতি, তাই আগেই ঠিক করুন কোন ছাড় (জাতীয় নিরাপত্তা, প্রতারণা শনাক্তকরণ, ব্যক্তিগত ডেটা) কোডকে ক্লোজড রাখা ন্যায্য করে।
আমাদের গড়া-বা-কেনা তুলনা কি মালিকানার সম্পূর্ণ মোট খরচ ধরে, নাকি আমরা এখনো শূন্য লাইসেন্স ফিকে শূন্য খরচ গণ্য করি? ওপেন সোর্সের সবচেয়ে সাধারণ আর্থিক ভুল “পেতে ফ্রি”-কে “চালাতে ফ্রি” পড়া, তারপর আবিষ্কার করা যে একীকরণ, পরিচালনা, নিরাপত্তা সাড়া ও অর্থ-প্রদত্ত সহায়তা আপনার এড়ানো যেকোনো লাইসেন্সকে ছোট করে দেয়। টানাপোড়েন হলো একটি মালিকানাধীন সাবস্ক্রিপশন চালানে ব্যয়বহুল দেখায় যখন লক-ইন প্রিমিয়াম লুকায়, এবং একটি উন্মুক্ত উপাদান চালানে ফ্রি দেখায় যখন খরচ আপনার নিজস্ব কর্মীর ওপর সরায়। দুই বা তিনটি প্রকৃত সিদ্ধান্তের জন্য একটি সমান-সমান TCO মডেল আনুন: অধিগ্রহণ, একীকরণ, পরিচালনা, সহায়তা, প্রশিক্ষণ, আপগ্রেড, নিরাপত্তা সাড়া এবং শেষ পর্যন্ত প্রতিস্থাপন, প্রথম বছরের বদলে পূর্ণ আজীবনে দাম নির্ধারিত। একটি এন্টারপ্রাইজ বা সরকারি সম্পত্তিতে পরিচালনা মডেলের নিজস্ব খরচ যোগ করুন, কারণ স্ব-সমর্থিত ওপেন সোর্স অভ্যন্তরীণ দক্ষতা চায় যা আপনাকে নিয়োগ ও ধরে রাখতে হবে, এবং সেই লাইন বাদ দেওয়া তুলনাকে বিশ্লেষণ নয়, প্রমাণ গণ্য করুন।
আমরা কি একটি উপাদানের নিরাপত্তা তার চর্চা দিয়ে বিচার করি, নাকি উন্মুক্ততার লেবেলের ওপর ঝুঁকি, “অনেক চোখ” হোক বা ক্লোজড কোডের গোপনীয়তা? দুটি ডিফল্টই ফাঁদ: “অনেক চোখ” কেবল তখন রক্ষা করে যখন যোগ্য মানুষ আসলে কোড পর্যালোচনা করে, এবং অনেক ব্যাপকভাবে ব্যবহৃত উন্মুক্ত প্রকল্প একজন ক্লান্ত রক্ষণাবেক্ষণকারীর ওপর চলে, যেখানে আক্রমণকারীরা দেখবে না ভেবে চলা ক্লোজড সোর্স অস্পষ্টতার মাধ্যমে নিরাপত্তা, নিয়ন্ত্রণ নয়। বিতর্ক গুরুত্বপূর্ণ কারণ এটি বদলায় আপনি দুর্লভ নিরাপত্তা প্রচেষ্টা কোথায় ব্যয় করেন, এবং সৎ উত্তর হলো দুটি মডেলই সরবরাহ-শৃঙ্খল ঝুঁকি বহন করে, ওপেন সোর্স আপসকৃত বা পরিত্যক্ত নির্ভরতার মাধ্যমে এবং মালিকানাধীন আপনি পরীক্ষা করতে পারেন না এমন অস্বচ্ছ আপডেট চ্যানেলের মাধ্যমে। আপনার সবচেয়ে জটিল উপাদানের প্রমাণ আনুন: কে আসলে সেগুলো পর্যালোচনা করে, পরামর্শ কত দ্রুত প্যাচ হয়, সংস্করণ পিন ও উৎপত্তি যাচাই করা হয় কি না, এবং আপনি একটি SBOM তৈরি করেন কি না। একটি বড় বা সরকারি সম্পত্তির জন্য এটি ক্রয় ও নিরন্তর স্ক্যানিং বাধ্যবাধকতার সঙ্গে বাঁধুন, কারণ একজন নিয়ন্ত্রক জিজ্ঞাসা করবে আপনি কী পরীক্ষা করেছেন, সোর্স সর্বজনীন ছিল কি না নয়।
খাতভেদে দৃষ্টিভঙ্গি
স্টার্টআপ। সামান্য রানওয়েতে আপনি ওপেন-সোর্স ভিত্তির ওপর গড়েন কারণ আপনি লাইসেন্স ফি সামর্থ্য দিতে পারেন না এবং একটি প্রকল্প থমকে গেলে ফর্ক করার স্বাধীনতা চান। পাঠানোর আগে একটি কম্পোজিশন-অ্যানালাইসিস স্ক্যান চালান যাতে একটি শক্তিশালী-কপিলেফট লাইব্রেরি নীরবে আপনার নিজস্ব সোর্স প্রকাশ করতে বাধ্য না করে, এবং আপনার একটি প্রকৃত পৃথককারী কঠোরভাবে ক্লোজড রাখুন। নিয়োগে সাহায্য করলে একটি ছোট, অ-জটিল টুল ওপেন-সোর্স করুন, কিন্তু আপনি বহন করতে পারেন না এমন রক্ষণাবেক্ষণ বোঝায় কর্মী দেবেন না।
ছোট ব্যবসা। কোনো অভ্যন্তরীণ আইনি বা প্ল্যাটফর্ম বিশেষজ্ঞ নেই, লাইসেন্সকে আপনি আয়ত্ত করতে পারেন এমন বিষয়ের বদলে ভুল না পড়ার ঝুঁকি গণ্য করুন। যেখানে একজন বিক্রেতা প্যাচ ও জবাবদিহির মালিক সেখানে সমর্থিত মালিকানাধীন টুল বা বাণিজ্যিক ওপেন-সোর্স ডিস্ট্রিবিউশন পছন্দ করুন, কারণ আপনি চালাতে পারেন না এমন স্ট্যাক স্ব-সমর্থন একটি মিথ্যা সাশ্রয়। একটি ফ্রি উপাদান গ্রহণ করলে পরীক্ষা করুন তার লাইসেন্স আপনার ব্যবহার অনুমোদন করে এবং প্রকল্পটি আসলে রক্ষণাবেক্ষিত, পরিত্যক্ত নয়।
এন্টারপ্রাইজ। পরিসরে সমস্যা অনেক দল জুড়ে সামঞ্জস্য: একটি লিখিত লাইসেন্স নীতি, প্রতিটি পাইপলাইনে স্বয়ংক্রিয় সফটওয়্যার কম্পোজিশন অ্যানালাইসিস ও SBOM তৈরি, এবং প্রতি-দলের অভ্যাসের বদলে TCO-ভিত্তিক গড়া-বা-কেনা সিদ্ধান্ত। ওপেন ও মালিকানাধীন সফটওয়্যার একটি পোর্টফোলিও হিসেবে পরিচালনা করুন, ক্রয়ে উন্মুক্ত ফরম্যাট ও সোর্স-কোড এসক্রোর মতো প্রস্থান সুরক্ষা মানসম্মত করুন, এবং জটিল নির্ভরতার স্বাস্থ্য অনুসরণ করুন যাতে একটি একক পরিত্যক্ত প্রকল্প ঘটনা না হয়। উৎপাদক দিকও শাসন করুন, প্রতিষ্ঠান কী ওপেন-সোর্স করে বনাম ক্লোজড রাখে তার একটি স্পষ্ট নিয়মসহ।
সরকার। ক্রয় নিয়ম, স্বচ্ছতা কর্তব্য ও জনগণের কাছে জবাবদিহি প্রতিটি পছন্দ আকার দেয়। সংস্থা জুড়ে পুনঃব্যবহার ও ডিজিটাল সার্বভৌমত্ব এগিয়ে নিতে “জনগণের অর্থ, জনগণের কোড”, করদাতা-অর্থায়িত সফটওয়্যার ডিফল্টে সর্বজনীন হওয়া উচিত এই নীতি, ওজন করুন, যখন নিরাপত্তা-সংবেদনশীল বা ব্যক্তিগত-ডেটা কোডের জন্য সংকীর্ণ ছাড় রাখুন। যেকোনো মালিকানাধীন সরবরাহকারীর কাছ থেকে উন্মুক্ত ফরম্যাটে ডেটা রপ্তানি ও সোর্স-কোড এসক্রো প্রয়োজন করুন যাতে একজন বিক্রেতার ব্যর্থতা একটি জনসেবা আটকে না ফেলে, এবং অ-সংবেদনশীল সোর্স প্রকাশ করুন যাতে নাগরিকরা তাদের শাসন করা নিয়ম নিরীক্ষা করতে পারে।
উদাহরণ
স্টার্টআপ। তিন-প্রতিষ্ঠাতার একটি স্টার্টআপ তার পুরো পণ্য ওপেন-সোর্স ভিত্তির ওপর (Linux, একটি ওপেন-সোর্স ডেটাবেস, একটি ওয়েব ফ্রেমওয়ার্ক) গড়ে কারণ এটি লাইসেন্স ফি সামর্থ্য দিতে পারে না এবং একটি প্রকল্প থমকে গেলে ফর্ক করার স্বাধীনতা চায়। পাঠানোর আগে একজন প্রতিষ্ঠাতা একটি কম্পোজিশন-অ্যানালাইসিস স্ক্যান চালান এবং একটি শক্তিশালী-কপিলেফট লাইব্রেরি ধরেন যা তাদের মালিকানাধীন ম্যাচিং অ্যালগরিদম প্রকাশ করতে বাধ্য করত, তাই তারা এটিকে একটি অনুমোদনমূলকভাবে লাইসেন্সপ্রাপ্ত সমতুল্য দিয়ে বদলায়। তারা সেই অ্যালগরিদম, তাদের একমাত্র পৃথককারী, কঠোরভাবে ক্লোজড রাখে, এবং শুভেচ্ছা গড়তে ও ইঞ্জিনিয়ার আকর্ষণ করতে কেবল একটি ছোট অভ্যন্তরীণ লগিং টুল ওপেন-সোর্স করে।
এন্টারপ্রাইজ। একটি বড় বিমাকারী তার মূল প্ল্যাটফর্ম ওপেন-সোর্স ভিত্তির ওপর চালায়: Linux, একটি ব্যাপকভাবে ব্যবহৃত ওপেন-সোর্স ডেটাবেস এবং একটি কনটেইনার অর্কেস্ট্রেটর। কিন্তু এটি একটি মালিকানাধীন অ্যাকচুয়ারিয়াল-মডেলিং স্যুট কেনে, কারণ বিক্রেতার ডোমেইন দক্ষতা, নিয়ন্ত্রক সনদ ও সহায়তা চুক্তি ফির যোগ্য এবং কোনো তুলনীয় ওপেন বিকল্প নেই। এটি নল-কাজে জবাবদিহি ও প্যাচ পেতে বাণিজ্যিক ওপেন সোর্স (ওপেন উপাদানের বিক্রেতা-সমর্থিত ডিস্ট্রিবিউশন) এর জন্য সাবস্ক্রিপশন দেয়, যখন যে মূল্য নির্ধারণ অ্যালগরিদম এটিকে আলাদা করে তা কঠোরভাবে মালিকানাধীন ও অভ্যন্তরীণ রাখে। আদর্শের বদলে TCO বিশ্লেষণ (অধ্যায় 10.10) প্রতিটি পছন্দ চালায়।
সরকার। একটি জাতীয় কর সংস্থা, “জনগণের অর্থ, জনগণের কোড” নীতির অধীনে, ওপেন-সোর্স উপাদান ও উন্মুক্ত মানের (অধ্যায় 3.8) ওপর একটি নতুন সুবিধা-যোগ্যতা সেবা গড়ে, যাতে অন্য সংস্থা তা পুনঃব্যবহার করতে এবং নাগরিকরা নিয়ম নিরীক্ষা করতে পারে। এটি অ-সংবেদনশীল কোড একটি সর্বজনীন রিপোজিটরিতে প্রকাশ করে, নিরাপত্তার কারণে কেবল প্রতারণা-শনাক্তকরণ হিউরিস্টিক ক্লোজড রেখে। এটি বিক্রেতা লক-ইন কমায় এবং ডিজিটাল সার্বভৌমত্ব এগিয়ে নেয় (অধ্যায় 10.11)। ক্রয় নিয়ম (অধ্যায় 10.3) যেকোনো মালিকানাধীন উপাদানের কাছ থেকে উন্মুক্ত ফরম্যাটে ডেটা রপ্তানি ও সোর্স-কোড এসক্রো প্রয়োজন করে, সরবরাহকারী ব্যর্থ হলে ধারাবাহিকতার নিশ্চয়তা দিতে।
ব্যবসায়িক যুক্তি: প্রেরণা, ROI ও TCO
ওপেন সোর্সের আর্থিক আকর্ষণ, লাইসেন্স ফির অভাব, যুক্তির সবচেয়ে কম নির্ভরযোগ্য অংশ, কারণ অধিগ্রহণ TCO-র একটি ছোট ভগ্নাংশ। টেকসই প্রতিদান কৌশলগত: লক-ইন থেকে মুক্তি (পুনঃস্থাপত্য ছাড়া সরবরাহকারী বদলানো বা ছাড়ার সামর্থ্য), নিরাপত্তা ও সম্মতির জন্য নিরীক্ষণযোগ্যতা, দ্রুততর গ্রহণ কারণ ইঞ্জিনিয়াররা অঙ্গীকারের আগে চেষ্টা করতে পারে, এবং পুরো শিল্প জুড়ে পণ্যায়িত কোডের ভাগ করা রক্ষণাবেক্ষণ। বিপরীত খরচ প্রকৃত। আপনাকে একীকরণ, পরিচালনা, নিরাপত্তা সাড়া এবং প্রায়ই অর্থ-প্রদত্ত সহায়তা সরবরাহ করতে হবে, এবং একটি খারাপভাবে বাছা অরক্ষিত প্রকল্প যেকোনো লাইসেন্সের চেয়ে ঘটনায় বেশি খরচ করতে পারে।
মালিকানাধীন সফটওয়্যারের ব্যবসায়িক যুক্তি জবাবদিহি ও সুবিধা: পণ্যের জন্য দায়ী একক বিক্রেতা, আপনি প্রয়োগ করতে পারেন এমন একটি সহায়তা চুক্তি, সমন্বিত ফিচার এবং পূর্বাভাসযোগ্য বাজেট। এর লুকানো খরচ লক-ইন, সুইচিং খরচ যা একজন বিক্রেতাকে সামান্য প্রতিকারে মূল্য বাড়াতে বা সেবা খারাপ করতে দেয়, সঙ্গে বিক্রেতার সচ্ছলতা ও রোডম্যাপের ওপর নির্ভরতা। সাধারণ ব্যবসায়িক মডেল রেখা ঝাপসা করে: ওপেন কোর (মালিকানাধীন অর্থ-প্রদত্ত অ্যাড-অনসহ একটি উন্মুক্ত ভিত্তি), দ্বৈত লাইসেন্সিং (একই কোড কপিলেফট ও একটি অর্থ-প্রদত্ত বাণিজ্যিক লাইসেন্স উভয়ের অধীনে দেওয়া), সফটওয়্যার অ্যাজ এ সার্ভিস (SaaS) (সফটওয়্যার একটি হোস্টেড সেবা হিসেবে চলে যা আপনি ভাড়া নেন, যেখানে সোর্স অপ্রাসঙ্গিক হতে পারে কারণ আপনি কখনো বাইনারি ধরেন না), এবং সহায়তা/সাবস্ক্রিপশন মডেল যা অন্যথা ফ্রি কোডের চারপাশে সেবা বিক্রি করে।
একজন উৎপাদকের জন্য আপনার নিজস্ব অপৃথককারী সফটওয়্যার ওপেন-সোর্স করার ROI উল্লেখযোগ্য হতে পারে। বহিরাগত অবদানকারীরা আপনার রক্ষণাবেক্ষণ ভার কমায়। প্রকল্প নিয়োগ ও সুনামের সম্পদ হয়। বহিরাগত গ্রহণ আপনার মানকে ডি ফ্যাক্টো করে তোলে। সরকারের জন্য এটি সরকারি খাত জুড়ে স্বচ্ছতা ও পুনঃব্যবহার দেয়। কৌশলগত নিয়ম সরল: খরচ ভাগ করতে ও ইকোসিস্টেম বাড়াতে পণ্যায়িতকে ওপেন-সোর্স করুন, এবং বাকি সবকিছুর অর্থায়ন করা সুবিধা রক্ষা করতে পৃথককারীকে ক্লোজড রাখুন।
অ্যান্টি-প্যাটার্ন ও ফাঁদ
- “ফ্রি মানে ফ্রি”: শূন্য অধিগ্রহণ খরচকে শূন্য TCO গণ্য করা, তারপর পরিচালনা ও সহায়তায় কম অর্থায়ন।
- লাইসেন্স অন্ধত্ব: একটি বিতরিত মালিকানাধীন পণ্যে শক্তিশালী-কপিলেফট কোড এম্বেড করা এবং আপনি কখনো পরিকল্পনা করেননি এমন বাধ্যবাধকতা ট্রিগার করা।
- “অনেক চোখে” বিশ্বাস: একটি উন্মুক্ত প্রকল্প নিরীক্ষিত ধরে নেওয়া যখন তার একজন অতিরিক্ত-কাজের রক্ষণাবেক্ষণকারী এবং কোনো নিরাপত্তা পর্যালোচনা নেই।
- অস্পষ্টতার মাধ্যমে নিরাপত্তা: আক্রমণকারীরা পড়তে পারে না বলেই ক্লোজড সোর্স নিরাপদ বিশ্বাস করা।
- আদর্শগত পরমতা: প্রতিটি উপাদানে যোগ্যতা ও TCO দিয়ে বাছার বদলে “সব উন্মুক্ত” বা “সব মালিকানাধীন” আদেশ করা।
- উৎপত্তি উপেক্ষা: কোনো SBOM, সংস্করণ পিনিং বা সরবরাহ-শৃঙ্খল যাচাই ছাড়া নির্ভরতা টানা (অধ্যায় 4.2)।
- মুকুট-রত্ন ওপেন-সোর্স করা: ঠিক যে কোড আপনাকে আলাদা করে তা প্রকাশ করা, আপনার সুবিধা বিলিয়ে দেওয়া।
- ফর্ক-করে-ভুলে-যাওয়া: ফর্ক আসলে রক্ষণাবেক্ষণের সামর্থ্য ছাড়া একটি পরিত্যক্ত প্রকল্প ফর্ক করা।
পরিপক্বতা মডেল
স্তর 1 (সূচনা)। ওপেন-সোর্স ও মালিকানাধীন উপাদান সম্পত্তিতে অ্যাড হক ঢোকে। লাইসেন্স অপঠিত, কোনো তালিকা বা SBOM নেই, এবং মডেলের মধ্যে পছন্দ অভ্যাস বা কেবল দামে হয়। পরিত্যাগ ও লাইসেন্স ঝুঁকি কেবল কিছু ভাঙলে ভেসে ওঠে, এবং প্রতিটি দল নিজে প্রতিক্রিয়া জানায়।
স্তর 2 (বিকাশ)। কিছু দল মৌলিক চর্চা শুরু করে: একটি উপাদান ও লাইসেন্স তালিকা, গ্রহণযোগ্য লাইসেন্সের একটি মোটামুটি দৃষ্টি, এবং মাঝে মাঝে সফটওয়্যার কম্পোজিশন অ্যানালাইসিস। গড়া-বা-কেনা এবং উন্মুক্ত-বা-ক্লোজড সিদ্ধান্ত লিখে রাখা হয়, কিন্তু শৃঙ্খলা তালিগ্রস্ত এবং এক দল থেকে অন্যটিতে অসামঞ্জস্যপূর্ণ, তাই যেখানে অভ্যাস ধরেনি সেখানে একটি কপিলেফট বা বাস-ফ্যাক্টর চমক পিছলে যেতে পারে।
স্তর 3 (মানসম্মতকরণ)। একটি নথিবদ্ধ কাঠামো প্রতিষ্ঠান-ব্যাপী ভোগ ও উৎপাদন উভয়ই শাসন করে। উপাদান TCO ও প্রকল্প স্বাস্থ্যে বাছা হয়, লাইসেন্স পাইপলাইনে স্বয়ংক্রিয়ভাবে প্রয়োগ করা হয় যাতে লঙ্ঘন বিল্ড আটকায়, SBOM নিয়মমাফিক তৈরি হয়, এবং একটি স্পষ্ট নীতি বলে প্রতিষ্ঠান কী ওপেন-সোর্স করে বনাম ক্লোজড রাখে। উন্মুক্ত ফরম্যাট ও সোর্স-কোড এসক্রোর মতো প্রস্থান সুরক্ষা ক্রয়ে মান, এবং প্রতিটি দল নিজস্ব নিয়মের বদলে একই নিয়ম অনুসরণ করে।
স্তর 4 (ব্যবস্থাপনা)। কর্মসূচি ভিত্তিরেখার বিপরীতে মাপা ও নিয়ন্ত্রিত। প্রতিষ্ঠান পণ্য জুড়ে SBOM কভারেজ, নীতি লঙ্ঘনকারী নির্ভরতার অংশ, একটি প্রকাশিত নির্ভরতা দুর্বলতা প্যাচের গড় সময়, জটিল প্রকল্পের বাস-ফ্যাক্টর ও স্বাস্থ্য স্কোর, এবং প্রতিটি পছন্দকে ন্যায্য করা প্রাক্কলনের বিপরীতে উপলব্ধ TCO-র মতো মেট্রিক অনুসরণ করে। সীমা কাজ ট্রিগার করে: যে উপাদানের রক্ষণাবেক্ষণ থমকে যায় বা প্যাচ বিলম্ব লক্ষ্য ছাড়িয়ে ভেসে যায় তা প্রমাণে প্রতিস্থাপনের জন্য পতাকাঙ্কিত হয়, এবং উন্মুক্ত-বা-ক্লোজড ও গড়া-বা-কেনা সিদ্ধান্ত অভ্যাসে রক্ষা না করে সংখ্যার বিপরীতে পর্যালোচিত হয়।
স্তর 5 (সমন্বয়)। ওপেন-সোর্স কৌশল একটি সুচিন্তিত ব্যবসায়িক সামর্থ্য, প্রতিষ্ঠান জুড়ে একীভূত ও নিরন্তর উন্নত। প্রতিষ্ঠান যে প্রকল্পের ওপর নির্ভর করে তাতে অবদান রাখে এবং কখনো তত্ত্বাবধান করে, তার অপৃথককারী সফটওয়্যার নিয়মমাফিক ওপেন-সোর্স করে, এবং নির্ভরতা-স্বাস্থ্য ও TCO ডেটা ক্রয়, নিরাপত্তা ও পণ্য পরিকল্পনায় ফেরত খাওয়ায়। এটি নিয়মিত তার ওপেন ও মালিকানাধীন সফটওয়্যার পোর্টফোলিও পুনঃভারসাম্য করে, খরচ, ঝুঁকি, সার্বভৌমত্ব ও কৌশলগত সুবিধার পরিবর্তন সংকট বাধ্য করার আগেই খাপ খাইয়ে।
আলোচনার ভাবনা
- আপনার সম্পত্তির কোথায় একটি একক বিক্রেতা বা রক্ষণাবেক্ষণকারী হারানো অস্তিত্বমূলক হবে, এবং আপনার প্রস্থান পরিকল্পনা কী?
- আপনার নিজস্ব কোন সিস্টেম পণ্যায়িত যা আপনি ওপেন-সোর্স করতে পারেন, এবং কোনগুলো রক্ষা করার মতো প্রকৃত পৃথককারী?
- আপনার প্রতিষ্ঠান কি “অনেক চোখ”-কে প্রকৃত নিরাপত্তা নিয়ন্ত্রণ গণ্য করে, নাকি অপরীক্ষিত অনুমান?
- সরকারি-খাতের পাঠকদের জন্য: একটি “জনগণের অর্থ, জনগণের কোড” ডিফল্ট আপনার পরবর্তী ক্রয়ে কী বদলাত?
- আপনার TCO তুলনা ওপেন সোর্স আপনার ওপর যে পরিচালনাগত ও সহায়তা খরচ সরায় তা কতটা ভালোভাবে ধরে?
প্রধান শিক্ষা
- উন্মুক্ত বনাম ক্লোজড সংজ্ঞায়িত হয় লাইসেন্স দ্বারা, দাম দ্বারা নয়; স্বাধীনতা-অর্থে-ফ্রি ও দাম-অর্থে-ফ্রি, এবং অনুমোদনমূলক ও কপিলেফটের পার্থক্য জানুন।
- কোনো মডেলই সহজাতভাবে বেশি নিরাপদ বা সস্তা নয়। উন্মুক্ততার লেবেল নয়, প্রকল্পের চর্চা ও তার পূর্ণ TCO বিচার করুন।
- উন্মুক্ততা লক-ইনের শক্তিশালীতম প্রতিষেধক, নিরীক্ষণযোগ্যতা, বহনযোগ্যতা ও ফর্ক করার সামর্থ্য দেয়; মালিকানাধীন সফটওয়্যার নিয়ন্ত্রণের বিনিময়ে জবাবদিহি ও সুবিধা দেয়।
- প্রতিটি উপাদানে যোগ্যতায় সিদ্ধান্ত নিন, এবং আদর্শের বদলে সুচিন্তিতভাবে মডেল মেশান।
- উৎপাদক হিসেবে, পণ্যায়িতকে ওপেন-সোর্স করুন এবং পৃথককারীকে ক্লোজড রাখুন, এবং সরকারে স্বচ্ছতা, পুনঃব্যবহার ও সার্বভৌমত্বের জন্য “জনগণের অর্থ, জনগণের কোড” ওজন করুন।
তথ্যসূত্র ও আরও পড়ার জন্য
- Eric S. Raymond, The Cathedral and the Bazaar
- Nadia Eghbal, Working in Public: The Making and Maintenance of Open Source Software
- Karl Fogel, Producing Open Source Software: How to Run a Successful Free Software Project
- Adrian Cockcroft and others, various O’Reilly titles on open-source strategy and operations
- Free Software Foundation, The Free Software Definition (and the GNU General Public Licence texts)
- Open Source Initiative, The Open Source Definition and approved-licence list
- Free Software Foundation Europe, Public Money, Public Code campaign materials
- Yochai Benkler, The Wealth of Networks