Working with technologies more than half of my life. In connection, I’m renaming the blog site into Tech Trek Trenches (TIII) with such milestone in my career.

Here’s another post where I troubleshoot a problem from the trenches. Once in a while, I encounter server restart issues for SharePoint server and it will display that SharePoint Timer service is not started as shown below.

Restarting the Timer service will be successful but will eventually fail and attempt to retry restarting on its own. What was happening?

Upon further research, I found that the following services also didn’t start:

ForeFront Identity Manager Service

ForeFront Identify Manager Synchronization Service

If you look in SharePoint Central Admin, there are scheduled timer jobs related to these services. In my case, ForeFront services were not started properly, then, SharePoint Timer Service will eventually fail. Upon restarting these two dependencies, everything will be back to normal.

I’ve confirmed the feature definition doesn’t exist in that specific folder and so began my search for a possible resolution. I found the article below that recommended to restore the definition files. Now, where would I get those XML definition files?

As it turns out, I’ve noticed there is a “MobilePowerPointViewer” folder under TEMPLATES\FEATURES folder of 14 Hive. I copied the entire folder and renamed it into “OfficeMobilePowerPointViewer” and viola — problem solved. I’ve applied the same for MobileWordViewer after I got a similar error.

Don’t you love how SharePoint errors are ambigious? Recently, a user reported receiving the following message when saving a document back into a library:

"Cannot perform this operation. The file is no longer checked out or deleted."

I opened a document in the affected site to re-create the issue and didn’t use the check-out option and it worked. Unfortunately, it is not the root cause of the issue.

As it turns out, the affected document library consists of managed metadata properties that aren’t being filled out for end-users. The metadata is displayed properly on my end since I was using a Site Collection Administrator account. What could be wrong?

After some research, there is a hidden SharePoint list that manages the used terms located in the root of the site collection.

Using the blog post I found below, I had to make sure that “NT Authority\Authenticated Users” has read-only permission to this list. Viola! The list works for all users after manually adding such account with the correct permission.

As a parent, it is our obligation to impart knowledge to our children and have them learn from us by example. In my case, I was surprised to learn from my two kids about software development principles that we can all apply in the enterprise. Recently, I’ve allowed my kids to create a YouTube channel so they can upload their own videos. One of them diligently works on planning an elaborate design for his production and still yet has to post his first video.

While my other ten-year old child, who may not have the best of short films but have already produced 22 uploads to date. Watching the short clips that she made, you can see the improvements were done even with the minimal script that she prepares. What is also interesting is that she would record short clips and piece them together to build the whole story. She has also made short preview of things she plans to release in a couple of months to get early feedback on what viewers may like to see.

So how does it relate to product development principles? In recent years, we’ve seen the explosion of lean practices either in manufacturing or software development. If we take a look at the approaches of my ten-year old child, we can draw the following conclusions:

LEAN DEVELOPMENT PRINCIPLES

Eliminate WasteBy releasing films as she finishes them, she eliminates the waste to store what she has filmed and minimizes wasted opportunities of not releasing the stories she wants to tell. Typically, a common issue whether in manufacturing, software development, or starting up a business is that we tend to do “analysis by paralysis” and waste our efforts to build the grand cathedral instead of using the bazaar model, that is, to share our ideas. See The Cathedral and the Bazaar essay by Eric Raymond.

Amplify LearningWith frequent release cycles, she has learned the finer points of using the video production tool that I’ve provided so she can improve her skills. In iterative development, the framework forces one to do regular release cycles so that learning and feedback can be achieved early, thereby, hitting your targets or goals much better as you build the product.

Decide as late as possible, or defer commitmentSince she produces preview clips and receive feedback or see the how many views were made, she can decide as late as possible on which series to produce. By providing various storylines to her subscribers, she can then devote her efforts on which movie to commit and get a better handle on the uncertainties for her target audience. This principle allows her to adopt changes to the requirements which is usually is the costly mistake in product development due to the changes, or introducing things that may not be valued.

Deliver as fast as possibleAt the same token, she is able to deliver as fast as possible with those early previews and likely build the audience interest. This is most especially true in the YouTube youth generation of today. You will need to produce deliverable results that one can see and sample so that they can immediately relate to your product or system that you are trying to build.

Empower the teamBy handing her the tools she needs, she feels empowered with the equipment and tools she uses to build the movies at her own pace. This also empowers the audience since they have input on what is more beneficial to them. Imagine the traditional market research of conducting small focus groups into a larger scale, the more your product gets exposed, then it is more likely that you’ll gather more information on what improvements to make.

See the whole pictureBy creating short clips and piecing them together, she is able to see as a whole what she wanted to deliver for each of those cut scenes rather than filming it as one long clip and re-editing them later. It is amazing that she sees her movies as part of a series just like doing a small piece of the puzzle for an integration project. Getting an overall vision to the project allows you view how things play together. A good example of this is the production of the “Lord of the Rings” trilogy; you can’t just take one of the movies without taking the whole story in context. As the adage goes, “How do you eat an elephant? One bite at a time.”

In summary, we don’t need to have perfect designs to execute the projects at hand. I’m blessed that I both kids have different talents since the older one is good at planning and the younger one is good at implementation. In my leadership role, I only gave them a couple of guidelines and allowed them to take ownership of their projects. As such the biggest lesson learned for me in retrospect is to equip them on what they need and rather encourage their growth on their interests.

So, how about you? I’d be interested on what have you learned recently from a child that can be applied to the business environment. Kids may not get them right or understand such concepts at their early age but what’s important is we can also learn from them.

I’ve recently had a conversation with a colleague on the appropriate platform to publish tribal knowledge that he would like to share. With this in mind, a couple of question arises on the social computing capabilities of SharePoint so that we can make better use of the technologies:

