Ancient Technology Lessons For Software Development

  • strict warning: Non-static method view::load() should not be called statically in /hermes/walnaweb12a/b57/moo.greydragoncom/nodsw/sites/all/modules/views/views.module on line 906.
  • strict warning: Declaration of views_handler_argument::init() should be compatible with views_handler::init(&$view, $options) in /hermes/walnaweb12a/b57/moo.greydragoncom/nodsw/sites/all/modules/views/handlers/ on line 744.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /hermes/walnaweb12a/b57/moo.greydragoncom/nodsw/sites/all/modules/views/handlers/ on line 607.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /hermes/walnaweb12a/b57/moo.greydragoncom/nodsw/sites/all/modules/views/handlers/ on line 607.
  • strict warning: Declaration of views_handler_filter_boolean_operator::value_validate() should be compatible with views_handler_filter::value_validate($form, &$form_state) in /hermes/walnaweb12a/b57/moo.greydragoncom/nodsw/sites/all/modules/views/handlers/ on line 159.
Leeland's picture

Many times a day I sit and wonder about why something is (or is not). (Sounds pretty Zen I know, however, it is still true.) Technology is evolving so fast as to seem out of control. Yet, there are still fundamental elements we should be following. One of these is usability.

It is not unknown to spend whole days trying to discover by trial and error the right mix of magic configuration parameters needed to make some technology interact a given way. For example it took nearly 4 hours of time to properly structure the input filters for this web site when I shifted to Drupal so that MOST of my prior posts came out CLOSE to what they should. To be honest as of this moment a number of posts are still unpublished because I do not have time (or desire) to correct their syntactic grammar to come out "correct." What is wrong with their syntactic grammar is NOTHING at all. They comply completely to a known standard, and yet they do not render correctly using any mix I can find. Which is why I have decided to kick off a project to create a simpler, more efficient, and most importantly more standards compliant module. (Yes it will be fun for me too, but I do have other projects I can work on and this should have already been done at this point.)

What does this have to do with Ancient Technologies? Good question! To which I ask you what is the relationship between a touch stone, a knife, a ball point pen, and a light switch? The answer is that all of these items are "advanced" technologies for which the usage can be understood by practically any thinking being. A few simple experiments and their usage is obvious.

Software interfaces should NOT be designed by the average software engineer. The reason for this is very likely near the top of the browser reading this. Look at that menu of choices File, Edit, View, History, Bookmarks, Tools, Help, and another row of buttons and even more things to fiddle with and push and set. Try going to the configurations for most any software application. What you see is software interfaces designed by engineers for other engineers. If you don't have the prerequisite knowledge "too bad, get smarter." Not only are the interfaces far from ergonomic, the controls are complex, deep, and produce rather funny emergent results at times.

Just looking beyond the interface there is also the fact that software engineers are routinely destroying clear communication by using poor language, incorrect spelling, and confusing everyone with incorrect obscure references. For example why is ON and OFF on my digital voice recorder now "Active" "Stand-by" and "Hold". Another example is when did the noun input which already refers to "signals being received into a system" need to get an S attached to make it more plural than it already was? Or worse being the now plural-plural "inputs" can be verb as in "The user inputs the variables." Or thanks to the web standard "referer" ended up missing an R that has caused a whole generation of programmers to thing "referrer" is a misspelled form of "referer."

What is needed is for designs to once again take the interface as a priority item. Instead of assuming the interface will just "appear" software professionals should force themselves and others to stop and consider the interface. If the project is developing a back-end or middle-ware application the interfaces are between the elements or layers of the domain model. Something made to be used by people needs to have the direct simplicity of a knife, or touchstone. Engineers should study ancient technologies for the lessons they have. After all our current technology was built using those older technologies and really they are still here all around us if we peal back the veneer of our technologies a layer or two.

Thread Slivers eBook at Amazon