Friday, June 17, 2011

Tools vs Complexity

I just found a comment in a thread on Coding Horror that articulated something for me:

I worked at one company in the 1990's (before the days of CMS's) where I maintained web pages for a knowledge base about the product I supported. The official website team at this company periodically changed the design of the website, and then they had a huge task editing hundreds of pages one by one, to match the new design.
Of course, to update the pages I was responsible for, I wrote a Perl script as a crude form of HTML templates, and my pages were done in five minutes. I offered my script to them to help them get their work done. They refused, saying, "we don't have time to learn new tools, we have hundreds of pages to edit!"
I was appalled at the time, but I've learned something since then: There are all sorts of people working with data, with HTML, and with code. To some people, it doesn't make a task easier to learn a new library -- it makes the task HARDER. To them, using a tool they know how to use already is a huge win, even if that tool solves the task inefficiently.
Eventually, a person trying to manipulate HTML with a regular expression hits a wall, where their tool simply can't solve the task. Some people will simply not be able to do some things. That's why they need to hire someone who has more tools.

Bill Karwin on November 16, 2009 10:43 AM

from http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html

I have always tried to explain peoples upper limits in terms of complexity.  I.e "people tend to be able to manage an upper limit in the amount of complexity within a task/situation/scenario" etc.  Different people express different levels of capacity.

However this is too simplistic.  I think the key difference between peoples capacity is abstraction.  People with higher capacity are better at abstracting the complexity into simpler artifacts.  This is both a factor of practice and innate capacity.  Look at the way you can train executive functions and working memory.  I was watching a doco on people who practice memory tricks.  Such as remembering the order of a deck of cards etc.  They do this by abstracting and relating an essentially meaningless string of facts to a known concrete visualisation.

So, getting back to the post above, I think we are expressing a similar sentiment, but the use of a more concrete term like "Tool" rather than the vaguer "complexity" provides a better conceptual handle.  Isn't abstraction fun!

No comments:

Post a Comment