Op-Ed: 5 Sins as a Consultant

Being a consulting customer and a consultant myself, I’ve seen and done quite a few sins myself.
A shortlist of what I think are deadly sins:

1) Running/System user
2) Debugging/notification emails
3) Active Users after leaving
4) Client name prefixes to fields/classes/workflows
5) Not clean up before leaving
Bonus Sin: Refuse to help after Go-Life

1) Running/System user

It’s so easy to just set up myself as the running user for a Dashboard, an integration, a batch job, or as an automatic Workflow User. But what if I leave the client, should I still be the running User? Should the integration really have full Sys Admin rights?
Solution:
Have a “System User” controlled by the client for all automatic background processes.

2) Debugging/notification emails

I’ve seen that quite a few times, a small “Send Email on Error” line of Code or Flow Element. The target email is some long-gone consultant or developer. It’s not only lazy debugging but a potential security issue. 

Solution:
Just don’t do it, like never. Use any other way of debugging or logging than emails to yourself. Johannes Fischer has a great library for logging.

3) Active Users after leaving

My favorite Report getting into a new Org is: Active Users sorted by Last Login Dec. Often find some historic Consultants still having an active User in that Org. Not only does this eat up a precious license, but it’s also a security risk. The same is true for all Sandboxes.
Solution:
Deactivating myself must be part of the off-boarding process as a Consultant.

4) Add client name prefixes to fields/classes/workflows

It’s tempting to add the client’s name as a prefix to all Fields, Classes or other Metadata. I’ve seen that so many times, I consider it almost an industry standard. It adds nothing for the client and just shows disregard for clean naming from a Consultants point of view.

5) Not clean up before leaving

A contract is done, go-life was a success and I as a consultant just leave. Instead of just leaving I should spend a few hours cleaning up after myself.
Uninstall all Apps not used anymore, delete Sandboxes not needed anymore, deactivate Users, and hand-over documentation.
Solution:
Plan for a little clean-up at the end of every engagement. A few hours can make all the difference.

Bonus Sin: Refuse to help after Go-Life

Especially my smaller clients contact me sometimes long after Go-Life to help them out. It might be quickly deactivating a User, changing an Email address, or debugging a failed integration.
I think, we as consultants should try to help them out, even if the contract already is long over. Taking a few hours to fix an urgent issue goes a long way for the client.
Solution:
Set aside a few hours for “Long-Term Support”. 

And that’s it, I’m sure you have plenty of other sins, let me hear them in the comments.