Software development explained with cars