What is the difference between blogs, wiki, and discussion forums in SharePoint?

When is the appropriate usage of each technology?

Here is a comparative chart the various criteria for choosing one format from another.

Architecture Categories

Wiki

Blogs

Discussion Forum

Standalone Site

Can be implemented as a self-contained site but may also be included within a collaborative site

Yes

No, included as list in a site

Structure

Open structure i.e. may differ from page-to-page

More structured exchange of ideas

Structure is based on the target audience of the forum

Model(Author-to-Audience)

Many-to-many

One-to-many

Many-to-many

Authors

Can have multiple contributors that are managed by many users

Can have multiple authors but typically are moderated by a single author/team

Can have multiple contributors but typically are moderated by an owner/group

Audience *

Typically published for a large audience

Targeted audience i.e. Developers, Finance, Sales, etc.

Limited to the specific site audience

Ownership

Per page basis

Per article (item) basis

Per topic item basis

Editing

Shared editing that may result into resolving conflicts manually

Typically authored by an individual and approved by a moderator or blog owner

Typically Q&A or challenge and response format

Community feedback

Comments aren’t available, by default but can be added to solicit feedback

Comments are available by default, but not necessarily intended to solicit feedback

Expectation is to receive comments or feedback

Typical Uses *

General knowledge base repository, projects, or policies and procedures (permanent)

Journal used to communicate news, events, tips and tricks, share expertise to other team members (mixed)

Typically used to address a specific issue, or bug (ad-hoc)

Content Categories

Wiki

Blogs

Discussion Forum

Content Type *

Authoritative content i.e. should be approved for publication

Opinion-based content

Speculative topic i.e. may not produce a definitive answer to an issue

Content Length

May include lengthy content or topics

Short and ideally a specific topic per posting

Varies based on the issue difficulty

Content Frequency

Less frequent changes and/or longer cycle for reviewing content

More frequent, or recommends a regular posting cycle

As needed depending on issues encountered

Organized By (Format)

Pages by topic or categories

Articles in reverse chronological order

Title or date; may want to create separate forums for each functional area

Search Filters

Uses tagging mechanism and popular tags

Filtered by category and on a monthly basis

Search items by Title and Date but can include additional columns as needed

Intended for a specific team, or audience rather than creating separate blogs for each individual that users need to subscribe

Targeted issues that can be addressed in isolation i.e. create separate entries based on category and mark them as resolved or not

In summary, these are the key criteria when implementing one of the above-mentioned options:

Who is your target audience?
Will your readers include the whole organization/enterprise, or a specific interest group?

What type of content do you intend to publish? (authoritative, opinion-based, or speculative content)

What uses is the content geared for? (permanent, ad-hoc, or mixed)

Who will be the primary moderator/s of the content?

As indicated, there is no one-size fits all rule when implementing social computing features within an organization. You can use a hybrid approach to achieve optimal collaboration and participation from users.

In an enterprise environment, the general rule to keep in mind is not having anonymous users to minimize posting inappropriate content, or accidental sharing of confidential information.

I read this knowledge base article after I had already re-published the InfoPath template into a second form library so I can test” the changes before applying them in production. In my case, I’m not re-publishing the template as a Site Content Type, or creating Site Columns.

I proceeded to delete the second library even before re-publishing the production form template. As mentioned in the article, the promoted columns were re-created when publishing a form more than once within the same SharePoint site. In my situation, this resulted into the following issues to the original form library:

Promoted columns were removed in list views

Calculated columns resulted into invalid values (#VALUE) even if column names are the same

Custom workflow lookups didn’t resolve the promoted columns

Luckily, my form was not too complex but I had to perform these steps to correct the form library:

Re-create the list views

Re-create the calculated columns

Modify custom workflows in SharePoint Designer and later re-published them to the site

GAPS AND RECOMMENDATIONS
It was a good thing that I had backup of the configuration settings so I will able to re-create them as needed. Thus, it would be nice to have a SharePoint tool to create documentation about configurations. Also, the ability to restore custom workflow would be helpful in case of a worse-case scenario of re-creating the library or list.

SUMMARY
The intent of this post is to shed light on some of the nuances of InfoPath development as compared to the traditional deployment procedures into a test or staging environment. Thus, it introduces additional work for SharePoint Administrators when applying “change control” practices and poses a challenge when trying to adhere into legal compliance scenarios.

It does take a different mindset coming from strict software configuration management (SCM) principles in my previous work experience. What we’ve done in our organization was to store application configurations in transactional database tables and XML files coupled with version control system which made auditing changes more feasible.

It was a nice work day of summer and first thing in the morning came a report from a user that SharePoint search is not working. So I went on wearing my “administrator hat” and tried to troubleshoot what happened to the environment. First order of business was if I can replicate what error occurred, unfortunately, it’s much worse that I thought since even clicking a web part header returns an error.

In the interest of time, I’ve highlighted the key section of the error message which was a failed worker process (w3wp). Next step was to find that process ID that was affected in particular so I’ve used the following method to identify the list of worker processes in Windows 2008:

c:\windows\system32\inetsrv> appcmd list wp

With IIS Manager opened, I was able to isolate the web application pool that was giving out this error and performed a “recycle” operation to correct the issue. Smoke test proves to be successful by executing the search that was earlier reported. As it turns out, the affected SharePoint server recently had a “pending” Windows Update that required a full reboot to complete the patch.

Tools Used:

Event Log viewer

AppCmd using Command Prompt

IIS Manager

Windows Update utility

Now, if I can only cast “dispel magic” on such situations — life would be easier for a SharePoint adventurer.