Category Archives: SharePoint Solutions Design

Tracking Practice Activities – Part 1

About a year ago, I joined Slalom Consulting here in new York as what we call a Practice Area Lead.  (As a minor aside to the point of this blog post, that change in jobs accounts for my total drop-off in blogging.  It was a big change in roles and a big change in day to day “stuff” but I’ve sort of acclimated myself to it and look forward to writing again Smile ).

In this PAL role, I’m responsible to save the company and the immediate environs of 21 West 21st street from disaster on a regular basis.  It’s a lot of pressure (more than you might think – just think of all the children!). 

In service to that imperative, I need to help out with pre-sales, create and update go-to-market offerings, hire good folks, train up folks to make them better (but really, to make my job easier) and occasionally do something billable at a client.  I get a lot of “input” – questions from clients, sales opportunities, my own addled thoughts and so forth.  Some of it’s really good (like a hot sales oppty) while a lot of it is less good.  The key is to initially track, prioritize and manage each of these ideas (great and small) to a successful conclusion. 

This kind of task management isn’t new, right?  And we have lots of task tools to help us with this.  Outlook has tasks.  You can slap a spreadsheet together nice and quick.  My very first task management tool was a legal notepad back in my days at GAF as a developer in the IT department.  (Ask me about those good old days the next time you see me if you’re interested, or maybe not…).

Being a SharePoint guy (nominally, at least), I’ve always thought to use SharePoint.  But for some reason, a generic Task list never quite did it for me.  A bunch of months ago, I decided to heal myself and just create a SharePoint based solution.  It was so embarrassingly easy to create that I thought to write about it here.

So, my goals here were very simple:

  • Super easy and fast data entry
  • Prioritize activities
  • Categorize activities
  • “next step” driven – these activities will often span weeks (maybe even months).  They almost never “end” after one specific update.

These bits lend themselves very nicely to a content type, so that’s what I created:

image

You can actually see that I had a sales bias with this at first, since I have that “Client” field.  A lot of my practice’s activities are based around clients (either actual or prospective).  But many of them are also internally focused.  I slap “Slalom” in there when I create them, but it always feels a tad weird.  I should have named it something more generic.  Maybe “Target Organization” or something.

