Recently had a code review for a project.  All the normal class diagrams, interactions, SQL code: the works.  Went pretty smoothly.

The only glitch was someone non-technical attended the room that I had invited as optional, really out of courtesy so they would know the review is occurring.  The Problem was how do you describe some standard programming topics to someone who is not a programmer:

  • What is an interface?
  • What is an abstract class?
  • What is an implementation, extension?
  • How do you find if there are no records that meet your criteria?
  • What is a cache?
  • How do you pick out the records you want from all the others?

At first I tried to give some real life analogies to the concept involved.  As the review progressed and got inherently more technical I realized there really is no way to bring a non-programmer up to speed on how code works.  We live and breathe in this abstract reality that starts out with a user but quickly dissolves into something else.

I know the person was trying to understand and I was trying to give something they could relate to.  I am just not sure the gap can be easily traversed.  Feels like I failed.