Another soapbox post…

Seriously, if you’re hiring a consulting company or going offshore,  don’t just trust that they know how to develop SharePoint solutions that are portable and don’t suck.  What do I mean by that?  Last month we had some code delivered from offshore.  We did not specify that they should follow good SharePoint coding standards, so what we got was a system that worked, but was as about as far removed from what makes a good SharePoint solution as possible.  Things to tell the next development team should include:

  1. Do not update the out of box default master page through SharePoint designer.  For that matter, never update the default master page.  never never never.  You should always leave the out of box stuff alone.
    1. This also means no overwriting of OOB SharePoint files in the hive.
    2. If you must deploy to the hive, always use a sub-directory, never write to the root of the hive.
  2. Forget about .stp files.  For development deliverables they don’t exist and should never be in a deliverable.  Always set up site and list definitions in code.
  3. Any piece of code must always be delivered packaged in a .wsp, having a folder in the deliverables with an implementation note about where to copy the contents on the server?  NO!  Makes it a nightmare when you try to join another server to the farm.
  4. InfoPath forms – just a bad idea.  If you need a complex form just go with a custom ASPX form.  Easier to debug, easier to support, easier to upgrade.
  5. No SharePoint Designer created workflows.

If I had to do it over again, and I will, I’m going to make sure I ask for some samples of their previous work and at least have them walk me through some of their past deliverables to other customers and what sort of implementation instructions they have supplied.  Hopefully that will at least give me a sense of what sort of standards (or lack of good coding standards) it is that they follow.

Finally, beware of any company that will not send you their documented coding standards for SharePoint or just sends you a link to Microsoft’s website.