سازماندهی نرم افزار اسپاگتی به گونه ای که بتوان آن را به راحتی تغییر داد | اخبار MIT

به عنوان یک مهندس نرم افزار، دان استورتوانت SM ’08، PhD ’13 مشاغلی داشت که در آن ایجاد یک تغییر کوچک در یک پایگاه کد آسان بود – و مشاغلی که در آن یک تغییر کوچک مشابه باعث خراب شدن یا نقص در سایر بخش های به ظاهر تصادفی از پایگاه کد می شد. ایجاد این تغییرات می تواند به استورتوان یادآوری کند که او از برنامه نویس بودن چه چیزی را دوست دارد یا باعث شود او احساس احمق بودن کند.
این تجربه هنوز وقتی استورتوانت را در سال 2006 به دانشگاه MIT، ابتدا به عنوان کارشناسی ارشد و سپس به عنوان دانشجوی دکترا، گیج می کرد. سپس، او به طور تصادفی به مجموعهای از مقالات نوشته شده توسط استاد مدعو سابق دانشکده مدیریت اسلون MIT، آلن مک کورمک، رسید که فکر میکرد معضل او را توضیح میدهد.
این مقالات روش جدیدی را برای تجزیه و تحلیل ساختار برنامههای نرمافزاری بزرگ برای یافتن مشکلات نه با خطوط منفرد کد، بلکه در نحوه تعامل و همپوشانی فایلهای کد شرح دادند. این ایده اساس یک رویکرد جدید برای ارزیابی و بهبود کد را تشکیل داد و استورتوانت با نویسندگان مقاله همکاری کرد تا Silverthread را تأسیس کند.
در سالهای بعد، Silverthread از تشخیص مشکلات ساختاری پنهان در پایگاههای کد به حل آن مشکلات با ایجاد ماژولارتر کردن برخی از بزرگترین پایگاههای کد جهان تبدیل شد.
استورتوانت میگوید: «اگر یک پایگاه کد 100 میلیون خطی را پرینت بگیرید و آن را روی هم قرار دهید، حدود یک مایل و نیم به هوا میرود. “برای هیچ توسعه دهنده ای غیرممکن است که همه چیز را در این سیستم درک کند – همه اتصالات و همه راه ها اگر یک چیز را تغییر دهید، چیزهای دیگر را به هم می زند. این غیرقابل درک است و بسیاری از سازمانها و شرکتها شکست میخورند زیرا نرمافزار آنها بدهیهای فنی یا معماری مینامیم.»
بدهی فنی یکی از نامهای حرفهایتر توسعهدهندگان است که برای مشکلی که تحقیقات Silverthread نشان داده است سالها شرکتها را آزار میدهد و منجر به کاهش بهرهوری توسعهدهندگان، گردش مالی بیشتر و روحیه پایینتر کارکنان میشود.
اکنون، استورتوانت از رفتن به سازمانهایی مانند سازمانهایی که در آن با مشکل روبهرو شد، و حل مشکلاتی که توسعهدهندگان میدانستند که دارند، اما نمیتوانستند کاملاً روی آنها قرار بگیرند، لذت میبرد.
استورتوانت میگوید: «تیمهایی که در بخشهایی از کد کار میکنند که این مشکلات را دارند، بدبخت هستند. آنها بی ثمر هستند، دائماً با اشکالات مبارزه می کنند و روحیه شان تضعیف می شود و تا نیمه شب جمعه کار می کنند و فقط سعی می کنند کارشان را انجام دهند – و مشکل تقصیر آنها نیست.
یک لامپ روشن می شود
Sturtevant مدرک کارشناسی ارشد خود را از برنامه طراحی و مدیریت سیستم های MIT (SDM) درست زمانی که اقتصاد در حال فروپاشی بود در سال 2008 به دست آورد، بنابراین او تصمیم گرفت ادامه دهد.
من گفتم، من از 18 ماه تحصیل در MIT آنقدر لذت برده ام که نمی دانم از دکتری چه نتیجه ای خواهم گرفت، اما می دانم که اگر چند سال دیگر در این محیط باشم، ارزشش را خواهد داشت. استورتوان به یاد می آورد. جامعه آنقدر خوب است، فرصتها آنقدر خوب است که میدانستم به چیزهای بزرگی منجر میشود.»
استوروانت دانشجوی دکترا بود که مقالات مک کورمک را که با همکاری استاد سابق مدرسه بازرگانی هاروارد و کارلیس بالدوین بنیانگذار Silverthread نوشته شده بود، پیدا کرد.
استورتوانت میگوید: «آن اوراق را خواندم و یک لامپ خاموش شد. به عنوان یک توسعهدهنده نرمافزار، در شرکتهایی که زندگیام جهنمی بود، شاید در داخل بخشی از یک پایگاه کد کار میکردم که میتوان آن را مشکلساز تشخیص داد.»
به عنوان بخشی از پایان نامه دکترای خود، استورتوانت تصمیم گرفت به یکی از شرکت هایی که در آن با رویکرد جدید دست و پنجه نرم می کرد، برگردد و متوجه شد که در تمام طول این مدت در بخش هایی از کدهای ساختار ضعیف – چیزی که او گاهی از آن به عنوان معماری اسپاگتی یاد می کند – کار می کرده است. . او همچنین برای تعیین کمیت تأثیر این مشکل کار کرد و دریافت که نه تنها اشکالات نرم افزاری در مکان هایی با معماری اسپاگتی بدتر هستند، بلکه این اشکالات بیشتر به تجربه مشتری آسیب می زند. توسعه دهندگانی که روی آن قسمت از پایگاه کد کار می کردند، 10 برابر بیشتر احتمال داشت که از کار خارج شوند یا اخراج شوند.
هنگامی که استورتوانت دکترای خود را گرفت، نتایج را به عنوان بخشی از یک سری وبینار که توسط SDM میزبانی شده بود ارائه کرد. بیش از 300 نفر کوک کردند.
استورتوانت به یاد می آورد: «ظاهراً این مشکلی بود که بسیاری از مردم داشتند. شرکت کنندگان مدیرانی از شرکت های بزرگ بودند. بعدش گوشیم داره زنگ میخوره من از شرکتهای بزرگ با تعداد زیادی فارغالتحصیل MIT که از طریق برنامه SDM آمده بودند و گوش میدادند، تماس میگیرم. همه می گفتند: من هم این مشکل را دارم. آیا محصولی دارید که بتوانم بخرم؟»
استورتوانت Silverthread را با مک کورمک، بالدوین و مایکل دیویس، مدرس ارشد MIT و کارآفرین فناوری تاسیس کرد. یکی از اولین فارغ التحصیلان MIT Silverthread که با او ارتباط داشت در یک آژانس دولتی بزرگ کار می کرد.
او گفت، شرط میبندم که این بسیاری از مشکلات کد ما را توضیح میدهد، شرط میبندم که این توضیح میدهد که چرا کل برنامههای دولتی شکست میخورند، و شرط میبندم که این توضیح میدهد بسیاری از اتلافهایی که در توسعه نرمافزار برای دولت انجام میشود.» استورتوان به یاد می آورد. دولت برخی از قدیمیترین و بزرگترین پایگاههای کد در جهان را دارد.
کار اولیه Silverthread با مشتریان مشکلات آنها را با استفاده از الگوریتم های توسعه یافته توسط MacCormack و Baldwin تشخیص داد. امروزه این شرکت تلاش می کند تا معماری اسپاگتی را مدولارتر کند تا بتوان بدون ایجاد پیچیدگی غیرقابل حل و مشکلات غیرقابل توضیح آن را تغییر داد.
Silverthread ابزارهای خود را CodeMRI Suite مینامد که شامل CodeMRI Portfolio و CodeMRI Diagnostic برای ارزیابی سلامت فنی و تأثیر اقتصادی سیستمهای نرمافزاری و CodeMRI Care و CodeMRI Modernize برای تعمیر پایگاههای کد است.
Sturtevant معماری کد خوبی را مانند بلوک های LEGO توصیف می کند. قطعات را می توان با هم ترکیب کرد، روی هم چید و یا به شکلی مدولار حرکت داد. او معماری اسپاگتی را بلوک های لگو می داند که با هم ذوب شده اند.
استورتوانت میگوید: «اگر به یک پایگاه کد عظیم با دهها هزار فایل کد منبع، برنامههای کاربردی بزرگ مانند مایکروسافت ویندوز یا گوگل فکر میکنید، بسیاری از افراد برای ایجاد الگوریتمهای مختلف و رمزگذاری دانش دامنه در نرمافزار کار میکنند. «این نابترین شکل کار دانشی است، و مانند سرودن شعر جمعی است – با این تفاوت که بسیاری از شعرها مزخرف هستند و در طول دههها ساخته شدهاند و منقضی شدهاند و به روشهای مختلف پوسیده شدهاند. با استفاده از تکنیکهای خودکار، میتوانیم ساختار پنهان این چیز عظیم را که هیچکس نمیتواند درک کند، کشف کرده و سپس آن مسائل را اصلاح کنیم.»
نوسازی پلتفرم های نرم افزاری
Silverthread با همکاری بانکها، استارتآپهای بیوتکنولوژی، شرکتهای خودروسازی و سازمانهای دولتی به سرعت در حال رشد است. استورتوانت میگوید ابزارهای Silverthread برای صنعت آگنوستیک هستند و برای هر پایگاه کد بزرگی که در طول زمان ساخته شدهاند، ارزش دارند.
در نهایت، استورتوانت میگوید که پایگاههای کدی که Silverthread به ساخت آنها کمک میکند، پویاتر هستند و به شرکتها اجازه میدهند تا از پاداش کامل نوآوریهایی مانند محاسبات ابری بهره ببرند.
استورتوانت میگوید: «وقتی نرمافزار شما مانند آجرهای لگو است، میتوانید روابط بین هر بخش را درک کنید و هر قسمت میتواند به طور مستقل تکامل یابد. “این یک سیستم سالم است.”