Learning With M
1.65K subscribers
45 photos
15 videos
3 files
68 links
سلام.
من مسعود دانش پور هستم.
همسر، پدر، پسر، برادر، انسان و مهندس نرم افزار.👻

اینجا جایی هست که من تلاش می کنم موضوعاتی که برای یک مهندس نرم افزار مهم و لازمه رو بازگو کنم.

آکادمی یادگیری با M :
https://academy.daneshpour.ir
Download Telegram
روز پنجشنبه ما در علی بابا میزبان تعداد زیادی از منتور ها و منتی هایی بودیم که برای پیدا کردن سوالات خودشون یا کمک به بقیه برای پیدا کردن پاسخ هاشون اونجا جمع شده بودند.

افتتاحيه مراسم‌ رو تصمیم گرفتم که در مورد یک حلقه گم شده در کارهامون اختصاص بدم : Authenticity

اصالت واژه قدرت مندیه‌.
از این بعد بیشتر در مورد این واژه از من می شنوید.
22👍1
Learning With M
سلام، در این دوره منتورینگ رایگان که توسط استار کوچ برگزار میشه با شما همراه خواهم بود تا اگر سوالی در زمینه رشد در مهندسی نرم افزار دارید رو پاسخ بدم. ۱۴ آبان من در خدمتتون خواهم بود. اطلاعات بیشتر : http://starcoach.ir/startcamp
سلام.
امشب ساعت ۸ شب در خدمت شما خواهم بود تا به سوالاتتون پاسخ بدم.
خوشحال میشم که توی جلسه ببینمتون.

راستی از بلیط های دوره Techlead 360 که تخفیف ۵۰٪ اسپانسر دارند چند عدد بیشتر نمونده. اگر قصد شرکت در دوره رو دارید و میخواید از این تخفیف استفاده کنید، این فرصت رو از دست ندید.

لینک اطلاعات بیشتر در مورد دوره:
https://academy.daneshpour.ir/Program/techlead-360

لینک ثبت نام دوره:
https://b2n.ir/techlead-360-aban

ارادت
7👌1
هالووین گذشته ولی خدایی بامزه بود
😁19
Media is too big
VIEW IN TELEGRAM
سلام.
از اونجایی که فقط دو هفته تا شروع دوره Techlead 360 داریم، بخش پایانی نظرات دانش‌جو های دوره قبلی رو بینید.

اگر دوست دارید در مورد دوره بیشتر بدونید، از این لینک می تونید اطلاعات خوبی به دست بیارید:
https://academy.daneshpour.ir/Program/techlead-360

لینک ثبت نام دوره:
https://b2n.ir/techlead-360-aban
👍1
سلام سلام.
من در دو جا کتاب هایی که می خونم رو لیست می کنم.
یکی وبلاگم خودم هست در بخش قفسه کتاب که سعی می کنم بعد از معرفی، چند خطی هم براشون بنویسم.
این قفسه رو می تونید از اینجا پیدا کنید :

https://B2n.ir/book-shelf

یه بخش دیگه هم مربوط به کتاب های تخصصی-فنی هست که توی سایت @refhubofficial یک بخشی رو عزیزان به من اختصاص دادن که می تونید از اونجا کتاب ها رو ببینید که از این آدرس قابل دسترسی هست :

https://B2n.ir/m-refhub
11👍3🆒1
سلام.
عزیزی اومده پیش من و برای دوره ای که می‌خواد برگزار کنه(آموزش برنامه نویسی) سیلابس هاشو چک کنه.
من با کانتنت مخالف بودم، چون به نظرم برای اون سطح زیاد بود و قوام و ساختار نداشت.
اون دوست عزیز قبول نکرد.

اینجا همونجایی هست که بر میگردم به اصالت.
برگزار کردن دوره و جمع کردن به تعداد آدم و دریافت پول ازشون کار راحتیه، ولی چه قدر اصالت داریم که:
۱. محتوا با کیفیته؟
۲. خودمون توامندیم؟
۳. مسیر مشخصه؟
۴. برنامه اصولیه؟

