کانال مکتب‌خانه DDD
693 subscribers
93 photos
1 video
5 files
187 links
کانال مکتب‌خانه DDD

اطلاع‌رسانی کارگاه‌ها، دوره‌ها و وبینارهای آموزشی
ارائه منابع و مطالب آموزشی

https://DomainDrivenDesign.ir

#Youtube Channel:
https://www.youtube.com/@Masoud.Bahrami

#Public Group:
https://t.iss.one/DomainDrivenDesignGroup

#DDD
Download Telegram
برنامه از 30 دقیقه دیگه آغاز میشه. منتظر دیدن و شنیدن شما عزیزان هستیم😍
Forwarded from Masoud Bahrami Channel
What if you could refactor a codebase by starting with the end in mind
Refactoring doesn't have to be a blind journey 🗺️.

My latest article Backward Refactoring introduces a new mindset for large code changes. Learn to use your tests and compiler as a blueprint, guiding you from the ideal end state back to reality, one safe step at a time. It’s a method for turning a chaotic refactor into a series of deliberate, low-risk steps.

🔸The Backward Refactoring Approach in a Nutshel:

Backward Refactoring is a strategic mindset for tackling big code changes. Instead of starting with the current, messy code, you begin with the end in mind. The core idea is to first write the ideal, clean code you want to have.

This ideal code will immediately produce a cascade of compiler errors. These errors are not failures; they are your most valuable guideposts. Each error points to a specific part of the legacy code that needs to be refactored. This transforms an overwhelming project into a clear, step-by-step roadmap, allowing you to make small, safe changes while your tests act as a continuous safety net. It’s like solving a puzzle by starting with the finished picture and working backward.




Read Part 1 and start thinking backward. 👇
https://masoudbahrami.com/article/backward-refactoring-a-new-approach-for-big-code-changes/
2👍2
Forwarded from Masoud Bahrami Channel
Is Mathematics Invented or Discovered?

Silvia Jonas, Professor of Philosophy at the University of Bamberg, shares her answer:👇
Watch here

At first glance, this may seem like a silly overly simple or even irrelevant question especially for software engineers or product people. But for me the curiosity behind it goes much deeper. For me It’s not just about passing time by watching a video on YouTube on maths problems, it’s about following a question that has fascinated people for centuries.

------
Here’s what I keep asking myself:
🔵 Why has this question survived history? If it didn’t matter why do we still ask it after thousands of years?

🔵 Where did it start? Did someone just wake up and wonder Is math invented or discovered? Or was it born from frustration trying to explain something and stumbling upon this puzzle?

🔵 Is there even a provable answer? Or is it like asking about the meaning of life always open, never settled?

🔵 What’s at stake? How does it affect science, philosophy, or our view of reality, depending on whether math is invented or discovered?

🔵 Universality: If math is invented why does it describe the universe so precisely? If discovered where exists it before we find it?

🔵 Creativity vs. discovery: When a mathematician proves a theorem is she creating something new like a painter or uncovering something always there like an explorer?

🔵 Levels of invention/discovery: Could it be both? Numbers invented relationships discovered? Does that distinction hold?

🔵 Mind vs. reality: Is math a product of the human brain or is it embedded in reality regardless of us?

🔵 Impact on truth: If invented, is mathematics arbitrary? Could we invent it differently and still build airplanes, algorithms, or AI?

🔵 Philosophical gateway: Doesn’t this question lead to even deeper ones: What is reality? What is knowledge? What is truth?
----
🙆 Why should software engineers care?
Sometimes, the most valuable skill isn’t finding the answer it’s asking the right questions and thinking deeply. Fundamental questions even if abstract or seemingly unrelated train us to explore problems challenge assumptions and see hidden connections. Often spending time understanding the question is more important than rushing to an answer.
------

