This book is especially for the software architect in the smaller, less mature software development organization (characterized as predominantly practicing ad hoc development). It provides practical guidance on the generation of effective software architectures.