Alfresco Workflow Status Reporting

April 20th, 2009

As part of the Alfresco Consulting team, I’ve done some work on web scripts for reporting workflow status, keyed off of custom workflow metadata.  At the AIIM conference a few weeks ago, I was asked multiple times about Alfresco’s ability to expose workflow reports. Last week I came across a post from Kas Thomas who wondered, “Does workflow always have to suck?“, which touched on workflow reporting.  My conclusion after all of this: we need to build workflow status reporting. And I’m going to start on it.

Now there are a lot of ways in which we could build this out.  First, we need to consider the reporting context.  Do we want to report based on:

  • the system as a whole (”show me all workflow status in the entire system”)
  • web content management use (”show me all workflow status for web project X”)
  • user (”show me how user ‘bobsmith’ is involved in workflow”)
  • group (”show me how group ‘marketing’ is involved in workflow”)
  • asset type (”show me all workflow status pertaining to ‘.jpg’ files”)
  • asset (”show me all workflow status related to this particular document”)
  • path (”show me all workflow status related to assets in/under this path”)
  • workflow (”show me all status related to all instances of this named workflow”)
  • workflow task (”show me all status related to all instances of this named workflow task”)
  • something else I haven’t thought of yet (please comment here if you have other suggestions)

Since I want to get something going that will be of the most use to the most people, I’m going to start with reporting by user, then by group.  My next consideration will be exactly what to report.  I have not used any other workflow software besides Alfresco, so if you’ve got input on this, I would love to hear it (please comment below).  That said, so far I’m thinking that given a user id, the report will show:

  • the number of currently active workflows the user is/may be involved it (i.e. this would be inclusive of pooled tasks assigned to a group that the user is a part of)
  • the number of currently active workflow tasks the user has assigned to them

Given a user id and a date range, the report will show:

  • the number of completed tasks
  • the number of completed workflows
  • the average duration of each completed task

Better still, given a user id, date range (Jan 1, 2008 - December 31, 2008), and recurring time period (monthly), the report could show a bar chart or line graph of the aforementioned metrics.  Perhaps you can even add the ability to compare one user to another on those metrics.

