In an SAP Implementation project, in the realization phase, there are several steps to do in order to fulfill customer's needs, two of them are customization and personalization.
With customization and personalization, the SAP Standard Programs will work as we expect,
But if the customization and personalization do not fulfill customer's needs, we have to do enhancement to SAP Standard Program.
What is an enhancement? An enhancement in SAP is adding or modifying the logic of SAP standard program without modifying it, enhancement consists of customer exit, Business transaction event (BTE), and Business add-ins (BADI). And if the enhancement is not enough, we can do a modification.
What is a modification? Modification in SAP is adding or modifying the logic of standard program by modifying SAP standard object. Actually the modifications to sap standard object are not recommended, but there are several modifications that are allowed by SAP. one of them is user exit. And if the modification to sap standard object is not enough and there is no standard program to fulfill customer's needs, we can develop a new Z program or we usually say customer development.