Working Smarter, Not Harder

Each day, I, as well as countless other individuals set out to repeat the same tasks day after day. Perhaps some aspects of our work changes but there is a lot of core duties that are constant, repetitive, and just dull.

Being in a technological field, I find myself moving data, entering data, looking up data, and performing the same tasks on multiple documents to name a few. Move this, copy that, page after page, near mechanical in nature to the point that patterns emerge. These patterns are framed by a set of rules that must be followed to complete the task; move this (1 inch left) , copy that (above every item) , go to the next page, repeat the pattern.

Now that there is a known pattern and a set of rules we can start to lay the work out in a process much like an assembly line; step 1, step 2, step 3 …. An assembly line is analogous to instructions carried out by a computer in that each step of code is modifying the product in pursuit of reaching a finalized product.

One of the easiest ways to create an assembly line for work is a programming language referred to as Windows Scripting. Windows Scripting is designed to be pretty straight forward and hides and automates a lot of the heavier programming behind user defined functions. With Windows Scripting you can simulate mouse movements, clicks and keyboard entry and much more.

Adding some logic to the assembly line adds the possibility to make decisions from simple (if X = 1 then DoFunc() ) to a set of rules as complex as required. With logic added to the assembly line , further opportunities are introduced to remove users further.

With more logic and less user inputs (mouse clicks, file names, etc) the assembly line can operate at speeds much higher than a manual user could. With windows scripting operator errors such as typos, missed selections, etc are removed.

Some automation may include verifying file naming conventions are being maintained. In this scenario; A manual user would need to browse through to the folder with files, verify each name, edit those that do not fit the naming pattern, and then start over by finding and browsing to the next folder. Through automation, 100s of files can be processed in less time that a manual user could finish the first few tasks.

The Bigger Picture

The true purpose of an assembly line is to; increase output rates, increase consistency, decrease time, decrease required inputs and decrease costs. So how is this analogy carried forward in terms of an office environment?

Once the assembly line is completed, it is quickly scalable. The measurable result will vary dependent on the amount of automation that is achieved and the amount of work required. Any measurable result should grow in scale as the assembly line is copied to other workers. I like to think of it as such;

If an assembly line can save 5 minutes per project, and is used 10 times a day, for 5 days by 10 employees what could be the possible savings?

5min * 10uses = 50min; 50min * 5 days = 250min repeated by 10 employees = 2,500 minutes (41.7 hours)

That is a possible 42 extra hours to devote to additional billable projects.

The Smaller Picture

Beyond what may be saved or earned in time and money are other considerations to include. Finding an effective way to alleviate stressful, repetitive, or dull work in a project leaves those involved with more time to tackle higher level tasks and remain motivated and focused on detail and less on process.

I believe most people enjoy a challenge at work and removing some off the least productive tasks provides opportunities for greater challenges to be met.

Below is an example of Windows Scripting:

Func Example()
    Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)
    If Not FileWrite($sFilePath, "This is an example of using FileCopy.") Then
        MsgBox($MB_SYSTEMMODAL, "", "An error occurred whilst writing the temporary file.")
        Return False
    EndIf
    FileCopy(@TempDir & "\*.xls", @TempDir & "\xlsFiles\", $FC_OVERWRITE + $FC_CREATEPATH)
    ShellExecute(@TempDir)
EndFunc   ;==>Example

Windows scripting attempts to use descriptive names in regards to commands and variables in order to be more easily understood.

A glance at Line #3:

FileWrite is issued on a file referenced by $sFilePath. The text “This is an example of using FileCopy.” is written in the file. The file is saved and closed.

A glance at Line #7:

This line looks for ALL xls files in the temporary files folder and copies ALL xls files into a new folder named .\xlsFiles\

What has been accomplished in the above 2 lines would be more complex through manual methods whereas;

  1. The temporary folder would need to be opened.
  2. A new folder created.
  3. The new folder name set to .\xlsFiles\.
  4. Find and select ALL xls files.
  5. Copy the files.
  6. Enter the new folder.
  7. Paste the copied files.

Now, imagine if this file sorting needed to be done in multiple folders. The time and effort saved begins to increase exponentially.