Drupal CMS comes with a very basic editorial workflow structure. You can create roles and give different permissions to those roles for example: A writer will only be able to write articles but he may not be able to publish them. Editor can write articles and can also publish articles. And Super Admin who on top of the two jobs can also delete any article.
This is a structure which can be very easily setup in core drupal. Three roles, a little bit of permission checks and the system is ready. But with large editorial team this simple system may not work. For example, once an artilce is published, if the write edits his article, the article should again go through the process of getting approved by the editor.
These things are not possible with Drupal Core, and this is where the amazing Workbench module comes into picture. Developed with the sole intension to improve the Drupal's content workflow. You can find the module on this link. There are few other modules also which are required for Workbench to work.
Installation
For this tutorial, I have installed "Workbench", "Workbench Access" and "Workbench Moderation" modules.Views module will be also required as it is one of the dependency module. Once installed, the first thing which will come to your notice is a new button on the toolbar which says "My Workbench".

Well right now, nothing wow is going to happen. Believe me this is a module which requires a hell lot of configuration. So, the first step after installing the module is to create a Taxonomy vocab which we will need to relate with the workflow.
I created my Taxonomy as "Workbench flow". Here each term works as a section for the module.
Setting up Workbench

And this is the settings page where you have to tell Workbench which Vocab to use for sections.
Once this is done correctly, you will be able to see a screen like this in Workbench access -> Sections.

Creating roles and Users
Now, I will create a few roles and a few users so that I can demonstrate proper workflow and permissions of Workbench. I created 3 X 2 users i.e. 2 users for each section and here are the roles and the user's screenshot.

Basically, every section will have a dedicated writer role and an editor role. And writer will be able to only add content and make drafts, edit them and then he can request the editor to review it and then only the article can be published.
Editor can view drafts of writers, decide to publish that article or even send it back to the writer again for modifications. And the best part of workbench is, if a writer edits an article which is already published, the changes will be again saved as a draft and will have to go through editor's approval before getting displayed on the site. But in this process the published article is not affected.
The permissions
The permissions of workbench is the critical part for the whole flow to work. You have to follow the permissions as I have set and understand them. There are two sections of workbench right now:
Workbench access and Workbench moderation.
One of the most important part is the "Allow all members of this role to be assigned to Workbench access sections". And yes, make sure the toolbar access is enabled for the users with the new roles that are created, or else they will not see the toolbar and the link.

The screenshot will show most of the settings that I have done on my installation. The roles and their access plays a very important part in this module. I would recommend you read the README.txt file also to get an idea about the permissions.
Moving along, this is the typical dashboard of workbench that the writer will have.