این میشه نتیجه اینکه توی سال هایی که من تدریس آموزشگاهی داشتم، بخشی از دانشجو هام از دوره اساتید معروفی میومدن که بعد از صرف کلی زمان و پول، قادر به کار نبودن.

اصالت داشتن در انتقال دانش(چه در تیم، چه در شرکت، چه در دوره آموزشی و یا چه در آموزشگاه) خیلی کار سخت و جان کاهیه.
👍254👎1
سلام،
عزیزانی که دوره تکلید ۳۶۰ رو ثبتنام کردند، برای هماهنگی لطفا به من پیام بدن.
@MDP66
فردا اولین جلسه دوره Techlead 360 هست و من خیلی هیجان شروع دوره رو دارم.

این احتمالا آخرین برگزاری این دوره در امسال خواهد بود.

در کنار دوره Techlead 360 که دوره حرفه ای مدیران تک هست، دوره بعدی رو به زودی معرفی خواهیم کرد با عنوان "10x Engineer" که برای مهندسان نرم افزار طراحی شده و هدفش پرورش مهندسین نرم افزاری هست که یه سر و گردن از بقیه بالاتر باشن و توانمندی هایی داشته باشن که سازمان ها رو جا به جا کنه. توانمندی هایی که به صورت عادی شاید حتی براتون مشخص هم نبوده.
👍1211🎉3🔥1
Forwarded from tech-afternoon (Amin Mesbahi)
‌‌‏DORA چیه؟
فریم‌ورک DORA که مختصر شده‌ی DevOps Research and Assessment است، یک فریم‌ورک برای تحقیق و ارزیابیه که تمرکزش روی بهبود مستمر تحویل نرم‌افزار در سازمان‌هاست. هدف DORA کمک به تیم‌ها و سازمان‌ها برای بهبود عملکرد و شناسایی نقاط ضعف فرآیند توسعه و عملیاتشونه. DORA بر اساس گزارش‌های سالانه مثل "Accelerate State of DevOps" و ۴ معیار کلیدی (DORA Metrics) شناخته می‌شه:

اول: Lead Time for Changes
زمان لازم برای انتقال تغییرات کد به محیط تولید.

دوم: ‌‎Deployment Frequency
تعداد دفعات دیپلوی به محیط تولید.

سوم: ‎Change Failure Rate
درصد دیپلوی‌های ناموفق که باعث مشکلات در محیط تولید می‌شه.

چهارم: ‎Time to Restore Service
زمان لازم برای رفع خرابی و بازگرداندن سیستم به حالت پایدار.


🧐 به چه درد می‌خوره؟
فریم‌ورک DORA به تیم‌ها کمک می‌کنه تا عملکرد خودشون رو ارزیابی کنن و با استفاده از «داده‌» تصمیم بگیرن که کدوم بخش‌ها نیاز به بهبود دارن. گزارش‌های DORA به سازمان‌ها کمک می‌کنه تا با بررسی این معیارها، روند بهبود مستمر رو پیاده‌سازی کنن و بهترین عملکرد رو به دست بیارن.

⚙️ استفاده از DORA برای بهبود پایدار عملکرد مهندسی سازمانه، چند موضوع مهم:

🔹 چالش جمع‌آوری داده‌: به دست آوردن داده‌های دقیق برای متریک‌های DORA همیشه آسون نیست. ابزارهای اتوماتیک کمک می‌کنن، ولی هنوز هم تلاش زیادی برای ادغام این ابزارها در اکوسیستم سازمان نیاز هست.

🔹 اهمیت بازخورد: تیم‌ها می‌تونن از گزارش‌های DORA به عنوان بخشی از فرآیند بهبود مستمر استفاده کنن، مشابه یک ریتروسپکتیو تیمی که با تحلیل گزارش‌ها به اقدامات جدید می‌رسن.