A few things are notably missing so far.  Nowhere have I mentioned the ability to key off of custom workflow metadata, or report on custom workflow metadata. Perhaps the former could be addressed via the inclusion of a name/value pair that serves as a filter.  For example, providing {http://www.mycompany.com/model/my-workflow/1.0}/customId=42 could serve to filter out any workflow that does not have that custom metadata set on the workflow’s start task.  Reporting custom workflow metadata probably doesn’t make sense as part of a “by user” oriented report, but probably does make sense as part of a named workflow report.  What do you think?

Hopefully this post will drum up some food for thought, and ideally some feedback on what Alfresco users might want from a workflow reporting perspective.  Please feel free to share your thoughts on the subject by commenting here or participating in the workflow forum at http://forums.alfresco.com/en/viewforum.php?f=34.

An E-Mail Action for Workflow

March 15th, 2009

When dealing with workflows, a commonly requested feature is the ability to have automated E-Mails sent out from the workflow.  Alfresco documents a way to do this via the AlfrescoJavaScript action, by writing some Javascript code to send out the E-Mail.  While this approach provides great flexibility, it also requires your Javascript skills to be up to par.  Wouldn’t it be great to have a specialized E-Mail action instead that could be configured via XML?  Of course it would.

Here’s a simple example of how such an action could be used:

<action class="org.alfresco.repo.workflow.jbpm.Mailer" config-type="bean">
   <to>alfresco@localhost</to>
   <from>info@alfresco.com</from>
   <subject>Content awaiting review!</subject>
   <text>New changes have been submitted and are awaiting your review!</text>
</action>

This is a bit easier to work with as a workflow author than having to code an E-Mail action being sent via Javascript. It does have some limitations though in this simple form, so let’s enhance it a little further. A few things that might be desirable include:

  • Comma and/or semicolon separated E-Mail addresses
  • Variable resolution of E-Mail addresses
  • Variable resolution of task assignee E-Mail addresses (bpm:assignee)
  • Variable resolution of multiple task assignee E-Mail addresses (bpm:assignees)
  • Variable resolution of task group assignee E-Mail addresses (bpm:groupAssignee)
  • Variable resolution of multiple task group assignee E-Mail addresses (bpm:groupAssignees)
  • Variable resolution within the subject and body text

By implementing an Alfresco jBPM action to handle these various requirements, one could ultimately specify a quite dynamic E-Mail action, such as the following:

<action class="org.alfresco.repo.workflow.jbpm.Mailer" config-type="bean">
   <to>bob@example.com, ${bpm_groupAssignees}, ${somewf_somePersonsEmail}, jane@example.com</to>
   <from>info@alfresco.com</from>
   <subject>Content awaiting review!</subject>
   <text>New changes have been submitted and are awaiting your review!</text>
</action>

Further enhancements could include leveraging E-Mail templates already registered with the repository.  To get your hands on an implementation of the E-Mail action described here, see improvement ALFCOM-2555 in Alfresco’s JIRA.  If you have suggestions for how to further improve this simple extension, please comment here!

Reblog this post [with Zemanta]

Online Marketing Challenge: Name Those Blogs

December 19th, 2008

As you may know, I have an interest in digital media, particularly regarding digital video, including its production and its use (home, mobile, etc.). I’ve decided to start a blog (or two) and maybe a related podcast on the topic of digital media. Specifically, I want to reach these two audiences:

  1. Home entertainment enthusiasts - those people who have a computer of some kind stationed in or near their home entertainment center, dedicated solely for use by the home entertainment center
  2. Digital media content producers - those people who capture audio, video, and/or digital images and work with them in order to deliver the appropriate format and size for their intended destination (such as TV, mobile devices, the web, etc.)

I’ve thought about this quite a bit, but I wonder, what do you think?  Here are the issues I am wrestling with:

  1. Are these target audiences different enough to warrant two separate blogs, or can one blog serve both audiences with excellence?
  2. I really like the “blog family” concept, which I think is essential to establish a brand.  Think about TechCrunch, MobileCrunch, and TalkCrunch as an example of a “blog family”.  With that in mind, what should the blog/blogs/podcast be called?

I’m usually really good at brainstorming, but for some reason, the name question is killing me.  Therefore, as a thank you for relieving my mental block, whoever comes up with the naming scheme I end up using will receive a free copy of Tribes by Seth Godin.  Please comment here with your suggestions, and thanks in advance for your help!

Twitter Spam or Welcome Innovation?

December 7th, 2008

On November 28th, I followed Alex Barger (AKA @galaxiecruzin) on Twitter. Immediately I received a direct message from him that said:

“Thanks 4 following. Here is a short video introduction: http://www.cruzinthegalaxie.com/sfw/thanks-for-the-follow/

So I checked out his video, liked the guy and the idea, and asked him how he did it. He told me, so I did it too a few days later. See my welcome video here.

As you can see, I simply introduce myself and tell people what I do, what my interests are, and what I tweet about.  The feedback I received in the week since has been overwhelmingly positive.  In fact, I went back and counted.  I got 50 positive responses via direct message or reply from Twittter, 4 neutral responses, and 2 negative responses out of the 344 people who clicked on the link.  In addition to that, I’ve been invited to lunch by a social media company, invited to write for a recently launched online magazine with several authors, and invited to record 30-60 second videos on various topics for a well known musical artist’s web site.  Here is some of the praise I received (only public responses included here):


steaner: Pretty cool. When @Hobnox started following @br524 we got a DM with a link to a short introduction video http://bit.ly/13yEw

MikeLizun: Nice touch from @br524 thanks followers with a video http://tinyurl.com/6nemcq tells you a little about him, what he does, what he tweets

cwalcott: @br524 I like your twitter welcome video, I think that’s a really good idea

aneel: well now.. @br524 has a nice “welcome” vid for twitter followers. kinda like that. :)

botchagalupe: Digging the video intro thingy when I follow someone. I need to get one of those… thx @br524

dcw: @br524 just inadvertently gave me a wonderful idea as far as v/blogging goes. Brilliant; utterly brilliant….

