The open, distributed approach of the Web and the relationship's prevalence of applications and services are transforming both the way we develop software and how they operate and interact with each other. As a result, a novel breed of applications is emerging, and consequently new mental models are needed to deal with them. In this sense, Social Machines appear as a promising model for developing software. However, it is a fresh topic, with concepts and definitions coming from different research fields, making a unified understanding of the concept a somewhat challenging endeavor. Based on some practical experiences in different contexts, this book provides a more coherent conceptual basis for understanding Social Machines as a unified paradigm to describe, design and implement emerging, Web-enabled social systems.