🔹 تأثیرات پیاده‌سازی درست DORA: پیاده‌سازی درست DORA خیلی به رهبری و نحوه حمایت از اون بستگی داره. اگر تیم‌ها آزادی عمل داشته باشن تا بهبودهای خودشون رو انتخاب کنن، نتایج پایدارتری به دست می‌آد.

🔹تیم‌های موفق از استانداردهای صنعتی الهام می‌گیرن: تبیین قابلیت‌های DORA باعث می‌شه تا تیم‌ها بهتر بتونن معیارها رو درک کنن و از "این نظر منه" و "نظر تو چیه" فاصله بگیرن و به یک استاندارد صنعتی مشترک برسن.

🧾 نکات جالب از گزارش DORA 2024

🔸 رشد استفاده از هوش مصنوعی: پذیرش هوش مصنوعی داره به شدت رشد می‌کنه و تیم‌ها گزارش دادن که استفاده از AI باعث افزایش بهره‌وری، کیفیت کد، و سرعت بررسی‌های کد شده. با این حال، استفاده از AI تأثیر منفی کوچکی روی پایداری تحویل نرم‌افزار داشته.

🔸 مهندسی پلتفرم: گزارش اشاره کرده که تیم‌های استفاده‌کننده از پلتفرم‌های داخلی ۱۰ درصد بهره‌وری بیشتری داشتن، ولی کاهش ۸ درصدی در throughput و ۱۴ درصدی در stability هم مشاهده شده.

🔸 تثبیت اولویت‌ها: سازمان‌هایی که اولویت‌های پایدار دارن، بهره‌وری بیشتری دارن و سطح فرسودگی (burnout) کارکنان پایین‌تره.



❇️ خلاصه اینکه، روشمند و ساختاریافته در مورد فرایندهامون رفتار کنیم 😉

🔗 وب‌سایت DORA

🔗 گزارش سال ۲۰۲۴
👍9
Forwarded from tech-afternoon (Amin Mesbahi)
🎇 رویداد Microsoft Ignite 2024 و آینده‌ی SQL Server

رویداد Microsoft Ignite یکی از مهم‌ترین رویدادهای سالانه مایکروسافته که تمرکز اصلیش روی ارائه آخرین نوآوری‌ها، تکنولوژی‌ها و پیشرفت‌های Azure و خدمات ابری، دیتابیس‌، DevOps، هوش مصنوعی و امنیته. رویداد امسال هم مثل چند سال گذشته که تب AI حسابی داغ بوده، کلی معرفی محصول روی هوش مصنوعی داره که از فردا شروع می‌شه. یکی از موضوعات مهمش هم AI برای SQL Server است.

📢 جلسه: The SQL Server roadmap: The next generation database AI platform
🗓 چهارشنبه، ۲۰ نوامبر ساعت ۱۸ (به وقت تهران)
توی این جلسه قراره تا شاهد معرفی آخرین قابلیت‌های هوش مصنوعی که قراره در نسخه آینده‌ی SQL Server اضافه بشه باشیم. احتمالا متوجه می‌شیم که نسخه بعدی چیه و چه‌زمانی منتشر می‌شه، از طرف دیگه ابزارهای AI و ML که به صورت بومی توی Microsoft SQL Server و Azure SQL رونمایی می‌شن رو می‌بینیم. موضوعات جلسه:

- معرفی ‎AI-native capabilities که امکانات هوش مصنوعی رو به طور مستقیم در موتور SQL Server اضافه می‌کنه.
- پشتیبانی از مدل‌های ML: قابلیت اجرای مدل‌های ML از طریق T-SQL بدون نیاز به سرویس خارجی.
- بهبود ‎ AutoML integration از نظر عملکرد تحلیل داده و قابلیت‌های پیش‌بینی بدون نیاز به دانش عمیق از ML.

