Introduction:It is very common in IT projects to face a client asking for an automation for some manual process like a leave request or an Invoice initiation; this requirement forms a big challenge on IT people as a Project Managers, Business analysts, architects, testers and developers; due to the following reasons:

Manual processes are well-known and practiced by people (Customers) who doesn’t have IT background : converting a manual process to a real efficient automated process needs some creativity, imagination and good analytical skills adding to that some strong IT knowledge which is not easily found in a normal business user.

Documentation availability: most of the times; documentation of business processes is missing or out of date and most of the context is known by heart.

Process engineering: process engineering is the step that should come before starting the IT analysis process, but – unfortunately – this activity is often ignored, and if it is not ignored; it usually done by purely business people who does not consider Information Technology standards, best practices and limitations, so you will find a lot of missing details that highly affect the process and some non-practical assumptions that are difficult to implement.

Change Management: Technically; changes on Workflow and business processes in IT projects are extremely expensive; so it is always better to have a complete understanding of the business before starting the technical implementation.

So this article will simply give you – as an IT person – a full guidance; utilizing some simple tools (Visio and OneNote); on how to gather a requirements from a client during the analysis phase for workflow based business, and for illustration purposes; I utilized the leave request business process as real life example.

This article will take 15 minutes to fully read practice and understand.

In this article I am using Microsoft Visio 2010 and Microsoft OneNote 2010, However; it is not a must to comply with the those versions.

Assumptions:Users who read this article should have familiarity with IT based projects, in addition to basic knowledge of Microsoft Office products that will be used on this article. This article is targeting technical and non technical users so you will not find any technical implementation details for workflow, it is just a guidance for the gathering the requirements Always when you read my blogs, Gray paragraphsare there for extra illustration, you can safely skip them if you don’t want to understand to go with details.

Plan:Before we start, it is good to know what we are going to do, so we will follow this sequence: Section 1 – Explain the real case scenario (Leave Request).Section 2 – . Exploring Business perspective.Section 3 – Exploring IT Perspective.Section 4 – Implementing the diagram with OneNote & Visio.

Solution: Section 1 – Explain the real case scenario (Leave Request):Leave request is one of the most common scenarios that may be found in – almost – every company, although this process is very simple and basic; I believe that it is very suitable for the purpose of this article since – almost – everybody is familiar with this process and a lot of its activities can be found in many other business processes.

Our scenario can be described as the following:”An employee decided to request a leave; he fills the form describing the purpose and time of the leave, then his team leader will either approve or reject his request, after that the HR (Human Resource Employee) will either approve or reject this request”…. that exactly what you will hear from a normal business user.

Section 2 – Exploring Business perspective:Now, you need to define the process in a more business oriented way, here we will open MicrosoftVisio to represent the process:

Before you start; you need to consider the following factors:

Define Actors: The first and the most important data that you need to gather about the process is the actors (people who are participating in the process); In our business process; we have three actors: Employee, TeamLeader and HR.

Define Activities(Human Activities): Activity represents any interaction between user and a form ( i.e. ASP.NET or InfoPath form) so you need to define these activities; we have three activities; Employee Submits Leave, Team Leader Approval and HR approval.

Define activities flow (logical sequence): It is also essential at this point to determine the the sequence of the steps, please consider the following when you work on that:

Starting and ending activities: Always define the start up activity and closing activity.

Parallel and serial paths: some times workflow takes a parallel shape where more than one actor can participate without the need of waiting the other to finish his task(call center scenarios may be also considered), our case is purely serial process.

Nested calls: some times one activity calls another process, or finishing a process considered a startup of a new process.

Actors relationship: ask you self, after finishing this activity; who is the next actor?; for example; if the employee submit his leave request; which team leader should continue the process ( we may have more than on team leader in the department) is it his direct manager on the Active Directory; or there is some business database that store each employee with his team leader or there is one team leader for all the employees.

Your quote at this level is “Devil is in details” , so try to summarize as much as you can at this step.

