تولید نرم افزار فرآیند پیچیده ایست.نرم افزار های بزرگ معمولا توسط تیمی متشکل از برنامه نویس ها-تحلیل گرها-تست کننده های نرم افزاری و ... ساخته می شَن. اینکه شما در این بزمِ عظیم، کدوم بخش دست تونه، میتونه وظایف تونو به مراتب، سنگین تر بکنه.اما همون طور که واسه ساخت خونه و مقبره و عبادتگاه ها از یه سری اصولِ معماری تبعیت میکنن، تولید نرم افزار هم از این تبعیت کردن ها و رعایت قوانینی که جواب خود را به خوبی پس داده اند، جدا نیست. میشه اسمشو گذاشت پیروی از نظرات اهل فن.استفاده از best practice ها و یا بهره گیری از متدولوژی.هر چند امروزه باب شده همه از روش هرچه پیش آید خوش آید، برای توسعه سیستم هاشون استفاده  میکنن.

اما بدی توسعه نرم افزار بر خلاف سایر حوزه های مهندسی اینه که چالش های این بخش عمیق ترن و نیازمند برنامه ریزهای قبلی بیشتر.همه این موارد نیازمند دانشی هست که فرد باید خودشو به اون مسلح کنه.دانشی به مثابه غول چراغ جادو.البته اینجا معجزات با دست کشیدن روی چراغی حاصل نمیشه،بلکه با مطالعه، دقت و سخت کوشی میشه به سیستم های باکیفیتِ بالا رسید.