🤖 🤖 🤖 حالا بد نیست یه نگاه به بازار دیتابیس‌های سنتی بندازیم و بررسی وضعیت AI توی دیتابیس‌های مختلف

نسخه فعلی ‌‎ Microsoft SQL Server
بهبود یکپارچگی با Python و R: نسخه‌های قبلی ابتدا R و بعدتر Python به SQL Server اضافه شدن و امکان اجرای اسکریپت‌های Python و R رو به همراه داده‌ها فراهم کرده شده بودن.

امکانات ML Services: سرویس‌های یادگیری ماشین توی SQL Server یکپارچه هستن تا مدل‌های ML به سادگی روی دیتابیس آموزش ببینن و اجرا بشن.

اتصال و ادغام با Azure AI: امکان اتصال و ادغام SQL Server با سرویس‌های Azure AI برای استفاده از مدل‌های آماده و از پیش آموزش‌دیده.

🔴 دیتابیس سرور ‎Oracle Database 23ai
اوراکل به عنوان رقیب سنتی SQL Server توی نسخه 23 توجه ویژه‌ای به AI و ML داشت و عملا AI Vector Search رو هم به انجین آورد.

قابلیت In-database Machine Learning که مستقیماً توی دل دیتابیس انجین قرار داده باعث می‌شه بتونیم مدل‌های ML رو بدون انتقال داده به سرویس خارجی اجرا کنیم.

قابلیتAutoML هم به کاربر امکان پیدا کردن خودکار بهترین مدل‌ و تنظیمات رو برای داده‌های موجودش فراهم می‌کنه.

پشتیبانی از Python و SQLML: اوراکل هم از پایتون برای پیاده‌سازی مدل‌های ML پشتیبانی می‌کنه

🟢 ۳: سرور ‎PostgreSQL
بین دیتابیس‌های کدباز PostgreSQL هم به عنوان انجین خوشنام و پیشرو، قابلیت‌های AI و ML رو از طریق افزونه‌ها و پلاگین‌ها فراهم می‌کنه:

- افزونه pgml: افزونه‌ای برای Machine Learning که امکان آموزش و اجرای مدل‌ها رو از دل دیتابیس فراهم می‌کنه.

- یکپارچگی Python integration) ‎PL/Python) امکان نوشتن توابع Python و اجرا در داخل PostgreSQL ممکن می‌کنه.

- پشتیبانی از ابزارهای محبوب ML مثل TensorFlow و Scikit-learn که از طریق Python در دسترسه.

🟡 ۴: سرور ‎MySQL
MySQL با وجود محبوبیت زیاد، از لحاظ قابلیت‌های بومی AI و ML از رقبا عقب‌تره! که البته از Oracle جز این انتظار نمی‌ره! از روزی که MySQL کم‌توجه بوده بهش 😏

🧞‍♂️ انتظارات از نسخه بعدی Microsoft SQL Server
با توجه به تمرکز مایکروسافت روی AI، می‌شه «حدس زد» که قابلیت‌های زیر در نسخه‌های آتی SQL Server اضافه بشه (فقط حدس منه، خبر نیست!):

- قابلیت AI-driven Query Optimization: استفاده از هوش مصنوعی برای بهبود عملکرد کوئری‌ها و کاهش زمان پاسخگویی.
- بهبود AutoML Integration: یکپارچگی بیشتر با سرویس‌های AutoML Azure و امکان آموزش مدل‌های پیچیده‌تر.
- اضافه شدن Native AI Functions: اضافه شدن توابع پیش‌فرض AI مثل توابع پیش‌بینی و دسته‌بندی به T-SQL.
- تمهیدات Data Privacy & AI: استفاده از AI برای تضمین امنیت و حریم خصوصی داده‌ها در دیتابیس.

👨‍💻 نظر شما چیه؟ چهارشنبه این جلسه رو می‌بینید؟ کاربرد AI توی دیتابیس انجین براتون جذابیت/کاربرد داره؟