MikeyPod: @br524 wow! great idea to do the twitter intro video! nice to meet ya!

ellieeille: Nice idea: @br524 introduces himself to new twitter followers in a 30-second video clip (link in a DM) http://poprl.com/6xg

martin001: @ellieeille i just followed @br524 because i watched his video you linked up.. i think thats a brilliant idea - might just have to imitate

jstorerj: the other day i asked what you thought of auto-DM’s after a follow. most ppl thought it was a bad practice. @br524’s is ok http://is.gd/aip0

DarinRMcClure: @br524 Nice welcome vid.

HeatherLeson: Wow that is a first! Follow someone and get a video introduction. Masterful usage @br524

Today I got a negative response from @lizstrauss, a highly followed and successful blogger, who asked me to ‘please turn off your auto-responder’.  After a private back and forth, Liz directed me to this post about Twitter Spam, which basically says auto responses demonstrate that you don’t “get it”, and that you’re sending unwanted spam to people in this fashion.  I really have to disagree with this view, particularly in light of all the positive feedback I’ve been receiving about this.  Generally, yes, the auto-response is impersonal, and I rarely click on the links to a person’s blog in those messages.  I really do think the approach I’ve taken is distinctly different, significantly more personal, and a hell of a lot more engaging.

So I’m curious now…those who did not respond after having clicked the link in my auto-response message but did not comment one way or another…did they dislike the introduction?  After all, there are 289 people who saw the video who have not weighed in.  Maybe all this positive feedback is really the minority!

Somehow I doubt it though.  The guy who had the idea originally (as far as I can tell) reports success on several levels, and got similarly positive responses.

For those of you seeing it here for the first time, what do you think?  If you followed me on twitter and got a direct message that said, “Thanks for following! I made you a 30 second Twitter Welcome Video - http://poprl.com/6xg .  Thanks again…Brian”, would that make you mad?  What about after you watched the video?

Please comment here, I’d really love to get to the bottom of this.

The King of Social Media: Content or Identity?

October 21st, 2008

I just got around to watching Friday’s webinar by Optaros about Alfresco in the media industry.  In it, Bob Fitzpatrick highlights three major points regarding how to increase online revenues:

  • Increase user engagement with your content
  • Extend the reach of your content
  • Enable API access to your content

As a prerequisite though, companies should be converting their content into assets that can be managed centrally.  In so doing, content can be easily related to other content and then be syndicated, retrieved by third parties, or composed and presented to users.

In addition to the aforementioned strategic goals, companies should strive to deliver on them in an efficient manner.  According to Bryan Spaulding, this means building a system with a Media Service Architecture that scales and enables exposure to PCs, mobile devices, and TVs.  And don’t forget to instrument your system such that feedback can be obtained to enable reporting and thus tweaking of the platform.  Jeff Potts reminds us that Alfresco and Optaros can be levaraged to get you there faster via their awesome capabilities.

What is interesting to me about all this is the different approach to the problem.  At Ringside Networks, we focused on the “beefy middle”, as Shaun Connolly so eloquently put it.  In a nutshell, this meant enabling social interactions in the context of existing web sites with existing users and content.  Restated in terms of a Ringside customer’s objectives, those three goals might look like this:

  • Increase user engagement with your web site
  • Increase the reach of your company/brand
  • Enable API access to your site’s social capabilities and/or users

In the Alfresco/Optaros case, the underlying premise is that content is of the utmost importance, and that people will pay to enable their users to interact with your content, or better yet to advertise around your content.  In the case of Ringside, it was all about identity and interaction on your site amongst your users, with new eyes sourced from various social networks.  SocialPass is taking yet another approach, which brings people to your site, regardless of where they came from.  Either way, people would pay to bring users to their web sites.

I think the best of both worlds can be achieved.  There will be some shops that won’t be positioned to re-architect their content management systems, and will pay to bring new users to them.  Hopefully their advertising revenue will more than offset the costs of customer acquisition.  Other shops will be well positioned to capitalize on their content via a solid Media Service architecture.  Finally, there will be shops that do both.  I can imagine the NY Times online syndicating images, videos, and stories, providing API access, and serving photo galleries and videos along side related stories with personalized SocialPass conversations involving Facebook users, MySpace users, E-Mail invitees, and Twitter invitees all on the same page with integrated ratings and persistent commentsThis is nirvana!!!

