Following established tradition, software engineering today is rooted in a conceptually centralized way of thinking. The primary SE artifact is a specification of a machine - a computational artifact - that would meet the (elicited and) stated requirements. Therein lies a fundamental mismatch with (open) sociotechnical systems, which involve multiple autonomous social participants or principals who interact with each other to further their individual goals. No central machine governs the behaviors of the various principals. The authors introduce Interaction-Oriented Software Engineering (IOSE) as an approach expressly suited to the needs of open sociotechnical systems. In IOSE, specifying a system amounts to specifying the interactions among the principals as protocols.