The Engineering Method: a Framework for Understanding Technology Development