Don’t always use sharepoint workflow!
For example in case of:
- transaction oriented processes
- application to application service activity
- aggressive datatransformations
- work that doesn’t involve Sharepoint at all
- blocking or modifying activity (start a workflow after a document has been deleted..)
Plan to fail! Show the pitfalls to the client so it gets more easy for the client to understand what they have to keep in mind while analysing a workflow.
Make metadata do the work! (Don’t hard-code..)
Write progress information to list items! Lists are made to group, sort,… To report your workflows.
Use the advantages of BCS! Let Sharepoint do the data work.