SharePoint Subcontract Procedures

SharePoint Subcontract Procedures

SharePoint subcontracts can be raised when it is considered that it is more effective to place discrete packages of work outside of the organisation.

This article is referred to in my book, Managing and Implementing SharePoint 2010 Projects. The article describes, from an academic viewpoint and all in ‘my humble opinion’, a procedure that you could adopt under which you could engage the services of a subcontractor, to aid the delivery of SharePoint 2010 or any associated tasks like branding, customising, solutions and feature building.

There’s a good checklist at the end that you could use when thinking of bringing in a SharePoint subcontract to deliver SharePoint or aspects.

(more…)

The Right Way, the Wrong Place

The Right Way, the Wrong Place

SharePoint 2010 as an upgrade and new collaborative technology platform is here; brand new; shining with feature-sets, clean with many new things users can do.
Those considering the push of moving their SharePoint 2007 environment(s) over could of course do this since there is a plethora of articles explaining in detail how to get the MSI, configure this, change that, and following an installation have a new SharePoint environment – job done.
There is the syrup, tasty as it is that draws people into making the jump and this is done simply because – hey there’s a new SharePoint version out, lets install it, and using the blinding the client with features ploy.
Problem is that users those people generally do that in a land of no IT roadmap. SharePoint 2010 sits in a sea of connected technologies, and nothing is more important in this than the desktop tools. In this article, I will only refer to the Office 2010 suite since that is the preferred connected desktop suite. This suite forms the client applications that “glue” SharePoint 2010 services. Typically, people would use these as their “base” of operations. For example, Microsoft Outlook is perceived as the centre of the universe to people and its clear of that connectivity feature set to SharePoint 2010.
If the clients’ IT roadmap does not include these technologies, and there is no work done to identify where they may sit, SharePoint is not considered future-proofed, and the users would not have a full understanding of the true capabilities of SharePoint 2010 and what they may wish to do with the platform.
There is an argument amongst Project Manager and SharePoint Architects, stating there is no real need to investigate or include Office 2010 on any roadmap when it comes to SharePoint 2010, going even as far to say that it would be unlikely that the client would ever move to Office 2010. Arguments include stating that the client is perfectly happy with the desktop tools they have, and SharePoint 2010 should be able to integrate with what they have. In other words, they have perceived the ‘right way’ of marking Office 2010 desktop applications as secondary to the implementation of SharePoint 2010. After all, SharePoint 2010 is king, because users want a website, so lets’ give them a website, right?
So, how did they come to make those decisions? Is it because they have looked at the new desktop version and compared it with the current? Maybe its because its far too costly to consider an upgrade? Or perhaps its because the interface is so different to their current version that it may ‘scare’ their users and pile on too much pressure on them to learn yet another set of tools?
There could be many reasons; they key though is the desire to keep to the term “bleeding edge” technology. I think this presents a right way, wrong place approach to adopting SharePoint 2010.
I’m going to put myself on a limb here, and state that “bleeding edge” means “catching up”. Bleeding edge is a strategy used to ‘prevent’ adopting the latest set of tools; classifying itself as a conservatively “easy” and “safe” place to be when faced with the prospect of adopting new versions of software. In days past the pace of software development made this comfortable since desktop suites “kept themselves to themselves” – there was little interfacing with products outside of those suites, particularly web based products.
Therefore, strategy dictated to stay at a level “comfortable” with the users (and the purse). There were other reasons, for example, the release mechanism of applications and the ease of getting the alpha, beta versions of these suites. In the past, this was restricted to a large degree. Unless you were a member of a special subscriber group you wouldn’t get a look-in to new products. Testers were selected and sometimes made to sign NDAs (Non Disclosure Arrangements) etc.
Nowadays, things appears to be more relaxed, meaning, that its’ easier to get these suites and start using them for testing purposes. Additionally desktop applications are getting closer and ever closer to the website. SharePoint 2010 has the Office 2010 toolbar on top. This is obviously an intentional move to make it look like Office desktop tools version 2010 and 2007. SharePoint 2010 specific collaborative features that connect it seamlessly with Project 2010, Visio 2010 and Access 2010. For example, going back to the wonderful world of forms design in Microsoft Access versions, imagine that now you have the ability to create sites using Access 2010?
The integration does not stop there, just looking at options in Office 2010 you will start to see more and more connectivity options targeted specifically at SharePoint 2010. Just the other day I was asked about SharePoint 2010 Workspace. Now, this is a rather cool application that allows you to take information offline from a SharePoint 2010 site, work on it, then have it syncrhonised back to the site it came from. Wait a Minute – itsn’t that Microsoft Groove? Yes! That’s an application that when it came out wasn’t didn’t get so much of a look-in, because the strategy was not web bourn, it was desktop bourn. Now look where we area.
So, this all adds up to a prospect that rolling out SharePoint is no longer a ‘single’ matter; no longer a ‘single’ project. Requirements from the client is swinging from the “We need a website to put stuff in” to “We need to be more productive when using our tools with SharePoint”. SharePoint 2010 projects are now full fledged programmes, whose objective is the roll out of a full technology refresh in one fell swoop. However, this “one fell swoop” is a highly complicated affair utilizing multiple projects; you need to have an extremely capable programme manager to pull that off.
Hence, all this means an exciting prospect for SharePoint fans. Now the work really beings, mapping SharePoint to a vastly connected and complex client process is a demanding and challenging task. SharePoint Architects now need to be even more proactive; the connection between SharePoint and external technologies is refined and even better structured. SharePoint 2010 allows this to happen, providing a massively open architecture and feature set.
To complete this article, in summary, SharePoint 2010 needs to be seen, understood and prioritised into the client organisation as the most important centralized technology. The right time to do this is at the beginning; right at the proposal stage this needs to be set into the mind of the client. Ensure the client understands what means to collaborate using desktop tools is and how they are used to enhance that.
The wrong place to attempt this is in a organisation where the culture does not wish to consider the Office 2010 desktop as part of a SharePoint 2010 requirement and/or the technology work does not invoke sharing / collaboration and/or the client does not have the vision or desire for technology refresh or review their ‘bleeding edge’ desktop tools.

