I have been at this game long enough to remember having my undergraduate research project sidelined for 20-24 hours at a clip because my simulation program required a full minute of CPU time on West Virginia University’s mainframe. I also remember agonizing over whether to buy a 10mb external hard drive for my IBM PC for $700 or to spend $725 and get a 20mb drive. I simply could not imagine (in 1985) how I would ever need 20mb!
Data processing has always been a battle over resources. The resources in question continue to cycle through the usual suspects, CPU time, memory, disk space, network speed and people, but the cycle continues. Every once in a while, there is a breakthrough that seems to eliminate the need to worry about (x), but those good times are fleeting. As soon you have more than enough memory to run your worst code, someone invents a smaller platform. I have programmed on mainframes, mini-computers, PC’s, handhelds and I can’t wait to write an app for my iPhone. So, every time one of my programmers says “I don’t need to worry about disk space“, I feel like Jed Clampet and think “one of these days, I’m gonna have to have a long talk with that boy” – how things are today is no indication of how they will be tomorrow. For example, I am working on a Toshiba Tablet PC with a 128gb solid state drive; I love having the SSD, but I know I will run out of disk space at some point.
I am thinking of this subject for two reasons. One, Susan Ellsworth, a friend of mine from various social media outlets posted a link on Facebook to “The Last Question” by Isaac Asimov © 1956. That science fiction classic is the quintessential statement on fleeting resources, among other things. Two, I just went through the exercise of splitting out the content from several Document Libraries into a new separate library, and I was wondering whether or not I need to bother with such things.
One original library was called Toastmasters and it is home to my speeches. I have a variety of columns in there to record “Evaluator Comments”, “Allowed Time” “Actual Time”, etc. Another original library was called AIIM and it is where I have material from the various presentations I have made at AIIM and material from the many AIIM training courses, webinars and events I have attended. As of July 1, 2010, I am the VP-Education for our Toastmasters club and the Secretary for the New England chapter of AIIM. Part of me wants to keep everything AIIM in the AIIM place and everything Toastmasters in the Toastmasters place. Another part of me, the part that wrote that simulation program almost 40 years ago, says they should be separate. The issue? As VP-Education, I have schedules, sign-up sheets, templates and other documents required to complete my role. As secretary, I have notes and minutes and reports necessary to that role. The two sets of documents related to the officer roles have more in common with each other than the other documents from their respective organization. In my mind, that translates to NULL columns in a lot of database rows and that is a bad thing. On the other hand, who cares? Neither library will ever have a large number of documents. I have a 4tb array that I won’t come close to filling during my term(s) in office, and we always trade-off convenience for performance. Seriously, why am I worrying about this? I also know that there really isn’t a one-to-one relationship between a List in SharePoint and a Table in SQL Server. SharePoint libraries and lists have a ton of overhead, what with descriptions, permissions, content types, views, etc. It is possible that for small lists like this, I may be using more space by separating this content!
I can put all these documents in one big library, add enough columns and build enough Views so that when I want to see AIIM NE meeting minutes, that’s all I will see. Some disagree, but I happen to think that is a bad practice. I firmly believe that the structure of your SharePoint server is the first bit of metadata. I think people should be able to look at the list of libraries and know where to go. I don’t think they should have to wade through or filter out my presentations when looking for meeting minutes. Convenience has a price and if every user opts for convenience over performance, performance will suffer.