Software development is not only about code. It is also about the process and the people around it. At the core, Product (Business) Managers and Developers turn the idea of Software into reality.
In the philosophical view of Software development, there exist, two realms that affect the reality of Software: Product end and Technology end.
These are different in the perception of an application:
An Application is a set of features that support a business function. - Product View
An Application is a set of code, framework, libraries, services. - Developer View
In contrast, these are also associated in a way that a change in one realm introduces change(s) in another realm.
Tap in Product Realm
Customer Grievances, Competition Edge, UX improvements, Feedbacks and Law Changes: all these introduce changes. After a rigorous thought process (cost-benefit analysis), these changes are passed to developers to transform into code. At developers end, they might have to write new code or adjust with the existing codebase.