Migration from 2003 to 2010, Web Parts and Functional Testing

Migration from 2003 to 2010, Web Parts and Functional Testing

Whilst making the march into SharePoint 2010, lets’ not forget those clients still using SharePoint 2003 and wanting to migrate into 2010. This article attempts to list some key things you need to be aware of in migrating from 2003 to 2010, and lists web parts in 2003 that you need to be aware of as part of the migration exercise.

I wrote this article based on real life procedures, trial and error, exasperation, tearing my hair out (of which I have little) and finally jumping up and down with joy when things fell into place.

Of course, I studied like crazy, and trawled the internt for tons of information. The following two links are the best I could find. Now, as you are probably aware if you’ve been using SharePoint  for some time, that SharePoint 2003 is no longer being directly supported by Microsoft. That said, they are providing information concerning migration from 2003 to 2010 at this link:

http://technet.microsoft.com/en-gb/library/ee947141.aspx

In addition to the above, there is a fantastic resource from Joel O sitting here:

http://blogs.msdn.com/b/joelo/archive/2010/01/31/sharepoint-2010-upgrade-key-resources.aspx

In summary, to make the move from 2003 direct to 2010 is pretty much not a great idea, the technical differences are vast, not just at the platform end, but also at the SQL end, so forget inplace upgrade. Options are:

Migrate 2003 to 2007, then from 2007 to 2010 (i.e. follow the guide above and the ones listed on Joels articles – recommended approach) OR

Use third party migration tools (though make sure you select the vendor with great care) – Avepoint, Quest, Metalogix, Tsunami apparently have options available.

