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