Real Money: $X Cost Savings Realized by Implementing A Document Management Solution

September 16th, 2008

Since my last post about how I could have used a Document Management (DM) system in a former life, I’ve been thinking about the statement I made about how certain I was that it would have saved the company time and money had we used a DM solution.  That’s the kind of statement that a Tech enthusiast likes to make withouth substantiation, and yes I’m a tech enthusiast.  However, it would be much more powerful to boil it down to dollars and cents.  It wouldn’t take much to truly quantify those savings either. Additionally, it wouldn’t take much effort to estimate savings and calculate a projected ROI for DM implementation.

I’m thinking back to my week of Lean Six Sigma Green Belt training, and I recall the general concept that you can’t improve a process that hasn’t been measured.  That said, it would be fairly easy to simply time someone performing a task or set of tasks before DM implementation to estimate cost savings, and then again after DM implementation to monitor progress.  You could go deep and set up a control chart if you really wanted to, which actually may yield information about special cases that cause delays, and provide further opportunities for automation.

I’m wondering if any Six Sigma experts or system integrators out there have actually done any projects that leveraged DM software to increase knowledge worker efficiency and automate their work.  If so, please comment here and share what you’ve found!

Document Management, Where Have You Been All My Life?

September 15th, 2008

Last week I began working for Alfresco Software, as I previously announced.  During that first week, I learned about Document Management, amongst other things (like the Spring Framework for example).  The end result: I wanted to kick myself.  It really would have been nice to have Alfresco’s Document Management solution in place when I was working on Gestalt/Accenture’s CMMI level 3 compliant Agile software delivery method!

Our process for defining processes was basically this:

  1. Draft the process
  2. Pilot it (and make revisions based on what was learned)
  3. Approve it
  4. Deploy it

Of course, there were several sub-steps within those processes, and they required version control, auditing, and moving documents to different folders at certain times (a document workflow).  At the time, we used Sharepoint as best we could to manage all this.  It handled version control and auditing, but it had two shortcomings as I recall.  First, there was no automated way to baseline a set of documents as being part of a release candidate (such as you can do with CVS or Subversion tagging).  Second, the moving of documents was all manual, every step of the way.  This doesn’t sound like much, but as I recall, we had six or seven folders in the workflow, and we could have used some automation when doing round robin peer reviews within our team.  And the deployment of these assets was no trivial matter; I remember it took me almost a whole day to learn how to deploy a set of process assets, and then deploy a set of them for the first time.

So as I went through “Getting Started With Document Management“, I was shaking my head the whole time.  It is so easy to create content rules and workflow rules.  Instead of manually moving documents from folder to folder, a workflow could have been set up to do that automatically.  Instead of manually notifying a teammate that it’s their turn in the round robin peer review chain, the workflow could have done that for us.  And best of all, we could have easily set up a templatized space that could have been used for all of the processes and associated documents that we delivered over the course of over two years.  Finally, because Alfresco is open source and standards based, we could have extended the platform to automate our specific processes for deploying process assets.

Considering the number of documents we handled, the amount of reviews, the number of gates in the process, and the number of people involved, I have no doubt that if we used Alfresco we would have saved a lot of time and therefore money as we defined, piloted, approved, and deployed new Agile processes across the company.

So yeah, document management software is a great thing.  I only wish I knew about it years ago.

Alfresco

September 8th, 2008

Today is my first day working with Alfresco, which I am very excited about!  Let me tell you why.

