در بحث با یکی از دوستان که مدیر و گرداننده یک شرکت نرمافزاری است صحبت از تقابل احتمالی «برنامهنویسی زیبا و دقیق» و «برنامهنویسی تجاری و پول در آوردن» بود. ایشان معتقد بودند که ما هم برنامهنویسی زیبا و دقیق را دوست داریم چون در نهایت موجب افزایش کیفیت و کاهش هزینههای نگهداری میشود. اما گاهی اوقات در تنگنای زمانی یا هزینهای قرار داریم و نمیتوانیم از روش «زیبا نویسی» استفاده کنیم. بلکه مجبوریم با توجه به زمان کمی که در اختیار داریم یا با توجه به هزینه کمی که مشتری پرداخت میکند از روشهای به درد نخورتری برای انجام کار استفاده کنیم. مثلاً به جای استفاده از ORM از ADO.NET استفاده کنیم یا به جای استفاده از یک switch case خوانا و منظم از چند if تو در تو استفاده کنیم.
من هم در نوشتن یک برنامه موبایلی با Java ME از این ایده استفاده کردم. من برنامهنویس جاوا نیستم و معلوم هم نیست که بخواهم از جاوا به طور جدی استفاده کنم یا نه. بنابراین اهمیت زیادی به منظم بودن کد ندادم. برنامهای که در حال نوشتنش بودم نیاز به دیتابیس داشت اما چون فقط در حال تست اولیه یک platform جدید و بازار سنجی بودم، به جای آن که بروم و روالهای دیتابیسی را در جاوا و Java ME یاد بگیرم، از یک روش ابتکاری خیلی سادهتر استفاده کردم. کد چندان تمیزی از آب در نیامد ولی اقلاً توانستم وقتم را اولویت بندی کرده و از آن استفاده بهینهتری نمایم. در همین راستا این کاریکاتور را ببینید.
دیدگاهها
پیشنهاد میکنم یه نگاهی به این بندازی:
http://en.wikipedia.org/wiki/Technical_debt
جالب بود. موضوع technical debt رو تا حالا چند بار از نزدیک لمس کردم.
ولی من دیدم برنامهها و برنامهنویسهایی که با ووقت زیاد و هزینه مطلوب باز هم از همان روشهای بدردنخور استفاده کردهاند.