Why Workflow? Why Windows Workflow Foundation? And what are the scenarios?

One of the most common questions I get from developers after talking about Windows Workflow Foundation is Why? Why use workflow rather than code? What are the benefits of Windows Workflow Foundation? What are the scenarios it addresses?  

Dennis Pilarinos and Dharma Shukla put together a presentation script where they explain the value of the technology and workflow. It's a very easy read and definitely worth a few mniutes if you're interested in Windows Workflow Foundation.   Dave Green, the architect for Windows Workflow Foundation, also has a great post on What is workflow, and why bother?

Let me give you my *brief* take on these questions:

Why Windows Workflow Foundation? Windows Workflow Foundation is about making it easier for developers to build applications on Windows. That's it. That's the simple but beautiful benefit of Windows Workflow Foundation. Granted there are a lot of features that WWF provides to your applications, but they are all features that you could implement yourself. In fact many of the developers I talk to already have developed their own workflow frameworks. In the end, the core benefit is developer productivity. 

Why Workflow? Because workflow allows you to explicitly / declaratively model the control flow of an application. Rather than embedding your application logic in code, in a workflow the logic is represented declaritively. As a result you can inspect the application logic, visualize it, track it's execution, and even change the logic at runtime.  

Scenarios? There are numerous scenarios for using Windows Workflow Foundation. It's not just for distinct business processes or document approval systems. As I've frequently heard from Abhay Parasnis, the Product Unit Manager for Windows Workflow Foundation, "we're making workflow mainstream with Windows Workflow Foundation." I could fill this blog with scenarios, but I would rather show you a few through sample applications and starter kits on the WindowsWorkflow.net site and hear about your scenarios in the forums.