That’s why I love this question. It starts small nvented or discovered?, but quickly grows into a journey across history science philosophy and even the way we think about software.
1
Masoud Bahrami Channel
Is Mathematics Invented or Discovered? Silvia Jonas, Professor of Philosophy at the University of Bamberg, shares her answer:👇 Watch here At first glance, this may seem like a silly overly simple or even irrelevant question especially for software engineers…
اولش شاید این سوال خیلی ساده یا حتی بی‌ربط به نظر بیاد مخصوصا برای ما برنامه‌نویس‌ها و آدمای محصول، ولی برای من داستانش خیلی عمیق‌تر از این حرفاست. دیدن و دنبال کردن این جور پرسش‌ها فقط پر کردن وقت آزاد نیست و کمک می‌کنه ذهن کنجکاو و فعال‌تری در مواجه با مسائل داشته باشم

من به شخصه اینا رو از خودم می‌پرسم

🔹 چرا این سوال هنوز زنده‌ست؟ اگه مهم نبود چرا بعد این همه سال هنوز بحثش داغه؟
🔹 اصلا از کجا شروع شد؟ یه نفر همین‌جوری یه روز از خواب بیدار شد و پرسید ریاضی اختراع شده یا کشف؟ یا وسط یه مشکل علمی گیر کرده بود و این سوال براش پیش اومد؟
🔹 اصلا جواب قطعی داره یا مثل معنای زندگی همیشه باز می‌مونه؟
🔹 اینکه جواب چی باشه چه تاثیری روی علم، فلسفه یا حتی نگاه ما به واقعیت میذاره؟
🔹 اگه ریاضی اختراعه چرا اینقدر دقیق جهان رو توضیح میده؟ اگه کشفه، قبل از کشف کجا بوده؟
🔹 وقتی یه ریاضی‌دان یه قضیه رو ثابت میکنه داره یه چیز تازه می‌سازه مثل یه هنرمند، یا یه چیز از قبل بوده رو پیدا میکنه مثل یه کاشف؟
🔹 شاید بعضی بخشاش اختراعه، بعضیاش کشف. این مرزبندی اصلا معنی داره؟
🔹 ریاضی ساخته ذهن ماست یا توی خود واقعیت جا خوش کرده؟
🔹 اگه اختراعه، یعنی می‌تونستیم یه ریاضی دیگه اختراع کنیم و بازم هواپیما، الگوریتم و هوش مصنوعی داشته باشیم؟
🔹 این سوال در نهایت در رو باز نمی‌کنه به سوالای خیلی بنیادی‌تر؟ مثل اینکه واقعیت چیه، دانش چیه، حقیقت یعنی چی؟

و خب چرا برای ما مهندسای نرم‌افزار مهمه؟ چون خیلی وقتا مهم‌تر از جواب، خود سوال پرسیدنه. اینکه یاد بگیریم عمیق فکر کنیم، فرضیات رو به چالش بکشیم و ارتباط‌های پنهان رو ببینیم. حتی بعضی وقتا خود سوال مهم‌تر از جوابه. و مهمتر اینکه گاهی برخی سوالات، کلید باز شدن دریچه‌ای به سوی سوالات مهمتری و کلیدی‌تره. گاهی سوالات درست تاثیر بیشتر نسبت به پاسخ‌های دقیق دارند.

همین باعث میشه این سوال برام جذاب باشه. خیلی کوچیک شروع میشه: اختراع یا کشف؟ ولی به یکباره سوالات مهمتری رو توی ذهنم باز می‌کنه
1
🔹 ویدئوی جدید منتشر شد! 🔹

📌 موضوع: "مقدمه‌ای بر معماری نرم‌افزار"

در این ویدئو 40 دقیقه‌ای به موارد زیر پرداختم:

🔹چرا خیلی از نرم‌افزارها بعد از مدتی فرو می‌پاشن
🔹تفاوت بین کدنویسی و معماری
🔹یک مثال واقعی: سیستم سفارش غذای آنلاین
🔹مشکل اساسی تفکر CRUD
🔹معماری چندبُعدی: ساختار، رفتار، کیفیت‌ها، تکامل، تیم‌ها و ارتباطات
🔹و اینکه چطور تصمیم‌های امروز می‌تونن آینده سیستم رو بسازن یا خراب کنن

