View other parts:
- SharePoint Workflow Designer Tips P2
- SharePoint Workflow Designer Tips P3
- SharePoint Workflow Designer Tips P4
- SharePoint Workflow Designer Tips P5
If you are like me writing complex workflows using SharePoint 2013 Designer, it is so important to take deep breath, and remember that it is not always about just writing some code. It is the whole thing from taking requirements, doing some documentation, and follow general best practices. I will do my best to share with you my personal experience when I got any requirement for a new workflow.
I guess Microsoft did a great job in creating such authoring tool (SharePoint designer). I love the tool and I spend a lot of time working on complex workflows.
Again, it is not only about writing a wonderful code for your workflow. The last thing you should do is start writing workflow code.
One of the most important things to do when you planning a workflow for a process is to identify in a clear way the full requirements and process life-cycle. Do not underestimate this step.
I participated in a process that requires a complex workflow. I scheduled meetings with almost all people participating in the process to take their requirements, and when the workflow went life, I discovered that the security team stopped the workflow to go live because of lack of audit data and there should be clear logs that should be maintained for a year. I had to take their feedback and work with them to generate the log data with all the details they wanted before going live.
Take last feedback before going live
I worked on a workflow once and instead of using (Log To History) workflow action inside the SharePoint designer tool, I used a separate list to maintain the workflow history logs. Nothing fancy at all.
Well, it was like the whole world is against me when we introduced the workflow solution. The auditors are expecting to open the list item, see the workflow history information inside the workflow section inside the list item. When I told them that there is separate list to maintain history log data, I got a lot of change resistance from them. They asked me that they need couple of information to be added to the separate history log list to approve the workflow to go live. Lesson learned in the hard way!
Do not underestimate small changes. I think people are hard-coded to see things the way they are used to. Any small change from your side when planning your workflow solution need to be clearly communicated.
When I plan a solution that needs a workflow, I usually design the lists needed, the look and feel, I do some GUI enhancements and customization, and do some naming standard for all lists and fields.
This becomes tricky when people are already using an old solution, and you came to introduce a new one using SharePoint and its workflow engine.
Always make sure to communicate with your users or people managing the process, all your actions, from list names, fields names, and any customization.
One time I was designing a dashboard for people to see their pending tasks, and I called the web part section (Tasks Waiting Me). The immediate feedback I got that this name is confusing and it should be named (My Pending Tasks). OMG!!!
Even if you are working with a highly educated environment or even IT teams, and you are writing workflows for them, always make sure to early communicate and manage their expectations, and show them detailed draft of what you are planning to do.
Do Not Over Do
If you have simple requirement, just stick to it. Make sure everyone is happy, and start adding enhancements later.
I had a requirement once to do 5 approval workflow cycle with some email notifications. I took this task personally and I challenged my self to do the best workflow experience ever. I started to plan for dashboards, new SharePoint site to host the solution, extensive reports and logs.
When I started to communicate my design for the solution, and instead of getting some credit for my extra work, people start to realize that much more can be done, and they started to request more and more complex requirements that did not exist before. Someone told me “Well, if you can do such dashboard, why not you do a separate dashboard personalized for each user that aggregate data from….. “. That same person added this new dashboard as a new requirement that I should deliver next month. Funny right?