Facebook Pixel
Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
The Mythical Man-Month

The Mythical Man-Month

Essays on Software Engineering
توسط Frederick P. Brooks Jr. 1995 336 صفحات
4.01
14k+ امتیازها
گوش دادن

نکات کلیدی

1. یکپارچگی مفهومی در طراحی نرم‌افزار اهمیت بالایی دارد

یکپارچگی مفهومی مهم‌ترین ملاحظه در طراحی سیستم است.

مدل ذهنی منسجم: یک محصول نرم‌افزاری باید یک مدل ذهنی منسجم به کاربران خود ارائه دهد که شامل برنامه، استراتژی‌های استفاده از آن و رابط کاربری باشد. این انسجام عامل اصلی در سهولت استفاده و کیفیت کلی محصول است.

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

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

2. نقش معمار سیستم برای موفقیت پروژه حیاتی است

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

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

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

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

3. اثر سیستم دوم می‌تواند به طراحی بیش از حد و تورم ویژگی‌ها منجر شود

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

طراحی‌های بیش از حد جاه‌طلبانه: سیستم دومی که یک طراح ایجاد می‌کند اغلب از جاه‌طلبی بیش از حد و ویژگی‌های اضافی رنج می‌برد. این به دلیل افزایش اعتماد به نفس طراح و تمایل به اجرای تمام ایده‌هایی است که در سیستم اول خود نتوانسته بود.

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

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

  • چه کسانی هستند
  • چه نیاز دارند
  • چه فکر می‌کنند که نیاز دارند
  • چه می‌خواهند

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

4. رابط کاربری WIMP تعامل کاربران با کامپیوترها را متحول کرد

WIMP نمونه‌ای عالی از یک رابط کاربری است که یکپارچگی مفهومی را با پذیرش یک مدل ذهنی آشنا، استعاره دسکتاپ، و گسترش مداوم آن برای بهره‌برداری از پیاده‌سازی گرافیک کامپیوتری به دست آورده است.

یکپارچگی مفهومی از طریق استعاره: رابط Windows, Icons, Menus, and Pointing (WIMP) با پذیرش استعاره آشنای دسکتاپ و گسترش مداوم آن به محیط کامپیوتر، به یکپارچگی مفهومی دست یافت.

تعادل قدرت و سهولت استفاده: رابط WIMP به‌طور موفقیت‌آمیزی قدرت را برای کاربران با تجربه با سهولت استفاده برای مبتدیان متعادل می‌کند:

  • منوها گزینه‌های قابل کشف برای کاربران جدید ارائه می‌دهند
  • میانبرهای صفحه‌کلید کارایی را برای کاربران حرفه‌ای فراهم می‌کنند
  • رابط امکان انتقال روان بین این حالت‌ها را فراهم می‌کند

اجرای استانداردها: موفقیت رابط WIMP در سراسر برنامه‌ها از طریق:

  • ساخت رابط در حافظه فقط خواندنی
  • تعهد و متقاعدسازی مدیریت
  • انتقاد از محصولات غیرهمخوان توسط منتقدان

این رویکرد قدرت ادغام مستقیم در اجرای استانداردهای معماری را نشان می‌دهد.

5. مدل آبشاری دارای نقص است؛ توسعه تدریجی برتر است

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

محدودیت‌های مدل آبشاری:

  • فرض پیشرفت خطی از طریق مراحل
  • قرار دادن آزمایش سیستم و کاربر در انتها
  • عدم توجه به بازخورد ضروری بالادستی

مزایای توسعه تدریجی:

  • امکان آزمایش زودهنگام کاربر
  • ارائه یک سیستم در حال اجرا در تمام مراحل
  • امکان استراتژی‌های ساخت به بودجه
  • بهبود روحیه تیم از طریق پیشرفت قابل مشاهده

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

6. مدیریت پروژه مؤثر نیاز به مستندسازی و نقاط عطف واضح دارد

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

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

  • اهداف
  • راهنمای کاربر
  • برنامه زمانی
  • بودجه
  • نمودار سازمانی
  • تخصیص فضا

ویژگی‌های نقاط عطف:

  • مشخص و قابل اندازه‌گیری
  • به‌طور دقیق تعریف شده برای جلوگیری از ابهام
  • برای پیگیری پیشرفت و شناسایی تأخیرها استفاده می‌شود

ابزارهای ارتباطی: این اسناد و نقاط عطف اهداف متعددی را خدمت می‌کنند:

  • تمرکز فکر و تبلور بحث‌ها
  • انتقال برنامه‌ها و تصمیمات به تیم
  • ارائه مبنایی برای پیگیری وضعیت و هشدار زودهنگام از مسائل

7. مهندسی نرم‌افزار با چالش‌های منحصر به فردی در بهره‌وری و پیچیدگی مواجه است

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

پیچیدگی ذاتی: سیستم‌های نرم‌افزاری به‌طور ذاتی پیچیده هستند به دلیل ماهیت انتزاعی آن‌ها و نیاز به تطابق با نهادها و سیستم‌های مختلف انسانی.

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

چالش‌ها:

  • نامرئی بودن: نرم‌افزار فاقد نمایش هندسی طبیعی است
  • تغییرپذیری: نرم‌افزار به‌طور مداوم تحت فشار تغییر است
  • تطابق: نرم‌افزار باید با سیستم‌ها و کنوانسیون‌های خارجی مختلف سازگار شود

8. افسانه ماه-آدم: افزودن نیروی انسانی به یک پروژه دیرکرده آن را دیرتر می‌کند

قانون بروکس: افزودن نیروی انسانی به یک پروژه نرم‌افزاری دیرکرده آن را دیرتر می‌کند.

دلایل این افسانه:

  • زمان راه‌اندازی برای اعضای جدید تیم
  • افزایش سربار ارتباطی
  • تکه‌تکه شدن وظیفه

پیامدها:

  • برنامه‌ریزی و برآورد اولیه دقیق حیاتی است
  • پروژه‌ها باید به‌گونه‌ای ساختار یابند که وابستگی‌های متقابل به حداقل برسد
  • استراتژی‌های جایگزین (مثلاً کاهش دامنه) باید قبل از افزودن نیروی انسانی در نظر گرفته شوند

استراتژی‌های کاهش:

  • استفاده از تیم‌های کوچک و ماهر (مثلاً مدل تیم جراحی)
  • تقسیم واضح مسئولیت‌ها
  • شیوه‌های ارتباطی و مستندسازی مؤثر

9. کد خودمستند و مستندسازی مناسب ضروری است

برای نگهداری مستندات، ضروری است که در برنامه منبع گنجانده شود، نه اینکه به‌عنوان یک سند جداگانه نگهداری شود.

شیوه‌های خودمستند:

  • استفاده از نام‌های متغیر و تابع معنادار
  • گنجاندن توضیحات درون کد
  • استفاده از ویژگی‌های زبانی که خوانایی را افزایش می‌دهند

انواع مستندات:

  • مستندات کاربر: مرور کلی، هدف، دستورالعمل‌های استفاده
  • مستندات فنی: معماری، تصمیمات طراحی، جزئیات پیاده‌سازی

استراتژی‌های مستندسازی:

  • نوشتن مستندات به‌طور همزمان با توسعه کد
  • استفاده از ابزارهایی که مستندات را از کد تولید می‌کنند
  • به‌طور منظم مستندات را مرور و به‌روزرسانی کنید همان‌طور که سیستم تکامل می‌یابد

مزایا:

  • بهبود قابلیت نگهداری
  • تسهیل ورود اعضای جدید تیم
  • کاهش خطر از دست دادن دانش زمانی که اعضای تیم ترک می‌کنند

آخرین به‌روزرسانی::

نقد و بررسی

4.01 از 5
میانگین از 14k+ امتیازات از Goodreads و Amazon.

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

درباره نویسنده

فردریک فیلیپس بروکس جونیور یک دانشمند کامپیوتر و مهندس نرم‌افزار آمریکایی است که بیشتر به خاطر مدیریت توسعه خانواده کامپیوترهای System/360 شرکت IBM و بسته نرم‌افزاری OS/360 شناخته می‌شود. او بعدها استاد دانشگاه کارولینای شمالی در چپل هیل شد و در آنجا دپارتمان علوم کامپیوتر را تأسیس کرد. تجربیات بروکس در IBM او را به نوشتن کتاب "افسانه ماه-انسان" الهام بخشید که به یک اثر کلاسیک در ادبیات مهندسی نرم‌افزار تبدیل شد. کارهای او تأثیر قابل توجهی بر حوزه معماری کامپیوتر و مدیریت پروژه‌های نرم‌افزاری داشته است. بروکس جوایز متعددی برای مشارکت‌هایش دریافت کرده است، از جمله جایزه تورینگ در سال 1999. رویکرد او به توسعه نرم‌افزار بر اهمیت سادگی، یکپارچگی مفهومی و درک عوامل انسانی در مهندسی تأکید دارد.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Unlock Unlimited Listening
🎧 Listen while you drive, walk, run errands, or do other activities
2.8x more books Listening Reading
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jan 25,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →