Divide and Conquer

imageWhen I was making the coffee table that sits in my office, I learned a lot about bending steel. Specifically, I learned that bending square steel tubing isn’t easy and often doesn’t end well. Some bends were wide enough that I could negotiate the turn and repair the damage, but others were just a bend too far. For those, I took it in steps: cut, bend a little, cut again and then weld back together. I thought about that process this week, as I struggled with a workflow issue. I’m not sure if this is a common issue, but it seems to come up for us quite often:

“Is it better to build one big, ugly, complicated workflow or is it better to create a few additional lists and spread the work across them?”

We almost always tend to spread the complexity around. In the solution I’m working on today. I need to accomplish three major steps in order to reduce a 12-15 page Word document into a series of entries in a custom list:

  • Parse all of the recommendations out of the Word document
  • Determine if the recommendations are New, Open, Pending or Closed as of the date of this report, and
  • Create entries into either a custom list of recommendations or in a custom list of updates to existing recommendations.

All of this can be done by a workflow, but it’s a complicated task. A single big ugly workflow would need to keep track of individual recommendations, whether they are new or some other status and look up the details about the inspection report metadata and copy it into the other lists. I opted for a process that involves two additional custom lists:

One is a list of what I call “splits.” Splits are the big chunks of parsed text. All the new recommendations are in a split. Likewise, all the pending recommendations are in a split, and so on. A workflow that runs when the splits are created doesn’t have to determine what kind of recommendation it’s dealing with, they are all new, or pending, or some other status.

That workflow parses all the recommendations into individual entries in the second list. That list is then built up of individual recommendations which have a status (new, pending, etc.) and all the metadata that they need to be transformed into an item in the ultimate destination list. A final workflow that runs as these items are created takes care of dispatching those items.

The cost of this solution is the creation of a couple additional custom lists and a bit of duplication of data (although the items in these intermediate lists can safely be deleted). The benefits include:

Easier to plan – The overall process is easier to plan and stage. The process becomes a fairly simple routing exercise. Big boxes of the same thing arrive at one list where they are opened, separated and distributed to a second list. It’s like a wholesale-to-retail operation.

Easier to build the workflows – Rather than a complicated workflow with lots of variables and lots of steps, I have three single-purpose workflows that are each of a manageable size. I built the process in discreet steps, only moving forward once things are working at each level.

Easier to control new vs. update action – By the time I need to know whether to create a new recommendation or an update to an existing recommendation, the list item I am working with includes that information as well as everything I need to create those items.

Easier to debug – This is a big deal for the developer (me). As I am configuring these workflows, there’s really only one way any of them can fail. That is so much easier to deal with than a workflow that can fail any of three or more ways, especially given the current state of SharePoint Designer’s debugging tools.

Easier to rerun – Some of the workflows trigger alerts, some set metadata in other lists and change the status of other processes. Working in smaller segments means there are fewer things to fix if something ultimately goes off the rails.

It might be tempting to just keep on grinding out steps in a single workflow. However, dividing the steps into logical groups and taking advantage of storing partially processed items in interim lists is a very powerful concept. This approach makes design and development easier. By the way, it worked for that coffee table too. If you want to read more about that project, take a look over here.

Make SharePoint Simple

imageToward the end of 2012, I read several messages on Twitter, a few blog entries and even a couple of supportive eNews articles that were talking about how the year had been a turning point for Microsoft. Some were factual, some analytical and at least one proclaimed Microsoft to now be “cool” again. My contribution was to ask the question: “will 2013 be the beginning of the end for SharePoint?” Why so glum? Well, you would have to read that article, but I have a suggestion that would help prevent my question from being answered in the affirmative – make SharePoint simple!

During the course of 2012, I had to work with six different groups outside of the company that I work for. Four of these groups were comprised of business people collaborating, two for short-duration projects and two for the long haul. The others were the two groups of students I mentored at a state university during their senior MIS class. Despite my offering to create a SharePoint for some of those groups, all six chose Box or DropBox for collaboration and for long-term document storage. Not everyone offered a reason, but those who did said that “SharePoint is too complicated.”

