Sitecore recommended practices for workflow:
- Avoid email notification of every workflow state. Only provide email notification where it makes sense for a critical workflow event. Alternatively, you can use of the RSS feeds instead of email.
- Limit workflow publishing to specific roles and users. In the workflow, provide a default final step with the publish action.
- Apply appropriate workflow security.
- Try to minimize the number of workflows, states, and the number of actors involved.
Note: Workflow can be very useful even when approval is not required. A simple two state workflow (Edit, Publish) can be useful to ensure that items that are currently being edited are not published when you run the Publish wizard. In addition, this provides auto-versioning. By using an auto-publish action in the Publish state, users who are not members of the Publishing role can also publish content.