بهینه‌سازی پیش از موعد چیست و چگونه می‌توان از آن دوری کرد؟

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

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

بهینه‌سازی پیش از موعد چیست؟

بهینه‌سازی پیش از موعد تلاش برای بالا بردن کارآمدی چیزهای مختلف است، درحالی‌که هنوز برای انجام آن‌ها زمان زیادی باقی‌مانده است. از همین رو، تلاش‌های پیش از موعد برای بهینه‌سازی به نتایج عکس و خطرناک منجر شده و باعث می‌شود تا منابع بسیاری چون زمان، پول و انرژی را هدر دهید، اما باز هم احتمال بروز مشکلات بیشتر در آینده افزایش پیدا می‌کند.
نخستین بار مفهوم بهینه‌سازی پیش از موعد در حوزه مهندسی نرم‌افزار اهمیت زیادی پیدا کرد. این اصطلاح توسط «سِر تونی هوآر» استفاده شد و «دونالد ای ناث» آن را به‌شهرت رسانید. وی درباره بهینه‌سازی پیش از موعد می‌گوید:
«هیچ شکی نیست که جام مقدس کارآیی به هدر رفتن منجر می‌شود. برنامه‌نویسان زمان بسیار زیادی را صرف نگرانی، تأمل و تفکر در خصوص سرعت قسمت‌های بی‌اهمیت برنامه‌های خود می‌کنند و تمام تلاش‌های انجام شده برای بالا بردن کارآیی و بازدهی در زمان دیباگ کردن و نگهداری برنامه تأثیرات منفی بسزایی را به همراه خواهد داشت. در ۹۷ درصد موارد باید کارآیی‌های کوچک را فراموش کنیم. بهینه‌سازی پیش از موعد ریشه بسیاری از شکست‌ها و خرابکاری‌ها است.
یک برنامه‌نویس خوب با چنین بهینه‌سازی‌هایی احساس رضایت‌مندی و خشنودی نمی‌کند. بلکه با هوشمندی و خردمندی و با دقت زیاد به‌کدهای بحرانی برنامه نگاه می‌کند. البته فقط بعد از این‌که آن کدها شناسایی شده باشد.»
تلاش برای بهینه‌سازی پیش از موعد باعث به‌وجود آمدن بحث‌های زیاد می‌شود و تأیید و شناسایی نواحی که بهینه‌سازی می‌تواند در آنجا مؤثر باشد، مهم است.

نمونه‌هایی از بهینه‌سازی پیش از موعد

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

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

مشکلات بهینه‌سازی پیش از موعد

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

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

افراد علاقه دارند پیش از موعد به بهینه‌سازی اقدام ‌کنند:

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

چگونه از بهینه‌سازی پیش از موعد جلوگیری کنیم؟

چگونه می‌توانیم از بهینه‌سازی پیش از موعد کارها دوری کنیم؟هنگام تصمیم‌گیری درباره اولویت‌بندی کارها با در نظر گرفتن چندین نکته چند سؤال خیلی مهم را از خودتان بپرسید:
  • چرا می‌خواهید بهینه‌سازی کنید؟ آیا معتقدید، در این مرحله واقعا به بهینه‌سازی نیاز دارید؟ انجام آن می‌تواند اثر مثبت و قابل‌توجهی روی کار شما داشته باشد یا دلیل شما برای بهینه‌سازی تنها دوری از برخورد با یک‌چیز دیگر است؟
  • فواید بهینه‌سازی چیست؟ با انجام آن چه چیزی عایدتان می‌شود؟
  • بهینه‌سازی چه هزینه‌هایی دارد؟ برای انجام آن به چه نوع منابعی نیاز دارید؟
  • عواقب منفی احتمالی بهینه‌سازی چه چیزهایی هستند؟ و در آینده چه مشکلاتی را ایجاد خواهد کرد؟
  • چقدر احتمال دارد این بهینه‌سازی قدیمی و منسوخ شود؟ آیا کاری که الان انجام می‌دهید برای آینده هم هست یا این‌که بهینه‌سازی در آینده هیچ کاربردی نخواهد داشت، البته توجه داشته باشید قدیمی و منسوخ‌ شدن چیزی در آینده دلیل بر انجام ندادن آن در حال حاضر نمی‌شود. اما هنگام تصمیم‌گیری برای بهینه‌سازی باید به‌احتمال وقوع آن، مدت زمانی‌که طول می‌کشد تا رخ دهد و فواید حال حاضر آن توجه کنید.
  • مزایا و معایب انتظار برای این بهینه‌سازی چه چیزهایی هستند؟ آیا به تعویق انداختن این بهینه‌سازی خاص می‌تواند نکات منفی داشته باشد؟ آیا بهتر نیست، انجام آن را به آینده موکول کنید؟ زیرا اطلاعات مرتبط بیشتری در دسترس‌‌‌تان خواهد بود.
  • چه چیزهای دیگری وجود دارد که می‌توانید روی آن‌ها کار کنید؟ اگر زمان و منابع خود را روی این بهینه‌سازی صرف نمی‌کردید، آن‌ها را روی چه چیزی هزینه می‌کردید؟ اگر چیزهای دیگری باشد که بتوانید روی آن‌ها کار کنید، می‌توانید فایده بیشتری از انجام آن‌ها ببرید؟