🎥 لینک تماشا در یوتیوب:
👉 https://www.youtube.com/watch?v=X9rd9hh4-DU&t

اگر به توسعه نرم‌افزار، معماری، یا طراحی سیستم علاقه داری، این ویدئو می‌تونه دیدگاهت رو عوض کنه.
5❤‍🔥2
سلام به همگی دوستان👋

اگر در رویداد نقطه‌ی صفر همراه ما بودید، می‌دانید که آغاز یک مسیر چقدر حیاتی است. حالا وقت آن است که به یکی از مهم‌ترین چالش‌های این مسیر بپردازیم: بدهی فنی.

در دنیای مهندسی نرم‌افزار، بدهی فنی (Technical Debt) اغلب به عنوان کد شلخته یا غیراصولی شناخته می‌شود؛ اما آیا واقعاً به همین سادگی است؟

مسعود بهرامی در دومین رویداد نقطه با ارائه‌ای با عنوان بدهی فنی: فراتر از کد، فراتر از استعاره، دیدگاه شما را نسبت به این مفهوم تغییر خواهد داد. در این رویداد، بررسی می‌کنیم که چطور بدهی فنی فراتر از کد است و چرا باید از این استعاره ساده فاصله بگیریم تا به درک واقعی از تأثیر آن بر پروژه‌ها و سازمان‌ها برسیم.

بعد از ارائه، فرصت برای گفت‌وگوی آزاد فراهم است. این بهترین زمان برای به اشتراک گذاشتن تجربیات و سؤالات شماست.


جزئیات رویداد
سخنران: مسعود بهرامی

📅 زمان: سه‌شنبه 1 مهرماه 1404، 19:00 – 20:30 (به وقت تهران)
📍 آنلاین
📖 اطلاعات بیشتر: ثبت‌نام در Luma

منتظرتان هستیم تا با هم به عمق این موضوع برویم و دیدگاه‌هایمان را به اشتراک بگذاریم.
Forwarded from Masoud Bahrami Channel
خلق از دلِ لحظه

خلق کردن برای من، مرز نمی‌شناسد. نه در بند صفر و یک می‌ماند و نه در فاز کوانتوم و نه در نت‌های موسیقی. این بداهه‌نوازی آماتور، مانند یک ایده‌ی نرم‌افزاری درخشان، از دلِ یک آن بی‌برنامه متولد شد؛ لحظه‌ای که فقط به ندای درونم گوش دادم و گذاشتم جاری شوم.

نرم‌افزار و موسیقی، هر دو یک زبان واحد دارند: زبانِ خلق در لحظه. جایی که تمرین‌های پنهان، ناگهان به یک اثر تبدیل می‌شوند و هر اشتباه، پله‌ای برای رسیدن به کمال می‌شود. این قطعه‌ی کوچک، حاصل ترکیب یکسری عوامل آماتور با یک نوازش آماتور سه‌تار است، که برآیندش هم آماتور است. اما امیدوارم به دلِ شما بنشیند

ببینید و بشنوید👇🏻
https://youtu.be/LurNrEjGhsY
6
Forwarded from Masoud Bahrami Channel
🎥 چهارمین ویدئوی مجموعه‌ی شش بُعد معماری نرم‌افزار توی یوتیوب منتشر شد.

🌀 معماری نرم‌افزار خیلی بیشتر از کُد و نموداره.

اون چیزی که یه سیستم رو زنده می‌کنه و زنده نگه می‌داره، رفتارشه: جریان‌ها، تعاملات، تصمیم‌ها و واکنش‌هایی که توی عمل اتفاق می‌افتن. همین‌طور انتظاراتی که از سیستم یا محصول داریم. در واقع، انتظارات ما همون رفتارهاییه که از سیستم انتظار داریم ببینیم.

