We discuss how telephony software requirements should be structured to reduce maintenance costs. "Feature interaction" problems have become a serious obstacle to add more features to telephone switches. We show why existing public switched telephone networks are hard to modify. We then argue that a more modular, layered requirements architecture can help. Finally we survey approaches for such an improved telephone switching architecture and discuss them.