صفحه رسمی رویداد
صفحه رسمی جلسات رویداد Ignite 2024
👍1
وقتی میگم اصیل باید بود این شکلیه.
حتی توی تبلیغات.
1👍1
Forwarded from TechTube 𝕏 تک توب
Media is too big
VIEW IN TELEGRAM
در حالی که جگوار سرگرم لوگوی مسخره اشه، شرکت ولوو برای نشون دادن ایمنی خودروهاش چنین تبلیغاتی منتشر میکنه.

این تبلیغ توسط Hoyte Van Hoytema، فیلمبردار فیلمهای درخشان Interstellar و Oppenheimer فیلمبرداری شده!

📍 @TechTube
12👍7🔥1👌1
Forwarded from tech-afternoon (Amin Mesbahi)
🚀🚀 تست رفتارها و خطاهای API به سادگی، با Dev Proxy
—————————————————————————
تا حالا شده موقع توسعه یه اپلیکیشن، API ای که ازش استفاده‌ می‌کردید یهو به مشکل بخوره؟ مثلاً سرور پاسخ نده، تأخیر داشته باشه، یا با خطای محدودیت نرخ (Rate Limit) روبه‌رو بشین؟ خب، اگه یه اپلیکیشن اصولی می‌سازین، باید بدونین که این اتفاقات واقعی‌ان و ممکنه تجربه کاربر رو خراب کنن.

برای اینکه این مشکلات رو قبل از اینکه وارد دنیای واقعی بشین شبیه‌سازی کنین، یه ابزار خیلی خوب به اسم Dev Proxy موجود داره برای شبیه‌سازی این مشکلات. با Dev Proxy می‌تونین رفتارهای مختلف رو شبیه‌سازی کنین و مطمئن بشین اپلیکیشن‌تون تو هر شرایطی سر بلند بیرون میاد.

♻️ کاربرد Dev Proxy: کجا به درد می‌خوره؟


در واقع Dev Proxy دقیقاً یه پروکسی شبکه است که بین اپلیکیشن شما و API قرار می‌گیره. وظیفه‌اش شبیه‌سازی شرایطیه که ممکنه یه API تو دنیای واقعی تجربه کنه. مثل:

- ایجاد تأخیر (Latency): شبیه‌سازی شرایطی که سرور کند پاسخ می‌ده.

- خطاهای HTTP: مثل خطاهای 500 (Internal Server Error)، یا 404 (Not Found) یا حتی 429 (Too Many Requests).

- خطای Rate Limiting: مثلا وقتی که اپلیکیشن شما API رو صدا می‌کنه ولی با خطای محدودیت نرخ درخواست‌ها روبرو می‌شه چی‌ می‌شه.

- حذف داده‌ها یا پاسخ‌های ناقص از طرف API

⚙️ مثال عملی:
فرض کنین یه اپلیکیشن مالی نوشتین که نرخ تبدیل ارزها رو از یه API می‌گیره. حالا، اگه API به هر دلیلی کند بشه یا خطا بده، اپلیکیشن شما نباید متوقف بشه یا داده اشتباه نشون بده. با Dev Proxy می‌تونید این سناریوها رو شبیه‌سازی کنید و رفتار اپلیکیشن رو در این شرایط بسنجین.

یکی از خوبی‌های Dev Proxy اینه که به زبان یا تکنولوژی خاصی وابسته نیست. عملا یه ابزار جمع‌وجوره که روی مک، لینوکس یا ویندوز نصب می‌شه و شما می‌تونید ازش برای هر اپلیکیشنی که با API از نوع HTTP REST یا gRPC کار می‌کنه، استفاده کنید. فرقی هم نداره اپلیکیشن‌ دات‌نت، جاوا، پایتون، یا جاوااسکریپت باشه.

