⛳️ نکاتی در مورد تصمیمگیری تکنولوژی
⛳️ نکاتی در مورد تصمیمگیری تکنولوژی
اینکه برای پروژه جدید از چه تکنولوژی استفاده کنیم، یا مثلا فلان ابزار ارزش افزودهای برای تیم، محصول و خودمون بههمراه داره یا نه؛ و سوالهای زیادی از این دست، عموما با دشواری و شک توأم با هم به پاسخ میرسن. برای همین چند روش و نکته رو خوبه تا با هم مرور کنیم. من خیلی خلاصه بهشون اشاره میکنم تا اگر کنجکاوی ایجاد کرد بیشتر در موردشون بخونید یا حتی همینجا مفصلتر صحبت کنیم...
1️⃣ چارچوبهای تصمیمگیری معماری یا Architectural Decision-Making Frameworks
۱-۱ چارچوب ATAM (Architecture Tradeoff Analysis Method)
این چارچوب توسط SEI (Software Engineering Institute) در دانشگاه کارنگی ملون توسعه دادهشده و در مراحل اولیه چرخه حیات توسعه نرمافزار وارد میشه. فازهای مشخص برای تحلیل نیازمندیها، شناسایی گزینهها و مقایسه trade-offها رو بررسی میکنه. و اینکه هر تکنولوژی چطور بر شاخصهای کیفیت سیستمی، مثل پایداری، مقیاسپذیری، امنیت و غیره اثر میگذاره.
مراحل ATAM:
- شناسایی اهداف کسبوکار و نیازمندیهای کیفیتی (Quality Attributes)
- لیستکردن گزینههای تکنولوژیک
- تحلیل سناریوهای کاربردی
- شناسایی trade-offها و ریسکها
- انتخاب گزینهای که بیشترین تطابق را با اهداف و کمترین ریسک را دارد.
توضیح مقدماتی در مورد ATAM
توضیح بیشتر؟ ریاکشن: ⚙️
۱-۲ چارچوب ADR (Architecture Decision Records)
یک روش برای مستندسازی تصمیمات تکنولوژیک به شمار میاد و هر تصمیم شامل: زمینه، گزینهها، دلایل انتخاب، تاثیرات مثبت/منفی، و رد گزینههای دیگه رو مینویسم و افراد تیم میخونن یا برای آیندگان به یادگار میگذاریم. به تجربه عرض میکنم که نوشتن دقیق (و نه سَمبَلنویسی، خیلی خیلی به درک و تصمیم بهتر کمک میکنه، به شفاف شدن مسئله و نیاز کمک میکنه. درست برعکس حرف زدن که جمله سوم نرسیده، نکات جمله اول فراموش میشه!) برای تیم کوچک تا خیلی بزرگ میتونه کاربرد داشته باشه. مثالهایی از اسناد ADR
————————-
⚙️ در مورد ۲ و ۳ در صورت استقبال از بخش اول، در پستهای بعدی خواهم نوشت.
2️⃣ مدلهای مقایسهای (Decision Matrix/Weighted Scoring Model)
3️⃣ چارچوبهای شرکتهای بزرگ (مثلاً ThoughtWorks Technology Radar، Gartner Magic Quadrant)
—————————
4️⃣پرسشهای کلیدی که خوبه پاسخ بدیم و حداکثر تلاشمون رو برای پاسخ دقیق دادن بهشون به کار ببندیم:
🔤آیا تکنولوژی با نیازمندیهای پروژه و بودجه همخونی داره؟
🔤آیا لیستی از معیارهای مهم (کارایی، هزینه، امنیت، پشتیبانی، یادگیری، بازار کار) داریم؟
🔤تیم چقدر تجربه یا علاقه بهش داره؟ (بر اساس معیار استاندارد و نه حس شخصی)
🔤کامیونیتی و ساپورتش چطور است؟ (کامیونیتی در دسترس و مشابه، از نظر سایز و عمق دانش)
🔤توسعه، نگهداری و مقیاسپذیری در بلندمدت چطور خواهد بود؟
🔤امنیت، ریسک vendor lock-in یا پشتیبانی تجاری داره یا نه؟
🔤در صورت اشتباه، راه بازگشت داریم؟
🔤چقدر تحت تاثیر trend و هیجان و علاقه شخصی خواهد بود، چقدر تابع بررسی و تحلیل؟
💬 تجربه و روش مورد استفاده شما چیه؟