We use three shapes on this diagram

Polygon: For start and end points

Diamond for approve/Reject (of activities that may have more than one out put – decisions)

Square:for one direction activities.

As you can see from the diagram, activity that comes on the space of the actor indicates that this activity is done by him; for example; Employee Submission activity is clearly done by employee as it comes on the area next to employee.

Section 3 – Exploring IT Perspective:Although the name sounds technical; this section should also be handled by business analyst (the person who is gathering and documenting the requirements), remember that the previous Visio diagram is useful to to document the process in a more tangible way; but still doesn’t mean anything for the developer and still open for a lot of debates from the client side.

Remember that diamonds and squares doesn’t count for developers; what counts for technical people is forms, clicks, database and code and so forth, so let us try to enhance this diagram to meet developers expectations!

Initially let us do the following assumption; Each step in the work flow is mapped to a UI Form (i.e. ASP.NET or InfoPath form), and – as we discussed before-we will also call it an activity; so let us first find a name for the three activities mentioned above:

Employee Submission.

Team leader approval.

HR Approval.

Let us begin with the details…

If we want to talk IT word; workflow consists of the following components: Actors, How to reach the form, Data to entered, Data to be viewed, decisions, Security, Business constrains, input Validation, Emails and Tasks.

We will discuss all these components in details taking in consideration that we have three activities; that means that we have three slots of these components.

Actors: we have the following actors:

Employee Submission: the Actor is Employee.

Team Leader Approval: the Actor is Team Leader.

HR Approval: the Actor is HR.

How to reach: we mean by this “the click that takes you to the form”

Employee Submission: User goes to the main menu in the intranet and click on My E-services || Request New Leave (this is just and example)

Team Leader Approval: Team leader can enter this form in two possible ways:

Click on the link from his email (an email will be sent to the Team leader once the employee submits his leave request)

Click on the task (a task will be created and assigned to the team leader once the employee submits his leave request)

HR Approval: HR can enter this approval form in three possible ways:

Click on the link from his email (an email will be sent to the HR once the Team leader approves the leave request)

Click on the task. (a task was created once the team leader approve the leave request)

Click “Action” button on the leave request item on the HR portal (in this case; HR employee has an access to a page that can query all requests for reporting purpose; so he can use this page to reach HR Approval form as well)

Data to be entered: this is the expected data to be filled into the form

Employee Submission: employee will fill the date time (using a date time picker) and will fill the reason of the leave request (free text box)

Team Leader Approval: will fill a comments box.

HR Approval: will fill a comments box

Data to be viewed: Data to be viewed is the data that user will see on the form (this data facilitate and aid the user in taking the decision).

Employee Submission: current leave balance for this year and the name of his team leader.

Team Leader Approval: team leader may be interested in the following:

Leave Request date and time (Filled by Employee)

Leave request reason (filled by Employee)

Resource sheet and current project status.

HR Approval: HR may be interested in the following:

Leave Request date and time (Filled by Employee)

Leave request reason (filled by Employee)

Employee Current balance ( taken from HR system)

Employee leave history (taken from HR system)

Comments provided by Team leader.

Actions: Actions are the available decisions that can be done by actors which control the flow of the process, one activity may have one or more actions as the following:

Employee Submission: this activity will have only one possible action, I will discuss the concepts in the this activity:

Submission: (clicking on the submit button) each action will have 5 related considerations which are:

Security: in our case it is Employee ( normally it is equal to the actors, but in some cases different users can do the same activities but with same permission set).

BusinessConstrains: we have the following constrains:

User cannot request a leave if his leave balance equals to zero.

User cannot request a leave if he has got an HR warning letter in the previous two months.

Inputvalidation: This is a validation on the input data:

Leave date time: Required, should be a date between current date + 1 year

Reason: Required, should be a free text that is less than 50 character.

Email: Email notification that will be sent upon doing this action.

An email will be sent to Team leader.

confirmation email will be sent to employee

Tasks:

A new task will be assigned to team leader.

Team leader Approval:

Approve:

Security: Team leader Can do that.

Business Constrain: No Business constrains

Input validation:

Comments: not required, less than 50 character.

Email:

HR.

Employee (FYI)

Team leader (Confirmation)

Tasks:

HR

Reject:

Security: Team Leader Can do that

Business Constrains: No business constrains

Input validation:

Comments: Required, less than 50 character

Email:

Employee: (FYI)

Team leader ( Confirmation )

Tasks: No tasks

HR Approval:

Approve:

Security: HR Can do that

Business Constrains: no business constrains

Input validation

Comments: not required, less than 50 character

Email:

Employee ( FYI)

Team leader ( FYI)

HR ( Confirmation )

Tasks: No tasks

Reject:

Security: HR Can do that.

BusinessConstrains: No business constrains

Inputvalidation

Comments: Required, less than 50 character

Email:

Employee (FYI)

Team Leader (FYI)

HR (Confirmation)

Tasks: No tasks

Custom triggers: (Some times called system activities) these are automated actions that are done by the system it self as a reaction of executing and activity, a good example of this is an insert into a databases or a call to a web services that communicate with external systems.

Employee Submission: No custom triggers.

Team Leader Approval: No custom triggers

HR Approval: Here once the leave is approved; an update statement will happen against the Human resource database to subtract the value of the leave request from employee leaves balance.

Section 4 – Implementing the diagram with OneNote:This is the most existing section! Section 3 was just a detailed explanation of what we will be done here, let us start utilizing Microsoft OneNote ( which is –in my opinion – the best tool Microsoft ever done), I am using OneNote 2010 but you can use earlier or later version of the product, so here we go!

This section is describing the steps of utilizing OneNote to represent the process, we will go through the following steps:

Step 1: Create new note book and sectionStep 2: Add the Visio diagramStep 3: Create the template for the activityStep 4: Fill one activity ( as and example) Step 5: Link the activities to the Visio diagram

so let us begin…

Step 1: Create new note book and section

Open Microsoft OneNote from Start menu (if you don’t have it you can get it from here), then click on File || New || (Store Notebook on) My Computer || (Name) type Workflow || Click Create Notebook

Rename the section to Leave Request Workflow

Step 2: Add the Visio diagram

Rename the Untitled Page to Main Diagram.

Go to Visio diagram drawn in Section 3 and copy and paste in into the Main Diagram page:

Step 3: Create the template for the activity

Go to New Page || Name the title Activity 1 || Create the following table on the page ( you can take it from the Attachment at the end of the article)

To accelerate the process of filling the data, you can add the common fields that may have the same values in all over the process with template ( like in How to Reach section, you can add “Click on the task ” as it will be the same for all activities)

Click on Arrow Next to New Page || Page Template… ||

Then click on Save current Page as a template

You will get popup that allow you to name the template, type Workflow activity in the text box and you can optionally check Set default template for new pages in the current section then click Save

Delete the Activity 1 page.

Now we are ready to visit our client and start gathering requirements, so we can start filling the fields ( described in section 3) as the following

Now you have a stored template that has an already created table and you just need to fill it ( it is recommended to add some already filled sections to the template for example; how to reach section will always contain the sentence “Click on task”except on the first step; so you can add this to the template to accelerate the work)

Do the same for the next two activities.

Step 5: Link the activities to the Visio diagram

We are almost done except one thing that will add good value to our diagram which is linking the diagram with the activities pages. so let us start:

Go to Main Diagram page and type Details under each activity:

Now start linking the pages with email of those “Details” labels; so Right click on Employee Submission || Copy Link to page.

As we have seen, this article is just a way to organize your ideas before you visit the client and start requirements gathering, following this practice in details is not required; it is better to deal with this article as a baseline and check list of what you need to ask about when you are analyzing a process, you can also use the tools-based techniques in accelerating the process of gathering requirements and have easy to deal with documentation that can be good source for developers and designer to start sketching and development.