
عنوان سخنرانی: Architecture Modernization: Aligning Software, Strategy & Structure Nick Tune GOTO 2024
سخنران: Nick Tune - Author of "Architecture Modernization" & Staff Engineer at PayFit
ویدیو: با همین "عنوان سخنرانی" در یوتوب تماشا کنید.
در این پست، قصد دارم به سراغ یکی از سخنرانیهای کلیدی کنفرانس GOTO در حوزه مدرنسازی سیستمهای نرمافزاری بروم؛ موضوعی که دغدغهی بسیاری از سازمانهای در حال رشد است. من قرار است یه تحلیل از ویدئو معرفی شده را داشته باشم و نکات مهمی که از نگاه معمارانه برایم جذاب بود را با شما به اشتراک بگذارم. امیدوارم این بررسی، زاویه دید تازهای به چالشهای مدرنسازی و استراتژیهای مدیریت جریان ارزش در تیمهای فنی به شما بدهد.
مدرنسازی نرمافزار در سازمانهای بزرگ اغلب با یک پیشفرض اشتباه شروع میشود: اینکه تنها با تغییر تکنولوژی مثلاً مهاجرت از یک زبان قدیمی به یک فریمورک مدرن، مشکلات حل خواهند شد. اما واقعیت معماری نرمافزار در شرکتهای تثبیتشده، بسیار پیچیدهتر است. برای یک معمار، مدرنسازی نه یک پروژه فنی صرف، بلکه یک مأموریت بقا است که باید تعادلی ظریف میان حفظ داراییهای ارزشمند گذشته و کسب چابکی شرکتهای نوپا ایجاد کند.
بزرگترین مانع در مدرنسازی، لزوماً پیچیدگی کد نیست، بلکه موفقیت گذشته است. شرکتهایی که با یک محصول عالی یا برند قدرتمند رشد کردهاند، به راحتی در دام هزینههای جایگزینی و پیچیدگیهای سازمانی میافتند. زمانی که سیستم برای هدفی خاص مانند مدل کسبوکار قدیمی طراحی شده، تحمیل ویژگیهای جدید بر آن، مانند وصلهپینه کردن یک سازه قدیمی است که از اساس برای آن بار جدید طراحی نشده است. معماران باید به یاد داشته باشند که مدرنسازی کورکورانه، نه تنها ارزشافزوده ندارد، بلکه میتواند سازمان را در نیمهراه پروژههای شکستخورده گرفتار کند.
یکی از کلیدیترین برداشتها از این گفتگو، اهمیت گوش دادن به عنوان یک ابزار معماری است. معمار موفق کسی نیست که در اتاق دربسته تصمیم میگیرد، بلکه کسی است که با شنیدن دردهای ذینفعان، روایت درست را میسازد. ابزارهایی مثل Event Storming و Impact Mapping اینجا ماهیت فنی خود را از دست داده و به ابزارهای ایجاد تفاهم تبدیل میشوند. وقتی ما از Wardley Mapping برای تحلیل تکامل اجزای سیستم استفاده میکنیم، در واقع داریم به مدیران کسبوکار نشان میدهیم که کجا باید نوآوری کنند و کجا باید از ابزارهای آماده و ارزان استفاده کنند. این دقیقاً همان جایی است که معماری نرمافزار به جای کدنویسی، به ارکستراسیون ارزش تبدیل میشود.
خطای رایج در پروژههای مدرنسازی، نگاه پروژهای کلاسیک است؛ اینکه همه چیز را در یک بازه چندساله در نظر بگیریم. استراتژی هوشمندانه، تمرکز بر تحویل نتایج ملموس در ۳ تا ۶ ماه اول است. این کار نه تنها تیم را در مسیر درست نگه میدارد، بلکه باعث جلب اعتماد سازمان میشود که اغلب به دلیل شکستهای گذشته، نسبت به پروژههای مدرنسازی بدبین هستند.
شاید حیاتیترین نکته، ایجاد تیمهای توانمندسازی معماری باشد. این تیمها نباید نقش پلیس معماری را بازی کنند که به بقیه دستور میدهند؛ بلکه باید مربیانی باشند که با مهارتهای نرم و کوچینگ، به تیمهای محصول کمک کنند تا خودشان بتوانند بر چالشهای فنی غلبه کنند. معماری پایدار، معماریای است که وقتی معمار هم در کنار تیم نباشد، همچنان جریان ادامه داشته باشد و به رشد خود ادامه دهد.
مدرنسازی یک مقصد نیست، بلکه یک توانمندی است. معمار عصر مدرن باید بداند چه زمانی باید کد قدیمی را با احترام کنار بگذارد و چه زمانی باید آن را با استفاده از تکنیکهایی مثل Legacy Encapsulation به عنوان یک سرویس مفید، حفظ کند.
منابع:
Patel, S. (2023). Modernizing Software Systems. QCon San Francisco
. Introducing Event Storming Prooph Board
«اين مطلب، بخشی از تمرينهای درس معماری نرمافزار در دانشگاه شهيدبهشتی است»
#معماري_نرم_افزار_بهشتی