من قدیم از Mountebank استفاده می‌کردم ولی از ده سال پیش دیگه آپدیت نداد، بعدش postman mock server و مدتی از WireMock و یک سالی می‌شه که اکثرا از Dev Proxy استفاده می‌کنم، تقریبا از زمانی که دیگه کم‌کم به ابزار خوبی تبدیل شد، با اینکه هنوز به نسخه ۱ نرسیده ولی اکثر نیازها رو برای توسعه و تست برآورده می‌کنه و به راحتی توی CI/CD قرار می‌گیره.

گیت‌هاب
مستندات رسمی

نصب روی ویندوز:
winget install Microsoft.DevProxy
نصب رو مک:
brew tap microsoft/dev-proxy
brew install dev-proxy
نصب روی لینوکس:
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"


مثال:
برای شبیه سازی تاخیر ۲ ثانیه‌ای در پاسخ دادن:
dev-proxy --latency 2000

برای برگردوندن خطای ۵۰۰
dev-proxy --error 500

نظرتون چیه؟ بعد از انتشار ویدیو aspire بریم سراغ ویدیو آموزشی براش؟
👍116
Learn Hexagonal Architecture (aka Ports and Adapters) from It's Creator

A more concise nick name for Hexagonal Architecture as Alistair said is: Ports and Maybe Adapters!



Learn from it’s creator the rules and structure of the “Hexagonal”, more correctly called the Ports & Adapters architecture. In this lecture, Dr. Cockburn will describe why he created it, its benefits and also its costs, the UML description, and also some sample code. As an extra challenge, he will invite you to write your first Ports & Adapters application in your favorite language /during/ the talk!

Outline of the lecture:

- Challenge to write a small application during the lecture
- Short form what the code looks like
- Costs, benefits, history: why was it needed
- Viewing your application as a component
- Development sequence
- Examples in Ruby & Java with needed terminology
- How to set up the folders
- The various ways to set up the architecture
- Why is it called /Hexagonal/?
- Summary, checking in with people who accepted the challenge



https://www.youtube.com/watch?v=k0ykTxw7s0Y
وقتی میگم اصالت داشته باشید دارم در مورد این صحبت می کنم :

استاد دانشگاه سر کلاس توی دوره E-commerce داره نصب Wordpress یاد میده !

اصالت در آموزش یکی از بنیادی ترین اصالت هاست به نظرم.
👍21😁8
وضعیت دولوپر های این روزها:

تست نمی‌نویسم
تست نمی‌کنم
میره پروداکشن مشتری تست می‌کنه.

#حق
🤣29😁5👍1🥴1
با انواع Test Double ها آشنایی دارید ؟

در فرآیند توسعه نرم‌افزار و تست نرم‌افزار، وقتی می‌خواهیم یک بخش از سیستم را ایزوله تست کنیم (به‌عنوان مثال یک واحد کد را بدون درگیر شدن با وابستگی‌های خارجی آن تست کنیم)، از مفهومی به نام "Test Double" استفاده می‌کنیم. Test Double یک موجودیت جایگزین برای شیء یا ماژول واقعی هست تا وابستگی‌های خارجی را در زمان تست کنترل‌پذیر و ساده‌تر بشن.

مارتین فاولر بزرگ انواع Test Double را به صورت کلی به پنج دسته تقسیم کرده است که هرکدام هدف و کاربرد خاصی دارند:


Dummy: فقط برای پر کردن جای خالی پارامترها و عدم استفاده عَملی در تست
Stub: برگرداندن پاسخ‌های ثابت و ساده برای حذف وابستگی‌های خارجی
Fake: پیاده‌سازی ساده‌شده و درون حافظه‌ای یک سرویس خارجی واقعی
Spy: مانند Stub اما با قابلیت نظارت و ثبت تعاملات برای بررسی پس از اجرا
Mock: تعریف انتظارات قبل از اجرا و کنترل دقیق تعاملات برای تست رفتار


@learning_with_m
🙏86
سبک های نوشتن Test در نرم افزار