متافور کلاسیک برای نرم‌افزار، جعبه‌ی سیاهـه: ورودی میره داخل، پردازش انجام میشه، و خروجی همون چیزی میشه که ما به‌عنوان رفتار سیستم تجربه می‌کنیم.

توی این ویدئو در مورد بُعد رفتاری مختصرا صحبت کردم. جایی که معماری واقعی، خودش رو نشون میده.
اینکه سیستم چطور تغییر می‌کنه، چه ریتمی داره، چطور با محیط درگیر میشه، و تصمیم‌های معماری چطور روی تجربه‌ی کاربر و کیفیت نهایی تاثیر میذارن.

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

📌 ویدئوی کامل رو ببینید:
https://www.youtube.com/watch?v=KBOk_f0f9ow
3
Forwarded from Masoud Bahrami Channel
🎥 سومین! ویدئوی مجموعه‌ی شش بُعد معماری نرم‌افزار توی یوتیوب منتشر شد

سلام به همگی، پاییزتون رنگی و قشنگ باشه بدور از خبرهای بد! 🍁🍂

معماری نرم‌افزار فقط رسم جعبه و خط نیست! 🤯

در قسمت سوم از مجموعه شش بُعد معماری نرم‌افزار، به بُعد حیاتی ساختاری (Structural Dimension) پرداختم.

فونداسیون یک سیستم، بر اساس اهداف و تصمیمات کلیدی ساخته می‌شود. این بُعد، به چگونگی شکل‌گیری شالوده یک سیستم، اجزای آن و روابط میان‌شان می‌پردازد. اینجا جایی است که معماری واقعی خودش را نشان می‌دهد، جایی که تصمیمات ما در مورد ساختار سیستم، بر عملکرد، مقیاس‌پذیری و پایداری آن تأثیر مستقیم می‌گذارند.

در این ویدیو می‌تونیم ببینیم که:

🔹چرا معماری، فراتر از کد و نمودارها است.
🔹چطور انتخاب‌ها و تصمیمات ساختاری، بر تمام جوانب یک سیستم تأثیر می‌گذارند.
🔹چگونه با درک کامل بُعد ساختاری، می‌توان معماری‌هایی ساخت که نه تنها کارآمد باشند، بلکه توانایی رشد و سازگاری با آینده را نیز داشته باشند.

شش بعد معماری نرم‌افزار اضلاع مهم، حیاتی و مکملی هستند که من برای یک انتخاب معماری صحیح نرم‌افزار معرفی کردم. در هر ویدئو بصورت مختصر به هر کدام از این ابعاد پرداخته خواهد شد.


برای تماشای ویدیو و درک عمیق‌تر این بُعد مهم، همین حالا کلیک کنید:
https://www.youtube.com/watch?v=faQUQ63kIDo
4👍2
Forwarded from Masoud Bahrami Channel
🔴 بدهی فنی: یک استعاره‌ی خسته! چرا باید به جای Technical Debt از System Debt بگیم؟

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

در ارائه‌ام در آخرین رویداد "نقطه" توضیح دادم که دیگه نمی‌تونیم از اصطلاح Technical Debt استفاده کنیم. این استعاره رنگ خودش رو باخته و نمی‌تونه واقعیت پیچیده‌ی سیستم‌های نرم‌افزاری رو توصیف کنه.
من همیشه از اصطلاح مناسب‌تری به اسم بدهی سیستمی (System Debt) استفاده کردم. به دلایل زیر من همیشه از این واژه استفاده می‌کنم:

🔹 مسئولیت مشترک
بدهی فقط مربوط به تیم توسعه نیست. همون‌طور که در مقاله‌ام نوشتم:

Calling it technical makes it sound like only developers are responsible. Debt often comes from business decisions, cultural habits, or organizational structures.

میتونیم بگیم بدهی سیستمی یک چتر بزرگ‌تره که همه‌ی بدهی‌های فنی، سازمانی و فرهنگی رو در بر می‌گیره.