Of course, whilst following the migration path, it’s also very important to note the differences in the Webparts from 2003 to 2007, and also what you should do to test Web Parts and possible ‘gotchas’. I did this as a blog sometime back but forgot to attach the table properly, so, let’s bring this a bit more up to date. Below is the 2003 to 2007 Web part comparison. Shortly, I’ll do one for 2007 to 2010.

 

Web Part Name

File Name

SPS 2003

WSS v2

MOSS 2007

WSS v3

Advanced Search Box AdvancedSearchBox.dwp Yes
Authored List Filter AuthoredListFilter.dwp Yes
Topic Assistant Suggestions Autocat.dwp Yes
BusinessDataActionsWebPart.dwp Yes
BusinessDataAssociationWebPart.webpart Yes
BusinessDataDetailsWebPart.webpart Yes
BusinessDataFilter.dwp Yes
BusinessDataItemBuilder.dwp Yes
BusinessDataListWebPart.webpart Yes
Area Details Catdetail.dwp Yes
Sites in Category (SiteDirectory) CategoryResultsWebPart.webpart Yes
Categories (SiteDirectory) CategoryWebPart.webpart Yes
Colleague Tracker contactlinks.dwp Yes
Contact Details contactwp.dwp Yes
Content By Query ContentQuery.webpart Yes
Date Filter DateFilter.dwp Yes
Filter Actions FilterActions.dwp Yes
Group Listings GroupedListings.dwp Yes
KPI Details IndicatorWebPart.dwp Yes
Views from SAP IViewWebPart.dwp Yes
Key Performance Indicators KpiLisWebPart.dwp Yes
News LatestNews.dwp Yes
Links for You LinksForYou.dwp Yes
Memberships (in other sites) memberships.dwp Yes
Excel Web Access Microsoft.Office.Excel.WebUI.dwp Yes
Content Editor MSContentEditor.dwp Yes Yes Yes Yes
Image Web Part MSImage.dwp Yes Yes Yes Yes
Members MSMembers.dwp Yes Yes Yes
Page Viewer MSPageViewer.dwp Yes Yes Yes Yes
Form Web Part MSSimpleForm.dwp Yes Yes Yes Yes
Relevant Documents MSUserDocs.dwp Yes Yes
User Tasks MSUserTasks.dwp Yes Yes
XML Web Part MSXml.dwp Yes Yes Yes Yes
Your Recent Documents Mydocs.dwp Yes Yes
My Workspace Sites Myworks.dwp Yes Yes
News Areas NewsAreas.dwp Yes
News for You NewsForYou.dwp Yes
SQL Server Analysis Services filter OlapFilter.dwp Yes
My Mail Folder Owa.dwp Yes Yes
My Calendar Owacalendar.dwp Yes Yes
My Inbox Owainbox.dwp Yes Yes
My Tasks Owatasks.dwp Yes Yes
Page Field filter PageContextFilter.dwp Yes
People Search Box PeopleSearchBox.dwp Yes
People Search Core Results PeopleSearchCoreResults.webpart Yes
Query String (URL) filter QueryStringFilter.dwp Yes
My Links Quicklinks.dwp Yes Yes
RSS Viewer RssViewer.webpart Yes
SearchActionLinks.webpart Yes
SearchBestBets.webpart Yes
SearchBox.dwp Yes
SearchCoreResults.webpart Yes
SearchHighConfidence.webpart Yes
searchpaging.dwp Yes
searchstats.dwp Yes
searchsummary.dwp Yes
Site Aggregator siteFramer.dwp Yes
SharePoint List filter SpListFilter.dwp Yes
My Alerts Summary Subscrip.dwp Yes
Summary Links SummaryLink.webpart Yes
Navigation Hierarchy TableOfContents.webpart Yes
I need to… TasksAndTools.webpart Yes
Text Filter TextFilter.dwp Yes
This Week In Pictures ThisWeekInPictures.dwp Yes
Top Sites TopSitesWebPart.webpart Yes
Area Contents Toc.dwp Yes
Current User filter UserContextFilter.dwp Yes
WSRP Consumer WSRPConsumerWebPart. .dwp Yes
List views
Announcements Yes Yes Yes Yes
Contacts Yes Yes Yes Yes
Events Yes Yes Yes Yes
General Discussions Yes Yes Yes Yes
Links Yes Yes Yes Yes
Shared Documents Yes Yes Yes Yes
Tasks Yes Yes Yes Yes
Document Library Yes Yes Yes Yes
Image Library Yes Yes Yes Yes

 

