ruote log_2010-08-12

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
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
2010-08-12 03:28:14 utc jmettraux ciao !