موضوع مقاله: توسعه-نرم افزار-متن باز | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # توسعه-نرم افزار-متن باز | مقدمه: این نوع نرم‌افزار بر پایه‌ی همکاری، شفافیت، شمول‌پذیری و به‌روزرسانی‌های عمومی و مشارکتی توسعه می‌یابد.نرم‌افزار متن‌باز برخلاف نرم‌افزارهای مالکیتی یا بسته‌ای عمل می‌کند که دسترسی به کد منبع آن‌ها محدود است و کاربران مجاز به تغییر یا بازتوزیع آن نیستند، مگر با اجازه‌ی صریح صاحب‌امتیاز. | ## بخش 1: توسعه-نرم افزار-متن باز | تاریخچه تا دهه ۱۹۷۰، نرم‌افزارها معمولاً همراه با سخت‌افزار و بدون محدودیت حق‌نشر ارائه می‌شدند و اشتراک‌گذاری کد امری رایج بود. اما در سال ۱۹۷۴، کمیسیونی در ایالات متحده اعلام کرد که کد نرم‌افزار نیز می‌تواند مشمول قوانین حق‌نشر شود. این تصمیم، زمینه‌ساز گسترش صنعت نرم‌افزارهای مالکیتی شد.در واکنش به محدودیت‌های نوظهور، «ریچارد استالمن» در سال ۱۹۸۳ بنیاد نرم‌افزار آزاد (FSF) را بنیان نهاد و پروژه‌ی گنو را برای ارائه‌ی جایگزین آزاد به سیستم‌عامل یونیکس آغاز کرد. او همچنین مجوز عمومی گنو (GPL) را معرفی کرد که انتشار و تغییر نرم‌افزار را تنها در صورت حفظ آزادی کاربران مجاز می‌دانست. ریموند» با انتشار مقاله‌ی معروف کلیسا و بازار تفاوت‌های بنیادین میان توسعه‌ی بسته و متن‌باز را تبیین کرد. مدل توسعه نرم‌افزار متن‌باز در توسعه‌ی متن‌باز، مدل فرایند–داده با ساختاری مشارکتی و تکرارشونده تعریف می‌شود. برخلاف مدل‌های سنتی مانند مدل آبشاری که فرایندی خطی دارند، در متن‌باز نیازمندی‌ها اغلب از طریق نسخه‌های اولیه مشخص می‌شوند و بازخورد جامعه، توسعه‌ی نرم‌افزار را شکل می‌دهد. | ## بخش 2: توسعه-نرم افزار-متن باز | اریک ریموند توسعه‌ی سنتی را به ساخت کلیسا و توسعه‌ی متن‌باز را به بازار پرهیاهو تشبیه می‌کند. در مدل اول، برنامه‌ریزی و مدیریت مرکزی غالب است، درحالی‌که در مدل دوم، هماهنگی از دل مشارکت داوطلبان پدید می‌آید. به گفته‌ی پژوهشگران، توسعه‌دهندگان متن‌باز در محیطی کمتر محدود، با آزادی بیشتر برای پاسخ به باگ‌ها و افزودن ویژگی‌ها کار می‌کنند. آغاز یک پروژه متن‌باز روش‌های مختلفی برای شروع یک پروژه متن‌باز وجود دارد: اعلام عمومی نیاز به توسعه‌ی یک نرم‌افزار انتشار نسخه‌ی اولیه‌ی یک نرم‌افزار کارا عمومی‌سازی کد منبع یک پروژه بالغ منشعب کردن (Fork) پروژه‌ای موجود و شناخته‌شده مطالعات نشان می‌دهد که پروژه‌هایی که با نمونه‌ی اولیه‌ی قابل استفاده آغاز می‌شوند، شانس بیشتری برای جذب مشارکت‌کنندگان دارند. همچنین توصیه می‌شود قبل از آغاز پروژه‌ای جدید، گزینه‌های موجود بررسی شوند تا از پدیده‌ی «نه از اینجا» (NIH) پرهیز شود. انواع پروژه‌های متن‌باز پروژه‌های متن‌باز در چند دسته‌ی اصلی طبقه‌بندی می‌شوند: برنامه‌ها و کتابخانه‌های نرم‌افزاری: مانند هسته‌ی لینوکس، مرورگر فایرفاکس، و LibreOffice. روش‌ها و متدولوژی‌ها در توسعه‌ی متن‌باز، متدولوژی‌های انعطاف‌پذیر مانند نمونه‌سازی سریع، توسعه‌ی تدریجی، چرخه مارپیچ، برنامه‌نویسی مفرط (XP) و روش‌های چابک کاربرد گسترده‌ای دارند. | ## بخش 3: توسعه-نرم افزار-متن باز | عبارت «توسعه با سرعت اینترنت» نشان می‌دهد که تیم‌های توزیع‌شده در سراسر جهان می‌توانند با استفاده از ابزارهای ارتباطی، پروژه را به‌صورت همزمان و پیوسته توسعه دهند. در مقابل، نرم‌افزار متن‌باز بر آزادی استفاده، بررسی، تغییر و بازتوزیع توسط عموم تأکید دارد. با این حال، نرم‌افزار متن‌باز نیز ممکن است هزینه‌هایی نظیر پشتیبانی، آموزش و یکپارچه‌سازی داشته باشد. در مدل DevOps(دواپس)سازمانی، ابزارهای متن‌باز برای خودکارسازی وظایف و تسریع چرخه‌ی توسعه استفاده می‌شوند. همچنین رشد سریع مدل‌های زبانی مولد (مانند LLMها) در سال‌های اخیر با مشارکت فعال جامعه‌ی متن‌باز همراه بوده است. | ## جمع‌بندی | استاندارد باز به مجموعه‌ای از مشخصات عمومی گفته می‌شود که تعامل‌پذیری بین فناوری‌ها را تضمین می‌کند (مانند HTTP).