Workflow Manifesto
This is a personal manifesto around business software development and workflow.
Workflow Theory
The best site I know for Workflow/BPM theory is associated with the QUT Yawl project. Check out the animations!
SubSonic
I try not to talk about tools here but I am so impressed by this Data Access Layer
generator that I want to give it a plug. My hat is off to Rob Conery and the team
(http://www.codeplex.com/actionpack)
for a really well thought out and productive tool.
Though it's intended for web development you can use it to eliminate the drudgery
of DAL development for any .NET app. Just set it up, press a couple of buttons,
and your DAL is ready to use. Sounds too good to be true? Download it and see (it's
free).
Why Workflow
In a nutshell, workflow is a better way of looking at business software
systems. Object oriented languages and designs delivered expressiveness and abstraction,
and CORBA/COM eventually delivered binary reusability, but workflow takes software
design in a different direction entirely.
Software development is about communication. You cannot develop successful interactive
software systems in isolation. I know because I've tried. It's a battle to keep
the communications flowing when you're under pressure and buried in detail. In a
business context, a workflow approach helps because the framework you use to communicate
with clients, business managers and other stake-holders is the same framework your
software is built on. No translation required. While details can still get lost,
your implementation is guaranteed to be a lot closer to your client's expectations.
In the early 90's I worked on an event correlation system for a large international
software company. The team who shared the same floor were developing a workflow
system. The workflow project imploded for a number of reasons, but there must have
been something in the tea because I acquired a fascination with workflow, even though
I wasn't directly involved in that project.
A couple of years later I joined a startup developing a Business Process Management
system. The company went belly-up after a valiant effort and some wonderful successes
that just weren't enough to survive the dot com bust.
Now Microsoft are releasing Windows Workflow Foundation -- every developer's
workflow toolkit. Whether it sinks or swims, the effect it will have is to boost workflow
techniques further.
BPM or Workflow?
Strictly speaking, Workflow is what happens in every company when it processes
an order, for example. Workflow isn't sexy. Workflow Systems, as the name
suggests, facilitate and automate some or all of the flow of work. On the other
hand, BPM
(Business Process Management) is a fancy acronym thought up by
brainy types to help design and implement both better workflows and better workflow
systems. BPM is meta-workflow in the sense that it describes workflow and provides
ways for the cognoscenti to talk about it. I use the term workflow casually
to cover all of the above.
Dave Gardner.