While I was having lunch with Eileen and Tim from GSX today (nice to see you both, and Tim, congratulations on the new job) the conversation turned to Visio 2010. There was no surprise about the popularity of the product, there was a bit of surprise over the scale of the Visio business (it’s huge, but I course I divulged no numbers), but there was an awful lot of surprise about what the product does.

This is something I find during a lot of conversations – there is a perception that Visio is that tool for drawing flow-charts, floor-plans and network diagrams. Well yes, it does that, but it does an awful lot more. There is also a perception that it’s a tool for IT people, engineers and people who want to create flow-charts… yes, but there are many other types of user who could make great use of Visio. And remember that Visio is about visualising business content, whether it be people, numbers, or processes.

Most of the conversations I have with enterprise customers include Visio’s integration with SharePoint, which is not only very cool technology but can add a lot value to SharePoint sites and to teams of people.

The simplest type of integration is ‘Visio Services’. A Visio Web Access web part can be added to a SharePoint page, and this allows a Visio file saved in a web drawing format to be displayed in the page. So at it’s simplest level, a Visio file can be shared in a SharePoint page and viewed by non-Visio users. But the integration goes much deeper…

To understand the next usage scenaro you really have to understand Visio’s data graphics capability. Every shape in Visio has the capacity to include data – some of the out-of-the-box shapes (such as a process in an audit diagram) are pre-populated with data fields. You can add data to any shape, and you can add visual indicators to a shape based on it’s data. Imagine a sales manager in an organisation chart… rather than just having their name and title you could also see how well they’re doing against key performance indicators (KPIs). The underlying data that drives the visualisation of their performance could be self-contained in Visio, but it could also be linked in from other data sources such as Excel or SQL Server. The first image here shows a simple view of someone in an organisation chart, with just a name, title and picture.

By simply linking the Visio file to a data source (Excel in this case) and dragging and dropping a row of data onto Maria’s container, it suddenly looks very different. Click on the image to see the full scorecard…

The data graphics have added bars for five KPIs, a horizontal bar for her overall average score, a colour to her container (two less and she’d be amber), and an arrow showing her comparison to average score for last year.

Now let’s imagine that you want to share this organisation chart, which has now become a performance scorecard, with the sales organisation. You can take this Visio file and save it as a web drawing into a SharePoint site – you can also add it to a page as a web part. However, every now and again the data driving the visibility of the performance of Maria and her peers will change… and here’s the clever bit. The Visio web part can be set to refresh at regular intervals – so when the source data changes, the scorecard changes. Provided the source is accessible to SharePoint’s services there’s no need to open the Visio file, refresh it and re-save to SharePoint – it’s all done automatically.

By the way, when we demo this the Visio file is linked to an Excel spreadsheet stored in the same SharePoint site. The spreadsheet can be edited directly in the browser using Excel Web Access, and a few moments later the data graphics in the Visio file will update.

The next piece of integration between SharePoint and Visio also works using shape data. Imagine that you have a flow-chart which visually represents a business process (that’s what flow-charts generally do). Wouldn’t it be great if you could click on a part of the flow-chart and see the documents associated with that part of the process? Well you can, and it’s pretty easy.

The first step is to make sure that each part of the process has a unique ID and exists as an item of shape data. Then you deposit your process documents in a SharePoint library and add an extra field which will hold a process ID which matches the IDs in the Visio flow-chart. Finally, you set the Visio web part to broadcast the process ID and get the library to filter itself based on the incoming ID. Hey presto, you get a context sensitive list of documents everytime you click on a part of the business process. Click on the picture for a larger view.

There are two other ways in which Visio integrates with SharePoint. The first I’ll leave for another time as it’s quite detailed… that being the ability to draw out a workflow process using special SharePoint-ready shapes and using SharePoint designer publish that workflow process into a SharePoint site.

Finally, there’s a very neat piece of out-of-the-box integration between Visio and SharePoint task lists. Above the task list is a tab for ‘List Tools’ and one of those tools is ‘Create Visio Diagram’. Clicking this will suck up the details of the tasks and create a Visio pivot diagram, which allows you to visually interpret and interrogate the status of the tasks. The resulting Visio file has three pages… overall status of tasks, workload distribution, and an overview of incomplete tasks assigned to people. Click on the image above to see one view of the diagram.

Like the second example in this post (integrating a Visio diagram with a document library) you can place this Visio-based task overview on a SharePoint page and link it to a view of the task list. You can then click on a person in the diagram and filter down to see their assigned tasks.

Okay, that’s enough Visio goodness for today… more soon.