In the last 6 months, I was doing a lot of SharePoint presales, architecting, planning and development, the thing that I have noticed that there is a lot of SharePoint guys is missing the some of the core fundamentals when dealing with MOSS solution.
Most of them thinks from a developer prospective only, so they focus on the functionality and ignore the other key elements of a MOSS solution success, that’s why from my point of view they face a lot of failed MOSS projects however they made a pretty cool job with the actual implementation.
OK, skip the lecturing thing and tell us what we missed :), that’s fine; the first thing you need to understand that your solution is not built on an island by itself, it’s a solution which will be functioning in an environment, so the first basic rule [Get familiar with the current environment].
For example, imagine that your are working on document management solution, so you can get to something like the following:
From the simple diagram above, I was just thinking of the required functionality, so I had proposed the following:
- MOSS: document libraries, versioning, indexing, search, auditing, may be some workflows, audience management, records ,management, etc
- RMS: Rights Management Services
- OCR: scanning, text recognition, etc
- SQL Server: data storage
Although, this solution will satisfy the client’s functional needs but it doesn’t satisfy other categories of needs.
So, we can categorize the project needs into four main categories:
- Administration and Monitoring
Not everything is around developing new components, try to search for well known third party or open source components which will fill the required gaps in MOSS functionality or will give you a good boost instead of starting from scratch.
For example, if we have a very good MOSS team they should – at least – have the following ready:
- Very good OCR integrated with MOSS document libraries.
- Very good workflow tool to decrease the workflows development effort.
- Very good interface tool, custom grids, controls, etc.
- Very good tool for MOSS deployment, for that one we used to depend on a own developed framework :), but the field is open for any innovative ones.
Cab be broke down to:
What type of applications the client already have and the level of integration required.
Ex., some clients need the DMS to be integrated with their HR system and this is not clearly stated in the functional requirements.
The current number of users who will use the system, the expected load on the system, peak hours and expected down time.
- Required level of availability
What is the maximum HW utilization that we can get and the backup, restore, maintenance plans, also what about the minimum accepted down time.
What is the current available HW and what is the best HW optimization which can be done, ex. Virtualization versus using actual HW
- Licences and products edition
It is not about just proposing enterprise edition from everything, try to choose wisely and put justifications for every choice.
Administration and Monitoring
We should keep in mind the SharePoint and the IT administrators when we build a MOSS solution.
The basic need for these guys is to keep track of what is going on in the application, and these monitoring needs can be divided into three categories:
- SharePoint related events
The SharePoint Usage Analysis and MOSS logs are great components in MOSS, however the level of details they provide is not enough for a successful monitor for a MOSS server.
Here, we can take the advantage of using System Center Operations Manager 2007 (SCOM), which provides a great detailed monitoring and reporting.
Definitely, we need SCOM as part of our solution.
- Application related events
We should implement a very good designed error and logs reporting while developing our custom components, as the Administrator needs these information for better tracking on the application, and we need them for maintenance and troubleshooting.
Enterprise library logging framework is a very good idea to be put into consideration.
Our system users need also a level of reporting, specially with Manager –> Employee approach, so we should think of some proper reporting from business prospective that helps our system users to keep track on what’s going on.
Cost of Ownership, that sentence my manager kept telling me until it became essential part of my thinking 🙂
Most of our clients specially enterprise ones, care a lot about the fact that they need to take the full ownership of vendor custom made applications.
I have seen a lot of solutions fail because the client’s internal technical team was not able to handle and understand the solution.
For example, if we know that the client doesn’t have a good SharePoint administrator currently we have three options to solve this:
- Put the need for a MOSS administrator as a prerequisite
- Propose training on MOSS administration if we found that someone is there is capable of handling this
- Or the most costly and last option to be taken is to provide most of the MOSS related administration tasks as a custom made component in our application and provide it in a way that will be very easy for any IT guy to handle [I remember once we had to do so 🙂 ]
So basically what I’m trying to say here is:
Try to fully understand the client’s needs from all prospective, remove the developer hat and try to see the big picture.
MOSS solutions is not about writing code, it’s about satisfying a customer’s need in a way that will achieve:
- Cost advantage – decrease the cost of productivity.
- Boost efficiency – people will be able to work more efficiently using our solution.
- Resources utilization – The client have resources that are not utilize, our system will help in that, for example the client already have MOSS installed, but with the default installation, with minor development effort, we can convert it into something that everyone is using daily.
P.S. This is an open discussion post, so please tell me what do you think in the comments section below, and let’s make this article a very good foundation of taking our MOSS experience to the next level 🙂
I hope that helped