Thing-oriented programming (TP) is an emerging programming model which overcomes some of the limitations of current practice in software development in general and of object-oriented programming (OOP) in particular. Ercatons provide an implementation of the model. TP does not describe a new programming language. The so-called “ercato virtual machine” or “ercato engine” implements the ideas discussed and has been used to validate the concepts described here. Thing-oriented programming is centered around the concept of a “Thing”. A thing in an executing software system is bound to behave like an object does in our real world. Software objects do not. Aspect-oriented programming (AOP) or extreme programming methods (XP) provide no exception. This fact is traced back to be the root why current software development often fails to meet our expectations. TP should then be able to provide the means to make software development achieve what other engineering disciplines have achieve...