Reflections on Human and Software Nature

Walter Lindsay
Nov 22, 2011

Software is crafted as much as engineered. While parts are carefully engineered, the superstructure and feel of large software products are created more than engineered. Artistic intangibles flow into GUI design, and architectural preferences shape complex data structures. How much more then, do the biases and perceptions of developers shape software designed to mirror human activities?

This came increasingly into focus this summer for the Contivo team. We were focused on allowing human instinct, aided by software, to complete complex tasks which automation cannot perform on its own. We realized that some team members assumed we would organize the GUI around a linear sequence of tasks. Others assumed we would organize the user’s experience as a set of rapid experiments fine-tuned in a back and forth process. Team members projected their own experiences and instinctual preferences onto the design of the Map Intuition technology. Whether you describe the two approaches as linear vs. non-linear, bottom up vs. top down, analytical vs. intuitive, or in any number of other approaches, we realized that each vision of how to complete the task affected the overall design and details of many features. We also realized the users of our software would require us to support both visions.

These two visions were not merely ideas of how we thought the software should work. They exposed differing visions of how human perception works, of how individuals prefer to organize their lives and of what one person can expect of another. We were wrestling with visions of part of human nature.

Thomas Sowell described such visions as “what we sense or feel before we have constructed any systematic reasoning that could be called a theory…. A vision is our sense of how the world works.”

At one point in building the Map Intuition product (which reverse engineers data transformations), the team began talking past each other about the GUI design. We were not communicating well. We had different senses of how the world worked. We have seen the same phenomenon with other features, but this particular disconnect required much more digging to make clear its causes. As we wrote software which more collaborated with the human, the more we wrestled with our own visions of how the world works.

Just as products are crafted, teams must be crafted so that products can be crafted. Just as psychology tests can suggest fitness for kinds of jobs, the ability to get into the mind of certain kinds of users is part of the fitness for roles where software approximates the human.


Comment

  1.    
     
     
      
       
You must enable javascript to see captcha here!