انتخاب یک Issue Tracker به جای Jira

برای یک تیم کوچک توسعه نرم‌افزار و چند پروژه کم ترافیک نیاز به یک سیستم issue tracking دارم که هم روال نصب و نگهداری راحتی داشته باشد، هم منابع سخت‌افزاری کمی مصرف کند، هم کار کردن با آن سخت و پیچیده نبوده و هم این که رایگان (و علی القاعده Open Source) باشد. امکان استفاده از سرویس‌های Online به آن صورت فراهم نیست. چون سرویس‌های رایگان معمولاً امکان استفاده private ندارند. آنهایی هم که امکان استفاده private دارند رایگان نیستند. ضمناً ترجیح با نرم‌افزارهایی است که محیط deploy آنها به صورت native لینوکس باشد.

Jira

تجربه استفاده از جیرا به مدت چندین سال را دارا هستم. سه سال آخر آن از لایسنس evaluation رایگان استفاده می‌کردم که هر ماه بدون هیچ مشکل قانونی آن را تمدید می‌کردم و تا سقف تعداد مشخصی کاربر به طور قانونی کار می‌کرد. جیرا بهترین نرم‌افزار issue tracking است که تا حالا با آن کار کرده‌ام. کارکرد و امکانات آن بسیار خوب بوده است، UI بسیار خوبی دارد، stability و support آن هم خیلی خوب است. اما مشکلی که با آن برای موقعیت مد نظر (تیم کوچک و چند پروژه کم ترافیک) دارم این است که فرایندهای آن برای کارهای کوچک کمی زیاده از حد بزرگ است. همین طور نصب آن کم و بیش سنگین بوده و نیاز به منابع قابل توجهی از سخت‌افزار دارد.

Bugzilla

محتمل‌ترین انتخاب برای موقعیت مد نظر نرم‌افزار Bugzilla است. باگزیلا با پرل توسعه داده شده و UI ساده‌ای دارد. از این لحاظ خیلی قدیمی به حساب می‌آید. محیط نصب پیش فرض آن لینوکس است. حجم دانلود آن کمتر از ۵ مگابایت است و منابع سخت‌افزاری کمی هم نیاز دارد. تا اینجای کار انتخاب خوبی به حساب می‌آید. اما مشکل از آنجا شروع می‌شود که به نظر می‌رسد این سیستم فقط برای مدیریت bug است و امکان ثبت new feature و امثالهم که در تیم‌های توسعه نرم‌افزار و در پروژه‌های توسعه نرم‌افزارهای green field موردنیاز است در آن وجود ندارد. اولین اشکال در آن بر می‌گردد به اسم آن که با bug شروع می‌شود. نصب پیش فرض آن همه چیز را به صورت bug می‌بیند. مثلاً به جای آن که گزینه save a new issue داشته باشد و پس از امکان تعیین نوع issue داشته باشد فقط امکان save a new bug دارد. البته می‌توان در آن custom field تعریف کرد و در آنجا issue type تعریف کرد. اما به نظرم راه حل خوبی برای این مشکل نیست. پروژه‌های بزرگی مثل لینوکس و فایرفاکس با کمک همین باگزیلا مدیریت می‌شوند. نمی‌دانم آنها با مشکل نداشتن issue type چطور کنار آمده‌اند و اصلاً آیا باگزیلا را انتخاب خوبی به حساب می‌آورند یا نه .

Mantis BT

در برخی مقایسه‌ها بعد از باگزیلا نرم‌افزار Mantis BT بهترین انتخاب معرفی می‌شود، مشکل مانتیس این است که دروازه‌هایش را به روی ما بسته است. وب‌سایت مانتیس به روی IPهای ایرانی بسته است. نمی‌دانم این موضوع تعمدی است یا نه اما به هر حال با روح Open Source و Free Software سازگاری زیادی ندارد و امکان استفاده از آن برای ما کمی سخت می‌شود بنابراین با وجود آن که برخی از دوستان از سازگاری آن با محیط‌های RTL هم می‌گویند اما آن را اصلاً بررسی نکردم.

Trac

بررسی‌های اولیه راجع به Trac نشان می‌دهد که مطالب زیادی راجع به آن در اینترنت وجود ندارد و توسعه آن کند است. توسعه آن با پایتون که یک زبان مدرن‌تر است صورت گرفته و همراه با خود یک wiki هم دارد. به علت کند بودن روند توسعه آن و کم استفاده بودنش از بررسی بیشتر آن صرفنظر می‌کنم. علی الظاهر با هر instance نصب شده Trac فقط یک پروژه را می‌توان مدیریت کرد. انگار Trac نیاز به configurationهای زیادی دارد تا بتواند به درستی کار کند.یک مقایسه قدیمی بین Trac و Redmine را اینجا ببینید.

Redmine

Redmine و Trac هر دو مدرن به حساب می‌آیند و کارشان را از سال ۲۰۰۶ شروع کرده‌اند. Redmine تحت تاثیر Trac ساخته شده است.Redmine جدیدتر و به روزتر از Trac به حساب می‌آید. علی الظاهر توسعه دهنده آن توسط یک تیم یک نفره انجام می‌شود. هیچ کدام از این دو سیستم صرفاً Issue Tracking نیستند. Trac شامل Wiki هم هست و Redmine هم شامل Wiki و هم شامل News، Files، Forum و غیره نیز می‌باشد. Redmine دارای UI زیباتر و سریع‌تری نسبت به Bugzilla است و ثبت Issue در آن نسبت به باگزیلا راحت‌تر است.Redmine فارسی سازی بهتر داشته و دارای pluginهای زیادی از جمله برای اسکرام است. از آنجا که Redmine به مقدار زیادی یک نرم‌افزار Issue Tracking هم به حساب می‌آید در نتیجه شباهت خیلی بیشتر به جیرا دارد. Redmine در میان کاربران ایرانی رایج‌تر از Trac و حتی Bugzilla است. Redmine در حال حاضر (تیر ۱۳۹۴) دارای امکانات راست به چپ سازی و ترجمه فارسی کامل به طور پیش فرض است. نصب Redmine فرایند پر دردسری است شاید به این علت که بر اساس روبی/ریلز ساخته شده است.

نتیجه گیری

بررسی‌های اولیه نشان می‌دهد که Redmine انتخاب بهتری به نظر می‌رسد. هر چند از تک نفره بودن تیم آن و روال نصب، به روز رسانی و پشتیبان‌گیری سخت آن می‌ترسم اما راحتی کار با آن، پشتیبانی مناسب از RTL، جدید بودن و رواج نصبی آن امیدوار کننده به نظر می‌رسد.