2010-08-12 02:40:43 utc |
brain_in_vat |
jmettraux: a workflow is a state machine which may involve different actors! |
2010-08-12 02:40:50 utc |
brain_in_vat |
this is my definition, tell me why it's wrong :) |
2010-08-12 02:41:35 utc |
jmettraux |
why did you use ruote then ? |
2010-08-12 02:41:51 utc |
jmettraux |
there is no state in ruote |
2010-08-12 02:42:06 utc |
brain_in_vat |
well, right now I'm not talking about the preservation of state |
2010-08-12 02:42:14 utc |
brain_in_vat |
and I used ruote for something else (an integration system) |
2010-08-12 02:42:29 utc |
brain_in_vat |
right now I'm thinking about a workflow component for a content framework I'm working on |
2010-08-12 02:42:34 utc |
jmettraux |
a workflow is a [documented] way of achieving a result |
2010-08-12 02:42:39 utc |
jmettraux |
I understand |
2010-08-12 02:43:03 utc |
brain_in_vat |
hrm, that seems too loose a df to me |
2010-08-12 02:43:21 utc |
brain_in_vat |
and what is the difference between a workflow and a state machine ? |
2010-08-12 02:43:49 utc |
jmettraux |
if you produce hammers you manage the state of wooden handles and steel heads |
2010-08-12 02:43:59 utc |
jmettraux |
to which one will you bind the "workflow" ? |
2010-08-12 02:44:22 utc |
brain_in_vat |
the production method |
2010-08-12 02:44:34 utc |
jmettraux |
the production method is the "workflow" |
2010-08-12 02:44:45 utc |
jmettraux |
the documented way to produce a result |
2010-08-12 02:44:57 utc |
brain_in_vat |
yes, but what is the difference to a state machine? |
2010-08-12 02:45:15 utc |
jmettraux |
a state machine is bound to 1 resource |
2010-08-12 02:45:17 utc |
brain_in_vat |
from my thinking, a workflow is a state machine which can involve different actors |
2010-08-12 02:45:32 utc |
jmettraux |
you're managing the state of a unique resource ? |
2010-08-12 02:45:52 utc |
brain_in_vat |
hammers, hyes |
2010-08-12 02:46:06 utc |
jmettraux |
what about steel heads and wooden handles ? |
2010-08-12 02:46:23 utc |
brain_in_vat |
what about the atoms inside of steel heads and wooden handles? |
2010-08-12 02:46:24 utc |
jmettraux |
states = { standalone, in hammer } |
2010-08-12 02:46:47 utc |
jmettraux |
a state machine never cares about actors |
2010-08-12 02:46:50 utc |
brain_in_vat |
there's nothing in the definition of a state machine which mandates that you must break things down into their basic elements, and that a state machine deals with the base element |
2010-08-12 02:46:55 utc |
brain_in_vat |
yeh, that's right |
2010-08-12 02:47:04 utc |
jmettraux |
there are only transition and states |
2010-08-12 02:47:09 utc |
brain_in_vat |
which is where the difference between a workflow and a state machine appears, I think |
2010-08-12 02:47:26 utc |
jmettraux |
work flow is about work not state |
2010-08-12 02:48:03 utc |
brain_in_vat |
that's tautologous |
2010-08-12 02:48:36 utc |
brain_in_vat |
workflow is about processing *something* for the purpose of business, and it involves a state machine |
2010-08-12 02:49:05 utc |
jmettraux |
state or state machine ? |
2010-08-12 02:49:06 utc |
brain_in_vat |
if I want to fill out an annual leave application - i send it into the system, my manager approves it, his manager rejects it |
2010-08-12 02:49:12 utc |
brain_in_vat |
that's a classic workfloiw |
2010-08-12 02:49:25 utc |
jmettraux |
state machines are strong for protocols and lifecycle |
2010-08-12 02:49:28 utc |
brain_in_vat |
it's about the state of the application |
2010-08-12 02:49:57 utc |
jmettraux |
in a hammer factory, what is the application ? |
2010-08-12 02:50:09 utc |
jmettraux |
the state of the application is the state of the factory ? |
2010-08-12 02:50:10 utc |
brain_in_vat |
whatever makes the hammers |
2010-08-12 02:50:24 utc |
brain_in_vat |
well, the factory is, probably |
2010-08-12 02:50:28 utc |
jmettraux |
making hammers or in vacation |
2010-08-12 02:51:26 utc |
brain_in_vat |
I still think a workflow has a state machine |
2010-08-12 02:51:33 utc |
jmettraux |
workflows can be modeled by state machines, but not all state machines are workflows |
2010-08-12 02:51:39 utc |
brain_in_vat |
that's right |
2010-08-12 02:51:47 utc |
jmettraux |
a workflow may manage the state of multiple resources |
2010-08-12 02:51:50 utc |
brain_in_vat |
a workflow is a looser concept |
2010-08-12 02:52:16 utc |
jmettraux |
a documented way of producing a result |
2010-08-12 02:52:22 utc |
jmettraux |
loose enough you said |
2010-08-12 02:52:56 utc |
brain_in_vat |
a documented way of producing a result is too ambiguous I think |
2010-08-12 02:53:14 utc |
jmettraux |
why ? |
2010-08-12 02:53:17 utc |
brain_in_vat |
I would call that a process |
2010-08-12 02:53:23 utc |
brain_in_vat |
well, because a workflow implies a state machine |
2010-08-12 02:53:32 utc |
jmettraux |
why ? |
2010-08-12 02:53:36 utc |
brain_in_vat |
by definition it implies the flow of work |
2010-08-12 02:53:50 utc |
brain_in_vat |
which to me brings it close to a state machine |
2010-08-12 02:53:59 utc |
jmettraux |
the state of what ? |
2010-08-12 02:54:06 utc |
brain_in_vat |
of a work item |
2010-08-12 02:54:16 utc |
brain_in_vat |
the use of the word flow in this way |
2010-08-12 02:54:19 utc |
brain_in_vat |
like a flow chart |
2010-08-12 02:54:49 utc |
brain_in_vat |
it depicts or documents how a work process handles an item to produce a result |
2010-08-12 02:55:01 utc |
jmettraux |
I have to agree that you end up with a powerful workflow if you bind a state machine to a task or a workitem |
2010-08-12 02:55:19 utc |
brain_in_vat |
hrm, yeh, but I just want to nail down definitions |
2010-08-12 02:55:19 utc |
jmettraux |
is it OK with multiple items ? |
2010-08-12 02:55:42 utc |
brain_in_vat |
a workflow? sure, but it's also okay with one item |
2010-08-12 02:55:58 utc |
jmettraux |
you're looking for a state machine library but you're calling it a workflow |
2010-08-12 02:56:11 utc |
brain_in_vat |
like I said, a workflow has a state machine |
2010-08-12 02:56:29 utc |
jmettraux |
http://en.wikipedia.org/wiki/Workflow |
2010-08-12 02:56:36 utc |
jmettraux |
not a word about state in there |
2010-08-12 02:57:05 utc |
jmettraux |
a workflow instance may have multiple workitems each in a different state |
2010-08-12 02:57:08 utc |
brain_in_vat |
hrm. |
2010-08-12 02:58:01 utc |
brain_in_vat |
jmettraux: yes, I still think a workflow has state machines |
2010-08-12 02:58:37 utc |
brain_in_vat |
I think state is implicit in the wikipedia definition |
2010-08-12 02:58:58 utc |
brain_in_vat |
"More abstractly, a workflow is a pattern of activity enabled by a systematic organization of resources, defined roles and mass, energy and information flows, into a work process that can be documented and learned" |
2010-08-12 02:59:19 utc |
brain_in_vat |
those things involve states - like you say a workflow may have many state machines |
2010-08-12 02:59:26 utc |
brain_in_vat |
ah, here's the difference |
2010-08-12 02:59:35 utc |
jmettraux |
so you want to bind a workflow to a folder or a page ? |
2010-08-12 02:59:42 utc |
brain_in_vat |
the definition of a workflow needn't be concerned about state! |
2010-08-12 03:00:08 utc |
brain_in_vat |
yeh, the simplest example is being able to draft or publish a page |
2010-08-12 03:00:20 utc |
jmettraux |
state may be effected by workflow |
2010-08-12 03:00:23 utc |
brain_in_vat |
but someone may come along and add a workflow so the page needs to be approved by several levels of management |
2010-08-12 03:00:47 utc |
jmettraux |
what would the state machine look like ? |
2010-08-12 03:01:23 utc |
brain_in_vat |
page.state == draft; page.publish!; page.state == published |
2010-08-12 03:01:32 utc |
brain_in_vat |
in the easiest example |
2010-08-12 03:01:49 utc |
jmettraux |
so you're not managing the state of a workitem but of a page |
2010-08-12 03:01:58 utc |
brain_in_vat |
a page is a work item |
2010-08-12 03:02:18 utc |
brain_in_vat |
and, also, making it a workflow, is the actor who has the permissions to publish it |
2010-08-12 03:02:42 utc |
brain_in_vat |
brb |
2010-08-12 03:11:12 utc |
brain_in_vat |
back |
2010-08-12 03:11:30 utc |
jmettraux |
back to your initial definition "a workflow is a state machine which may involve different actors!", it implies that non-workflow state machines are single actor |
2010-08-12 03:11:40 utc |
jmettraux |
but there are workflows with a single actor |
2010-08-12 03:11:59 utc |
brain_in_vat |
that's right |
2010-08-12 03:14:10 utc |
brain_in_vat |
I think a better definition is 'a workflow is a reproducible cycle which finalizes an item of work' |
2010-08-12 03:15:02 utc |
brain_in_vat |
and that brings workflows into coincidence with state machines, but also clearly identifies that they not simply concerned about state |
2010-08-12 03:15:33 utc |
jmettraux |
a result is better I think, this last definition implies there is only one item and I suspect you're thinking it's the same item throughout |
2010-08-12 03:16:15 utc |
brain_in_vat |
that's true |
2010-08-12 03:16:21 utc |
jmettraux |
so you think you can model any workflow with a state machine ? |
2010-08-12 03:16:38 utc |
brain_in_vat |
'a workflow is a reproducible cycle which determines a result' |
2010-08-12 03:17:02 utc |
brain_in_vat |
no, I think can model any workflow with a state machine and other things |
2010-08-12 03:17:08 utc |
jmettraux |
very close to "a workflow is a documented way to produce a result" |
2010-08-12 03:17:22 utc |
brain_in_vat |
the difference is the word 'cycle' |
2010-08-12 03:17:38 utc |
brain_in_vat |
because documenting something doesn't necessarily give you a way to enact it |
2010-08-12 03:17:45 utc |
jmettraux |
that's a very restrictive word |
2010-08-12 03:17:47 utc |
brain_in_vat |
but a workflow is a way of enacting |
2010-08-12 03:18:22 utc |
jmettraux |
but you can own the document describing how to produce hammers, but not have the initial materials |
2010-08-12 03:18:35 utc |
brain_in_vat |
let's agree that an example of a workflow is filing an invoice in a filing cabinet, following a tax system |
2010-08-12 03:18:35 utc |
jmettraux |
you cannot reproduce it, but it's documented |
2010-08-12 03:18:46 utc |
brain_in_vat |
that sound ok? |
2010-08-12 03:18:49 utc |
jmettraux |
ok |
2010-08-12 03:19:27 utc |
brain_in_vat |
ok, so the workflow is not the document explaining how to use the filing cabinet |
2010-08-12 03:19:30 utc |
jmettraux |
a workflow is closer to a recipe |
2010-08-12 03:19:44 utc |
brain_in_vat |
the workflow is the process described by the document |
2010-08-12 03:19:52 utc |
jmettraux |
no a workflow is not a user manual |
2010-08-12 03:20:22 utc |
brain_in_vat |
so, I think the documentation part of your definition can be taken out |
2010-08-12 03:20:37 utc |
brain_in_vat |
which leaves it as |
2010-08-12 03:20:44 utc |
brain_in_vat |
'a workflow is a way to produce a result' |
2010-08-12 03:20:58 utc |
jmettraux |
you're right |
2010-08-12 03:21:07 utc |
jmettraux |
workflows are not all documented |
2010-08-12 03:21:07 utc |
brain_in_vat |
mine is (after your feedback) 'a workflow is a reproducible cycle to produce a result' |
2010-08-12 03:21:22 utc |
brain_in_vat |
the thing about a workflow is that it must be repeatable |
2010-08-12 03:21:34 utc |
brain_in_vat |
and that it's predictable |
2010-08-12 03:21:54 utc |
brain_in_vat |
so our def.s are very close - but I have 'reproducible cycle' where you have 'way' |
2010-08-12 03:22:35 utc |
jmettraux |
taylor style workflows yes, most workflows knowledge workers care about are hard to predict, there's so many factors involved |
2010-08-12 03:23:03 utc |
jmettraux |
cycle is a bit constrained for me |
2010-08-12 03:23:08 utc |
brain_in_vat |
hrm ok |
2010-08-12 03:23:10 utc |
brain_in_vat |
what would you use? |
2010-08-12 03:23:13 utc |
jmettraux |
way |
2010-08-12 03:23:24 utc |
jmettraux |
reproducible way sounds good |
2010-08-12 03:23:49 utc |
jmettraux |
reproducible could imply 'documented' |
2010-08-12 03:24:10 utc |
jmettraux |
it could imply 'have the capacity and knowledge to reproduce' |
2010-08-12 03:24:37 utc |
brain_in_vat |
yep, cool |
2010-08-12 03:25:04 utc |
jmettraux |
sorry to waste your time |
2010-08-12 03:25:19 utc |
brain_in_vat |
and I think, generally, in software, workflows will often use state machines, though it's not part of the definition of a workflow |
2010-08-12 03:25:29 utc |
brain_in_vat |
no, not a waste, thanks for taking the time to clarify it |
2010-08-12 03:25:48 utc |
brain_in_vat |
cheers :) |
2010-08-12 03:25:57 utc |
jmettraux |
not a waste of time on my side either |
2010-08-12 03:26:00 utc |
jmettraux |
cheers :) |
2010-08-12 03:26:39 utc |
jmettraux |
enjoy your day of coding ! I have to leave |
2010-08-12 03:26:42 utc |
brain_in_vat |
I guess better language would be |
2010-08-12 03:27:00 utc |
brain_in_vat |
'a workflow is a repeatable way of producing a result' |
2010-08-12 03:27:02 utc |
brain_in_vat |
ok later, cheers |
2010-08-12 03:27:16 utc |
jmettraux |
sounds great :) |
2010-08-12 03:28:12 utc |
jmettraux |
someone in 1832 wrote about it, I extracted quotes in http://jmettraux.wordpress.com/2010/08/06/methodismus/ |
2010-08-12 03:28:14 utc |
jmettraux |
ciao ! |