برون‌سپاری توسعه نرم‌افزار؛ مزایا، ریسک‌ها و انتخاب پیمانکار

  • برچسب ها

    IT, انعطاف پذیری, برون سپاری, توانمندی های متنوع, خدمات, خدمات IT, دلایل, سیستم, فنی, قیمت, کیفیت, مقرون به صرفه

  • تاریخ

    10 شهریور, 1398

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

چه زمانی برون‌سپاری نرم‌افزار منطقی است؟

  • تیم نرم‌افزاری داخلی ندارید یا ظرفیتش پر است: استخدام، آموزش و نگه‌داشتن یک تیم کامل (تحلیل‌گر، طراح، برنامه‌نویس، تست‌کننده، مدیر پایگاه داده) برای یک پروژه، زمان‌بر و پرهزینه است.
  • پروژه به تخصص خاصی نیاز دارد: مثلاً سامانه‌های آماری چندسطحی، موتور گردش کار، اپلیکیشن موبایل یا انتقال داده از سامانه قدیمی.
  • زمان مهم است: پیمانکاری که پیش‌تر سامانه مشابهی ساخته، چرخه یادگیری را طی کرده و ابزار و چارچوب آماده دارد.
  • نرم‌افزار جزو کار اصلی سازمان نیست: سازمان ترجیح می‌دهد نیروی خود را روی مأموریت اصلی‌اش متمرکز کند.

در مقابل، اگر نرم‌افزار هسته مزیت رقابتی شماست و به تغییرات روزانه و مستمر نیاز دارد، داشتن دست‌کم یک تیم کوچک داخلی در کنار پیمانکار توصیه می‌شود. پیش از تصمیم درباره برون‌سپاری، بررسی کنید که اصلاً به ساخت نیاز دارید یا یک محصول آماده کافی است؛ مقاله مقایسه نرم‌افزار آماده و سفارشی در این تصمیم کمک می‌کند.

مدل‌های قرارداد برون‌سپاری

مدلنحوه کارمناسب براینکته مهم
پروژه با مبلغ ثابت (Fixed-price)دامنه، زمان و مبلغ از ابتدا تعیین می‌شودپروژه‌هایی با نیازهای روشن و پایدارهر تغییر دامنه باید با فرایند تغییر و الحاقیه انجام شود
زمان و منابع (Time & Material)پرداخت بر اساس نفر-ساعت واقعی کارپروژه‌هایی که نیازها در طول کار شکل می‌گیردبه گزارش دقیق کارکرد و کنترل بودجه نیاز دارد
تیم اختصاصی (Dedicated team)تیمی از پیمانکار به‌طور تمام‌وقت روی پروژه شما کار می‌کندتوسعه بلندمدت و مستمر یک محصولمدیریت اولویت‌ها عمدتاً با کارفرماست
قرارداد پشتیبانی و نگهداریرفع اشکال، به‌روزرسانی و تغییرات جزئی در قالب سقف ساعت یا مبلغ سالانهسامانه‌های در حال بهره‌برداریزمان پاسخ‌گویی و حل مشکل باید در SLA مشخص باشد

در عمل، ترکیب این مدل‌ها رایج است: ساخت نسخه اول با مبلغ ثابت و سپس قرارداد پشتیبانی و توسعه سالانه.

نرم‌افزار یا اپلیکیشن اختصاصی لازم دارید؟

شرکت نرم‌افزاری ژابیز پردا از ۱۳۸۰ برای سازمان‌ها نرم‌افزار سفارشی، اپلیکیشن موبایل و سامانه تحت وب می‌سازد.

درخواست دمو و مشاوره رایگانتماس: ۰۲۱-۹۱۳۰۲۴۲۷خدمات ژابیز پردا

ریسک‌های برون‌سپاری و راه مدیریت آن‌ها

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

تأخیر یکی از رایج‌ترین گلایه‌ها در پروژه‌های برون‌سپاری است و دلایل آن معمولاً در هر دو طرف قرارداد است؛ آن را در مقاله دلایل تأخیر در پروژه‌های نرم‌افزاری بررسی کرده‌ایم.