🔹استراتژی در مقابل ریسک
مدیریت بدهی نباید یک اتفاق تصادفی باشه؛ باید یک تصمیم آگاهانه باشه.
"The key is intentionality. Conscious debt is strategy. Unconscious debt is risk."


بدهی سیستمی اصطلاح جامع‌تریه که همه‌ی این عوامل رو زیر یک چتر میاره. و مدیریت آگاهانه‌اش می‌تونه بزرگ‌ترین مزیت رقابتی شما باشه.

مقاله کامل رو از لینک زیر می‌تونید بخونید 👇🏻
https://masoudbahrami.com/article/technical-debt-more-than-code-more-than-a-metaphor/
🎥 ویدئو جدید: Technical Debt Is a LIE Introducing System Debt؟

اغلب وقتی از بدهی فنی (Technical Debt) صحبت می‌کنیم، همه‌چیز رو گردن کد و توسعه‌دهنده‌ها می‌ندازیم.
اما واقعیت اینه که ریشه‌ی مشکل معمولاً در جای دیگه‌ست، تصمیم‌های سازمانی، فرهنگ تیمی، و فشارهای بیزنسی.

توی این ویدئو، بر اساس مقاله‌ی من، توضیح می‌دم چرا باید به جای بدهی فنی از مفهوم بدهی سیستمی (System Debt) صحبت کنیم و چطور این مفهوم و این دیدگاه می‌تونه کمک کنه که پایه محکم و بهتری جهت بررسی بدهی‌های یک محصول برای مدیرها، PMها و تیم‌های فنی بوجود بیاد.

🔹 موضوعات کلیدی:

🔵 بدهی فنی فقط نوک کوهه یخه
🔵 بدهی سازمانی و فرهنگی، عامل اصلی فرسایش تیم‌هاست
🔵 چطور تصمیم‌های بیزنسی، توسعه‌ی نرم‌افزار رو بدهکار می‌کنن
🔵 گام‌هایی برای ساخت تیم‌هایی که بدهی رو آگاهانه مدیریت می‌کنن

📺 تماشا در یوتیوب:
👉 https://www.youtube.com/watch?v=TYQq5plYNyM

📖 متن کامل مقاله:
👉 https://masoudbahrami.com/article/technical-debt-more-than-code-more-than-a-metaphor/
👍3
رویداد دوم نقطه:
چطور تصمیم‌ها در تیم شما گرفته می‌شوند؟

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

📌 سؤالات برای بحث:

🔹 تصمیم‌ها در تیم شما از کجا شروع می‌شوند و چطور به نتیجه می‌رسند؟
🔹 نقش عنوان‌ها و موقعیت‌ها (مثل مدیر محصول، لید فنی، مدیرعامل...) در تصمیم‌گیری چقدر پررنگ است؟
🔹 آیا صدای افراد جونیور یا تازه‌وارد در تصمیم‌ها شنیده می‌شود؟
🔹 همکاری بین تیم‌های محصول، فنی و طراحی در تصمیم‌سازی چه نقشی دارد؟
🔹 جای مشتری یا استفاده‌کننده نهایی در تصمیم‌گیری تیم شما کجاست؟
🔹 آیا فیدبک نقشی واقعی در تصمیم‌گیری‌ها دارد یا صرفاً جمع‌آوری می‌شود؟

🗓 سه‌شنبه ۲۹ مهرماه ۱۴۰۴ | 🕖 ۱۹:۰۰ تا ۲۰:۳۰
💻 آنلاین

🔗 ثبت‌نام: https://luma.com/0zeu5bn1
1
کانال مکتب‌خانه DDD pinned «سلام به همگی عزیزان و همراهان گرامی ساعت 19:00 برنامه شروع میشه، بی‌صبرانه منتظر دیدن و شنیدن شما هستیم»
رویداد سوم نقطه:
با موضوع: Clean Product