Over the weekend I read an old article by Peter Drucker called “Managing Oneself”.  In it he basically says that knowledge workers should know their strengths, how they perform best, and what their values are.  Then you can make well informed decisions regarding where you belong and what you can contribute.  I found this article very interesting in light of my recent job search.  When I started out, I knew what my strengths were.  First, I have deep technical experience as a software engineer, having spent eight of the last ten years writing software, and doing all of the things associated with it (see my profile on LinkedIn for details). Second, I’m very well versed in Agile process design, modeling, implementation, and deployment, having spent two years working with a great team on developing the processes for an Agile software development methodology that was also CMMI level 3 compliant.  That methodology is well on its way to becoming THE official Agile delivery method for Accenture. Third, I have been an active ScrumMaster since January of this year, and thus have competency with Agile project management (for which I’ve been told by several people that I do a very good job with).  Finally, I’ve always had a thirst for learning, have a commitment to delivering quality work products, and work very well as part of a team.

I perform best under deadlines. I learn best by doing, and second best by reading.  I believe that I work best as part of a small organization.  I value integrity, family, learning and growth, excellence, and service.  In the workplace, that means doing the right thing, doing it well, doing it transparently, serving the customer, and always learning and growing.  That’s the kind of environment that I want, and I believe I have found it with Alfresco.

Alfresco is an open source software company that delivers enterprise content management software.  In my new role, as I understand it, I will be doing some pre-sales work, identifying how Alfresco software can help deliver on potential customers’ needs.  I’ll also be doing some architecture and design work for customers and partners, once they’ve made a decision to use Alfresco’s software.  Finally, I’ll be doing some development, contributing back to the open source products that Alfresco offers.  In this role, I believe I can leverage my strengths as a software engineer, as a planner (the process work I did required lots of planning), and as a project manager.  I’ll get to learn and hopefully master the domain of enterprise content management.  I believe the team is a very good one, based on my interviews, a person I know that works there (Hi Jess!), and Matt Asay, whose blog I have been reading on and off since the beginning of this year.  Not to mention the successful nature of the business!

So today I begin a new journey with a new team, and I’m very excited to get started!  I hope to define exactly what I will contribute over the coming weeks while learning about enterprise content management.  If anyone has suggestions or ideas on how I can quickly come up to speed, please comment here and let me know!

Social Payment, Part 3

August 8th, 2008

I’ve recorded another screencast of the Ringside Social Payment service that demonstrates the use of a multi-friend selector when making social payments.  There is an interesting lead-in to what will eventually be part 4 in this series…the multi-network multi-friend selector.  For details, watch the video here or click the image below.

social-payment-selector.png

Social Feed Tag

June 16th, 2008

As we at Ringside build out our administrator dashboard, I’ve been working on a feed retrieval API and a new social tag for feeds.  When developing applications for Facebook, the application can only publish feed entries via the Facebook API, but there is no way to retrieve those feed entries.  The Ringside feed tag will enable just such a capability, as well as the ability to import RSS feeds from anywhere online.  Here’s how:

<rs:feed-aggregator display="byDateTime">

  <rs:feed uid="100042" friends="true"
    actions="false" stories="true" />

  <rs:feed
    url="http://del.icio.us/rss/ringsidenetworks" />

</rs:feed-aggregator>

This example is slightly complicated, so I’ll break it down piece by piece. The first thing to note is the feed-aggregator tag. This tag aggregates feed entries for all of its contained feed tags, and displays them according to the value of the display attribute. Currently, feed entries can be displayed by date and time or by tag.

Next you’ll notice that the feed tag can be used in different ways. The first feed tag in the example reads from the social network’s database and is controlled by the attributes specified.  The feed tag will retrieve feed entries relative to the id of the specified user.  Alternatively, the ‘actorid’ attribute can be specified for feeds that are relative to pages or applications.  If the ‘friends’ attribute is true, only the entries by the user’s friends will be displayed.  The Facebook API enables the publication of actions and stories, and those attributes determine whether the feed tag should retrieve actions, stories, or both.

The second feed tag in the example is what you would think it is for - reading and displaying RSS feeds.  The feed tag will retrieve the latest feed entries from the specified URL and display them according to the display attribute, which is not shown in this example since the feed-aggregator tag will do all rendering according to its display attribute.

This should be pretty exciting for social application developers, since integrating RSS feeds and social network feeds into their applications will become very easy.

These tags are currently under development, so if you have ideas to make them even better, please share your thoughts via a comment below.