بندهایی که در قرارداد نباید جا بیفتد

  1. شرح دامنه کار: پیوست سند نیازمندی با فهرست قابلیت‌ها و معیار پذیرش هر کدام.
  2. فازبندی و تحویل‌ها: خروجی هر مرحله، زمان آن و پرداخت وابسته به تأیید آن.
  3. مالکیت و تحویل کد منبع: اینکه چه چیزی، در چه زمانی و در چه قالبی تحویل می‌شود؛ شامل اسکریپت‌های پایگاه داده و راهنمای نصب.
  4. مستندات: راهنمای کاربر، راهنمای راهبری و مستندات فنی.
  5. فرایند تغییر: نحوه درخواست، برآورد، تأیید و قیمت‌گذاری تغییرات خارج از دامنه.
  6. ضمانت و پشتیبانی: دوره رفع رایگان اشکال پس از تحویل و شرایط قرارداد پشتیبانی بعدی.
  7. توافق سطح خدمت (SLA): زمان پاسخ و حل مشکل برای اشکالات بحرانی، مهم و جزئی.
  8. محرمانگی و امنیت: تعهد حفظ اطلاعات و الزامات امنیتی استقرار.

چک‌لیست انتخاب پیمانکار نرم‌افزار

  • رتبه شورای عالی انفورماتیک: برای قراردادهای دستگاه‌های دولتی، داشتن رتبه انفورماتیکی متناسب با نوع و مبلغ پروژه معمولاً الزامی است و نشانه‌ای از سابقه و توان شرکت هم هست.
  • سابقه پروژه‌های مشابه: نمونه کار در همان حوزه، با همان مقیاس کاربران و پیچیدگی؛ از پیمانکار بخواهید سامانه را عملاً نمایش دهد.
  • گواهی‌نامه‌های ISO: ISO 9001 برای مدیریت کیفیت، ISO/IEC 27001 برای امنیت اطلاعات و ISO/IEC 20000-1 برای مدیریت خدمات فناوری اطلاعات، نشان می‌دهد فرایندهای شرکت مدون است.
  • معرف و کارفرمایان قبلی: با یکی دو کارفرمای قبلی صحبت کنید؛ به‌ویژه درباره پشتیبانی پس از تحویل.
  • پایداری شرکت: سال‌های فعالیت و اینکه آیا سامانه‌های قدیمی‌اش هنوز پشتیبانی می‌شوند.
  • روش کار و ارتباط: چه کسی مدیر پروژه است، گزارش پیشرفت چطور و هر چند وقت یک بار ارائه می‌شود.
  • پشتیبانی پس از تحویل: آیا تیم ثابتی برای نگهداری دارد یا پس از تحویل، پروژه رها می‌شود.

ارزان‌ترین پیشنهاد لزوماً کم‌هزینه‌ترین انتخاب نیست؛ هزینه بازنویسی یک سامانه ناموفق یا تغییر پیمانکار در میانه کار، معمولاً از اختلاف قیمت اولیه بیشتر است.

برون‌سپاری نرم‌افزار به ژابیز پردا

ژابیز پردا از سال ۱۳۸۰ بیش از ۱۰۰ سیستم اطلاعاتی برای بیش از ۵۰ سازمان دولتی و خصوصی ساخته است؛ از سامانه‌های آماری مانند سامانه جامع آمار تولید ایمیدرو تا سامانه‌های فرایندی و اپلیکیشن موبایل. شرکت دارای رتبه (پایه) ۴ شورای عالی انفورماتیک و گواهی‌نامه‌های ISO 9001، ISO/IEC 27001 و ISO/IEC 20000-1 است. فهرست کامل خدمات توسعه نرم‌افزار ژابیز پردا را ببینید یا برای بررسی پروژه خود با شماره ۰۲۱-۹۱۳۰۲۴۲۷ تماس بگیرید.

پرسش‌های متداول

آیا با برون‌سپاری، کنترل سامانه از دست سازمان خارج می‌شود؟

نه، اگر قرارداد درست بسته شود. تحویل کد منبع و مستندات، استقرار روی سرورهای سازمان و آموزش کارشناسان داخلی، کنترل سامانه را در اختیار سازمان نگه می‌دارد.

مدل مبلغ ثابت بهتر است یا زمان و منابع؟

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

بعد از پایان پروژه، نگهداری سامانه با کیست؟

معمولاً پس از دوره ضمانت، یک قرارداد پشتیبانی سالانه با همان پیمانکار بسته می‌شود. اگر کد و مستندات کامل تحویل شده باشد، سازمان می‌تواند نگهداری را به تیم داخلی یا پیمانکار دیگری هم بسپارد.

تماسمشاوره رایگان: ۰۲۱-۹۱۳۰۲۴۲۷