در فضای توسعه نرم‌افزار فارغ از نقش و عناوین افراد، این موضوع جا افتاده است که باید کد تمیز بنویسیم؛ خوانا، قابل نگهداری، زیبا.
اما خب متاسفانه کمتر کسی در مورد محصول تمیز صحبت کرده، یا حساس بوده 🤔

نرم‌افزار می‌تونه از نظر فنی بی‌نقص باشه، اما از درون پرایراد و کثیف، پر از هدف‌های مبهم، تصمیم‌های پراکنده و چراهای فراموش‌شده. اتفاقا تصور می‌کنم این سناریو را خیلی از ماها تجربه کرده باشیم!

مفهوم Clean Product یعنی بازگرداندن وضوح، هدف و یکپارچگی به چیزی که می‌سازیم، نه فقط به نحوه‌ی ساختنش.
اما تعریف Clean این‌جا ساده نیست؛ بدون context درست و مناسب Clean Product نمی‌تواند make sense کند

در این سخنرانی، مسعود بهرامی از زبان، تصمیم‌ها و نیت‌هایی می‌گوید که تمیزی واقعی یک محصول را شکل می‌دهند، و دوگانگی میان Clean Code و Clean Product به‌عنوان فرمول یک محصول موفق را معرفی می‌کند

این رو از من داشته باشید که:
محصول زمانی تمیز است که تصمیم‌هایش معنا داشته باشند، نه فقط کدهایش


🗓 سه‌شنبه ۲۹ مهرماه ۱۴۰۴
🕖 ساعت ۱۹:۰۰ تا ۲۰:۳۰
💻 آنلاین

🔗 ثبت‌نام: https://luma.com/qc2yhog5
1
Forwarded from Masoud Bahrami Channel
سلام خدمت همه عزیزان و همراهان گرامی 👋

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

🔵 پلن‌ها:
🔹کوتاه – ۵ ساعت: بررسی سریع و راهنمایی فوری برای تیم‌های کوچک
🔹ماهانه – ۲۰ ساعت: بررسی کامل، Roadmap جامع، جلسات Mentoring و Code Review برای تیم‌های در حال رشد
🔹 پرمیوم – 42 ساعت: معماری کامل، Roadmap چند فصلی، mentoring، Code Review، CI/CD و DevOps guidance، پشتیبانی مستمر برای تیم‌های بزرگ

اگر نیاز شما متفاوته و یا چیزی خارج از این پلن‌ها نیاز دارید، با من تماس بگیرید تا یک برنامه کاملاً شخصی‌سازی‌شده برای تیم شما بسازیم.

🔗 جزئیات و جلسه هماهنگی رایگان رو از لینک زیر می‌تونید مشاهده کنید
https://masoudbahrami.com/fractional-cto-software-architecture/

🔵 لازم به ذکر هم هست که کماکان جلسات منتورشیپ person-to-person و رایگان من در Adplist هم برقرار است
https://adplist.org/mentors/masoud-bahrami
Forwarded from Masoud Bahrami Channel
خیلی خوشحالم که مقاله و دیدگاه من درباره Technical Debt در آخرین مقاله موسسه جهانی و معتبر CIO.inc با عنوان “How to Fix Decades of Technical Debt” نقل‌قول شده و مورد استناد قرار گرفته است.

این نوشته من همینطور بر روی چندین موسسه و سایت شناخته‌شده جهانی زیر مجموعه Information Security Media Group (ISMG) منتشر و رفرنس داده شده: 🔹 BankInfoSecurity.com 🔹 InfoRiskToday.com 🔹 DataBreachToday.com

🔴 موسسه CIO.inc یکی از معتبرترین و معروف‌ترین موسسات دنیا برای مدیران ارشد IT و رهبران فناوری است و انتشار دیدگاه من در این سطح، فرصتی مناسب برای مطرح شدن گفتمان فنی و سازمانی در سطح جهانی است.

