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.