شاید وقتی پای توسعهٔ نرمافزار به میان میآید بارهاوبارها شنیده باشید که «تا حد ممکن باید از کدهای موجود استفاده کرد و اختراع مجدد چرخ کار احمقانهای است!» حال ممکن است این سؤال پیش بیاید که چرا در دنیای توسعهٔ نرمافزار دوباره کاری اینقدر بد دیده میشود؟ پاسخ به این سؤال و سؤالات دیگری از این دست بسیار ساده است و آن هم چیزی نیست جز این که کدهای موجود کار میکنند و در یک کلام، آزمون خود را پس دادهاند.
اختراع مجدد چرخ صرفاً به این مسأله اشاره نمیکند که چگونه کدی بزنیم که نیاز ما را مرتفع سازد بلکه دارای ریزهکاریهای بسیاری است که اگر ساده به این قضیه نگاه کنیم، شاید هیچوقت متوجه آنها نشویم! بهطور مثال، سیستمهایی که پیش از این نوشته شدهاند بهطور کامل تست شده و توسط صدها دولوپر مورد استفاده قرار میگیرند و این درحالی است که به غیر از این که کد کار میکند، در مورد مسائل فنیتر همچون پرفورمنس، معماری ساخت، الگوهای طراحی، توسعهپذیری و بسیار مسائل دیگر هم روی آنها فکر شده است.
وقتی دولوپری قصد دارد دست به اختراع مجدد چرخ بزند و این درحالی است که در مورد مسائل پیچیدهٔ توسعهٔ نرمافزار -همچون مواردی که در بالا بدانها اشاره شد- آگاهی ندارد، نتیجه این شده که نرمافزاری تولید میشود که کار میکند و نیازهای خود دولوپر یا مشتریاش را مرتفع میسازد اما به احتمال زیاد در آینده زمانیکه بار زیادی روی نرمافزار بیاید، نیاز به توسعه یا ریفکتورینگ آن باشد یا قرار باشد با دیگر نرمافزارها ادغام شده و دیگر مسائلی از این دست، به مشکل خواهد خورد.