This book will help readers to better understand how to create environments for end-user development. Contributions from the best international experts in end-user development address relevant issues and propose original solutions. Developing new or modified interfaces and applications that effectively support users' goals still requires considerable expertise in programming that cannot be expected from most people. Thus, one fundamental challenge for the coming years is to develop environments that allow users who do not have background in programming to develop or modify their own applications, with the ultimate aim of empowering people to flexibly employ advanced information and communication technologies. This volume is for all those want to understand how to allow end-users to be actively involved in the development of software systems.