فصل ۱۰ - پسگفتار
در بیست سال منتهی به ویرایش اول، ما بخشی از تکامل کامپیوتر بودیم؛ از یک کنجکاوی جانبی تا یک ضرورت مدرن برای کسبوکارها. در بیست سال پس از آن، نرمافزار از ماشینهای صرفاً تجاری فراتر رفت و حقیقتاً جهان را تسخیر کرد.
اما این واقعاً برای ما چه معنایی دارد؟
فرد بروکس در کتاب نفر-ماه افسانهای: مقالاتی درباره مهندسی نرمافزار [Bro96] میگوید:
«برنامهنویس، همچون شاعر، تنها با فاصلهای اندک از مادهی نابِ اندیشه کار میکند. او کاخهایش را در آسمان، و از جنس آسمان میسازد، که تنها با تلاشِ تخیل خلق میشوند.»
ما با یک صفحه سفید شروع میکنیم، و میتوانیم تقریباً هر چیزی را که بتوانیم تصور کنیم، خلق نماییم. و چیزهایی که خلق میکنیم میتوانند جهان را تغییر دهند.
از توییتر که به مردم در برنامهریزی انقلابها کمک میکند، تا پردازندهی داخل خودروی شما که تلاش میکند جلوی لیز خوردن ماشین را بگیرد، تا گوشی هوشمندی که باعث میشود دیگر مجبور نباشیم جزئیات آزاردهنده روزمره را به خاطر بسپاریم؛ برنامههای ما همهجا هستند. تخیل ما همهجا هست.
ما توسعهدهندگان فوقالعاده ممتاز هستیم. ما حقیقتاً داریم آینده را میسازیم. این مقدار خارقالعادهای از قدرت است. و با این قدرت، مسئولیت خارقالعادهای نیز میآید.
چقدر پیش میآید که بایستیم و به این موضوع فکر کنیم؟ چقدر پیش میآید که چه در بین خودمان و چه با مخاطبان عمومیتر، بحث کنیم که این چه معنایی دارد؟
دستگاههای نهفته (Embedded devices) به اندازه یک مرتبه بزرگی (Order of magnitude) بیشتر از کامپیوترهای استفاده شده در لپتاپها، دسکتاپها و دیتاسنترها هستند. این کامپیوترهای نهفته اغلب سیستمهای حیاتی را کنترل میکنند، از نیروگاهها گرفته تا خودروها و تجهیزات پزشکی. حتی یک سیستم کنترل گرمایش مرکزی ساده یا لوازم خانگی اگر بد طراحی یا پیادهسازی شده باشد، میتواند کسی را به کشتن دهد. وقتی برای این دستگاهها توسعه میدهید، مسئولیتی سرسامآور را بر عهده میگیرید.
بسیاری از سیستمهای غیر نهفته نیز میتوانند هم خیرِ بزرگ برسانند و هم شرِ بزرگ. رسانههای اجتماعی میتوانند انقلاب صلحآمیز را ترویج کنند یا نفرت زشت را برانگیزند. کلانداده (Big Data) میتواند خرید را آسانتر کند، و میتواند هر نشانی از حریم خصوصی را که فکر میکردید دارید نابود کند. سیستمهای بانکی تصمیمات وامی میگیرند که زندگی مردم را تغییر میدهد. و تقریباً هر سیستمی میتواند برای جاسوسی از کاربرانش استفاده شود.
ما نشانههایی از احتمالاتِ یک آینده آرمانشهری، و نمونههایی از عواقب ناخواستهای که منجر به ویرانشهرهای کابوسوار شدهاند را دیدهایم. تفاوت بین این دو نتیجه ممکن است ظریفتر از آن باشد که فکر میکنید. و همه اینها در دستان شماست.
قطبنمای اخلاقی
بهای این قدرت غیرمنتظره، هوشیاری است. اعمال ما مستقیماً بر مردم تأثیر میگذارد. دیگر صحبت از آن برنامه تفننی روی CPU هشت بیتی در گاراژ، یا پردازش دستهایِ ایزولهی تجاری روی مینفریمِ دیتاسنتر، یا حتی فقط کامپیوتر رومیزی نیست؛ نرمافزار ما تار و پودِ زندگی مدرن روزمره را میبافد.
ما وظیفه داریم درباره هر قطعه کدی که تحویل میدهیم، دو سوال از خود بپرسیم:
۱. آیا از کاربر محافظت کردهام؟
۲. آیا خودم از این استفاده میکنم؟
اول، باید بپرسید «آیا تمام تلاشم را کردهام تا کاربران این کد را از آسیب محافظت کنم؟» آیا تمهیداتی اندیشیدهام تا پچهای امنیتی مداوم را روی آن مانیتورِ کودکِ ساده اعمال کنم؟ آیا اطمینان حاصل کردهام که ترموستات گرمایش مرکزی خودکار هر طور هم که خراب شود، مشتری همچنان کنترل دستی داشته باشد؟ آیا فقط دادههایی را که نیاز دارم ذخیره میکنم و هر چیز شخصی را رمزنگاری میکنم؟
هیچکس کامل نیست؛ همه هر از گاهی چیزهایی را از قلم میاندازند. اما اگر نمیتوانید صادقانه بگویید که سعی کردید تمام عواقب را لیست کنید و مطمئن شوید که کاربران را در برابر آنها محافظت میکنید، آنگاه وقتی اوضاع خراب شود، شما بخشی از مسئولیت را بر دوش دارید.
نکته ۹۸: اول، آسیب نرسانید
دوم، قضاوتی وجود دارد که به «قانون طلایی» مرتبط است: آیا من خوشحال خواهم بود که کاربرِ این نرمافزار باشم؟ آیا میخواهم جزئیاتم به اشتراک گذاشته شود؟ آیا میخواهم جابهجاییهایم به فروشگاههای خردهفروشی داده شود؟ آیا خوشحال خواهم بود که توسط این وسیله نقلیه خودران رانده شوم؟
آیا با انجام این کار راحتم؟
برخی ایدههای خلاقانه شروع به پرسه زدن در مرزهای رفتار اخلاقی میکنند، و اگر شما در آن پروژه درگیر باشید، درست به اندازه حامیان مالی (Sponsors) مسئول هستید. مهم نیست با چند درجه جدایی برای خود دلیلتراشی کنید، یک قانون حقیقت دارد:
نکته ۹۹: به رذلها امکانِ عمل ندهید (Don’t Enable Scumbags)
آیندهای را که میخواهید تصور کنید
این به شما بستگی دارد. این تخیل شما، امیدهای شما و نگرانیهای شماست که «مادهی نابِ اندیشهای» را فراهم میکند که بیست سال آینده و فراتر از آن را میسازد.
شما دارید آینده را میسازید، برای خودتان و برای نوادگانتان. وظیفه شماست که آن را آیندهای کنید که همه ما بخواهیم در آن زندگی کنیم.
تشخیص دهید چه زمانی دارید کاری خلاف این آرمان انجام میدهید، و شجاعت «نه» گفتن را داشته باشید! آیندهای را که میتوانیم داشته باشیم تجسم کنید، و شجاعت خلق آن را داشته باشید. هر روز کاخهایی در آسمان بسازید.
همه ما زندگی شگفتانگیزی داریم.