همواره به خاطر داشته باشید که منابع شما -شامل زمان و بودجه- محدود هستند؛ برای انجام پروژه های نرم افزاری یک زمان و پول کاملاً مشخصی در اختیار شما قرار میگیرد و این در حالی است که در این زمان محدود و بودجه ی کاملاً مشخص، علاوه بر تکمیل پروژه، شما می بایست دانش خود را به روز نگاه دارید، مهارت های جدید یاد بگیرید، با زبانهای برنامه نویسی جدید آشنا شوید و …
علاوه بر این، در حین پیادهسازی پروژه های نرم افزاری همواره بایستی به این نکته توجه داشته باشیم که برای به دست آوردن بیشترین میزان Performance (پرفورمنس یا عملکرد)، می بایست دید نسبتاً عمیقی از سخت افزاری که در اختیار ما قرار گرفته شامل سی پی یو، حافظه ی رم، زیرساخت های شبکه، هارد دیسک و … داشته باشیم به علاوه این که باید تمام تلاش خود را به کار گیریم تا الگوریتم هایی که می نویسیم را با توجه به این محدودیتها، پیادهسازی کنیم تا بهترین نتیجه را بگیریم.
به عبارت دیگر، به منظور ایجاد یک پرفومنس بهینه، بایستی یک «سازگاری و آشتی» مابین مفاهیم انتزاعی همچون الگوریتم ها و سخت افزاری که در اختیار ما قرار گرفته است ایجاد کنیم و صرفاً در این صورت است که میتوانیم ادعا کنیم یک نرمافزار بهینه تولید کرده ایم.