شما می‌توانید وظایف گوناگون خود را با در نظر گرفتن نکات اولویت‌بندی کرده و تعیین کنید، هر کار را در کدام مرحله باید انجام دهید تا مطمئن شوید، هیچ بهینه‌سازی پیش از موعدی انجام نخواهید داد.
توجه داشته باشید، برای ارزیابی هر کاری لازم نیست همه این پرسش‌ها را از خود بپرسید. به‌خصوص اگر کاری که می‌خواهید انجام دهید نسبتا کوچک است، این مسئله درست‌تر خواهد بود، زیرا زمان و تلاشی که برای انجام یک کار دو دقیقه‌ای انجام می‌دهید با این روند ارزیابی خیلی بیشتر هزینه خواهد داشت.
آگاهی داشتن از این مسائل برای ارزیابی کارها و به کار بستن آن‌ها مهم و ضروری است. هر اندازه کاری که می‌خواهید انجام دهید از نظر منابعی که نیاز خواهد داشت و تأثیراتی که بعدها به دنبال خواهد داشت، بزرگ‌تر به نظر برسد، باید بیشتر آگاه باشید و از این اصول در ارزیابی‌های خود بیشتر استفاده کنید.
به‌خاطر داشته باشید، همه بهینه‌سازی‌ها پیش از موعد نیستند.
این نکته مهم را به خاطر داشته باشید: دوری کردن از بهینه‌سازی پیش از موعد به این معنا نیست که باید به‌طور کلی از بهینه‌سازی کردن دوری کنید؛ بلکه باید قبل از تصمیم‌گیری درباره هزینه کردن منابع خود برای بهینه‌سازی تفکر دقیقی داشته باشید.
این مسئله بسیار مهم است، زیرا بیشتر انسان‌ها معتقدند: «بهینه‌سازی پیش از موعد ریشه تمام ضررها است.» و آن را با خود تکرار می‌کنند. اما این مسئله را فراموش می‌کنند که: «باید تقریبا در ۹۷ درصد موارد راندمان و بازدهی‌های کوچک را فراموش کنیم: بهینه‌سازی پیش از موعد ریشه تمام ضررها است. بااین‌حال نباید فرصت‌های خود را در آن سه درصد بحرانی از بین ببریم.»این مسئله می‌تواند برای ارزیابی شرایط و تصمیم‌گیری درباره بهینه‌سازی کاملا منطقی باشد، حتی اگر در مراحل کاملا ابتدایی باشیم. این مسئله می‌تواند به چند دلیل اتفاق بیافتد، شاید فکر می‌کنید یک تغییر و اصلاح کوچک مزیت قابل‌توجهی را به همراه خواهد داشت یا بهینه‌سازی به شما اجازه می‌دهد تا با گلوگاه‌هایی که در کار خود دارید روبه‌رو شوید یا دوری کردن از بهینه‌سازی به یک نقصان فنی خیلی مهم در آینده منجر می‌شود.
این مفهوم در ۳ درصد موارد صدق می‌کند. به‌عنوان‌مثال، یک اصل مرسوم در این مورد، قانون ۸۰/۲۰ است. یعنی این‌که ۸۰ درصد از خروجی مثبتی که تجربه می‌کنید از ۲۰ درصد کاری که انجام می‌دهید، حاصل می‌شود.
به‌طورکلی برای اطمینان از این موضوع که بهینه‌سازی کارها را پیش از موعد انجام نمی‌دهید، باید اول از همه وضعیت را ارزیابی کرده و تعیین کنید که بهینه‌سازی موردنظر در آن زمان خاص لازم هست یا خیر؟ اگرچه، این روش نباید به بهانه‌ای برای دوری کردن از بهینه‌سازی تبدیل شود. بلکه باید از آن به‌عنوان راهی برای اولویت‌بندی کردن کارها استفاده کرد تا در نهایت و تا حد امکان کارایی و بازدهی مناسب حاصل شود.
بهینه‌سازی پیش از موعد و تلاشی برای کارآمدتر کردن کارها خیلی زودتر از زمانی است که باید انجام داد. مثلا وقتی در حال توسعه هستید، به‌جای آن‌که به کارهای مهم‌تر بپردازید، زمان و پول خود را صرف جنبه‌های خیلی کوچک و کم اهمیت‌تر کسب‌وکارتان کنید.
  • بهینه‌سازی پیش از موعد مشکل‌ساز است، زیرا باعث می‌شود تا منابع خود را هدر دهید، ناامید شوید، زمانی‌که اطلاعات کافی ندارید اقدام کنید یا این‌که خود را درگیر کارهای کوچک‌تر کنید.
  • یکی از شایع‌ترین دلایلی که افراد پیش از موعد دست به‌بهینه‌سازی می‌زنند آن است که نمی‌توانند به‌درستی وظایف خود را اولویت‌بندی کنند و مشکل ساده‌تری را برای حل کردن در برابر خود قرار می‌دهند که باعث می‌شوند بیشتر احساس رضایت کنند، حتی اگر کار مهمی نباشد.
  • به خاطر داشته باشید، مجموع مطالبی که در مورد دوری اجتناب از بهینه‌سازی پیش از موعد گفتیم به این معنا نیست که باید کلا از بهینه‌سازی دوری کنید، بلکه باید با ‌دقت بیشتری به آن فکر کنید و قبل از تصمیم‌گیری برای انجام بهینه‌سازی به‌خوبی شرایط را ارزیابی کنید.

مطالب مرتبط

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *