Generalization
You have been asked to write a program to print invoices as part of the billing system for the XYZ company, and it occurs to you that you could generalize the program so other companies could use it. For example, if the user could input the company name, the program could be used by the ABC company.
What are other ways in which you could generalize the program so others could customize it for their use?