🇺🇸 Classic(Chicago/Detroit) style TDD
این سبک که در حقیقت توسط Kent Beck توصیه میشه روشی هست که در زمان نوشتن تست ها، شما بیشتر به خروجی اهمیت میدید، نه عملکرد داخلی SUT. به همین دلیل در این روش استفاده از Stub و Fake خیلی بیشتر از Mock هست.
به عبارت دیگه، این روش تست، تمرکزش بر روی External Observed Behavior هست.

🇬🇧 Mockist (London) style TDD

در این سبک بر عکس روش Classic تمرکز بر روی رفتار ها و ارتباطات داخلی یک SUT هست و به همین دلیل در این روش ما بیشتر از Mock ها استفاده می کنیم که به دقت رفتار داخلی رو بتونیم بررسی کنیم.

@learning_with_m

حالا شاید بپرسید کدوم روش بهتره؟
طبق معمول تمام جواب های صنعت نرم افزار : It Depends !
ولی به قول Udi Dahan باید Fully Formed It Depends باشه. برای همین منم سعی می کنیم شرایط رو بگم :

اگر در حال ریفکتور هستند، اگر تعاملات داخلی کد براتون مهم نیست و خروجی مهمه، اگر کدتون وابستگی پیچیده ای نداره و اگر پایداری بالایی در تست ها میخواهید روش Classic بهتر عمل می کنه.
اگر ارتباطات داخلی SUT مهمه، اگر وابستگی زیادی بین اجزا هست، اگر می خواهید بر اساس تست Design کنید، روش Mockist بهتر عملی می کنه.

قطعا میشه این روش های رو جای همدیگه هم استفاده کرد و هیییییییچ چیز در نرم افزار، قطعی نیست و همه چیز به Context بر می گرده.

پ.ن : من یه روش نا محبوب هم برای به خاطر سپاری این دو روش دارم 😝:
اگر دوست داری همه جا سرک بکشی و مستعمره داشته باشی و توی کاره همه فضولی کنی، پس توی London Style باید باشی، تیپیکال انگلستان ! یعنی Mockist.
اگر مدل وطن پرستی طور و درست کار می کنه دست بهش نزن هستی، Chicago طور هستی ! یعنی Classical.
👍81🔥1
Forwarded from tech-afternoon (Amin Mesbahi)
📌 ربع‌بندی بدهی فنی (Technical Debt Quadrant)

دیروز یه توییتی زدم که برای توضیح بهتر منظورم (که هیچ ربطی هم به نرم‌افزار نداشت)، از توصیف بدهی فنی ناآگاهانه‌ی بی‌پروا استفاده کردم، این شد که گفتم شاید بد نباشه کمی عمیق‌تر در مورد بدهی فنی گپ بزنیم...

مارتین فولر سال‌ها پیش یک ربع‌بندی (Quadrant) برای طبقه‌بندی انواع بدهی ‌های فنی معرفی کرد که تا امروز هم قابل تعمیم و استفاده است، برای اینکه دید بهتری نسبت به بدهی فنی‌هامون داشته باشیم. برای «احمقانه»‌ها توجیه نتراشیم... بابت عاقلانه‌ترها هم خودمون رو بیش از حد سرزنش نکنیم.

1. بی‌پروا و غیرآگاهانه (Reckless & Inadvertent)
بدون آگاهی و بی‌برنامه ایجاد شده.

2. بی‌پروا و آگاهانه (Reckless & Deliberate)
تیم آگاهانه و به صورت بی‌پروا برای سرعت بخشیدن به کار ایجاد کرده.

3. محتاطانه و غیرآگاهانه (Prudent & Inadvertent)
به صورت تصادفی اما با رعایت اصول اولیه ایجاد شده.

4. محتاطانه و آگاهانه (Prudent & Deliberate)
آگاهانه و با برنامه‌ریزی برای دستیابی به اهداف کوتاه‌مدت ایجاد شده.

ری‌اکشن 🤓 برای اعلام تمایل برای توضیح بیشتر و مثال و...
🤓23👍1