وقتی مشتری بعد از تحویل پروژه سورسکد را درخواست کرد
یکی از موضوعاتی که بهتر است در ابتدای هر پروژه نرمافزاری درباره آن شفافسازی شود، نحوه تحویل سورسکد و حقوق مربوط به آن است. تجربهای که در یکی از پروژههای من اتفاق افتاد، اهمیت این موضوع را برایم بیشتر روشن کرد.
یک تجربه واقعی؛ وقتی سورسکد بعد از پایان پروژه مطرح شد
در یکی از پروژهها که مربوط به سامانه سهامداران یک شرکت سهامی عام بود، پس از راهاندازی سامانه و تسویهحساب نهایی، مشتری درخواست کرد سورس کامل نرمافزار در اختیار آنها قرار گیرد تا برنامهنویسان شرکت خودشان بتوانند سیستم را توسعه دهند.
در اینجا موضوع مالکیت سورسکد مطرح شد و مورد اختلاف قرار گرفت.
به آنها توضیح دادم که مطابق قرارداد، حقوق مربوط به سورس نرمافزار متعلق به مجری پروژه است و واگذاری سورس موضوعی جدا از تحویل و استفاده از نرمافزار محسوب میشود.
به آنها گفتم اگر سورسکد و مستندات فنی آن را میخواهند، باید این موضوع بهصورت جداگانه مورد توافق قرار گیرد و هزینه آن نیز جداگانه محاسبه شود.
چرا درخواست رسمی کردم؟
از آنها خواستم ابتدا درخواست خود را طی یک نامه رسمی مطرح کنند تا موضوع بهصورت شفاف و قابل استناد مشخص باشد. من نیز در پاسخ، نامهای ارسال میکردم که در آن شرایط تحویل سورسکد، مستندات فنی و مسئولیتهای مربوط به توسعه و تغییرات بعدی نرمافزار بهروشنی مشخص شود.
دلیل این موضوع این بود که پس از تحویل سورس، توسعه و تغییرات نرمافزار توسط برنامهنویسان شرکت انجام میشد و لازم بود مسئولیت نتایج تغییراتی که خارج از پروژه اولیه انجام میشود، با وضعیت جدید آن تفکیک شود.
آنها در ابتدا با این موضوع موافقت کردند.
اما اتفاق دیگری افتاد
مدتی بعد، بدون اینکه اطلاع قبلی داشته باشم، متوجه شدم آنها سامانه را کنار گذاشته و تصمیم گرفتهاند نرمافزار را بهصورت جداگانه از ابتدا بازنویسی کنند.
از اینکه نرمافزار ما را کنار گذاشته بودند ناراحت نشدم؛ تصمیم نهایی درباره ادامه یا توقف یک نرمافزار بر عهده خود کارفرماست. چیزی که برای من قابل تأمل بود، نحوه مدیریت منابع بود.
سامانه قبلی طراحی، توسعه و راهاندازی شده و هزینه آن نیز پرداخت شده بود. بنابراین، بازنویسی کامل یک سامانه مشابه میتوانست به معنی صرف دوباره زمان و منابع مالی برای کاری باشد که پیش از آن انجام شده بود.
البته درباره تصمیم داخلی آن شرکت نمیتوان قضاوت کاملی داشت، زیرا ممکن است دلایل دیگری نیز برای بازنویسی نرمافزار وجود داشته باشد. اما از نگاه من، چنین تصمیمهایی باید با بررسی دقیق هزینه، زمان، وضعیت نرمافزار موجود و مزایای واقعی جایگزینی آن انجام شوند.
قرارداد را قبل از امضا بخوانید
نکته جالب این پروژه این بود که کارفرما هنگام عقد قرارداد، مفاد آن را بهطور کامل مطالعه نکرده و صرفاً قرارداد را امضا کرده است.
به همین دلیل، زمانی که پس از پایان پروژه درخواست سورسکد را مطرح کرد، تازه متوجه شد که موضوع مالکیت و واگذاری سورس در قرارداد بهروشنی مشخص شده و تحویل سورس نیز جزو تعهدات اولیه پروژه نبوده است.
چیزی که از این تجربه یاد گرفتم
این تجربه برای من یک نکته مهم داشت:
در یک پروژه نرمافزاری، فقط درباره امکانات و زمان تحویل صحبت نکنید؛ مالکیت سورسکد، نحوه استفاده و توسعه نرمافزار و مسئولیت تغییرات بعدی نیز باید پیش از شروع همکاری بهروشنی مشخص شود.
و شاید مهمتر از آن، قراردادی که قرار است مبنای همکاری باشد، باید قبل از امضا با دقت خوانده شود؛ زیرا بسیاری از اختلافات زمانی ایجاد میشوند که طرفین، ماهها بعد، تازه متوجه میشوند درباره یک موضوع مهم از ابتدا توافقی وجود نداشته است.
دیدگاه شما
اگر تجربه یا نظری درباره این مقاله دارید، خوشحال میشوم آن را با من و سایر خوانندگان به اشتراک بگذارید.