The software industries ability to produce acronyms and talk in jargon may only be matched by the military.  One of our other abilities is using the same word to mean hundreds of different things.  My favorites are object and project, closely followed by component.  However, today, I am thinking about the word “workflow”.

 

The Merriam-Webster’s Online Dictionary doesn’t contain this word.  It instead suggests that I was looking for the word “workfolk” defined as “working people, especially farm workers”.  You have to admit that this is funny (or perhaps you had to be there).  So, if workfolk are following a process are they doing workflow?  I turned to the Oxford English Dictionary and I quote “The definitive record of the English language” with no luck.  This clearly illustrates my previous point that software developers do not speak English.

 

In desperation I turned to our trusted companion Google and got 3,000,000 hits.  Top on the list was “Need a Workflow system?  www.savvion.com Use our enterprise-class solution for workgroup to enterprise process”.  This proved to be an interesting site if you are looking for a business process modeling tool.  However, our friend Google along with the 3,000,000 hits also had a link to “definition” right at the top.  Aren’t those guys great?  This link takes me to dictionary.com (obviously not the definitive record) with this definition:

 

Workflow

-         The flow or progress of work done by a company, industry, department, or person.

-         The rate at which such flow or progress takes place.

 

Ok, now we’re getting somewhere.  In my opinion, workflow for software development is about defining the processes by which individuals on a software team accomplish a larger goal and then being able to instantiate process tasks in a way that people can use them to determine what work need to do, when it needs to be done, and indicate progress which can then be tracked.  Workflow as opposed to managing a todo list is aso focused on the interrelationships between tasks and the automated generation of  tasks to drive a defined process.  Most workflow tools on the market have failed to be wildly successful primarily because they were not tightly integrated into the everyday tasks of the people who were doing the actual work.  Process in my mind should disappear into the tools you are using to get a job done.

 

The Visual Studio Team Foundation will include a work item tracking component (there is that word again).  You may hear that it supports workflow and even I am guilty of using tags like <WORKFLOW>… </WORKFLOW> in the work item type definition language to describes the state transition diagram for work items.  In reality, however, we are introducing in VSTF only the basic elements that will later enable true workflow support.  These are work item types which define the work performed by an individual.  Each work item type has a state transition diagram composed of states and legal transitions that drive the process for that specific work item.   More on states and transitions later...

 

If you’re wondering about the term “work item”, visit my colleague Kevin Kelly.