Tuesday, April 1, 2014

Work Life: Windows Shared Folder

I had originally wrote this on why we should be using SharePoint versus using Microsoft Window's share drive feature, so I didn't have a pro section. There are some minor pros primarily on the security.

Cons

Version Control

One common occurrence when you have multiple people working on the same files is that someone may override another person's changes. This could occur maliciously or innocently. There is a good chance that if multiple people are working on the same file that they replace the files around the same time. The last person may not have known the file was just updated during the time they were uploading the changes.

Folder Structure

Unless there is an enforcer, everyone has their own breakdown on how data should be broken down or sorted. For example, internal processes could be broken down as Internal > Processes for someone that deals more with internal team vs external teams or Processes > Internal for someone that deals with processes vs templates vs administration.
This process breaks down further when someone is tasked to upload a file to the shared drive without clear knowledge on how all the folders are structured. Thus oftentimes, the person will just create another folder in what they think would be the best bet. A clear indication of this is when you find a lot of folders that have a single file in it.

Duplicate Files

Due to the cons of folder structure, there is also a good chance that users upload the same files in different locations. Although this is also possible in other file sharing solutions, most of the other solutions do have search which help reduce this possibility. Microsoft's search within network folders is less reliable than local files which also is not always reliable.
This makes it difficult for a new user to know which is the official file to use (assuming the person finds both files).

Naming Convention

Due to the above limitations, people have come up with different workarounds. One of the most common ones is to append new, updated, backup (bkp), or a date. After several versions, more files are stored where most will never be used again. By the time that such files may have use, there will be confusion if 'new' is newer than 'new2' or 'new new' or 'newer' or 'newest'.
Sorting is also quite difficult especially if a date is used. Most people like to use the MMDDYY or MMYY or MMYYYY. When the dates spans multiple years, the files no longer sort in chronological order because alphabetically 02.2014 will come before 03.2013, where it should be 03.2013 then 02.2014. Sorting also becomes even more difficult when different delimiters are used: periods, dashes, subscores, spaces.
There is also confusion with MMDD with small values because it is not intuitive whether the file is MMDD or DDMM or MMYY (for example 0102). The problem with MMDDYY is similar in that it can be confused with YYMMDD, for example 010203. The year will eventually need to be appended because theoretically 50% of new files will be created in the second half of the year and 25% in the last quarter. Continuing the same process will likely extend to the following year. Now, the user can either update all the files or they create even more subfolders which is just more overhead or clutter the shared drive.

Best Practices

These are some practices that I like to use.

Dates

I recommend that people use YYYYMMDD if they have to use dates. There are two benefits to this. First, it is clearer that the first part is the year (primarily because the years will never be less than 1200 and months will never be 20+). If for some reason the date is for earlier than the 13th century, use some sort of delimiter. A delimiter could be useful in either case and should be decided by the team. Removing the delimiter is useful in reducing file length which some systems still have issues with. Second, the file system will naturally sort pseudo-chronologically (pseudo because it still sorting alphabetically).

File Backup / Version Control

I recommend that you make a copy of the file you are going to edit then rename the file with the current date (YYYYMMDD). When ready to publish to someone else, copy the file again but rename without the date (assuming you do not want to include the date for aesthetic). This will prevent someone from accidentally click save and override changes by accident. This also prevents file locking issues (use your userid if someone else is modifying the same file). And this is somewhat like version control. If additional backups are needed in the same day, unique identifiers can be added to the end of the file. They should avoid using adjectives, preferably another count for example 20140101.01 or 20140101.01.myid (to identify who owns this iteration). A policy should exist that these exceptions should be deleted at a future date to cleanup and declutter the shared drive.

Folder Structure

There is little that can be done to enforce folder structure especially when managing multiple environments and multiple teams. Ideally, a desired file can only go into one folder or the other, for example internal or external, process flow or templates. This way of thinking would cause increase levels of subfolders which is also undesirable. A user should be able to navigate to their desired files around 3 levels. Any more, the folders have to attempt to be as exclusively mutual as possible.