In the 31 chapters that have preceded this one, I’ve explored a process for software engineering that encompasses management procedures and technical methods, basic concepts and principles, specialized techniques, peopleoriented activities and tasks that are amenable to automation, paper-and-pencil notation, and software tools. In this concluding chapter I’ll take a broader view and consider where we’ve been and where we’re going from a more philosophical perspective.