views:

304

answers:

5

I need to interview some people for a position as a Sharepoint Architect / Developer role.

While I am proficient in .NET, I have worked very little with Sharepoint, so I am unsure how to test the candidates Sharepoint skills. Do you have any suggestions for tests I can throw at the candidates ?

Please suggest questions I can ask the candidates; and please specify whether your question is "Must know" knowledge for a Sharepoint developer. Please include the answer to your question.

+2  A: 

This is objective of course, and might not be relevant to your requirements but having recently performed a Share point integration and having had to re-write outsourced code:

I'd ask how to consume a list from your Sharepoint site.

  • Which Web services can be called
  • How to identify a list
  • What steps need to be taken if the list is under a different 'site' inside your root sharepoint installation.

Secondly, I'd ask them to explain CAML and perhaps write a small query based on a test List.

Russ C
can u also post the answer, I might be the one :) getting interviewed. God bless
VoodooChild
+1  A: 

From the FAQ:

What kind of questions can I ask here?

Programming questions, of course! As long as your question is:

  • detailed and specific
  • written clearly and simply
  • of interest to other programmers

... it is welcome here.

What kind of questions should I not ask here?

Avoid asking questions that are subjective, argumentative, or require extended discussion. This is not a discussion board, this is a place for questions that can be answered!

TeL
+1 lol, you win Tel
VoodooChild
It is a programming question; it's asking for specific domain knowlege.
Russ C
TeL, SO has been known to accept this kind of questions. I don't see how my question is different from any of these: http://stackoverflow.com/questions/tagged/interview-questions
driis
@ Russ C - Should be a comment but poster can't use comments as < 50 rep.
Martin Smith
Good point! need moar coffee.
Russ C
Well, it just seemed to me to go against the rules on the kinds of questions that can be asked. But maybe it's a borderline case. No offence intended.
TeL
Oh, and there's even a tag for interview questions, so I guess it's OK after all. My apologies.
TeL
+4  A: 

Ask about the architecture of SharePoint and how it works under the hood. That's much better than asking about which web services SharePoint offers. Anybody can call a web service from VS or probably even JScript, only a small number of people understand how the product works under the hood - which is much more important for an architect.

How does it integrate with ASP.NET, how are the lists persisted in the databases, which databases contain what kind of information. What kind of artifacts are stored in the file system. How does the ghosting/unghosting (I know: customized/uncustomized) work, what effects does it have.

Since SharePoint is fairly complex, you should not expect people to have excellent understanding about each area - WCM, ECM, Security ... but one ought to have an understanding how the basic building blocks - SharePoint lists, security scopes, groups, role assignments, permissions, AD integration, authentication providers - work.

+1  A: 

The SharePoint architecture is fairly complex and takes a while to get used to. A good understanding of the architecture is what you should look for.

On top of what ToxicAvenger suggested, I would make sure that your candidates have a good understanding of the SharePoint specific concepts :

  • SharePoint List
  • Conent Types
  • Features
  • Solutions
  • Site Templates
  • Web Parts
  • Site, Site Collection and Web Application

And more importantly how they interact.

For example, features can be deployed to sites, site collections, web applications, etc (i.e. scope of the feature). It's important to know what that means, what the differences are between a feature that is site scoped vs site collection scoped. What about feature receivers, what are they, what can they do.

Content types : how they are defined. How to use them with a list. How would be compare Content type vs Site Column.

Site Templates : what you define in a site template (list templates, modules, web parts, etc.). How to use them, etc.

I think that once the architecture is understood, learning the rest (whatever the rest is, whether it's workflows, security, form based authentication, custom lists / web parts, etc.) is much easier. If you know what to look for, intellisense will give you the rest. No need to ask specific questions about the web services or list functions, they are documented everywhere.

Hugo Migneron
+1  A: 

Like in any interview scenario you will probably want to have different groups of questions. Some of the topics mentioned above are fine for general understanding to filter out people that have little to no SharePoint experience but some more advanced questions can help you find the cream of the crop.

  • Customers List
  • Products List
  • Orders List with lookup field pointing to the customers list and a separate one pointing to the products list

Q: When a product is deleted I want to cancel all orders for the product and notify the customer of the cancellation.

A: In my opinion you'd want to go with an event receiver here which is tied to the Products list and a separate event receiver tied to the Orders list to handle the Order cancellation notification.

I tend to head the custom code route early because it provides so much more flexibility.

An alternative for the email notification would be to use a SP designer workflow, if they mention this as a follow up ask about the downsides to using a designer workflow in SP 2007. The major one for me is that it cannot be deployed and that when you decide to switch to a custom solution the designer workflow is of no use.

The depth of their answer will give you a feel for how much real world experience they have.

Q: As a followup if they pass that question, then say assume we also wanted to cancel the orders once the product inventory has been at 0 for 10 days.

A: This requirement would essentially force you to switch over to a workflow instead.

These questions would ensure they understand the difference between workflows and event receivers and when to use one or the other.

Q: Now we need an event receiver that will not allow the user to change the quantity of an order if the order estimated ship date is within 10 days, but allow it if the ship date is greater than 10 days out.

A: This is tricky because event receivers don't provide access to the previous state of the list item, you have to programatically manage the state persistence between item updating and item updated events.

Only truly seasoned developers with complex SharePoint application development experience would be likely to know this one.

jjr2527