SoftwareEngineering
The road to follow if you don't want spaghetti code!
Introduction
The name Software Engineering can mean different things to different people. Rather than enumerate all those nuances and perspectives, it's probably more useful to emphasise areas of consensus.
Probably most would agree that the enterprise of software engineering advocates the design and crafting of robust and re-usable code that is extendible and maintainable.
This is to be contrasted with software that evolves without foresight invariably resulting in ad-hoc and fragile solutions that are difficult to extend or maintain.