I have over 49,000 files in the documents directory and its subdirectories on my computer. They span nearly thirty years of output writing, teaching, speaking, and consulting. These represent the knowledge assets that support my livelihood. I am willing to claim that this is likely to be typical of today’s knowledge workers. That means there is a knowledge management problem to solve at the personal level that precedes any organizational knowledge management requirement. The answer depends on being smart about naming things; in particular, about naming files.
This is a problem that snuck up on me; I muddled along for years before recognizing it and gradually crafting strategies to deal with it. At first, I thought of it as a problem of where to put things; a place for everything and everything in its place. The desktop metaphors of file folders and hierarchical directory trees fooled me into thinking that the answer was to replicate the practices of generations of file clerks and librarians. Wrong. The affordances of filing cabinets and bookshelves lead you in directions that create unnecessary problems and obscure the opportunities inherent in the digital realm.
The work of pioneering thinkers like Vannevar Bush, Doug Engelbart, Ted Nelson, and Tim Berners-Lee seemed to offer a way out. They painted a compelling picture of how knowledge work might flourish once everything was digital, reachable via clickable links, and cleverly indexed by the engineers and algorithms at Google. Progress, but these visions glossed over the question of how to create and manage all the digital goodies to be found at the other end of all those links. That’s the world that you and I spend our days in; a world of email, Slack, Dropbox, shared drives, and files. Lots of files; 49,000+ and counting in my case.
The choices you make the first time you save a file can either complicate or simplify your life tomorrow, next year, and five years from now. Here’s a file name I just pulled off my laptop from an old project;
Final Presentation v.3.31.ppt
I’m willing to bet that you have a similar file somewhere on your computer. In fact, I’m willing to bet that you have several files with that or a similar name. Now, you would be correct to surmise that this file was originally found in some project directory at the end of a path something like /Documents/CLIENT/CustomerServiceReview/. That doesn’t help you very much, however, without access to my computer. Things are slightly better if we are both working off of a shared drive or Dropbox folder. On the other hand, what if I need to email the file to a client whose IT department blocks access to Dropbox?
These are problems that occur when you share a file with an incomplete or ambiguous name. Weak file names also cause problems for the individual knowledge worker. While you will only name a file once, you will have frequent opportunities to decide whether to look inside a file based on its name. You will often be making that choice while scanning through a list of potentially relevant files—either a directory listing or the results of a search.
Over the last several years, I’ve evolved a set of rules or guidelines for choosing a file name. As a sort of meta-rule, I start from the perspective that I will write the name only once, while I will read the name and decide what to do based on that name dozens or hundreds of times over the course of a project or a career. Here are the names of two files from my computer:
The first is a journal article I want to have ready access to; the second contains the slides for a talk I gave to a networking group I participate in. Let’s dissect the names to see what they tell me. The first file name is straightforward; it identifies the names of the authors and the title of the journal article. It contains all I need to decide whether I want to open the file to read it or whether this is the particular file I’d like to share with a colleague.
The second takes a little bit more effort to decode, although I can decipher the code on the fly, which is my principal concern. If I share the file with you, the code might slow you down a little bit but you can still extract the necessary information with no knowledge of my system. Let’s breakdown the name into its components and see why its constructed the way that it is:
- PKM-StrategyWhyAndHow- This is simply a descriptive name for the contents of the presentation. “PKM” is my shorthand for Personal Knowledge Management.
- 2011-04-21-1104 This is a timestamp for when I created the file. When I created this file, I was using timestamps that included the time as well as the date. In my current practice, I only record the date. I use a keyboard macro program (TextExpander on my Mac, ActiveWords when I am working in Windows) to enter the time or datestamp.
- NSC- This is a shorthand code for the organization I was part of at the time I wrote this talk. I’ve been affiliated with a number of different firms and institutions over the years and I find that who I was working for is a consistent memory trigger.
- TLA- This is a shorthand code for the particular client I prepared this talk for. Another meaningful memory trigger.
There is a design logic underlying these names and a series of principles and considerations that have and continue to evolve:
- Descriptive File Names: All modern file systems permit long file names. Use them. I choose names based on what they suggest about the contents and what will jog my memory later
- Ordering of Name Elements: My basic ordering of name elements is Organization, Client/Project, Descriptive Name, and Datestamp. It’s basically a hierarchy to collect items in sorted lists
- Shorthand Codes: I try to keep these codes at three letters each. I’ll deviate from that if something longer makes more sense. The codes are derived from the organization, client, project. etc. in a way that serves as a mnemonic for me. Three characters yields over 17,000 possible combinations so I’m not worried about running out. I don’t maintain an actual list; the code is a trigger for me to recall the actual organization. Here are some of the codes I currently use to offer a flavor of what I mean:
- LOY – Loyola University Chicago
- HCG – Huron Consulting Group
- CMN – Collaborating Minds
- NSC – New Shoreham Consulting
- TLA – Technology Leaders Association
- PKM – Personal Knowledge Management
- Embedded Datestamps: Computer operating systems keep track of various file dates, so why bother to add a date to the file name? Because the operating system timestamps serve the operating system’s purpose and can change for any number of reasons. The embedded timestamp reflects a date that has significance to me. For example, it might be the day I delivered a particular talk.
- Technical Considerations: Although most operating systems allow spaces in file names, I don’t use them. Instead I either capitalize each word (Title Case or CamelCase if you’re a wiki user) or use a dash to separate sections of the file name. I also try to avoid other punctuation characters to avoid potential problems in some operating system settings. Probably a holdover from my programming days.
This is a system that has evolved over time; much of it was not designed. I am not fanatical about any of it; utility today and tomorrow is the deciding factor. I do try to avoid the temptation to think any file is “only a temporary file.” I don’t try to be religious about any of this and keep the following passage from Jorge Luis Borges in mind:
These ambiguities, redundancies and deficiencies remind us of those which doctor Franz Kuhn attributes to a certain Chinese encyclopaedia entitled ‘Celestial Empire of benevolent Knowledge’. In its remote pages it is written that the animals are divided into:
(a) belonging to the emperor,
(c ) tame,
(d) suckling pigs,
(g) stray dogs,
(h) included in the present classification,
(k) drawn with a very fine camelhair brush,
(l) et cetera,
(m) having just broken the water pitcher,
(n) that from a long way off look like flies.