Best practices for software development targeting Layer 3 deployment and upgradeability