به چه روشی می‌توان در پروژه‌های متن‌باز عضو موثری بود؟ من این سوال رو بارها از خودم پرسیدم و در گذشته تلاش کردم در پروژه‌های مختلف سهیم باشم. بیشترین کاری هم که بلد بودم گزارش باگ بوده. اخیرا به این نتیجه رسیدم که برای اینکه به عنوان یک کاربر دارای حسن شهرت باشم باید یک استراتژی درست در نحوه کارم داشته باشم که در ادامه توضیح می‌دم.

تمرکز بر روی تعداد مشخصی برنامه

به عنوان یک کاربر و برنامه‌نویس علاقه‌مند به متن‌باز اولین روشی که به نظرم رسید محدود کردن خودم بود. به این معنی که خودم رو به پروژه‌هایی که از اونها استفاده می‌کنم محدود می‌کنم. من تعداد مشخصی برنامه و ابزار روی کامپیوترم برای کارهای روزمره و برنامه‌نویسی استفاده می‌کنم. تصمیم گرفتم که برای بهبود این برنامه‌ها فعالیت کنم و روی اونها تمرکز کنم. در اینجا «تمرکز» خیلی مهمه. چرا که تعداد برنامه‌های موجود در اینترنت مثلا برای کامپیوتر، اوبونتو، اندروید، برنامه‌نویسی و مانند اینها خیلی زیادند و از توان یک کاربر خارجه که بتونه در همه اونها سهیم باشه. از طرفی از این شاخه به اون شاخه پریدن رو متوقف کردم.

کاربر وفادار بودن

در اینجا لازمه که معنی «کاربر وفادار» رو توضیح بدم. من تصمیم گرفتم برای تعدادی از نرم افزارهایی که برام مهم هستند کاربر وفادار باشم و سعی در بهبود اونها طبق نیازهای خودم داشته باشم. در وهله اول من برنامه‌ها رو با دقت بررسی می‌کنم و مستندات اونها رو با دقت می‌خونم. اینکار برای اینه که مهمترین نکات رو در ابتدا به خوبی یاد بگیرم و بتونم از برنامه به نحو احسن استفاده کنم.

داشتن یک پروفایل کامل

در گذشته من پروفایل‌های بی‌سر و ته بسیاری داشتم. اینکار علاوه بر اینکه باعث حواس‌پرتی من می‌شد جلوی استفاده موثر از آنها را هم می‌گرفت. این پروفایل‌ها معمولا ناقص بودند و من هم ایمیل‌های بیشمار دریافتی از آن سایت‌ها را نمی‌توانستم کامل بخوانم. به تجربه فهمیدم که باید از ایجاد بی‌هدف پروفایل پرهیز کرد. پروفایل مانند رزومه ماست. اگر جایی حساب کاربری می‌سازیم باید با دقت اطلاعات آن را تکمیل کنیم و مخصوصا تنظیمات مخصوص به ایمیل‌ها را طوری تغییر بدهیم که موثر‌ترین ایمیل‌ها را دریافت کنیم. به این معنی که وقتی ایمیلی از آن سایت به من می‌رسد مربوط به موضوعات مورد علاقه من باشد و باعث اتلاف وقت من نشود. مثلا نرم‌افزار اسکنر من در اوبونتو یک باگ دارد که برای من مهم است بدانم که چه وقت درست می‌شود، بنابراین روی لانچ‌پد برای آن باگ بخصوص ایمیلم را جهت دریافت ایمیل ثبت کرده‌ام. همینکار را در سایر سایت‌ها انجام می‌دهم تا فقط ایمیل‌هایی دریافت کنم که به من مربوط هستند.

گزارش خطا به روش صحیح

در مرحله بعدی وقتی کاستی یا اشکالی در برنامه می‌بینم اون رو در جای درست مطرح می‌کنم. اگر هم الان وقت نداشته باشم اون رو در یادداشت‌هام ثبت می‌کنم. مثلا امروز خطایی در فرم تماس وردپرس دیدم که در نسخه فارسی هم وجود داشت. با یک جستجو صفحه گزارش باگ جت‌پک رو روی گیت‌هاب پیدا کردم. خوشبختانه من در گیت‌هاب یک حساب کاربری دارم. بنابراین با ذکر تمام جزئیات یک گزارش خطا در گیت‌هاب ثبت می‌کنم. منتها خیلی مهمه که بدونیم گزارش‌های خطای بی سرو ته بدرد نمی‌خورند و کسی به اونها رسیدگی نخواهد کرد. یک گزارش خطای خوب باید عنوان خوبی داشته باشه و شامل اطلاعات ضروری مثل نسخه نرم‌افزار و شرح دقیق خطا و نحوه ایجاد مجدد اون باشه. هرچقدر اطلاعات دقیق‌تر باشه احتمال رسیدگی سریع‌تر هم بیشتر می‌شه.

رفع عیب

اگر برنامه‌نویسی بلد هستین یا بلد هستین خطاهای ترجمه رو رفع کنید ضمن ثبت یک گزارش خطا یا درخواست فیچر می‌تونید اعلام کنید که قادر به انجام اون هستید. کاری که من در گیت‌هاب می‌کنم اینه که بعد از ثبت خطا خودم نسبت به اصلاح اون روی گیت‌هاب اقدام می‌کنم. کار با گیت‌هاب خیلی ساده و شیرینه البته من در اینجا به اون نخواهم پرداخت.

پیگیری گزارش

این نکته خیلی مهمه ولی با این حال خیلی از کاربران اون رو فراموش می‌کنند. اگر شما گزارشی در جایی ثبت می‌کنید نباید اون رو رها کنید. بلکه باید با چک کردن مرتب اون گزارش هر نوع سوال یا ابهامی که بوجود آمده پاسخ بدین. معمولا من گزارش‌های زیادی رو می‌بینم که فردی ثبت کرده و بعدا اصلا فراموش کرده که اون رو دنبال کنه. به این قبیل گزارش‌ها هم معمولا رسیدگی نمی‌شه و در گورستان سوالات بی‌پاسخ دفن می‌شن. من بعد از تعمیر کد و تست اون روی دستگاه خودم اون رو برای برنامه‌نویسان برنامه می‌فرستم، در ادامه همون گزارش خطا و با اونها به گفتگو ادامه می‌دم تا جایی که یا پچ من رو قبول کنند یا اون رو رد کنند. بعد یا دوباره اصلاحش می‌کنم یا از اونها می‌خوام اینکار رو پیگیری کنند. هرچند اگر مشکل مربوط به زبان فارسی باشه جز خودمون کسی علاقه‌ای به اصلاحش نشون نمی‌ده که خیلی هم طبیعی هست. هر مشکلی باید از طرف کاربران خودش برطرف بشه.