Whilst on this topic, it’s very important to Test, Validate and Verify all components in 2007 when you’ve completed a migration from 2003

From a Technical Perspective.

Web Parts are standard ASP.NET custom controls, it’s important to identify the version where they were developed. Get the code and ensure they can migrate to Visual Studio 2008 / 2010 – reinstall these on a test platform to ensure they can migrate. Several glaring issues can arise due to the way code has been defined for 2003 which use now depreciated events in 2007 (meaning they will break).

2003 Web parts connect slightly differently to the new versioned web parts; Check all the connected events on the web parts and check the connection interface pairing iCellProvider,iCellConsumer, IRowProvider, IRowConsumer, IListProvider, IListConsumer, IFilterProvider and IFilterConsumer.

Web parts that have been defined as compatible and connected in 2003 must remain compatiible and connected in 2007/2010. An incompatibility between webparts will show the connections option (the hook between connected webparts) as greyed out – so check connections are still enabled looking at the ‘Ievents’ mentioned above.

Additionally, I know that this link is definitely still valid and I would apply most of the functional testing using these steps from Microsoft:

http://msdn.microsoft.com/en-us/library/dd583141(office.11).aspx

From a Non-Technical Perspective.

To those unsure about what ‘Functional Tests’ mean. Functional Tests capture user requirements in a very useful way. Traditional development captures requirements in terms of ‘use’ cases – meaning, the developer ‘guesses’ and ‘assumes’ the user will carry out certain functions. Hence, Functional Tests are written from the user perspective; they confirm the product does what the users are expecting it to. Therefore, it is important that all functional tests be written as a dialog. To do this you will require system analysis skills, not developer skills since these dialogs are written in a way the user will understand and with virtually no technical glossary terms!

So, functional tests are written from the user’s perspective and will focus on the area of SharePoint that users are interested in. You will need to develop a good functional testing framework, and use these functional tests to identify what the user really wants. In this way, the functional tester gains an automated tool and has a starting point for using the tool.

Going back to ensuring things work as they should post migration (of anything in SharePoint). You need to ensure you have a full verification and validation programme backed up by a solid configuration management process. This might sound like a lot of twaddle, but if, for example there was adequate documentation and version history concerning the web parts in 2003 concerning the install, development, configuration on 2003 then it is much easier to confirm what needs to be tested when it gets to 2007 land.

The SharePoint Verification and Validation blog I’ve been writing up goes into this from a basic perspective, but my forthcoming book (plug) covers this area in great detail.

Functional testing includes confirming the reaction to virtually every setting in the web part in 2003 and then comparing that with 2007, and getting sign off from the client.

Hope this helps anyone out there!

In English

In English

A description of Sharepoint video which is very good at describing SharePoint as a collaboration tool but without references to technical capability.

(more…)

Topology Presentation

Topology Presentation

I carried out a presentation the other day on sharepoint topologies and what you need to understand to develop and define those topologies – people asked for the presentation doc to be made available, so here it is!

(more…)

The Right Way, the Wrong Place

20 Design Decisions for SharePoint

A great PDF from Ben Curry at Mindsharp, describes 20 Design Life Cycle concerning Sharepoint and poses questions concerning business, functional, technical, techniques for gathering and much more.

(more…)

Content Deployment – Whats the Best Way?

Content Deployment – Whats the Best Way?

Bunch of my friendly architects chatting over a significant number of beers and spirits, telling rather silly jokes got into a heated discussion on SharePoint Content Deployment. Hrm… Sounds like a punchline building up here – Anyway, it all went a bit like the ‘I went fishing and caught one this big but it got away’ scenario; highly amusing. After recovering I though mmm… sounds like a blog this; so here’s my take…

