Optimizing Your Workflow
One thing I keep asking myself: “How can I work more efficiently?” Efficient workflows are hard to obtain and even harder to keep efficient. Everyone has the tendency to fall into ruts which end up costing more time. The ruts are “comfortable” because they are what you are already doing. They turn into a trap. Therefore, I am going to remind you to re-examine your workflow with some advice on optimization.
All workflows are separable into two basic functions: a process phase and a documentation phase. The process phase is what you do to get things done, while the documentation phase is the never-ending process of documenting that which you have done. I have found out through the years that the documentation phase is as important as doing the work. Later, when a question arises about what I did or how the work went, good documentation will save the day.
For many people, the documentation comes close to being their work. That is another trap that will sneak up on you. To avoid that trap, think of the documentation as a part of your work and not a separate phase. To accomplish this feat, you need tools to automate and keep the documentation simple, but effective.
The simplest tool to get started on making documentation easy is Text Expander. This one simple program saves time that most people do not think about saving. From automatically correcting spelling mistakes (my biggest nighmare) to expanding text templates, it is a great program for saving typing time. Once you’ve added snippets, typing ddate expands to the date. With 3,139 snippets, I end up saving a lot of time!
To integrate the documentation in to my workflow, I developed the Todo Workflow for Alfred and FoldingText Workflow for Alfred. These tools combined with the FoldingText program, which is a super set of the TaskPaper program, keep my daily work well documented by making it easy and efficient.
My jobs include being a full-time missionary in Tak, Thailand, Assistant to Editorial Staff for Envato, freelance programmer, technology tutorial writer, dad of eight wonderful kids, and the husband of the best wife in the world. Never forget that your family is a part of your job and not a hindrance to your work! That is where many fail in the workforce. You can save more time by keeping your family happy than the most efficient workflow will ever do.
I keep a FoldingText document for all of my todos and one for each of my projects. The todo file, named today.txt, gets created every day by the Todo Workflow using the t:create command. That command takes all my daily tasks, weekly tasks, monthly tasks, and scheduled tasks with repeats to create a new todo list and archive all of my done tasks from the previous day. That is a large part of my documentation as well. The workflow allows the user to set up and edit these different types of todo items and compiles everything together and opens the file in FoldingText.
All of the project files get bookmarked in Alfred using the FoldingText Workflow. With the project document open, typing ft:mbkmark with a name saves a link to the document. To use the links, the FoldingText URI handler (the ft:addurihandler command) and the Alfred URI handler (a different workflow for Alfred) needs to be installed.
I can open documents with the ft:bookmark command. This gives me a list that searches my bookmarks for the one I need.
I set up different lists in each project with tags. In FoldingText, a tag is any word prefixed with an @ character. As I am working, I can save a note to a tag in Alfred with ft:notetag. This will list all the tags in the topmost FoldingText document and a note. Using a Text Expander snippet makes a dated note quickly and easy without leaving the application I was using.
To keep up with what I am doing, I add an entry to a journal. For example, t:doing shows all of my journals. Selecting one and typing a note will add the note to the journal. As I work, I add these little notes to track progress in the different areas of my workflow. The notes.txt journal is great for making notes about ideas I have without leaving what I am doing.
After documentation, the organization of your work is a priority. On the computer, documents can easily get lost in the midst of everything. On my system, I have over a million files. Bad organization will make finding anything impossible and take up precious time in the search.
Take the needed time to organize your files and keep them that way. Two great tutorials to help you are Keep a Mac Clutter Free With Hazel 3 and an Inbox Folder and Taking Hazel 3 and the Inbox to the Next Level. I use a system similar to this to help organize my work.
Small, Single-Task Programs Are Better Than Behemoths
The Unix motto has helped me to keep an optimized workflow: “Do one thing and do it well.” At a time when more and more programs are amassing larger and larger feature sets, it is hard to find small programs that do a single task well and fast. Consequently, a lot of time is eaten up with long load cycles of these behemoth programs.
A good example is the Mail.app that comes on a Mac. It takes forever to load to send a simple email. For that reason, I kept using the web app for Gmail instead of local programs. The downside is that web apps do not easily interface with other programs.
I started saving time emailing when I found the Let.ter program. It is a minimal, Markdown-based email client that is for writing emails only. It does a single task and does it well. I use Alfred to look-up the address and Let.ter to write a quick email.
Standardize for Automation
One of my main tasks for Tuts+ is uploading new video courses as they are produced. When I started working for the Editorial Staff of Tuts+, I would get the course notes (the text to accompany the video courses) in a variety of file formats and styles. The first thing to do was to move them to plain text, Markdown formats with numbering that matched the order of the videos. Now, the course outline format has a standard and a consistent format. That easily dropped an hour off course preparation time for me!
No matter what the project is, time spent creating a formalized standard for documents passed around in a group is never wasted. Standardizing everything from their locations and file type to the content in the document is important. Once there is a standard, tweaking it for a particular need is easy and automatable.
The Tuts+ Editors chose a Markdown plain text file standard with a consistent format. The editors and instructors find numbering by chapter and lesson easier for them, but for uploading and editing in the system I find that a sequential numbering makes it easier to spot errors. Therefore, I have a text manipulation routine that transposed one from the other to get exactly what I need. It takes two seconds to reorganize the numbering instead of the hour getting everything right.
Automate Repetitive Actions
To add the extra information I need in the course outline, a two-second Text Expander snippet adds the fields nicely and keeps with the consistent layout of the document. Anything that is template-able is a breeze to work with in Text Expander and will really save your time.
When eBooks from Packt Publications get put on Tuts+, an errata sheet is included for how to download the source code. I use a snippet for setting the file name, and another snippet to fill in the contents.
I need two pieces of information for the snippet: the web address for the code, and the title of the book. With the information saved to the clipboard in the order of web address and name, another snippet puts the contents together.
I use two Dropzone actions to unpack and pack the eBooks in a consistent format. Automating a process that is performed repetitively saves loads of time. The actions will unpack and rename the eBook files in their own directory for ease of access. The packer takes the files given and zips them up using the name of the parent directory. The first set of ten eBooks I did took me over three hours (uploading, downloading, and looking up the information as well). Now, it is a 30-minute process for everything.
Never be satisfied with a process. Always keep in the back of your mind: Whatever action I perform more than twice should be automated! Getting that down will save a lot of time. My tutorial Save Time by Automating the Mac defines automation with many examples for the Mac.
Stay in One Document
Often there is a need to move information from one place to another. Switching between the windows of different programs will slow down your workflow. Staying in one window as long as possible before switching applications saves time.
When a course gets completed, many key pieces of information need to be moved to a spreadsheet for easier viewing and archiving. I thought that most of the information wasn’t easy enough to process with a program and automatically place it in the spreadsheet.
Keyboard Maestro saves the day in this scenario. With Keyboard Maestro, I store ten pieces of information at a time before moving to the spreadsheet to deposit it. I map Control-C and Control-V to ten clipboard buffers. I press Control-C and a number to save to that buffer. When a hot-key gets mapped more than once, Keyboard Maestro shows a little pop-up window for selecting which one to use. It is amazing how much time this simple idea saves!
To process text information, I used to write many awk scripts and run them in the command line. That works, but is not as efficient. Now, TextSoap does most of that work for me. Combined with my TextSoap Cleaners Workflow for Alfred, a lot of time is saved by processing the text directly in the clipboard without leaving the keyboard. I even have a TextSoap cleaner that takes the full course outline and gives a simple list of chapter headings. The list goes to a Keyboard Maestro hot-key to sequentially give me the headings in backwards order. That is the easiest way to upload them!
While I was writing this article, it kept nagging me that I have not automated the filling in of the spreadsheet from a course notes file other than by using Keyboard Maestro’s clipboard buffers. So, I tackled it and now have a full shell script run by TextExpander that will take the full contents of the course file from the clipboard and create the full row of information for the spreadsheet.
With the standardized layout of the course information sheet, I was able to create the needed greps and sed editing commands to pull out each piece of information. Now, filling out my spreadsheet with course information takes exactly three seconds! With an average of 20 courses made a month, I can now save five hours a month!
With some knowledge of zsh scripting, Ruby, or PHP, many of the tools I have mentioned are expandable and made even more powerful to help you automate your workflow. Therefore, study and experiment! Time spent doing that is never wasted. One of my many mottos is: “When you stop studying, you die!”
Multitask as Much as Possible
Sometimes there are tasks that can be done by the computer without user interaction. That is when a second computer comes into play, or at least running the process in the background.
Uploading, downloading, video processing, etc. are examples of many tasks that a second system can do while you’re working on another system. I often have two to three computers running on different tasks. This saves a lot of time. Once, when I was processing a lot of videos, I had five computers running continuously on different tasks. Looking for ways to multitask the work on your computer with background tasks will help improve your workflow.
The journey to optimizing your workflow is a never-ending process. Each day, you’re given more and different tasks to handle. Always remember: it’s a job to be automated! Don’t get stuck in the ruts of working, but make your work more effective.
Do you have any additional tips for automating tasks or optimizing your workflow? Share them in the comments below.