Last week, I had an experience with SharePoint that caused me to feel the same way. I was updating our Annual Report, a process that I have managed (and blogged about) on SharePoint for years. This year, it went off the rails. I would select the menu option to “Edit in Microsoft Word,” make my changes and then be slowly driven to frustration when I was unable to check the document back in. If I opted to use my local drafts folder, I was told that “the document is checked out on a different computer.” If I chose not to use the local drafts folder, I was told that the document was checked out to Dan – as if I were someone else. The site where I wasn’t able to work is on our Internet-facing SharePoint server, where it has been for 6 years, and with which our internal domain is trusted. I was able to upload new documents, new versions of existing documents and I was able to check-out, open, edit, save and check-back-in a PDF file, using Acrobat Professional. I could email these documents to myself, and use Harmon.ie to save and check the documents into the server from Outlook. I could even open a document on my iPad with Harmon.ie’s app, edit it in Office HD2, replace it and check it back in – the only way I could not edit and replace the Word document was from within Microsoft Word!

The cause(s) of the problem remain elusive; the work-around was to check the document back in from Word’s File menu, without clicking Save first. I searched the Web on a variety of terms, including “Word cannot save document to SharePoint” (which returned over 2,000,000 results), but I failed to find a definitive solution. Suggestions included the usual suspects, like permissions, which I knew was not the problem and services that either were or weren’t running on either my laptop or the server. I tried all of the suggestions that looked viable, but none solved the problem. The leading contenders for reasonable explanation were a series of responses that point out the difference between “check-out” and “lock”, and attempt to explain the way that Office interacts with SharePoint. The most bizarre was one which alleges that check-in can be affected by where your cursor is within a Word document – I’m serious, you can read that here. It’s ironic that SharePoint would probably be off the hook if it wasn’t for the guilt-by-association with Office.

This experience didn’t make me feel like one of the cool kids. I felt like the geek who can comprehend the nuances of a strange work-around, even though it makes no sense. I’ll take a minute to remind you that this is a process that worked before. I am not sure whether it was the introduction of Windows 7, IE-9 or the various Microsoft upgrades that have been applied client-side and on the server since I last worked off this site. Perhaps, as one blog suggested, the culprit is one or more corrupt cookies on my laptop. I don’t care; like the other people trying to use SharePoint, I just know that it used to work, but it doesn’t work today. When basic things stop working and when making them work again takes numerous steps, configuration changes or different versions of software, we lose the battle for simplicity, and by the way, simplicity is what people really want.

This Will be Fine

clip_image002I want to thank Doreen for filling in for me last week. Judging by my stats, I should have her fill in more often. While she was introducing herself, I was enjoying some of the attractions near my hometown of Pittsburgh, PA and I am happy to say that I almost forgot about SharePoint completely. Coming back to work in the middle of the week is great (mentally) but it makes it hard to dig out and find something to write about. As often happens, something lands in my inbox that solves that problem. This time, it was an email from a different member of my team, pointing me to an article from Information Week, about the Microsoft Web Apps preview for iOS devices.

I have written several times about why Microsoft needs to support iOS devices better, and I am very happy to see this step being taken. I know they are racing to deliver their own hardware, and that’s great, but hardware and software should be treated as different markets; after all, it’s the application people want, and that’s a good thing. It’s a good thing for me too, because it supports the approach that we agreed to take in our company. Our goal is to enable our employees to do their jobs wherever they are, whenever they like and to utilize the computer hardware they happen to be carrying at the time. The current state of this offering isn’t perfect, but I see this glass as half-full and filling.

Implementation – There are a number of features that are missing from the web apps that I hope will eventually be included, and there are some annoying aspects to the user experience, but I don’t care. Microsoft has taken a big step in the right direction and I can deal with an evolving product. At this point, I can work on Office documents on my iPad, and with the help of the products like Harmon.ie and SharePlus, and SkyDrive, I can easily get documents from Exchange and / or SharePoint and back again and now I can edit them with relative ease. I have actually been able to do these things for a while, but it has been getting easier and it’s getting close to the point of being seamless. That’s good, because that’s what I told my users would happen eventually. As I look ahead to the planned integration between Office, SharePoint, Outlook and SkyDrive, I see nothing but blue skies.