Before a little chat about what Content Deployment is, lets look at the options available to you:

1: Content Deployment Method

Using the Central Admin, create content deployment jobs to schedule the content that you wish to copy into the production environment.

http://blogs.msdn.com/jackiebo/archive/2007/02/26/content-deployment-step-by-step-tutorial.aspx

2: Third Party.

There’s a mass of products for doing this for example Quest , Content Deployment Wizard on Codeplex – the content deployment wizard is good (and its free ):

  • http://www.quest.com/sharepoint/migration.aspx
  • http://spdeploymentwizard.codeplex.com/Wikipage
  • http://www.codeplex.com

3: Coding.

You could write a web service or delve into the land of SharePoint Object Model coding, that scans the content of your staging environment and maps it into production – this is a big deal and a lot of work. If you’re not a developer be prepared to learn about SPSite, SPList, SPFolder and much more. If this grabs your fancy, and pretty keen to going it alone, check out the below link:

http://blogs.technet.com/stefan_gossner/archive/2007/08/30/deep-dive-into-the-sharepoint-content-deployment-and-migration-api-part-1.aspx

Of course, you may have your own methods, but these ones work well for me!

The problem with Content Deployment – what do you deploy? Whats the scope? From where to where? Whats the reason for Content Deployment.

  • Use it to synchronise a Staging Environment with Production. For example, you have some new master pages you want to push into the new environment following a succesfull client test
  • You have some stuff on Production but want to test it so you push back that content to Staging
  • You want to ensure you have a backup of Production (yes some people do this) so you sync Production to a Backup SharePoint box (which sounds even crazier because that would have to be really really controlled <another blog thought>)

In any case, a lot of careful thought needs to go into the provision of Content Deployment and Best Practice would be to analyse the requirements with the client (even if the client happens to be another tech team), trial it in a test environment then apply it to your staging / production environment.

Some links?:

Video: http://www.youtube.com/watch?v=8_Vy6a1sI_Y

Technet: http://technet.microsoft.com/en-us/library/cc263428.aspx

A Best Practices Blog: http://blogs.technet.com/stefan_gossner/pages/content-deployment-best-practices.aspx

Developers View

Developers View

A poster to advertise Sharepoint 2010. Software developers can use the SharePoint 2010 developer platform to build business collaboration applications for the enterprise and the Web using familiar tools and a rich set of integrated, out-of-the-box features. SharePoint 2010 includes new extensible framework features for building business collaboration applications, including Silverlight™ web parts and Client APIs, LINQ to SharePoint, Business Connectivity Services and Sandboxed Solutions.

(more…)

SharePoint – The Land of the Planner, Architect, Systems Analyst

SharePoint – The Land of the Planner, Architect, Systems Analyst

If you’re a SharePoint Architect, there are a number of areas you want to focus on in your career. Personally, I decided long ago that implementation, structure, automation of the business process in SharePoint is my focus. To do that, I combine my technical knowledge of SharePoint with the project planning, business and planning skills that I’ve gathered through over 20 years of Systems Analysis and Design.

SharePoint is a collaborative technology. But, after all, it’s simply a system, a software product. That system is subject to the exact same laws in terms of management as any other. Therefore, in terms of deploying it the processes and procedures followed will be exactly the same as any other system in that the planning, implementing, deploying and supporting processes will be ‘standard’.

This system needs to be fully understood by the relevant Solutions Architect, and as you will have guessed, for SharePoint this is a SharePoint Architect. This person understands the nature of the beast (deeply) and that also includes the format and application of any connected technologies to this system. And, that person would know how to implement features of the product using not just technical knowledge, but traditional Systems Analysis skills.

What?

You can’t be serious Geoff – The SharePoint Architect is a System Analyst?