توی این مقاله به پیشینه استعاری بدهی فنی پرداخته‌ام و کاستی‌ها و سوءبرداشت‌های رایج درباره آن را بررسی کرده‌ام. نکته کلیدی که بر آن تأکید کردم این است که بدهی فنی صرفاً مشکلات کد نیست؛ بلکه در اصل یک میانبر زمانی است که بعداً باید با اختصاص زمان مناسب بازپرداخت شود.

مثل هر بدهی دیگه‌ای، این بدهی نیز نرخ بهره دارد و اگر به موقع به آن رسیدگی نشود، این بهره می‌تواند حتی به صورت نمایی و غیرقابل پیشبینی و قارچ‌گونه رشد کنه. با این تفاوت که این نرخ بهره، چه خطی و چه نمایی، از جنس زمان است. ❗️

فراموش نکنیم که زمان مهم‌ترین عامل در توسعه نرم‌افزار است و نحوه مدیریت آن تعیین‌کننده موفقیت یا شکست پروژه‌هاست. متأسفانه این جنبه حیاتی اغلب نادیده گرفته می‌شود و به فراموشی سپرده شده است.

همینطور پیشنهاد کردم به جای اصطلاح بدهی فنی، از عبارات بدهی سیستم System Debt یا بدهی کسب‌وکار Business Debt استفاده کنیم. چرا که وقتی فقط به کد محدود می‌کنیم، اینطور القا می‌شود که مسئولیت فقط بر دوش توسعه‌دهنده‌هاست، در حالی که واقعیت پیچیده‌تر است و شامل کل سیستم، فرآیندها و تصمیم‌گیری‌ها می‌شود.

🔵 همچنین توی مقاله چهار گروه بدهی را معرفی کردم:
🔹 بدهی از جنس Code-level : توابع نامرتب، نامگذاری ناسازگار و منطق تکراری
🔹 بدهی از جنس Architectural : ماژول‌های به شدت وابسته، تفکیک ناکافی مسئولیت‌ها
🔹 بدهی از جنس Process : نبود تست‌های خودکار، CI/CD کند یا مستندسازی ناقص
🔹 بدهی از جنس Business : نیازمندی‌های محصول نامشخص، تغییر دامنه، یا ویژگی‌های موقتی برای رضایت ذی‌نفعان


از این بابت خوشحالم که گفتمان من نه تنها در سطح فنی، بلکه در سطح سازمانی و دغدغه‌های مدیران میانی و ارشد نیز مطرح شده است.

خیلی خوشحال می‌شوم اگر بازخورد، نظر یا تجربه‌ای درباره این موضوع دارید با من در میان بگذارید.

🔗 مقاله CIO.inc: https://www.cio.inc/how-to-fix-decades-technical-debt-a-29899

🔗 مقاله کامل من: https://masoudbahrami.com/article/technical-debt-more-than-code-more-than-a-metaphor/
👏91👌1
Forwarded from Masoud Bahrami Channel
10 + 1 Common Software Architecture Mistakes.pdf
307 KB
📘 10 + 1 Common Software Architecture Mistakes.pdf

این کتابچه مروری سریع بر ۱۰+۱ اشتباه متداول در معماری نرم‌افزار است که در تیم‌های ایرانی مشاهده کرده‌ام. البته که مواردی که در این فایل ذکر شده فقط مختص ایران یا صنعت خاصی نیستند؛ بسیاریشون کاملا جهان شمول هستند.

در این فایل می‌خوانید:
🔵 متداول‌ترین اشتباهات معماری که باعث کاهش سرعت و چابکی تیم‌ها می‌شود
🟡 علائم، اثرات و راه‌حل‌های عملی برای جلوگیری از این اشتباهات
⚪️ نکات کاربردی برای طراحی معماری نرم‌افزار پایدار و مقیاس‌پذیر

نسخه: 1.0.0

🔗 Download the PDF

✍️ نویسنده: Masoud Bahrami
🌐 MasoudBahrami.com
3👍2👏1