Approach – I hope that I am correct in assuming that this approach indicates that Microsoft wants to be a player in the open market. Their platforms (Exchange, SQL Server, SharePoint, etc.) can sell on their merit. Their hardware, (Surface, phones, etc.) can sell on their merit and their software i.e. Office can leverage its dominant position and sell on its merit. Office shouldn’t have to prop-up sales of phones and tablets; those things should be successful if they are as good as or better than the competition. My decision to embrace Microsoft products shouldn’t make people hate me because they associate it with the reason that they have to give up the device they love. OK, I’ll never fully recover from displacing Word Perfect with Word, but I’ve gotten over that, even if some of my coworkers haven’t. Kudos to Microsoft for taking this approach.

Future – I don’t want to suggest that Microsoft is invincible, but I think things look pretty good for the future. I’m not sure that I agree with all of the plans for Windows 8 and I certainly hope that they reverse the decision to drop the Design View from SharePoint Designer, but the community will keep them from failing. We will engage with the new products, we will continue to build solutions on SharePoint and Windows, and third-party vendors will continue to fill the holes, smooth off the rough edges and extend the vision as required. As I’ve already pointed out, I have been working with Word documents, stored in SharePoint, on my iPad for over a year. I didn’t need a solution from Microsoft because others were quick to fill that void.

OK, so those are all the comforting thoughts I’m focusing on today. In addition, I’m enjoying editing a couple of old documents and my AIIM Conference Presentation from earlier this year, on my iPad. This week has ended on a very good note and I’m optimistic about the future.

No Train Wrecks Allowed

clip_image002Earlier this week On several occasions this past week, we were trapped inside a Mobius loop of inactivity due to failures of network equipment that resulted from the failure of some AC equipment as well as ill-timed changes to our DNS servers. Having tossed most of our technology eggs into the network basket, we limped along without phones, email, SharePoint and even access to our shared folders. Of course, we have contingency plans, but at what point do you pull the trigger on a change that requires relocating people? I can’t answer that, but I know it isn’t an amount of time that is measured in hours, unless something has been destroyed – enterprises, even small ones, just don’t move that fast.

I am counting on Microsoft to understand this fact about enterprises. Consumer pressure to respond to social, mobile and usability issues aside, they can’t expect to drag corporate America behind them at warp speed. The enterprise will turn about as quickly as the Enterprise. As we sit here today, looking at Windows 8, SharePoint 2013 and the next version of Office, we are in no hurry to adopt any of them. Sure there are machines here that are already sporting the Metro soon-to-be-named interface, but they are R&D items. In the past, we have been among the early adopters of new technology, but this time, we are likely to drag our feet – here’s why:

Mass – Despite the recent wave of annoying technical problems, our current configuration works pretty well. SharePoint, Lync, Exchange, SQL Server, and a whole bunch of systems that use those technologies are humming along. Those systems are talking to each other, and people are getting work done. Most of the job descriptions in my department include references to “staying current” and “researching emerging technologies” but the core requirement of every position’s job description is one that deals with “maintaining technology that is critical to company operations.” Watching over the past week as people lost phones, Internet access and email, I was reminded as to just how important that requirement is. The next generation solutions don’t only have to be released to manufacturing, I need to know that they all work, that they all work together well, and that they support our installed base of software and solutions. Given the speed at which Microsoft is remaking everything, I’m thinking we might not get to that one-big-happy-family state until a bunch of Service Pack 1’s are released.

Motion – Projects don’t stop when new releases are announced, even when the new technology will impact the solution being developed. For example, we are working on a SharePoint-based solution that is using the Mickey-Mouse method of enlisting workflows associated with multiple lists to iterate over the items in one list. SharePoint 2013 is said to support loops in workflows, but that doesn’t mean that we are going table this current project until we are on SP2013. One reason is that I don’t know if the way SharePoint will support loops will do us any good. A second reason is, I wouldn’t be surprised to see the feature get yanked out at the last moment. Finally, I have users waiting to use this solution. We may tweak our design to make it easier to change our workflows once looping is available, but for right now, it’s full speed ahead.

Here’s an example of how mass and motion combine to create momentum: prior to Microsoft announcing their upcoming slate (no pun intended) of tablets, we standardized on iPads. By standardize, I mean we put one in the hands of 2/3 of our employees, so that’s the mobile platform we have to work with through 2013. We have promised those same people a very specific app later this year, and I am still planning to build that app in xCode.

