As far as the S&#x2F;W engineering take away -- simply put, an interface <i>allows two disparate pieces of code</i> to work together.  One compiled piece of code, for example, can interact with another piece of code, which could be written and compiled years after the initial.