Since Microsoft Office SharePoint Server 2007 is an application platform, not just an application, maintaining and managing a SharePoint farm requires many skills. The level of complexity is comparable to SAP, although SharePoint does much more than SAP. The required skills are so broad it’s almost impossible to find them in one person. However, most of what’s required can be found in two roles: System Administrator and SharePoint Development Leader (in many environments, some parts of the System Administrator role can be handled by standard server operation procedures (anti-virus, firewall, etc.).
SHAREPOINT SYSTEM ADMINISTRATOR:
The System Administrator role in a SharePoint farm is very broad since it requires knowledge of both SQL Server and Windows Server. Many companies therefore look to their SQL Server DBAs to take on the role of SharePoint System Administrator since SharePoint stores all of its data in SQL Server databases.
However, the Windows Server knowledge required to build and maintain a SharePoint farm is considerable, and DBAs may not have the time or desire to acquire this knowledge. Therefore, the System Administrator role is often split between two people who work closely together: a Windows Server administrator and a SQL Server DBA.
The DBA skills required are the standard set required for any SQL Server database (backups and restores, log shipping, creating logins, monitoring performance, etc.) but the features of Windows Server that a SharePoint Administrator needs to have some knowledge of include:
- IIS Manager and IIS 6/7 architecture
- Server Manager and its functionality
- Active Directory (including LDAP queries)
- Network Load Balancing (NLB)
- Windows Firewall
- Event Viewer and Performance Monitor
- Powershell scripting
The SharePoint Administrator should also have a broad knowledge of Windows networking and authentication, particularly Kerberos. They should also be comfortable with using a variety of utilities such as Network Monitor 3.2, Fiddler, LDAP browsers, KLIST, ADSIEdit, etc. and know how to troubleshoot network connection and authentication problems.
The SharePoint Administrator also needs to acquire knowledge of the the SharePoint farm architecture and installation process and be capable of rebuilding the farm quickly. He or she also needs to be familiar with all the functionality of the “Central Administration” web application and the STSADM.EXE commands (some functionality is only available in STSADM) as well as the Shared Services functions, including managed properties, content sources, crawling, profiles, etc., and how it interfaces with the other parts of the farm.
The administrator should monitor the Event Viewer, Performance Monitor and SharePoint logs for any problems and be prepared to troubleshoot any problems. A Microsoft support contract of some sort is a must because issues will inevitably arise that are unique to your environment and therefore impossible to anticipate.
Monitoring of disk space, backups and other repetitive tasks can be handled by operational staff or with Powershell scripts written by the SharePoint Administrator (Powershell 2.0 has many SharePoint specific cmdlets and will be the primary admin tool for SharePoint 2010, replacing STSADM).
Although the system administrator need not be aware of all the myriad details of SharePoint functionality, he or she needs to understand SharePoint security and web application/site collection/subsite structure well and understand the problematic issues related to these features (i.e., security is held at the site collection level, web applications should be no more than 100 GBs because of backup/restore issues, etc.). A good understanding of how SharePoint interfaces with Office 2007/2003 is also critical. Since SharePoint is such a dynamic product, system administrators should also be prepared to follow the important SharePoint blogs to keep up with cumulative updates and service packs, new TechNet advisories, useful vendor add-on products, etc.
Finally, it’s important to note that the SharePoint Administrator is dependent on the assistance of many other parts of the IT infrastructure:
Incoming and Outgoing Email
Exchange and DNS
SharePoint System Administration, therefore, is very much a team effort.
SHAREPOINT DEVELOPMENT LEADER:
The Development Leader also needs to understand the special elements of SharePoint sites: Site Templates, Master Pages, Style Libraries, Web Part libraries, the importance of Core.js, etc. and where these elements are maintained on the farm servers. They should also have a good knowledge of IIS and the applicationhost.config, web.config and machine.config settings and their impact on SharePoint web applications.
The Development Leader should also be familiar with the web parts and delegate controls that come out-of-the-box with SharePoint and how to modify them. Depending on what features of SharePoint are in use, they may need to acquire specific skills. For instance, some companies make extensive use of InfoPath forms which involves an understanding of the InfoPath program, the limitations of browser enabled forms and the various ways to deploy InfoPath documents to SharePoint.
However, the real key to SharePoint development is to understand the out-of-the-box functionality and SharePoint web services well enough so that you don’t program something SharePoint does natively. Ideally, SharePoint development should consist mainly of tweaking functionality that is already there. Therefore, the successful Development Leader determines how to accomplish project requirements with the least amount of programming. In addition, he or she must also determine how to best accomplish the goal. Is a feature required or will a web part fit the bill? Is a custom site template required? Should custom content types be created? Is there a SharePoint web service that provides the needed functionality? And so on.
Finally, the Development Leader also must have a good knowledge of Central Administration and STSADM.EXE, especially the Search and Profile functionality, and should work closely with the System Administrator, who should be fully aware of all custom development projects and have an opportunity to test them in an a QA environment before they are added to a production farm. The Development Leader should also act as a backup to the SharePoint System Administrator.