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