Well, let’s look at the key tasks of a Systems Analyst and see how this ties in with the tasks of a SharePoint Architect:

  1. Detailing and Understanding Current Business Processes
  2. Defining Requirement Specifications to match with defined User Requirements
  3. Designing, Planning and Producing a System Specification, including rules for management
  4. Creating the Solution – Yes – the Systems Analyst could be a Programmer too (in some circumstances)!
  5. Implementing the Solution, working the lifecycle (3, 4 and 5 again and again)

 

So, we could assume that:

  1. A Programmer is not a Planner
  2. An Architect combines Support, Configuration, sometimes Planning, even Developing
  3. But, an Architect is not necessarily always the planner

 

So, let’s go to the Planning….

Let’s say that you have been appointed ‘SharePoint Dude’, and are about to embark on installation of SharePoint to an organisation. The organisation will definitely adopt SharePoint. That organisation wants to go down the route of applying a ‘trial’ platform which is intended to eventually migrate into a full platform.

Here are the very basic things you would need to do. So, making this look scary (but pretty real), lets say that you are the only person going set to do this (meaning, that you would be the planner, supporter, programmer – hey I’ve seen this happen!):

  1. Gather requirements from the users e.g. site premise, structure, information analysis, data content typing, organisational structure, stakeholder management
  2. Design the Solution e.g. Wireframes, Taxonomy, Metadata, Content Formatting, Capacity, Logical and Physical
  3. Define the Implementation Process e.g. Procedures, Guidelines for use, Governance, Testing, Verification, Validation, Customisation
  4. Design Support; SLAs, Backup and Restore, Disaster Recovery and Business Continuity, Staffing, Training
  5. Installation, Configuration of SharePoint
  6. Testing, Verification and Validation
  7. Educate, Train and Educate the users

 

Hey that looks suspiciously like the Systems Analyst work?

So, as you can see doing this as one person is no mean feat – and if this is not communicated to the business from the outset there would be serious issues concerning the planning and implementation because no one would know the risks involved. Even if the SharePoint Architect is also the Planner that person would need to be able to prioritise all the tasks because the Architects hat will be changed very often! This means frequent confirmations with the business stakeholders again.

Additionally there is a split between what is perceived as technical (server and software configuration) and business driven (user requirements) needs. Whilst it may be prudent for the SharePoint Architect to gather, design, document and implement these some would argue that not only is it very time consuming and difficult to plan, but it means all eggs in one basket and again, without this being communicated back to the business there will be serious problems ahead…

See where I’m going with this?

The bottom line is that the SharePoint Architect is not the planner in a large installation project or a project where there is a requirement to gather lots of information. However, for a small pilot install where the risks are low it could be perceived that the SharePoint Architect is also a planner, though the definition of medium would have to be stressed to the business. And, in my view, there is no such thing as a SharePoint Architect in a small office / company installation …

Bold statements, Yes?

But, I think its key to understand that a SharePoint installation will go out of control without someone to drive the targets and meet time objectives. That’s where the planner / project manager steps in – and guess what – they would know SharePoint.

So, in summary. Organisations new to SharePoint who need to improve collaboration, information management and online web based communication need to ensure that a SharePoint Architect is provisioned to make it happen. The SharePoint Architects’ task is to ensure that the platform is resilient, performs, meets user requirements, is future proof. The Planner is there to ensure that its implementation takes place on time and in most cases to budget. Hence, ensuring there is control and standard systems analysis will ensure that SharePoint is not perceived as a silver bullet but as a tool that enables the client to be more data productive..

Email Distribution Groups – Document Library Governance

Email Distribution Groups – Document Library Governance

Sharepoint has the ability to take incoming emails via Microsoft Outlook into a document library or calendar. For example, one could setup meeting requests via Outlook and send these into a calendar on SharePoint. Also, an email could be sent directly into a document library from Outlook. The reasons for this is from a document library perspective that there is a method of capturing key emails and storing them for policy / retention / compliance reasons.The email address used for these document libraries are created by the users – there is no ‘support helpdesk’ involvement – additionally, SharePoint doesn’t carry out cross-checking to see if an email alias has already been taken in another document library in the current or another site.