Here are a few miscellaneous notes on the content type:

  • Activity Impact has devolved into a measurement of priority.  I’m not sure why I went with “Impact” and not “Priority” day zero, but that’s what I did. 
  • Next Steps and Next Steps Date – I have a dashboard that is driven by the next activity date.  This dashboard has sort of become my marching orders for the day/week.  I just go to the dashboard and focus on high priority stuff first and go from there.  (There’s the notion of an “untagged”
  • Primary Owner – the only thing of note is – isn’t it awesome that you can sort and filter on multi-select columns in SP 2010! I actually didn’t fully buy into this notion at first.
  • Activity Status – really just “Open” or “Closed.” 
  • Primary Practice – After I began using this, another PAL in my group wanted to try this out, so I slipped this into the mix to distinguish between my stuff (Portals & Collaboration) and her stuff (Azure).

Here’s my dashboard:

image

(sorry for all the blurred out bits – I didn’t feel like creating a bunch of test data and I don’t want to give anyone a heart attack over sharing vital details [see the bit in the intro re: save the world, etc., etc., etc.]).

I have several other views on this list, including a datasheet view that allows me to do mass updates.  I do this most often when a bunch of lower priority items I planned to do a never quite got done and need to be pushed out a week.

Every day, I pull up my activities log and just start working off the top of the list.

In part 2, I’ll explain how I made this even more useful with the addition of a nice email-enabled doc library and SPD workflow.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Let Shining Examples Lead the Way to Increased SharePoint Adoption

My first “pure” BrightStarr blog entry was published today.  Here’s a teaser:

There’s been a lot of conversation on the Internets of late on the topic of SharePoint adoption and especially the lack thereof. No one wants to go to all the trouble of designing a farm and security infrastructure, participating in workshops, putting together a snazzy look and feel, working out a rock solid information architecture that can withstand the vicissitudes of company re-orgs and finally, a fanfare-filled rollout just to discover three months post go-live that less than 50% of the company employees are using SharePoint and most of them are using it to replace the old network file servers ("the S:\ drive").

No silver bullet (or single blog post) is going to solve that problem. However, there are lot of things you can do to reduce the risk of an anemic SharePoint portal. One such technique is the "Shining Example Pattern."

I’d love to know about other SharePoint adoption strategies that you care to share.  If you do share, please leave as a comment on the BrightStarr blog.

Read the whole thing here: http://www.brightstarr.com/US/Pages/blog-view.aspx?BlogID=52

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Create Printer Friendly Pages and Even Print Them

I wrote up an article for SharePoint Briefing a week or so ago and it’s been posted.  Here is the opening bit:

image

You can read the whole thing here: http://sharepointbriefing.com/features/article.php/3904906/Create-a-Printer-Friendly-Page-in-Your-SharePoint-Sites.htm

I hope this helps someone.  Enjoy!

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

“Can Do” versus “Should Do” in SharePoint Projects

I think that many of us are occasionally presented with, for lack of a better phrase, young-child requirements.  The end user really, very badly wants a certain specific look and feel, or a very specific sorting structure or a to cut out one click or menu option to ease navigation or [insert passionately held belief that happens to be wrong].  As SharePoint pro’s, we can generally meet almost any kind of requirement with the platform, but for some of them, we know in our hearts that:

  • They are going to take a disproportionate amount of time to implement (and therefore cost more)
  • They are going to be highly custom and therefore difficult to maintain and troubleshoot
  • There is is some easy SharePoint approach that meets 80% or more of the requirement (i.e. meets the sprit of the requirement, but not the letter of the requirement)

Bottom line, we know that the “requirement” is really just a nice to have or even legitimate in some sense, but something that people should live with rather than spend a lot of time trying to “solve.”

I think of these as “young child” requirements because I’ve seen this pattern many times before.  Kids will pine away and nag you for some new toy for weeks at a time.  You get them the toy, they play with it for a few hours or days and then put it down, never to pick it up ever again.  Or, you don’t get the toy, the nagging stops and the kid moves on to become President of the free world.   I’ve seen this happen in SharePoint projects.  Decision makers either get what they want and it becomes an unused or underused function or they don’t get what they want and the project still succeeds anyway.

I was reminded of that today in a forum post and I liked how Clayton Cobb tried to get the forum poster to push back on one of these kinds of requirements: http://social.msdn.microsoft.com/Forums/en-US/sharepointinfopath/thread/af8a1941-92ad-4f1a-b1bf-875e28ea79b7/

I’m really curious how people view this topic and how you deal with it.  Am I missing the point?  Do you have strategies to steer decisions makers away from overinvesting in trivial requirements?  Please leave a comment.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Use Workflow to Simulate Content Type Security

Another day, another MSDN-forums inspired post.

Someone was asking whether they could secure a content type such that when a user clicks on the “new” button on a custom list, only content types to which that person is granted access would appear in the drop-down list.  As we know, this isn’t supported out of the box.

This question comes up now and then and this time, I had a new idea.  Let’s assume that we have scenario like this:

  • We have a helpdesk ticketing system.
  • The helpdesk ticketing system allows users to enter regular helpdesk ticket info, such as problem area, problem status, etc.
  • We want to allow “super” users to specify an “urgency” field.
  • Other users don’t have access to that field.  The system will always assign “medium” level priority to their requests.

What we could do is create two separate SharePoint lists and two different content types, one for “super” users and the other for everyone else.

Workflow on each list copies the data to the master list (the actual helpdesk ticket list) and the process proceeds from there.

This approach might work flow a kind of column level security as well. 

I haven’t tried it, but it feels reasonable and gives a fairly simple, if pretty rough, option to implement a kind of content type and even column level security.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Content Query Web Part: SharePoint’s Swiss Army Knife

My latest article is up at www.sharepointbriefing.com.  Here’s a teaser:

image

Read the whole thing here: http://sharepointbriefing.com/features/article.php/3874226/Content-Query-Web-Part-SharePoints-Swiss-Army-Knife.htm

See it in use a real public web site here by following these steps:

  1. Go to this web page: http://cdi-its.com/Pages/Customer_Support.aspx (This is the customer support page for CDI).
  2. Click on “Case Studies” in the left hand navigation.

It will jump to the “Customer Support” section of the case studies listing.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Pre-existing Conditions: SharePoint Alert Templates to the Rescue (?)

One of my clients worked with a previous contractor to build out a small but useful HR application for the enterprise.  That contractor used SharePoint Designer to implement the workflow portion of the solution.  It’s a bit of a mess.  For instance, there are nine SPD workflows in support of a single logical workflow process and up to five of them may fire simultaneously at any given time given the right conditions.  It’s not easy to debug 🙂

My customer has a number of still-outstanding requirements, one of which is to generally provide more context when the system sends out email alerts – both in the email itself as well as associated task forms.  As SPD workflow implementers know, the “collect data from user” SPD action actually creates a task with a custom content type.  When we use that action, we don’t get to specify much.  We can prompt for some values (e.g. “approve” or “deny”) and we can specify a hard coded value in the title and description.  That’s about it.

My customer’s requirement is two fold:

  1. When SharePoint sends an email about a task assignment, include a lot of information about the task in the email body.
  2. More importantly, by far – when the user clicks on the task link in the email, the task form should have all the information the approver needs in order to make his/her approve or deny decision.  Right now, the manager needs to click on the item link itself to drill down into the underlying details and no one likes that.  You have to click in the email.  Then you need to click a sort of obscure link on the task item.  Then you can look at the underlying data (an InfoPath form in this case).  Then you click back/back, etc.  Everyone hates it.

I’ve inherited this somewhat messy technical solution and I want to make changes in the least intrusive way possible.

The approach I’m taking right now is to create a custom alert template.  You can read about that here.  The flow works like this:

  • SPD workflow runs.
  • At some point, it assigns a task to a manager.
  • SharePoint system automatically sends out an alert to that manager.  This is not part of the SPD workflow but rather “what SharePoint does.”  (The SharePoint timer service, I believe).
  • A custom alert handler is invoked in favor of the standard alert process (following magic rules as described in the above referenced article).
  • When my custom alert handler runs, it generates a beautiful email.  More importantly, since it has the task in hand, it also decorates the actual task with all the context information necessary to meet the business requirement.
  • The user gets the email and it’s full of useful context information.
  • User clicks on the task link and the task itself is full of useful context information.
  • Everyone goes home to have watermelon and ice cream.

I did a quick POC and it works well in a lab environment.  I get my custom email alert as expected.  I also get to update the task description and title itself.

The only tricky bit, so far, is to avoid a situation where the alert updates the item, triggering another alert.  This doesn’t worry me.

Looks promising so far…

The great thing about this is that I don’t need to muck about with any of the existing SPD workflows.  They are blissfully unaware that an alert handler is “IIZ RUNNIN IN DA BAKGROUND, DECORATIN TEH TASK LIST WIF MOAR CONTEXT”.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

SharePoint Demonstration: Leverage SharePoint to Build a Vertical Business Application

[Note: I want to straight away say that I have a financial interest in the desired outcome of this demonstration, which I mention in the interest of full disclosure, etc.  This is actually the first time I’ve ever blogged about an event where I stand to benefit personally in this way.]

This web demonstration takes place Thursday, 06/04 at 12:30 EDT, ending at 1:30PM EDT.

In cooperation with my excellent business partner, Integrated Systems and Services Group (ISSG), I have been working to develop a vertical business application using SharePoint as the platform.  In this case, we’re building an application that serves the needs of manufacturers that make customized product for their customers.  In these cases, a great deal of collaboration needs to take place between the customer and the manufacturer.  There’s also a great deal of collaboration required between different groups within the manufacturer, including sales, engineering, research and development, legal and other groups.

The demo is going to show an application that facilitates that kind of collaboration, along with a discussion on how all of those collaboration bits need to integrate with a backend ERP system.

Lastly, this isn’t going to be a SharePoint demo.  This is a demonstration of a solution for a specific niche problem that happens to use SharePoint as the platform.

So, why would you bother to sign up and see this demo?  I don’t expect too many readers of my blog to be all that interested in a solution for make-to-order manufacturers 🙂  Your take-away would be the concept itself – using SharePoint purely to deliver a business solution without regard to SharePoint itself.

If you’re interested, please sign up here(https://www323.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=skmqfwbr5smmlx20).

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

You Can Pry SharePoint Designer From My Cold, Dead Hands

My latest article is up at www.EndUserSharePoint.com.  I wrote about SharePoint Designer, End Users and the outline of a strategy that End Users might try and follow in order to demonstrate competence and build trust around this tool.

The comments are more interesting than the article itself.

Check it out.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Technorati Tags: ,

MOSS User Profile as the Authority for User Language Preference

On my current project, some of the users will travel around the world and when they arrive at different destinations, use whatever machine is handy at the time.   Those guest machines will be running Windows and installed and configured for the local locale.  (I’ve just realized that the guest machines may not have the right language packs… probably won’t, in fact… I’m parking that one for now).

SharePoint needs to provide a mechanism whereby the user can pick their preferred language and then have MOSS honor that language regardless of how the user accesses MOSS.  In other words, disregard whatever the browser tells IIS/MOSS and instead look up that preferred language and use it. 

We’re going to investigate two approaches:

  1. HTTP Handler: A custom HTTP handler installed on IIS will look up the user’s MOSS profile, figure out the preferred language and then switch the HTTP header around as needed before passing control to MOSS.
  2. global.asax: Modify global.asax to do the same thing.  We may modify something else, but the idea is that we find some place where we can insert our locale-switching logic. 

The other complicating factor is that we need to support 60k users, about 1,000 of which may be simultaneously accessing MOSS at peak load.

The HTTP handler seems pretty drastic, but possibly the best place to put the code since it’s at the IIS level and all-knowing.  It’s a good single point of work.

We’re leaning toward a global.asax type approach, mainly because we believe we’ll have more options for caching data at that point.

I’ll be blogging more on this subject as I learn more.

If you have know anything about this, please post a comment 🙂

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin