Software Development, Software Performance.
anything expensive; you may even shun a cost like interface dispatch because of the nature of your contract (e.g., shading polygons). But with some thought, you can almost always create some clean contract that allows you to change parts of your design without undue cost and without unnecessary