Abstract: Domain-independent, high-level, flexible, and efficient user interface development environments (UIDEs) are required for easing the task of developing multi-user interfaces. This paper describes several principles of designing such environments, gives motivation for supporting them, and identifies existing systems that follow them. Some of these principles are also well-accepted principles of designing single-user UIDEs-mmulti-user interaction provides new reasons for accepting them. Others are single-user principles that have been adapted for the multi-user case, while still others are new principles that have no counterparts in the single-user case. These principles address the functionality and architecture of a multi-user UIDE and the programs supported by it.