اخلاقیات و مسئولیت‌پذیری در توسعه نرم‌افزار

 منبع عکس مقاله Hiring Great Software Engineers در مدیوم
منبع عکس مقاله Hiring Great Software Engineers در مدیوم

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

نکته: شاید باعث اسپویل قسمت Smithereens بشه

آقای رابرت مارتین (عمو باب) یه سوگند برای برنامه‌نویسا نوشته با عنوان The Programmer's Oath که خیلی جالبه اما چیزهای بیشتری از فقط یه کد خوب مهم هستند. اینکه یه کد بدون باگ بنویسیم یا Code Coverage کدمون بالا باشه، دلیل نمیشه یه توسعه‌دهنده‌/مهندس/… نرم‌افزار عالی باشیم.

آدم باید در کنار افزایش مهارت‌های فنی، حتما یه نیم نگاهی به مهارت‌های نرم (Soft Skills) داشته باشه. هر چقدر کدت خوب باشه ولی نتونی ۴ کلمه با همکارت تعامل داشته باشی یا توی یه همفکری فنی شرکت کنی یا حتی هنوز جنسیت/سن برات مهمتر از دانش فرد باشه، اون کدت هم ارزش خاصی نداره.

حالا غیر از تعامل با بقیه، چندتا موضوع دیگه هم هست که بنظرم نیاز به بحث دارند:

۱- چطوری باید یه پروژه رو قیمت گذاری کنیم؟ اگر پروژه‌ای رو به یکی دادیم، با چقدر تغییر مجازیم به یکی دیگه بفروشیم؟ آیا اگر پروژه‌ای رو به کسی میدیم باید بهش بگیم از چیزی مثل وردپرس استفاده کردیم یا نه؟ اگر از صفر یه هسته‌ی نرم‌افزاری برای خودمون درست کرده باشیم و باهاش چندتا پروژه بزنیم، آیا باید قیمت ارزونتر بشه یا اینکه همه رو به قیمت همون ساخت یه پروژه باید فروخت؟

۲- معمولا خیلی از برنامه‌نویسا حقوق خودشون رو با توسعه دهنده‌های خارجی مقایسه می‌کنند و بنظرشون خیلی حقشون خورده میشه. آیا این مقایسه درسته؟ آیا باید حقوق رو با کار آزاد یا دلالی مقایسه کرد؟ بر اساس میزان رفاه زندگی سنجید؟ آیا تیم فنی مهمترین تیم در یه شرکت هست و باید بالاترین حقوق رو بگیره؟

۳- شاید از همشون مهمتر این مورد باشه، اینکه مسئولیت ما در قبال کاربرهایی که از نرم‌افزارمون استفاده می‌کنند چی هست. کاری به بحث حفاظت از داده ندارم که بدیهی هست. مثال‌های دیگه رو بررسی میکنیم.

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