پایگاه خبری راه پرداخت دارای مجوز به شماره ۷۴۵۷۲ از وزارت فرهنگ و ارشاد اسلامی و بخشی از «شبکه عصر تراکنش» است. راه پرداخت فعالیت خود را از دوم اردیبهشتماه ۱۳۹۰ شروع کرده و اکنون پرمخاطبترین رسانه ایران در زمینه فناوریهای مالی، بانکداری و پرداخت و استارتآپهای فینتک است.
چرا شرکتها گرفتار سیستمهای فناوری اطلاعات غیرقابل کنترل میشوند؟
ماهنامه عصر تراکنش شماره ۳۷ / مدل «ID.3» فولکسواگن قرار است «قاتل تسلا» باشد. خودروی جدید فولکسواگن اولین خودروی کاملاً برقی تولید انبوه این شرکت و اولین گام این خودروساز آلمانی در بازآفرینی خود برای دنیای خودروهای برقی است. در نتیجه این مدل را میتوان مهمترین مدل این شرکت بعد از عرضه اولین مدل گلف در سال ۱۹۷۶ بهشمار آورد. ID.3 دیر به بازار میآید. از لحاظ مکانیکی عالی است، اما احتمالاً ابتدا برخی از ویجتهای نرمافزاری که امروزه عامل مهمی برای جذب مشتری هستند، در این خودرو وجود ندارند و بعداً اضافه خواهند شد (شایعاتی وجود دارد که قابلیتهای اتصال به تلفن هوشمند و دستیار پارک واقعیت افزوده در این خودرو وجود دارد). ابتدا قرار بود تابستان امسال عرضه شود، اما عرضه آن دستکم تا سپتامبر عقب افتاده است.
فولکسواگن تنها شرکت بزرگی نیست که برای کارآمد کردن کامپیوترهایش به تقلا افتاده است. سال گذشته رگولاتورها بانکهای بریتانیایی را به این دلیل سرزنش کردند که قطع سامانههای آنلاین و بهروزرسانیهای ناشیانه سیستمهای فناوری اطلاعاتشان باعث شده بود میلیونها مشتری توانایی پرداخت یا دریافت نداشته باشند. البته برخی مشکلات بسیار جدیتر هستند. سال ۲۰۱۹ پرواز هواپیماهای مدل ۷۳۷ مکسبوئینگ بعد از دو سقوط مرگبار متوقف شد.
یکی از دلایل این سقوطها نقص نرمافزاری بود. مأموران تحقیقات تاکنون ایرادات کماهمیتی پیدا کردهاند. برای مثال اکنون به شرکتهای هواپیمایی توصیه میشود که هر ۵۱ روز هواپیما را خاموش و روشن کنند تا کامپیوترهایشان در حین پرواز دادههای غلط نشان ندهند. مشکل مشابهی در سال ۲۰۱۷ در برخی هواپیماهای ایرباس، رقیب اروپایی بوئینگ پیدا شد که آژانس امنیت هوانوردی اتحادیه اروپا را واداشت تا این هواپیماها را ملزم کند دستکم هر ۱۴۹ ساعت راهاندازی مجدد شوند.
تقصیر شکستهای فناوری اطلاعات شرکتها اغلب به گردن هیئتمدیره میافتد که البته گاهی اوقات منصفانه است. «دنیس مویلنبرگ» بعد از فاجعههای سری ۷۳۷ مکس، بحق مجبور شد استعفا دهد، اما همیشه اینطور نیست؛ چراکه مبحث نرمافزار و همگامبودن در آن دشوار است و کارمندانی که مسئول تولید نرمافزار هستند، اغلب در نظمی رشد کردهاند که از بسیاری جهات بهطرز عجیبی پیشامدرن است. وقتی نرمافزار همه دنیا را فراگرفته (برای مثال در سیلیکونولی بیشتر شرکتها کموبیش شرکت نرمافزاری هستند)، این نظم اهمیت پیدا میکند.
برای مثال بیایید از کدهای کامپیوتری شروع کنیم. برنامهنویسی مستلزم ترکیبی از دقت شدید و خلاقیت است. خطاهای بسیار کوچک مثل جایگذاری اشتباه یک علامت نگارشی میتواند رفتار یک سیستم را بهکلی تغییر دهد. طبق قاعدهای تجربی، برنامهنویسان بسته به دقتشان، در هر ۱۰۰۰ خط کد 0.5 تا ۵۰ خطا انجام میدهند. چون نرمافزارهای خودروها و هواپیماها دهها میلیون خط کد دارند، احتمال وجود سیستم بدون خطا در عمل صفر است. حتی وقتی خطاها به فاجعه منجر نمیشوند، ضریب کاهشی پیوستهای در بهرهوری شرکت اعمال میکنند. نظرسنجیای که شرکت پردازشگر پرداخت دیجیتال Stripe سفارش داده، نشان میدهد هر توسعهدهنده بهطور متوسط ۲۱ ساعت از هفته را صرف اصلاح کدهای قدیمی یا خراب میکند.
سختی ذاتی برنامهنویسی با کمبودهای مهندسی نرمافزار بهعنوان یک حرفه تشدید میشود. این کمبودها در کتابی با عنوان «مشکل نرمافزار؛ چرا مهندسان هوشمند کدهای بدی مینویسند» مطرح شدهاند. «دام بار»، نویسنده کتاب، ۲۰ سال از عمرش را بهعنوان توسعهدهنده در غول نرمافزاری مایکروسافت سپری کرده است. او اشاره میکند که بسیاری از کدنویسان دستکم تا حدی خودآموخته هستند.
این امر عادات بدی را ایجاد میکند که دورههای مهندسی نرمافزار نمیتوانند اصلاح کنند. ارتباط کمی بین دانشگاه و صنعت وجود دارد و در مورد اینکه چه چیزهایی باید آموزش داده شوند یا چه عاداتی باید نهادینه شوند، اتفاق نظری وجود ندارد. آقای بار استدلال میکند که حاصل این کمبودها این است که در این حوزه باورهای عامیانه و جریانات زودگذر در موارد زیادی جایگزین استانداردهای حرفهای شدهاند.
آقای بار برای نشاندادن زیربنای متزلزل این حوزه به این روش محبوب در میان شرکتهای فناوری مثل گوگل و اپل اشاره میکند که به متقاضیان استخدام یک مسئله برنامهنویسی میدهند و میگویند آن را روی وایتبورد حل کنند. در حوزههای بسیار کمی چنین رفتاری مشاهده میشود؛ چراکه فرض میکنند متقاضیان بهواسطه فارغالتحصیلشدن، حداقل شایستگی را کسب کردهاند. دکترها انتظار ندارند پیش از استخدام از آنها امتحان آناتومی گرفته شود. از مهندسان مکانیک خواسته نمیشود قوانین حرکت نیوتن را بنویسند تا ثابت کنند واجد شرایط هستند.
همه این مشکلات با سرعت نفسگیر تغییرات در مهندسی نرمافزار تشدید شدهاند. سیستمهایی هم که درست کار میکنند، خیلی سریع منسوخ میشوند. گرفتاریهای بانکهای بریتانیایی تا حد زیادی ناشی از تلاش برای حفظ سیستمهای «موروثی» است که برنامهنویسانی بسیار قدیمی (اغلب از طریق برونسپاری) به زبانهای برنامهنویسی تا حدودی فراموششده، نوشتهاند تا معیارهایی را رعایت کنند که هیچکس بهدرستی یادش نمیآید. کدنویسان تحت فشار برای اضافهکردن قابلیتهای جذاب جدید اغلب قواعد و استانداردها را دور میزنند و مشکلاتی را برای آینده ایجاد میکنند؛ آیندهای که مدام نزدیکتر میشود.
متخصصی با چند دهه تجربه میگوید نتیجه این است که سیستمهای فناوری اطلاعات جدید و ظاهراً جذاب بهسرعت به سیستمهای ضعیف و تا حدی ناشناخته تبدیل میشوند که با نذر و دعا سرپا نگه داشته شدهاند. در نهایت هزینهها آنقدر زیاد میشود که شرکتها به ارتقای سیستمهایشان رضایت میدهند، اما این لحظه پرخطرترین لحظه است؛ چراکه نرمافزار جدید باید علاوه بر همه کارهای نرمافزار قدیمی، کارهای دیگری را هم انجام دهد. در واقع شبیه ساختن هواپیما در حین پرواز است.
چرخه زندگی یک باگ
فولکسواگن از تمام توانش استفاده میکند تا نقصهای قابلیتهای جذاب ID.3 را برطرف کند. این شرکت میخواهد بیشتر کار توسعه نرمافزار را بهصورت داخلی انجام دهد و بدین منظور «واحد دیجیتال» جدید و شیکی با هزینه هفت میلیارد یورو (معادل هشت میلیارد دلار) ساخته است. احتمالاً ایده خوبی است. با این حال همانطور که آقای بار میگوید، مشکلات ساختاری برنامهنویسی باعث میشود هزینهکردن بهتنهایی موفقیت را تضمین نکند.
یکی از مزیتهای بزرگ استارتآپهایی مثل تسلا یا مونزو (بانک آنلاین نسبتاً جدیدی در بریتانیا)، این است که برنامهنویسانشان از صفر شروع میکنند. چون این استارتآپها سیستم موروثی ندارند که بخواهند از آن نگهداری کنند؛ بنابراین باگهای قدیمی کمتری را باید اصلاح کنند، نرمافزارشان قدرتمندتر است و توسعهدهندگانشان میتوانند زمان بیشتری را صرف قابلیتهایی کنند که مشتریان میخواهند.
اگر این سخنان در شرکتهای قدیمیتری که از صفر شروعکردن جزء گزینههایشان نیست، حس خوبی ایجاد نمیکند، احتمالاً این حرف متخصصان قدیمی حوزه کامپیوتر برایشان قوت قلبی باشد. آنها پیشبینی میکنند که مزیتهای استارتآپها موقتی هستند، باگها بهمرور به سیستمها وارد میشوند، کارهای سرسری اصلاح نمیشوند، برخی توسعهدهندگان این شرکتها میروند و دانششان را هم با خودشان میبرند، تازهواردان چابک امروز، شرکتهای قدیمی دستوپاچلفتی فردا خواهند بود که سیستمهای فناوری اطلاعات کهنه و نامطمئنشان دست و بالشان را میبندد و خلاصه اینکه شرایط برای تحولآفرینی شرکتهای تازهوارد جدید فراهم میشود.