Planning – Microsoft might be reluctant to give me a roadmap that extends past the end of this year, but I have to give my boss one that stretches well into the future. In addition, I have to complete my 2013 budget request within 45 days. It was this time last year that we decided to buy those iPads, and when I think back, I didn’t see any reason why I should have made a different decision. So, looking ahead, I see continuing progress on using SharePoint to help us manage digital content and to improve the effectiveness of certain business processes. Our plans are based on what we know we can deliver during 2013. I stopped writing lists of accomplishments that begin with “due to the later than promised release of…” a long time ago. Our hardware, software, storage and bandwidth budgets will all be predicated on what we know (in September 2012) will happen in 2013.

SharePoint on My iPad

clip_image002This is part-2 of a short series that I began on my AIIM blog on Tuesday. In that post, I described how we worked around the fact that Datasheet views don’t work on an iPad by using some of that middle-tier magic Marc Anderson got us addicted to back in June. That solution is looking very good, and when we unveil it on Monday, I think we are going to have some happy users. The other problem we have been trying to solve is how to edit documents on an iPad, documents that we store on SharePoint. If we can solve these two problems, the people who have iPads tell me that they can then travel without their laptops. They also tell me that is something they want to be able to do. My choice is between being the guy who makes that wish come true or the guy who owns the reason it can’t come true.

In my previous posts regarding documents and iPads, I’ve gotten comments from the folks who developed SharePlus; it’s a good product, but my complaint was that it was setting up a 2-cushion bank shot between SharePoint, SharePlus and DocumentsToGo (and I rarely make those). In what I thought was going to be an unrelated story, I was also trying to get my iPad working with personal documents I store on Box.net. When I wanted to edit a document on my iPad, Box suggested that I could use Office2 HD. Not only does Office2 HD work with Box.net, it works with SharePlus. In fact, it made editing a SharePoint-based document a basic bank shot (and I can make those once in a while). The process for document creation is:

Create new document in Office2 HD
Save it to SharePlus
Open SharePlus
Save the document to SharePoint

That’s not bad! Editing a document is a little more tricky, as you have to move it from SharePoint to SharePlus’ local store first and then do the edit, save back to SharePlus and upload thing, but the process works and we were able to train one of our more technically adept users how to do it. The thing I like about this solution is, even though it is a slightly complex effort; there aren’t that many moving parts, and they are pretty cool parts. SharePlus provides a good–looking, intuitive interface to SharePoint that is consistent with the iOS user experience. Office2 HD is a sweet Office editing product whose only drawback is the inability to work with pptx files. Box.net is a safe and reliable platform for content management and I am happy to recommend it to my users for storing personal files. One editor, and our users can work on personal and business documents on their iPad, and they can easily hook up to those files from their home and office computers. As they say on TV, “But Wait, there’s More!”

My Systems Admin realized that Office2 HD works with storage locations that support WebDav. Within a few minutes, he had Office2 HD working directly with our SharePoint 2007 Internet-facing server. Unfortunately, there are some challenges to getting WebDav to work properly on SharePoint 2010 and IIS 7, but I’m sure he will crack those. This makes creating and editing SharePoint documents on the iPad as easy as a straight shot into the corner pocket. With Office2 HD for documents, SharePlus for lists, and custom middle-tier solutions for everything in between, we will be in great shape.

Since February 2010, I’ve gone from “No iPad for Me” to “Why I Bought an iPad” to the recent litany of posts complaining about how Microsoft just doesn’t get it. Today, I have a working ensemble solution and I am convinced it will only get better. Instead of waiting for Microsoft to make their software work, I’m thinking “Microsoft is going to have to deliver something stunning to pull me away from these products” – that’s the power of the market for iOS apps.

Our impending success is due to more than the Apple marketplace. The companies behind these products are building great solutions. The SharePoint, iOS and ECM communities have provided access to countless individuals who share their experience and expertise through blogs and forums. While I am spreading the credit, I want to recognize the members of my team. I am fortunate to have a Systems Analyst who is driven to give our users the best possible user experience we can provide. I reference our Systems Admin often in this blog, but it’s hard to quantify how much he brings to the table – these guys, rock!