The SharePoint Pro’s Delivery Toolkit

I’ve been thinking about the applications I use regulary at work to help support the delivery of SharePoint projects.  I thought it would be a worthwhile exercise and list these out and to share what I use.

You will be surprised to find that this list has little to do with the SharePoint product, and more about the supporting tools that help me get on with my job.  They probably apply to many more cases than specifically a SharePoint Pro.  Here they are in no particular order:

  • Fiddler – a web debugger that is very useful for tracking many issues around SharePoint including authentiation (ie Kerberos), latency and proxy problems.
  • Lightscreen – My number one tool within the PortableApps suite, and just find it very quick and simple to use.  Great for grabbing that nasty error and to fill in documentation.
  • Password Safe – Perfect for keeping all the passwords in an organised fashion readily available.
  • Grindstone – Keeping track of time is a must for my role, and GrindStone makes it simple for me to keep track of my hours against projects.
  • Evernote – I ran my own wiki (Foswiki) for about a year running back to a PC at home, but I kept having problems with network connectivity, and just found the setup too unreliable (Foswiki itself was great for what I needed at the time).  Evernote is like a personal wiki on steroids, and great mobility options.
  • Putty – So what does an SSH client have to do with delivering SharePoint?  I can use it in the absence of telnet on a locked-down workstation or server for some rudimentary network tests, and I can in some cases use it to bypass proxy restrictions.

There are probably a few other, non-Microsoft tools that I use fairly regularly, but these are probably the main stable.  In all cases, these tools are also free to use, an added bonus.

What tools do you use?

SharePoint People Matches Was My Idea!

Microsoft SharePoint 2010 has dramatically improved since its predecessor, and the one thing I wanted to mention was the related people matches.  In SharePoint search now, you can configure the results to show people who are related to the content you are trying to search for.

This really is a great little nugget within SharePoint, because it is one that works to connect people who have tacit knowledge – knowledge stored inside people’s heads, and may not be explicit in any other format.  People can be profiled based on their search queries, their profile, and their activities within SharePoint.  Connections are able to be made as to who may be a person with some knowledge pertaining to a particular search query.

The only problem is, this all seems too familiar.  It seems I’ve seen something like this before…my final year university thesis!

My thesis, TIXS: Tacit Information eXchange System: An investigation of electronically developing and exploiting tacit knowledge in communities of practice, was developed to perform what I explained above – connect people based on profiling their search behaviour, and afford the transfer of tacit knowledge.

All be it a much simpler implementation to the feature in SharePoint Search, it is essentially the same concept.  Until someone else speaks up, I’m claiming that it was my idea first!

SharePoint 2010: Exception has been thrown by the target of an invocation

Tried adding a new SharePoint 2010 server to an existing farm, and got this perplexing, and un-googleable message while running the product configuration wizard:

03/29/2011 16:02:21  11  ERR                                              Task services has failed with an unknown exception
03/29/2011 16:02:21  1  INF                                              Not running in high contrast, so we will paint the background with our trademarked image
03/29/2011 16:02:21  11  ERR                                              Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: The directory name you entered is invalid.  Please enter a new name.
 at Microsoft.SharePoint.Administration.SPDiagnosticsService.set_LogLocation(String value)
 at Microsoft.SharePoint.Administration.SPDiagnosticsService.InitSPDiagnosticsServiceFromRegistry(SPDiagnosticsService service)
 --- End of inner exception stack trace ---
 at System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct& signature, IntPtr declaringType)
 at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
 at Microsoft.SharePoint.PostSetupConfiguration.ReflectionHelper.InvokeConstructor(String assemblyQualifiedName, Type[] constructorSignature, Object[] constructorParameters)
 at Microsoft.SharePoint.PostSetupConfiguration.TaskCommon.ReflectionHelperInvokeConstructor(String assemblyQualifiedName, Type[] constructorSignature, Object[] constructorParameters, TaskBase task)
 at Microsoft.SharePoint.PostSetupConfiguration.ServicesTask.InvokeServiceConstructor(String serviceRegistryKeyName, String solutionIdRegistryName, String serviceNameRegistryName, Type[] constructorSignature, Object[] constructorParameters)
 at Microsoft.SharePoint.PostSetupConfiguration.ServicesTask.InstallServiceInConfigDB(Boolean provisionTheServiceToo, String serviceRegistryKeyName)
 at Microsoft.SharePoint.PostSetupConfiguration.ServicesTask.InstallServices(Boolean provisionTheServicesToo)
 at Microsoft.SharePoint.PostSetupConfiguration.ServicesTask.Run()
 at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()

The clue was the line: The directory name you entered is invalid.  I noticed on the existing servers that there was a SharePoint log directory on the D: drive, and suspected this to be the issue.

At first attempt, I changed the location of the diagnostic and usage logging, to no avail.  I ended up requesting an additional disk for my new server, creating the log directory on the D: drive and re-running the wizard.  This worked.

1% Solutions – Moving forward

Every so often while working on a problem, it is easy to find yourself stuck on a particular issue. It may seem insurmountable and nothing you try will get it fixed. I know I’ve been the victim of this, and it became more apparent when I managed a support team. Quite often I’d had staff come up asking for help on a problem, and that they were ‘stuck’.  I have a few methods for dealing with such problems and how to move forward.

Search the internet
One of the great things about the internet is if you receive some obscure error, this is a strong chance that someone else has had a similar problem. But what about if the problem is for a custom application, or a closed piece of technology?  This is something I have commented on before (Could we survive without Google?).  Hopefully anyone asking you how to help will already have done this as a first step, but this is not always the case.  Developing good search technique can also help.

What is the smallest, most atomic step I should do next?
This is my favourite question to pose to others (and ask myself).  When you are up against a brick wall, step back and work out what is the most smallest, most trivial step you can take next.  Essentially its part of breaking the problem into its components, and again, and again until you’re left with a series of steps to start with.  I find this works a lot of the time.

Take a break
There is nothing better than taking a break from a problem and coming back to it at later time, so long as the severity of the problem permits it.  Even if it is working on something else in the interim, it gives your brain a break and allow it to process it at a sub-conscious level.  Ideally, large problems can be solved with a good night’s rest, although business priority rarely permits that kind of luxury.

The 1% Solution: When stuck, look how to move forward. Work out what the absolute next thing you can do is, or at least take a break and refocus later.

Click here for my premise of %1 Solutions.

1% Solutions – Present solutions, not problems

In a perfect world, I’d like to walk onto a client’s premise, conduct a task and have it work first time.  This seldom happens,  and inevitably something goes wrong.    Software fails to install, there are network issues, code will not compile as expected – there seems to be a neverending list of such problems.  This is all part of the job, and IT professionals need to take it in their stride and work on delivering a solution.

I’ve seen many times first hand IT professionals who are in a circumstance that they have a problem, and then present said problem to the client.  They are going in without solutions or any way forward that is going to be of any benefit.  I’ve always been of the belief that so long as you can present one or more viable options, the client is appreciative that you’re working on achieving their goals. 

The 1% Solution: Clients like to hear solutions, not problems.  Find a way forward that will give a win/win scenario.

Click here for my premise of %1 Solutions.